1*4882a593SmuzhiyunTexas Instruments TI-SCI Generic Power Domain 2*4882a593Smuzhiyun--------------------------------------------- 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunSome TI SoCs contain a system controller (like the PMMC, etc...) that is 5*4882a593Smuzhiyunresponsible for controlling the state of the IPs that are present. 6*4882a593SmuzhiyunCommunication between the host processor running an OS and the system 7*4882a593Smuzhiyuncontroller happens through a protocol known as TI-SCI [1]. 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun[1] Documentation/devicetree/bindings/arm/keystone/ti,sci.txt 10*4882a593Smuzhiyun 11*4882a593SmuzhiyunPM Domain Node 12*4882a593Smuzhiyun============== 13*4882a593SmuzhiyunThe PM domain node represents the global PM domain managed by the PMMC, which 14*4882a593Smuzhiyunin this case is the implementation as documented by the generic PM domain 15*4882a593Smuzhiyunbindings in Documentation/devicetree/bindings/power/power-domain.yaml. Because 16*4882a593Smuzhiyunthis relies on the TI SCI protocol to communicate with the PMMC it must be a 17*4882a593Smuzhiyunchild of the pmmc node. 18*4882a593Smuzhiyun 19*4882a593SmuzhiyunRequired Properties: 20*4882a593Smuzhiyun-------------------- 21*4882a593Smuzhiyun- compatible: should be "ti,sci-pm-domain" 22*4882a593Smuzhiyun- #power-domain-cells: Can be one of the following: 23*4882a593Smuzhiyun 1: Containing the device id of each node 24*4882a593Smuzhiyun 2: First entry should be device id 25*4882a593Smuzhiyun Second entry should be one of the floowing: 26*4882a593Smuzhiyun TI_SCI_PD_EXCLUSIVE: To allow device to be 27*4882a593Smuzhiyun exclusively controlled by 28*4882a593Smuzhiyun the requesting hosts. 29*4882a593Smuzhiyun TI_SCI_PD_SHARED: To allow device to be shared 30*4882a593Smuzhiyun by multiple hosts. 31*4882a593Smuzhiyun 32*4882a593SmuzhiyunExample (K2G): 33*4882a593Smuzhiyun------------- 34*4882a593Smuzhiyun pmmc: pmmc { 35*4882a593Smuzhiyun compatible = "ti,k2g-sci"; 36*4882a593Smuzhiyun ... 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun k2g_pds: power-controller { 39*4882a593Smuzhiyun compatible = "ti,sci-pm-domain"; 40*4882a593Smuzhiyun #power-domain-cells = <1>; 41*4882a593Smuzhiyun }; 42*4882a593Smuzhiyun }; 43*4882a593Smuzhiyun 44*4882a593SmuzhiyunPM Domain Consumers 45*4882a593Smuzhiyun=================== 46*4882a593SmuzhiyunHardware blocks belonging to a PM domain should contain a "power-domains" 47*4882a593Smuzhiyunproperty that is a phandle pointing to the corresponding PM domain node 48*4882a593Smuzhiyunalong with an index representing the device id to be passed to the PMMC 49*4882a593Smuzhiyunfor device control. 50*4882a593Smuzhiyun 51*4882a593SmuzhiyunRequired Properties: 52*4882a593Smuzhiyun-------------------- 53*4882a593Smuzhiyun- power-domains: phandle pointing to the corresponding PM domain node 54*4882a593Smuzhiyun and an ID representing the device. 55*4882a593Smuzhiyun 56*4882a593SmuzhiyunSee http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data for the list 57*4882a593Smuzhiyunof valid identifiers for k2g. 58*4882a593Smuzhiyun 59*4882a593SmuzhiyunExample (K2G): 60*4882a593Smuzhiyun-------------------- 61*4882a593Smuzhiyun uart0: serial@2530c00 { 62*4882a593Smuzhiyun compatible = "ns16550a"; 63*4882a593Smuzhiyun ... 64*4882a593Smuzhiyun power-domains = <&k2g_pds 0x002c>; 65*4882a593Smuzhiyun }; 66