16be33864SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 26be33864SEmmanuel Vadot%YAML 1.2 36be33864SEmmanuel Vadot--- 46be33864SEmmanuel Vadot$id: http://devicetree.org/schemas/arm/hisilicon/controller/sysctrl.yaml# 56be33864SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 66be33864SEmmanuel Vadot 76be33864SEmmanuel Vadottitle: Hisilicon system controller 86be33864SEmmanuel Vadot 96be33864SEmmanuel Vadotmaintainers: 106be33864SEmmanuel Vadot - Wei Xu <xuwei5@hisilicon.com> 116be33864SEmmanuel Vadot 126be33864SEmmanuel Vadotdescription: | 136be33864SEmmanuel Vadot The Hisilicon system controller is used on many Hisilicon boards, it can be 146be33864SEmmanuel Vadot used to assist the slave core startup, reboot the system, etc. 156be33864SEmmanuel Vadot 166be33864SEmmanuel Vadot There are some variants of the Hisilicon system controller, such as HiP01, 176be33864SEmmanuel Vadot Hi3519, Hi6220 system controller, each of them is mostly compatible with the 186be33864SEmmanuel Vadot Hisilicon system controller, but some same registers located at different 196be33864SEmmanuel Vadot offset. In addition, the HiP01 system controller has some specific control 206be33864SEmmanuel Vadot registers for HIP01 SoC family, such as slave core boot. 216be33864SEmmanuel Vadot 226be33864SEmmanuel Vadot The compatible names of each system controller are as follows: 236be33864SEmmanuel Vadot Hisilicon system controller --> hisilicon,sysctrl 246be33864SEmmanuel Vadot HiP01 system controller --> hisilicon,hip01-sysctrl 256be33864SEmmanuel Vadot Hi6220 system controller --> hisilicon,hi6220-sysctrl 266be33864SEmmanuel Vadot Hi3519 system controller --> hisilicon,hi3519-sysctrl 276be33864SEmmanuel Vadot 286be33864SEmmanuel VadotallOf: 296be33864SEmmanuel Vadot - if: 306be33864SEmmanuel Vadot properties: 316be33864SEmmanuel Vadot compatible: 326be33864SEmmanuel Vadot contains: 336be33864SEmmanuel Vadot const: hisilicon,hi6220-sysctrl 346be33864SEmmanuel Vadot then: 356be33864SEmmanuel Vadot required: 366be33864SEmmanuel Vadot - '#clock-cells' 376be33864SEmmanuel Vadot 386be33864SEmmanuel Vadotproperties: 396be33864SEmmanuel Vadot compatible: 406be33864SEmmanuel Vadot oneOf: 416be33864SEmmanuel Vadot - items: 426be33864SEmmanuel Vadot - enum: 436be33864SEmmanuel Vadot - hisilicon,sysctrl 446be33864SEmmanuel Vadot - hisilicon,hi6220-sysctrl 456be33864SEmmanuel Vadot - hisilicon,hi3519-sysctrl 466be33864SEmmanuel Vadot - const: syscon 476be33864SEmmanuel Vadot - items: 486be33864SEmmanuel Vadot - const: hisilicon,hip01-sysctrl 496be33864SEmmanuel Vadot - const: hisilicon,sysctrl 506be33864SEmmanuel Vadot 516be33864SEmmanuel Vadot reg: 526be33864SEmmanuel Vadot maxItems: 1 536be33864SEmmanuel Vadot 546be33864SEmmanuel Vadot smp-offset: 556be33864SEmmanuel Vadot description: | 566be33864SEmmanuel Vadot offset in sysctrl for notifying slave cpu booting 576be33864SEmmanuel Vadot cpu 1, reg; 586be33864SEmmanuel Vadot cpu 2, reg + 0x4; 596be33864SEmmanuel Vadot cpu 3, reg + 0x8; 606be33864SEmmanuel Vadot If reg value is not zero, cpun exit wfi and go 616be33864SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 626be33864SEmmanuel Vadot 636be33864SEmmanuel Vadot resume-offset: 646be33864SEmmanuel Vadot description: offset in sysctrl for notifying cpu0 when resume 656be33864SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 666be33864SEmmanuel Vadot 676be33864SEmmanuel Vadot reboot-offset: 686be33864SEmmanuel Vadot description: offset in sysctrl for system reboot 696be33864SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 706be33864SEmmanuel Vadot 716be33864SEmmanuel Vadot '#clock-cells': 726be33864SEmmanuel Vadot const: 1 736be33864SEmmanuel Vadot 746be33864SEmmanuel Vadot '#reset-cells': 756be33864SEmmanuel Vadot const: 1 766be33864SEmmanuel Vadot 776be33864SEmmanuel Vadot '#address-cells': 786be33864SEmmanuel Vadot const: 1 796be33864SEmmanuel Vadot 806be33864SEmmanuel Vadot '#size-cells': 816be33864SEmmanuel Vadot const: 1 826be33864SEmmanuel Vadot 836be33864SEmmanuel Vadot ranges: true 846be33864SEmmanuel Vadot 85*8d13bc63SEmmanuel VadotpatternProperties: 86*8d13bc63SEmmanuel Vadot '^clock@': 87*8d13bc63SEmmanuel Vadot type: object 88*8d13bc63SEmmanuel Vadot additionalProperties: false 89*8d13bc63SEmmanuel Vadot 90*8d13bc63SEmmanuel Vadot properties: 91*8d13bc63SEmmanuel Vadot compatible: 92*8d13bc63SEmmanuel Vadot enum: 93*8d13bc63SEmmanuel Vadot - hisilicon,hi3620-clock 94*8d13bc63SEmmanuel Vadot - hisilicon,hi3620-mmc-clock 95*8d13bc63SEmmanuel Vadot 96*8d13bc63SEmmanuel Vadot reg: 97*8d13bc63SEmmanuel Vadot maxItems: 1 98*8d13bc63SEmmanuel Vadot 99*8d13bc63SEmmanuel Vadot '#clock-cells': 100*8d13bc63SEmmanuel Vadot const: 1 101*8d13bc63SEmmanuel Vadot 1026be33864SEmmanuel Vadotrequired: 1036be33864SEmmanuel Vadot - compatible 1046be33864SEmmanuel Vadot - reg 1056be33864SEmmanuel Vadot 1066be33864SEmmanuel VadotadditionalProperties: 1076be33864SEmmanuel Vadot type: object 1086be33864SEmmanuel Vadot 1096be33864SEmmanuel Vadotexamples: 1106be33864SEmmanuel Vadot - | 1116be33864SEmmanuel Vadot /* Hisilicon system controller */ 1126be33864SEmmanuel Vadot system-controller@802000 { 1136be33864SEmmanuel Vadot compatible = "hisilicon,sysctrl", "syscon"; 1146be33864SEmmanuel Vadot #address-cells = <1>; 1156be33864SEmmanuel Vadot #size-cells = <1>; 1166be33864SEmmanuel Vadot ranges = <0 0x802000 0x1000>; 1176be33864SEmmanuel Vadot reg = <0x802000 0x1000>; 1186be33864SEmmanuel Vadot 1196be33864SEmmanuel Vadot smp-offset = <0x31c>; 1206be33864SEmmanuel Vadot resume-offset = <0x308>; 1216be33864SEmmanuel Vadot reboot-offset = <0x4>; 1226be33864SEmmanuel Vadot 1236be33864SEmmanuel Vadot clock: clock@0 { 1246be33864SEmmanuel Vadot compatible = "hisilicon,hi3620-clock"; 1256be33864SEmmanuel Vadot reg = <0 0x10000>; 1266be33864SEmmanuel Vadot #clock-cells = <1>; 1276be33864SEmmanuel Vadot }; 1286be33864SEmmanuel Vadot }; 1296be33864SEmmanuel Vadot 1306be33864SEmmanuel Vadot /* HiP01 system controller */ 1316be33864SEmmanuel Vadot system-controller@10000000 { 1326be33864SEmmanuel Vadot compatible = "hisilicon,hip01-sysctrl", "hisilicon,sysctrl"; 1336be33864SEmmanuel Vadot reg = <0x10000000 0x1000>; 1346be33864SEmmanuel Vadot reboot-offset = <0x4>; 1356be33864SEmmanuel Vadot }; 1366be33864SEmmanuel Vadot 1376be33864SEmmanuel Vadot /* Hi6220 system controller */ 1386be33864SEmmanuel Vadot system-controller@f7030000 { 1396be33864SEmmanuel Vadot compatible = "hisilicon,hi6220-sysctrl", "syscon"; 1406be33864SEmmanuel Vadot reg = <0xf7030000 0x2000>; 1416be33864SEmmanuel Vadot #clock-cells = <1>; 1426be33864SEmmanuel Vadot }; 1436be33864SEmmanuel Vadot 1446be33864SEmmanuel Vadot /* Hi3519 system controller */ 1456be33864SEmmanuel Vadot system-controller@12010000 { 1466be33864SEmmanuel Vadot compatible = "hisilicon,hi3519-sysctrl", "syscon"; 1476be33864SEmmanuel Vadot reg = <0x12010000 0x1000>; 1486be33864SEmmanuel Vadot }; 1496be33864SEmmanuel Vadot... 150