133 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			133 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 | |
| %YAML 1.2
 | |
| ---
 | |
| $id: http://devicetree.org/schemas/arm/hisilicon/controller/sysctrl.yaml#
 | |
| $schema: http://devicetree.org/meta-schemas/core.yaml#
 | |
| 
 | |
| title: Hisilicon system controller
 | |
| 
 | |
| maintainers:
 | |
|   - Wei Xu <xuwei5@hisilicon.com>
 | |
| 
 | |
| description: |
 | |
|   The Hisilicon system controller is used on many Hisilicon boards, it can be
 | |
|   used to assist the slave core startup, reboot the system, etc.
 | |
| 
 | |
|   There are some variants of the Hisilicon system controller, such as HiP01,
 | |
|   Hi3519, Hi6220 system controller, each of them is mostly compatible with the
 | |
|   Hisilicon system controller, but some same registers located at different
 | |
|   offset. In addition, the HiP01 system controller has some specific control
 | |
|   registers for HIP01 SoC family, such as slave core boot.
 | |
| 
 | |
|   The compatible names of each system controller are as follows:
 | |
|   Hisilicon system controller   --> hisilicon,sysctrl
 | |
|   HiP01     system controller   --> hisilicon,hip01-sysctrl
 | |
|   Hi6220    system controller   --> hisilicon,hi6220-sysctrl
 | |
|   Hi3519    system controller   --> hisilicon,hi3519-sysctrl  
 | |
| 
 | |
| allOf:
 | |
|   - if:
 | |
|       properties:
 | |
|         compatible:
 | |
|           contains:
 | |
|             const: hisilicon,hi6220-sysctrl
 | |
|     then:
 | |
|       required:
 | |
|         - '#clock-cells'
 | |
| 
 | |
| properties:
 | |
|   compatible:
 | |
|     oneOf:
 | |
|       - items:
 | |
|           - enum:
 | |
|               - hisilicon,sysctrl
 | |
|               - hisilicon,hi6220-sysctrl
 | |
|               - hisilicon,hi3519-sysctrl
 | |
|           - const: syscon
 | |
|       - items:
 | |
|           - const: hisilicon,hip01-sysctrl
 | |
|           - const: hisilicon,sysctrl
 | |
| 
 | |
|   reg:
 | |
|     maxItems: 1
 | |
| 
 | |
|   smp-offset:
 | |
|     description: |
 | |
|       offset in sysctrl for notifying slave cpu booting
 | |
|       cpu 1, reg;
 | |
|       cpu 2, reg + 0x4;
 | |
|       cpu 3, reg + 0x8;
 | |
|       If reg value is not zero, cpun exit wfi and go      
 | |
|     $ref: /schemas/types.yaml#/definitions/uint32
 | |
| 
 | |
|   resume-offset:
 | |
|     description: offset in sysctrl for notifying cpu0 when resume
 | |
|     $ref: /schemas/types.yaml#/definitions/uint32
 | |
| 
 | |
|   reboot-offset:
 | |
|     description: offset in sysctrl for system reboot
 | |
|     $ref: /schemas/types.yaml#/definitions/uint32
 | |
| 
 | |
|   '#clock-cells':
 | |
|     const: 1
 | |
| 
 | |
|   '#reset-cells':
 | |
|     const: 1
 | |
| 
 | |
|   '#address-cells':
 | |
|     const: 1
 | |
| 
 | |
|   '#size-cells':
 | |
|     const: 1
 | |
| 
 | |
|   ranges: true
 | |
| 
 | |
| required:
 | |
|   - compatible
 | |
|   - reg
 | |
| 
 | |
| additionalProperties:
 | |
|   type: object
 | |
| 
 | |
| examples:
 | |
|   - |
 | |
|     /* Hisilicon system controller */
 | |
|     system-controller@802000 {
 | |
|         compatible = "hisilicon,sysctrl", "syscon";
 | |
|         #address-cells = <1>;
 | |
|         #size-cells = <1>;
 | |
|         ranges = <0 0x802000 0x1000>;
 | |
|         reg = <0x802000 0x1000>;
 | |
| 
 | |
|         smp-offset = <0x31c>;
 | |
|         resume-offset = <0x308>;
 | |
|         reboot-offset = <0x4>;
 | |
| 
 | |
|         clock: clock@0 {
 | |
|             compatible = "hisilicon,hi3620-clock";
 | |
|             reg = <0 0x10000>;
 | |
|             #clock-cells = <1>;
 | |
|         };
 | |
|     };
 | |
| 
 | |
|     /* HiP01 system controller */
 | |
|     system-controller@10000000 {
 | |
|         compatible = "hisilicon,hip01-sysctrl", "hisilicon,sysctrl";
 | |
|         reg = <0x10000000 0x1000>;
 | |
|         reboot-offset = <0x4>;
 | |
|     };
 | |
| 
 | |
|     /* Hi6220 system controller */
 | |
|     system-controller@f7030000 {
 | |
|         compatible = "hisilicon,hi6220-sysctrl", "syscon";
 | |
|         reg = <0xf7030000 0x2000>;
 | |
|         #clock-cells = <1>;
 | |
|     };
 | |
| 
 | |
|     /* Hi3519 system controller */
 | |
|     system-controller@12010000 {
 | |
|         compatible = "hisilicon,hi3519-sysctrl", "syscon";
 | |
|         reg = <0x12010000 0x1000>;
 | |
|     };    
 | |
| ...
 |