| .. | .. |
|---|
| 13 | 13 | |
|---|
| 14 | 14 | ==PM domain providers== |
|---|
| 15 | 15 | |
|---|
| 16 | | -Required properties: |
|---|
| 17 | | - - #power-domain-cells : Number of cells in a PM domain specifier; |
|---|
| 18 | | - Typically 0 for nodes representing a single PM domain and 1 for nodes |
|---|
| 19 | | - providing multiple PM domains (e.g. power controllers), but can be any value |
|---|
| 20 | | - as specified by device tree binding documentation of particular provider. |
|---|
| 21 | | - |
|---|
| 22 | | -Optional properties: |
|---|
| 23 | | - - power-domains : A phandle and PM domain specifier as defined by bindings of |
|---|
| 24 | | - the power controller specified by phandle. |
|---|
| 25 | | - Some power domains might be powered from another power domain (or have |
|---|
| 26 | | - other hardware specific dependencies). For representing such dependency |
|---|
| 27 | | - a standard PM domain consumer binding is used. When provided, all domains |
|---|
| 28 | | - created by the given provider should be subdomains of the domain |
|---|
| 29 | | - specified by this binding. More details about power domain specifier are |
|---|
| 30 | | - available in the next section. |
|---|
| 31 | | - |
|---|
| 32 | | -- domain-idle-states : A phandle of an idle-state that shall be soaked into a |
|---|
| 33 | | - generic domain power state. The idle state definitions are |
|---|
| 34 | | - compatible with domain-idle-state specified in [1]. phandles |
|---|
| 35 | | - that are not compatible with domain-idle-state will be |
|---|
| 36 | | - ignored. |
|---|
| 37 | | - The domain-idle-state property reflects the idle state of this PM domain and |
|---|
| 38 | | - not the idle states of the devices or sub-domains in the PM domain. Devices |
|---|
| 39 | | - and sub-domains have their own idle-states independent of the parent |
|---|
| 40 | | - domain's idle states. In the absence of this property, the domain would be |
|---|
| 41 | | - considered as capable of being powered-on or powered-off. |
|---|
| 42 | | - |
|---|
| 43 | | -- operating-points-v2 : Phandles to the OPP tables of power domains provided by |
|---|
| 44 | | - a power domain provider. If the provider provides a single power domain only |
|---|
| 45 | | - or all the power domains provided by the provider have identical OPP tables, |
|---|
| 46 | | - then this shall contain a single phandle. Refer to ../opp/opp.txt for more |
|---|
| 47 | | - information. |
|---|
| 48 | | - |
|---|
| 49 | | -Example: |
|---|
| 50 | | - |
|---|
| 51 | | - power: power-controller@12340000 { |
|---|
| 52 | | - compatible = "foo,power-controller"; |
|---|
| 53 | | - reg = <0x12340000 0x1000>; |
|---|
| 54 | | - #power-domain-cells = <1>; |
|---|
| 55 | | - }; |
|---|
| 56 | | - |
|---|
| 57 | | -The node above defines a power controller that is a PM domain provider and |
|---|
| 58 | | -expects one cell as its phandle argument. |
|---|
| 59 | | - |
|---|
| 60 | | -Example 2: |
|---|
| 61 | | - |
|---|
| 62 | | - parent: power-controller@12340000 { |
|---|
| 63 | | - compatible = "foo,power-controller"; |
|---|
| 64 | | - reg = <0x12340000 0x1000>; |
|---|
| 65 | | - #power-domain-cells = <1>; |
|---|
| 66 | | - }; |
|---|
| 67 | | - |
|---|
| 68 | | - child: power-controller@12341000 { |
|---|
| 69 | | - compatible = "foo,power-controller"; |
|---|
| 70 | | - reg = <0x12341000 0x1000>; |
|---|
| 71 | | - power-domains = <&parent 0>; |
|---|
| 72 | | - #power-domain-cells = <1>; |
|---|
| 73 | | - }; |
|---|
| 74 | | - |
|---|
| 75 | | -The nodes above define two power controllers: 'parent' and 'child'. |
|---|
| 76 | | -Domains created by the 'child' power controller are subdomains of '0' power |
|---|
| 77 | | -domain provided by the 'parent' power controller. |
|---|
| 78 | | - |
|---|
| 79 | | -Example 3: |
|---|
| 80 | | - parent: power-controller@12340000 { |
|---|
| 81 | | - compatible = "foo,power-controller"; |
|---|
| 82 | | - reg = <0x12340000 0x1000>; |
|---|
| 83 | | - #power-domain-cells = <0>; |
|---|
| 84 | | - domain-idle-states = <&DOMAIN_RET>, <&DOMAIN_PWR_DN>; |
|---|
| 85 | | - }; |
|---|
| 86 | | - |
|---|
| 87 | | - child: power-controller@12341000 { |
|---|
| 88 | | - compatible = "foo,power-controller"; |
|---|
| 89 | | - reg = <0x12341000 0x1000>; |
|---|
| 90 | | - power-domains = <&parent>; |
|---|
| 91 | | - #power-domain-cells = <0>; |
|---|
| 92 | | - domain-idle-states = <&DOMAIN_PWR_DN>; |
|---|
| 93 | | - }; |
|---|
| 94 | | - |
|---|
| 95 | | - DOMAIN_RET: state@0 { |
|---|
| 96 | | - compatible = "domain-idle-state"; |
|---|
| 97 | | - reg = <0x0>; |
|---|
| 98 | | - entry-latency-us = <1000>; |
|---|
| 99 | | - exit-latency-us = <2000>; |
|---|
| 100 | | - min-residency-us = <10000>; |
|---|
| 101 | | - }; |
|---|
| 102 | | - |
|---|
| 103 | | - DOMAIN_PWR_DN: state@1 { |
|---|
| 104 | | - compatible = "domain-idle-state"; |
|---|
| 105 | | - reg = <0x1>; |
|---|
| 106 | | - entry-latency-us = <5000>; |
|---|
| 107 | | - exit-latency-us = <8000>; |
|---|
| 108 | | - min-residency-us = <7000>; |
|---|
| 109 | | - }; |
|---|
| 16 | +See power-domain.yaml. |
|---|
| 110 | 17 | |
|---|
| 111 | 18 | ==PM domain consumers== |
|---|
| 112 | 19 | |
|---|
| .. | .. |
|---|
| 202 | 109 | required-opps = <&domain1_opp_1>; |
|---|
| 203 | 110 | }; |
|---|
| 204 | 111 | |
|---|
| 205 | | -[1]. Documentation/devicetree/bindings/power/domain-idle-state.txt |
|---|
| 112 | +[1]. Documentation/devicetree/bindings/power/domain-idle-state.yaml |
|---|