18c2ecf20Sopenharmony_ciTexas Instruments TI-SCI Generic Power Domain
28c2ecf20Sopenharmony_ci---------------------------------------------
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_ciSome TI SoCs contain a system controller (like the PMMC, etc...) that is
58c2ecf20Sopenharmony_ciresponsible for controlling the state of the IPs that are present.
68c2ecf20Sopenharmony_ciCommunication between the host processor running an OS and the system
78c2ecf20Sopenharmony_cicontroller happens through a protocol known as TI-SCI [1].
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci[1] Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ciPM Domain Node
128c2ecf20Sopenharmony_ci==============
138c2ecf20Sopenharmony_ciThe PM domain node represents the global PM domain managed by the PMMC, which
148c2ecf20Sopenharmony_ciin this case is the implementation as documented by the generic PM domain
158c2ecf20Sopenharmony_cibindings in Documentation/devicetree/bindings/power/power-domain.yaml.  Because
168c2ecf20Sopenharmony_cithis relies on the TI SCI protocol to communicate with the PMMC it must be a
178c2ecf20Sopenharmony_cichild of the pmmc node.
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ciRequired Properties:
208c2ecf20Sopenharmony_ci--------------------
218c2ecf20Sopenharmony_ci- compatible: should be "ti,sci-pm-domain"
228c2ecf20Sopenharmony_ci- #power-domain-cells: Can be one of the following:
238c2ecf20Sopenharmony_ci			1: Containing the device id of each node
248c2ecf20Sopenharmony_ci			2: First entry should be device id
258c2ecf20Sopenharmony_ci			   Second entry should be one of the floowing:
268c2ecf20Sopenharmony_ci			   TI_SCI_PD_EXCLUSIVE: To allow device to be
278c2ecf20Sopenharmony_ci						exclusively controlled by
288c2ecf20Sopenharmony_ci						the requesting hosts.
298c2ecf20Sopenharmony_ci			   TI_SCI_PD_SHARED: To allow device to be shared
308c2ecf20Sopenharmony_ci					     by multiple hosts.
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ciExample (K2G):
338c2ecf20Sopenharmony_ci-------------
348c2ecf20Sopenharmony_ci	pmmc: pmmc {
358c2ecf20Sopenharmony_ci		compatible = "ti,k2g-sci";
368c2ecf20Sopenharmony_ci		...
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci		k2g_pds: power-controller {
398c2ecf20Sopenharmony_ci			compatible = "ti,sci-pm-domain";
408c2ecf20Sopenharmony_ci			#power-domain-cells = <1>;
418c2ecf20Sopenharmony_ci		};
428c2ecf20Sopenharmony_ci	};
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ciPM Domain Consumers
458c2ecf20Sopenharmony_ci===================
468c2ecf20Sopenharmony_ciHardware blocks belonging to a PM domain should contain a "power-domains"
478c2ecf20Sopenharmony_ciproperty that is a phandle pointing to the corresponding PM domain node
488c2ecf20Sopenharmony_cialong with an index representing the device id to be passed to the PMMC
498c2ecf20Sopenharmony_cifor device control.
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ciRequired Properties:
528c2ecf20Sopenharmony_ci--------------------
538c2ecf20Sopenharmony_ci- power-domains: phandle pointing to the corresponding PM domain node
548c2ecf20Sopenharmony_ci		 and an ID representing the device.
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ciSee http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data for the list
578c2ecf20Sopenharmony_ciof valid identifiers for k2g.
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ciExample (K2G):
608c2ecf20Sopenharmony_ci--------------------
618c2ecf20Sopenharmony_ci	uart0: serial@2530c00 {
628c2ecf20Sopenharmony_ci		compatible = "ns16550a";
638c2ecf20Sopenharmony_ci		...
648c2ecf20Sopenharmony_ci		power-domains = <&k2g_pds 0x002c>;
658c2ecf20Sopenharmony_ci	};
66