1*c66ec88fSEmmanuel VadotHisilicon Platforms Device Tree Bindings 2*c66ec88fSEmmanuel Vadot---------------------------------------------------- 3*c66ec88fSEmmanuel VadotHi3660 SoC 4*c66ec88fSEmmanuel VadotRequired root node properties: 5*c66ec88fSEmmanuel Vadot - compatible = "hisilicon,hi3660"; 6*c66ec88fSEmmanuel Vadot 7*c66ec88fSEmmanuel VadotHiKey960 Board 8*c66ec88fSEmmanuel VadotRequired root node properties: 9*c66ec88fSEmmanuel Vadot - compatible = "hisilicon,hi3660-hikey960", "hisilicon,hi3660"; 10*c66ec88fSEmmanuel Vadot 11*c66ec88fSEmmanuel VadotHi3670 SoC 12*c66ec88fSEmmanuel VadotRequired root node properties: 13*c66ec88fSEmmanuel Vadot - compatible = "hisilicon,hi3670"; 14*c66ec88fSEmmanuel Vadot 15*c66ec88fSEmmanuel VadotHiKey970 Board 16*c66ec88fSEmmanuel VadotRequired root node properties: 17*c66ec88fSEmmanuel Vadot - compatible = "hisilicon,hi3670-hikey970", "hisilicon,hi3670"; 18*c66ec88fSEmmanuel Vadot 19*c66ec88fSEmmanuel VadotHi3798cv200 SoC 20*c66ec88fSEmmanuel VadotRequired root node properties: 21*c66ec88fSEmmanuel Vadot - compatible = "hisilicon,hi3798cv200"; 22*c66ec88fSEmmanuel Vadot 23*c66ec88fSEmmanuel VadotHi3798cv200 Poplar Board 24*c66ec88fSEmmanuel VadotRequired root node properties: 25*c66ec88fSEmmanuel Vadot - compatible = "hisilicon,hi3798cv200-poplar", "hisilicon,hi3798cv200"; 26*c66ec88fSEmmanuel Vadot 27*c66ec88fSEmmanuel VadotHi4511 Board 28*c66ec88fSEmmanuel VadotRequired root node properties: 29*c66ec88fSEmmanuel Vadot - compatible = "hisilicon,hi3620-hi4511"; 30*c66ec88fSEmmanuel Vadot 31*c66ec88fSEmmanuel VadotHi6220 SoC 32*c66ec88fSEmmanuel VadotRequired root node properties: 33*c66ec88fSEmmanuel Vadot - compatible = "hisilicon,hi6220"; 34*c66ec88fSEmmanuel Vadot 35*c66ec88fSEmmanuel VadotHiKey Board 36*c66ec88fSEmmanuel VadotRequired root node properties: 37*c66ec88fSEmmanuel Vadot - compatible = "hisilicon,hi6220-hikey", "hisilicon,hi6220"; 38*c66ec88fSEmmanuel Vadot 39*c66ec88fSEmmanuel VadotHiP01 ca9x2 Board 40*c66ec88fSEmmanuel VadotRequired root node properties: 41*c66ec88fSEmmanuel Vadot - compatible = "hisilicon,hip01-ca9x2"; 42*c66ec88fSEmmanuel Vadot 43*c66ec88fSEmmanuel VadotHiP04 D01 Board 44*c66ec88fSEmmanuel VadotRequired root node properties: 45*c66ec88fSEmmanuel Vadot - compatible = "hisilicon,hip04-d01"; 46*c66ec88fSEmmanuel Vadot 47*c66ec88fSEmmanuel VadotHiP05 D02 Board 48*c66ec88fSEmmanuel VadotRequired root node properties: 49*c66ec88fSEmmanuel Vadot - compatible = "hisilicon,hip05-d02"; 50*c66ec88fSEmmanuel Vadot 51*c66ec88fSEmmanuel VadotHiP06 D03 Board 52*c66ec88fSEmmanuel VadotRequired root node properties: 53*c66ec88fSEmmanuel Vadot - compatible = "hisilicon,hip06-d03"; 54*c66ec88fSEmmanuel Vadot 55*c66ec88fSEmmanuel VadotHiP07 D05 Board 56*c66ec88fSEmmanuel VadotRequired root node properties: 57*c66ec88fSEmmanuel Vadot - compatible = "hisilicon,hip07-d05"; 58*c66ec88fSEmmanuel Vadot 59*c66ec88fSEmmanuel VadotHisilicon system controller 60*c66ec88fSEmmanuel Vadot 61*c66ec88fSEmmanuel VadotRequired properties: 62*c66ec88fSEmmanuel Vadot- compatible : "hisilicon,sysctrl" 63*c66ec88fSEmmanuel Vadot- reg : Register address and size 64*c66ec88fSEmmanuel Vadot 65*c66ec88fSEmmanuel VadotOptional properties: 66*c66ec88fSEmmanuel Vadot- smp-offset : offset in sysctrl for notifying slave cpu booting 67*c66ec88fSEmmanuel Vadot cpu 1, reg; 68*c66ec88fSEmmanuel Vadot cpu 2, reg + 0x4; 69*c66ec88fSEmmanuel Vadot cpu 3, reg + 0x8; 70*c66ec88fSEmmanuel Vadot If reg value is not zero, cpun exit wfi and go 71*c66ec88fSEmmanuel Vadot- resume-offset : offset in sysctrl for notifying cpu0 when resume 72*c66ec88fSEmmanuel Vadot- reboot-offset : offset in sysctrl for system reboot 73*c66ec88fSEmmanuel Vadot 74*c66ec88fSEmmanuel VadotExample: 75*c66ec88fSEmmanuel Vadot 76*c66ec88fSEmmanuel Vadot /* for Hi3620 */ 77*c66ec88fSEmmanuel Vadot sysctrl: system-controller@fc802000 { 78*c66ec88fSEmmanuel Vadot compatible = "hisilicon,sysctrl"; 79*c66ec88fSEmmanuel Vadot reg = <0xfc802000 0x1000>; 80*c66ec88fSEmmanuel Vadot smp-offset = <0x31c>; 81*c66ec88fSEmmanuel Vadot resume-offset = <0x308>; 82*c66ec88fSEmmanuel Vadot reboot-offset = <0x4>; 83*c66ec88fSEmmanuel Vadot }; 84*c66ec88fSEmmanuel Vadot 85*c66ec88fSEmmanuel Vadot----------------------------------------------------------------------- 86*c66ec88fSEmmanuel VadotHisilicon Hi3798CV200 Peripheral Controller 87*c66ec88fSEmmanuel Vadot 88*c66ec88fSEmmanuel VadotThe Hi3798CV200 Peripheral Controller controls peripherals, queries 89*c66ec88fSEmmanuel Vadottheir status, and configures some functions of peripherals. 90*c66ec88fSEmmanuel Vadot 91*c66ec88fSEmmanuel VadotRequired properties: 92*c66ec88fSEmmanuel Vadot- compatible: Should contain "hisilicon,hi3798cv200-perictrl", "syscon" 93*c66ec88fSEmmanuel Vadot and "simple-mfd". 94*c66ec88fSEmmanuel Vadot- reg: Register address and size of Peripheral Controller. 95*c66ec88fSEmmanuel Vadot- #address-cells: Should be 1. 96*c66ec88fSEmmanuel Vadot- #size-cells: Should be 1. 97*c66ec88fSEmmanuel Vadot 98*c66ec88fSEmmanuel VadotExamples: 99*c66ec88fSEmmanuel Vadot 100*c66ec88fSEmmanuel Vadot perictrl: peripheral-controller@8a20000 { 101*c66ec88fSEmmanuel Vadot compatible = "hisilicon,hi3798cv200-perictrl", "syscon", 102*c66ec88fSEmmanuel Vadot "simple-mfd"; 103*c66ec88fSEmmanuel Vadot reg = <0x8a20000 0x1000>; 104*c66ec88fSEmmanuel Vadot #address-cells = <1>; 105*c66ec88fSEmmanuel Vadot #size-cells = <1>; 106*c66ec88fSEmmanuel Vadot }; 107*c66ec88fSEmmanuel Vadot 108*c66ec88fSEmmanuel Vadot----------------------------------------------------------------------- 109*c66ec88fSEmmanuel VadotHisilicon Hi6220 system controller 110*c66ec88fSEmmanuel Vadot 111*c66ec88fSEmmanuel VadotRequired properties: 112*c66ec88fSEmmanuel Vadot- compatible : "hisilicon,hi6220-sysctrl" 113*c66ec88fSEmmanuel Vadot- reg : Register address and size 114*c66ec88fSEmmanuel Vadot- #clock-cells: should be set to 1, many clock registers are defined 115*c66ec88fSEmmanuel Vadot under this controller and this property must be present. 116*c66ec88fSEmmanuel Vadot 117*c66ec88fSEmmanuel VadotHisilicon designs this controller as one of the system controllers, 118*c66ec88fSEmmanuel Vadotits main functions are the same as Hisilicon system controller, but 119*c66ec88fSEmmanuel Vadotthe register offset of some core modules are different. 120*c66ec88fSEmmanuel Vadot 121*c66ec88fSEmmanuel VadotExample: 122*c66ec88fSEmmanuel Vadot /*for Hi6220*/ 123*c66ec88fSEmmanuel Vadot sys_ctrl: sys_ctrl@f7030000 { 124*c66ec88fSEmmanuel Vadot compatible = "hisilicon,hi6220-sysctrl", "syscon"; 125*c66ec88fSEmmanuel Vadot reg = <0x0 0xf7030000 0x0 0x2000>; 126*c66ec88fSEmmanuel Vadot #clock-cells = <1>; 127*c66ec88fSEmmanuel Vadot }; 128*c66ec88fSEmmanuel Vadot 129*c66ec88fSEmmanuel Vadot 130*c66ec88fSEmmanuel VadotHisilicon Hi6220 Power Always ON domain controller 131*c66ec88fSEmmanuel Vadot 132*c66ec88fSEmmanuel VadotRequired properties: 133*c66ec88fSEmmanuel Vadot- compatible : "hisilicon,hi6220-aoctrl" 134*c66ec88fSEmmanuel Vadot- reg : Register address and size 135*c66ec88fSEmmanuel Vadot- #clock-cells: should be set to 1, many clock registers are defined 136*c66ec88fSEmmanuel Vadot under this controller and this property must be present. 137*c66ec88fSEmmanuel Vadot 138*c66ec88fSEmmanuel VadotHisilicon designs this system controller to control the power always 139*c66ec88fSEmmanuel Vadoton domain for mobile platform. 140*c66ec88fSEmmanuel Vadot 141*c66ec88fSEmmanuel VadotExample: 142*c66ec88fSEmmanuel Vadot /*for Hi6220*/ 143*c66ec88fSEmmanuel Vadot ao_ctrl: ao_ctrl@f7800000 { 144*c66ec88fSEmmanuel Vadot compatible = "hisilicon,hi6220-aoctrl", "syscon"; 145*c66ec88fSEmmanuel Vadot reg = <0x0 0xf7800000 0x0 0x2000>; 146*c66ec88fSEmmanuel Vadot #clock-cells = <1>; 147*c66ec88fSEmmanuel Vadot }; 148*c66ec88fSEmmanuel Vadot 149*c66ec88fSEmmanuel Vadot 150*c66ec88fSEmmanuel VadotHisilicon Hi6220 Media domain controller 151*c66ec88fSEmmanuel Vadot 152*c66ec88fSEmmanuel VadotRequired properties: 153*c66ec88fSEmmanuel Vadot- compatible : "hisilicon,hi6220-mediactrl" 154*c66ec88fSEmmanuel Vadot- reg : Register address and size 155*c66ec88fSEmmanuel Vadot- #clock-cells: should be set to 1, many clock registers are defined 156*c66ec88fSEmmanuel Vadot under this controller and this property must be present. 157*c66ec88fSEmmanuel Vadot 158*c66ec88fSEmmanuel VadotHisilicon designs this system controller to control the multimedia 159*c66ec88fSEmmanuel Vadotdomain(e.g. codec, G3D ...) for mobile platform. 160*c66ec88fSEmmanuel Vadot 161*c66ec88fSEmmanuel VadotExample: 162*c66ec88fSEmmanuel Vadot /*for Hi6220*/ 163*c66ec88fSEmmanuel Vadot media_ctrl: media_ctrl@f4410000 { 164*c66ec88fSEmmanuel Vadot compatible = "hisilicon,hi6220-mediactrl", "syscon"; 165*c66ec88fSEmmanuel Vadot reg = <0x0 0xf4410000 0x0 0x1000>; 166*c66ec88fSEmmanuel Vadot #clock-cells = <1>; 167*c66ec88fSEmmanuel Vadot }; 168*c66ec88fSEmmanuel Vadot 169*c66ec88fSEmmanuel Vadot 170*c66ec88fSEmmanuel VadotHisilicon Hi6220 Power Management domain controller 171*c66ec88fSEmmanuel Vadot 172*c66ec88fSEmmanuel VadotRequired properties: 173*c66ec88fSEmmanuel Vadot- compatible : "hisilicon,hi6220-pmctrl" 174*c66ec88fSEmmanuel Vadot- reg : Register address and size 175*c66ec88fSEmmanuel Vadot- #clock-cells: should be set to 1, some clock registers are define 176*c66ec88fSEmmanuel Vadot under this controller and this property must be present. 177*c66ec88fSEmmanuel Vadot 178*c66ec88fSEmmanuel VadotHisilicon designs this system controller to control the power management 179*c66ec88fSEmmanuel Vadotdomain for mobile platform. 180*c66ec88fSEmmanuel Vadot 181*c66ec88fSEmmanuel VadotExample: 182*c66ec88fSEmmanuel Vadot /*for Hi6220*/ 183*c66ec88fSEmmanuel Vadot pm_ctrl: pm_ctrl@f7032000 { 184*c66ec88fSEmmanuel Vadot compatible = "hisilicon,hi6220-pmctrl", "syscon"; 185*c66ec88fSEmmanuel Vadot reg = <0x0 0xf7032000 0x0 0x1000>; 186*c66ec88fSEmmanuel Vadot #clock-cells = <1>; 187*c66ec88fSEmmanuel Vadot }; 188*c66ec88fSEmmanuel Vadot 189*c66ec88fSEmmanuel Vadot 190*c66ec88fSEmmanuel VadotHisilicon Hi6220 SRAM controller 191*c66ec88fSEmmanuel Vadot 192*c66ec88fSEmmanuel VadotRequired properties: 193*c66ec88fSEmmanuel Vadot- compatible : "hisilicon,hi6220-sramctrl", "syscon" 194*c66ec88fSEmmanuel Vadot- reg : Register address and size 195*c66ec88fSEmmanuel Vadot 196*c66ec88fSEmmanuel VadotHisilicon's SoCs use sram for multiple purpose; on Hi6220 there have several 197*c66ec88fSEmmanuel VadotSRAM banks for power management, modem, security, etc. Further, use "syscon" 198*c66ec88fSEmmanuel Vadotmanaging the common sram which can be shared by multiple modules. 199*c66ec88fSEmmanuel Vadot 200*c66ec88fSEmmanuel VadotExample: 201*c66ec88fSEmmanuel Vadot /*for Hi6220*/ 202*c66ec88fSEmmanuel Vadot sram: sram@fff80000 { 203*c66ec88fSEmmanuel Vadot compatible = "hisilicon,hi6220-sramctrl", "syscon"; 204*c66ec88fSEmmanuel Vadot reg = <0x0 0xfff80000 0x0 0x12000>; 205*c66ec88fSEmmanuel Vadot }; 206*c66ec88fSEmmanuel Vadot 207*c66ec88fSEmmanuel Vadot----------------------------------------------------------------------- 208*c66ec88fSEmmanuel VadotHisilicon HiP01 system controller 209*c66ec88fSEmmanuel Vadot 210*c66ec88fSEmmanuel VadotRequired properties: 211*c66ec88fSEmmanuel Vadot- compatible : "hisilicon,hip01-sysctrl" 212*c66ec88fSEmmanuel Vadot- reg : Register address and size 213*c66ec88fSEmmanuel Vadot 214*c66ec88fSEmmanuel VadotThe HiP01 system controller is mostly compatible with hisilicon 215*c66ec88fSEmmanuel Vadotsystem controller,but it has some specific control registers for 216*c66ec88fSEmmanuel VadotHIP01 SoC family, such as slave core boot, and also some same 217*c66ec88fSEmmanuel Vadotregisters located at different offset. 218*c66ec88fSEmmanuel Vadot 219*c66ec88fSEmmanuel VadotExample: 220*c66ec88fSEmmanuel Vadot 221*c66ec88fSEmmanuel Vadot /* for hip01-ca9x2 */ 222*c66ec88fSEmmanuel Vadot sysctrl: system-controller@10000000 { 223*c66ec88fSEmmanuel Vadot compatible = "hisilicon,hip01-sysctrl", "hisilicon,sysctrl"; 224*c66ec88fSEmmanuel Vadot reg = <0x10000000 0x1000>; 225*c66ec88fSEmmanuel Vadot reboot-offset = <0x4>; 226*c66ec88fSEmmanuel Vadot }; 227*c66ec88fSEmmanuel Vadot 228*c66ec88fSEmmanuel Vadot----------------------------------------------------------------------- 229*c66ec88fSEmmanuel VadotHisilicon HiP05/HiP06 PCIe-SAS sub system controller 230*c66ec88fSEmmanuel Vadot 231*c66ec88fSEmmanuel VadotRequired properties: 232*c66ec88fSEmmanuel Vadot- compatible : "hisilicon,pcie-sas-subctrl", "syscon"; 233*c66ec88fSEmmanuel Vadot- reg : Register address and size 234*c66ec88fSEmmanuel Vadot 235*c66ec88fSEmmanuel VadotThe PCIe-SAS sub system controller is shared by PCIe and SAS controllers in 236*c66ec88fSEmmanuel VadotHiP05 or HiP06 Soc to implement some basic configurations. 237*c66ec88fSEmmanuel Vadot 238*c66ec88fSEmmanuel VadotExample: 239*c66ec88fSEmmanuel Vadot /* for HiP05 PCIe-SAS sub system */ 240*c66ec88fSEmmanuel Vadot pcie_sas: system_controller@b0000000 { 241*c66ec88fSEmmanuel Vadot compatible = "hisilicon,pcie-sas-subctrl", "syscon"; 242*c66ec88fSEmmanuel Vadot reg = <0xb0000000 0x10000>; 243*c66ec88fSEmmanuel Vadot }; 244*c66ec88fSEmmanuel Vadot 245*c66ec88fSEmmanuel VadotHisilicon HiP05/HiP06 PERI sub system controller 246*c66ec88fSEmmanuel Vadot 247*c66ec88fSEmmanuel VadotRequired properties: 248*c66ec88fSEmmanuel Vadot- compatible : "hisilicon,peri-subctrl", "syscon"; 249*c66ec88fSEmmanuel Vadot- reg : Register address and size 250*c66ec88fSEmmanuel Vadot 251*c66ec88fSEmmanuel VadotThe PERI sub system controller is shared by peripheral controllers in 252*c66ec88fSEmmanuel VadotHiP05 or HiP06 Soc to implement some basic configurations. The peripheral 253*c66ec88fSEmmanuel Vadotcontrollers include mdio, ddr, iic, uart, timer and so on. 254*c66ec88fSEmmanuel Vadot 255*c66ec88fSEmmanuel VadotExample: 256*c66ec88fSEmmanuel Vadot /* for HiP05 sub peri system */ 257*c66ec88fSEmmanuel Vadot peri_c_subctrl: syscon@80000000 { 258*c66ec88fSEmmanuel Vadot compatible = "hisilicon,peri-subctrl", "syscon"; 259*c66ec88fSEmmanuel Vadot reg = <0x0 0x80000000 0x0 0x10000>; 260*c66ec88fSEmmanuel Vadot }; 261*c66ec88fSEmmanuel Vadot 262*c66ec88fSEmmanuel VadotHisilicon HiP05/HiP06 DSA sub system controller 263*c66ec88fSEmmanuel Vadot 264*c66ec88fSEmmanuel VadotRequired properties: 265*c66ec88fSEmmanuel Vadot- compatible : "hisilicon,dsa-subctrl", "syscon"; 266*c66ec88fSEmmanuel Vadot- reg : Register address and size 267*c66ec88fSEmmanuel Vadot 268*c66ec88fSEmmanuel VadotThe DSA sub system controller is shared by peripheral controllers in 269*c66ec88fSEmmanuel VadotHiP05 or HiP06 Soc to implement some basic configurations. 270*c66ec88fSEmmanuel Vadot 271*c66ec88fSEmmanuel VadotExample: 272*c66ec88fSEmmanuel Vadot /* for HiP05 dsa sub system */ 273*c66ec88fSEmmanuel Vadot pcie_sas: system_controller@a0000000 { 274*c66ec88fSEmmanuel Vadot compatible = "hisilicon,dsa-subctrl", "syscon"; 275*c66ec88fSEmmanuel Vadot reg = <0xa0000000 0x10000>; 276*c66ec88fSEmmanuel Vadot }; 277*c66ec88fSEmmanuel Vadot 278*c66ec88fSEmmanuel Vadot----------------------------------------------------------------------- 279*c66ec88fSEmmanuel VadotHisilicon CPU controller 280*c66ec88fSEmmanuel Vadot 281*c66ec88fSEmmanuel VadotRequired properties: 282*c66ec88fSEmmanuel Vadot- compatible : "hisilicon,cpuctrl" 283*c66ec88fSEmmanuel Vadot- reg : Register address and size 284*c66ec88fSEmmanuel Vadot 285*c66ec88fSEmmanuel VadotThe clock registers and power registers of secondary cores are defined 286*c66ec88fSEmmanuel Vadotin CPU controller, especially in HIX5HD2 SoC. 287*c66ec88fSEmmanuel Vadot 288*c66ec88fSEmmanuel Vadot----------------------------------------------------------------------- 289*c66ec88fSEmmanuel VadotPCTRL: Peripheral misc control register 290*c66ec88fSEmmanuel Vadot 291*c66ec88fSEmmanuel VadotRequired Properties: 292*c66ec88fSEmmanuel Vadot- compatible: "hisilicon,pctrl" 293*c66ec88fSEmmanuel Vadot- reg: Address and size of pctrl. 294*c66ec88fSEmmanuel Vadot 295*c66ec88fSEmmanuel VadotExample: 296*c66ec88fSEmmanuel Vadot 297*c66ec88fSEmmanuel Vadot /* for Hi3620 */ 298*c66ec88fSEmmanuel Vadot pctrl: pctrl@fca09000 { 299*c66ec88fSEmmanuel Vadot compatible = "hisilicon,pctrl"; 300*c66ec88fSEmmanuel Vadot reg = <0xfca09000 0x1000>; 301*c66ec88fSEmmanuel Vadot }; 302*c66ec88fSEmmanuel Vadot 303*c66ec88fSEmmanuel Vadot----------------------------------------------------------------------- 304*c66ec88fSEmmanuel VadotFabric: 305*c66ec88fSEmmanuel Vadot 306*c66ec88fSEmmanuel VadotRequired Properties: 307*c66ec88fSEmmanuel Vadot- compatible: "hisilicon,hip04-fabric"; 308*c66ec88fSEmmanuel Vadot- reg: Address and size of Fabric 309*c66ec88fSEmmanuel Vadot 310*c66ec88fSEmmanuel Vadot----------------------------------------------------------------------- 311*c66ec88fSEmmanuel VadotBootwrapper boot method (software protocol on SMP): 312*c66ec88fSEmmanuel Vadot 313*c66ec88fSEmmanuel VadotRequired Properties: 314*c66ec88fSEmmanuel Vadot- compatible: "hisilicon,hip04-bootwrapper"; 315*c66ec88fSEmmanuel Vadot- boot-method: Address and size of boot method. 316*c66ec88fSEmmanuel Vadot [0]: bootwrapper physical address 317*c66ec88fSEmmanuel Vadot [1]: bootwrapper size 318*c66ec88fSEmmanuel Vadot [2]: relocation physical address 319*c66ec88fSEmmanuel Vadot [3]: relocation size 320