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