blob: fdd919b96830b882e54c31d4c7b1f5f468624a5e [file] [log] [blame]
Mark Brown63209a72009-09-22 08:50:32 -07001Regulator API design notes
2==========================
3
4This document provides a brief, partially structured, overview of some
5of the design considerations which impact the regulator API design.
6
7Safety
8------
9
10 - Errors in regulator configuration can have very serious consequences
11 for the system, potentially including lasting hardware damage.
Geert Uytterhoeven3a4c6952014-08-25 10:47:51 +020012 - It is not possible to automatically determine the power configuration
Mark Brown63209a72009-09-22 08:50:32 -070013 of the system - software-equivalent variants of the same chip may
Geert Uytterhoeven3a4c6952014-08-25 10:47:51 +020014 have different power requirements, and not all components with power
Mark Brown63209a72009-09-22 08:50:32 -070015 requirements are visible to software.
16
17 => The API should make no changes to the hardware state unless it has
Geert Uytterhoeven3a4c6952014-08-25 10:47:51 +020018 specific knowledge that these changes are safe to perform on this
19 particular system.
Mark Brown63209a72009-09-22 08:50:32 -070020
21Consumer use cases
22------------------
23
24 - The overwhelming majority of devices in a system will have no
25 requirement to do any runtime configuration of their power beyond
26 being able to turn it on or off.
27
28 - Many of the power supplies in the system will be shared between many
29 different consumers.
30
31 => The consumer API should be structured so that these use cases are
32 very easy to handle and so that consumers will work with shared
33 supplies without any additional effort.