| Texas Instruments TI-SCI Generic Power Domain |
| --------------------------------------------- |
| |
| Some TI SoCs contain a system controller (like the PMMC, etc...) that is |
| responsible for controlling the state of the IPs that are present. |
| Communication between the host processor running an OS and the system |
| controller happens through a protocol known as TI-SCI [1]. |
| |
| [1] Documentation/devicetree/bindings/arm/keystone/ti,sci.txt |
| |
| PM Domain Node |
| ============== |
| The PM domain node represents the global PM domain managed by the PMMC, which |
| in this case is the implementation as documented by the generic PM domain |
| bindings in Documentation/devicetree/bindings/power/power-domain.yaml. Because |
| this relies on the TI SCI protocol to communicate with the PMMC it must be a |
| child of the pmmc node. |
| |
| Required Properties: |
| -------------------- |
| - compatible: should be "ti,sci-pm-domain" |
| - #power-domain-cells: Can be one of the following: |
| 1: Containing the device id of each node |
| 2: First entry should be device id |
| Second entry should be one of the floowing: |
| TI_SCI_PD_EXCLUSIVE: To allow device to be |
| exclusively controlled by |
| the requesting hosts. |
| TI_SCI_PD_SHARED: To allow device to be shared |
| by multiple hosts. |
| |
| Example (K2G): |
| ------------- |
| pmmc: pmmc { |
| compatible = "ti,k2g-sci"; |
| ... |
| |
| k2g_pds: power-controller { |
| compatible = "ti,sci-pm-domain"; |
| #power-domain-cells = <1>; |
| }; |
| }; |
| |
| PM Domain Consumers |
| =================== |
| Hardware blocks belonging to a PM domain should contain a "power-domains" |
| property that is a phandle pointing to the corresponding PM domain node |
| along with an index representing the device id to be passed to the PMMC |
| for device control. |
| |
| Required Properties: |
| -------------------- |
| - power-domains: phandle pointing to the corresponding PM domain node |
| and an ID representing the device. |
| |
| See http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data for the list |
| of valid identifiers for k2g. |
| |
| Example (K2G): |
| -------------------- |
| uart0: serial@2530c00 { |
| compatible = "ns16550a"; |
| ... |
| power-domains = <&k2g_pds 0x002c>; |
| }; |