xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/mfd/syscon.yaml (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun%YAML 1.2
3*4882a593Smuzhiyun---
4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/mfd/syscon.yaml#
5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml#
6*4882a593Smuzhiyun
7*4882a593Smuzhiyuntitle: System Controller Registers R/W Device Tree Bindings
8*4882a593Smuzhiyun
9*4882a593Smuzhiyundescription: |
10*4882a593Smuzhiyun  System controller node represents a register region containing a set
11*4882a593Smuzhiyun  of miscellaneous registers. The registers are not cohesive enough to
12*4882a593Smuzhiyun  represent as any specific type of device. The typical use-case is
13*4882a593Smuzhiyun  for some other node's driver, or platform-specific code, to acquire
14*4882a593Smuzhiyun  a reference to the syscon node (e.g. by phandle, node path, or
15*4882a593Smuzhiyun  search using a specific compatible value), interrogate the node (or
16*4882a593Smuzhiyun  associated OS driver) to determine the location of the registers,
17*4882a593Smuzhiyun  and access the registers directly.
18*4882a593Smuzhiyun
19*4882a593Smuzhiyunmaintainers:
20*4882a593Smuzhiyun  - Lee Jones <lee.jones@linaro.org>
21*4882a593Smuzhiyun
22*4882a593Smuzhiyunselect:
23*4882a593Smuzhiyun  properties:
24*4882a593Smuzhiyun    compatible:
25*4882a593Smuzhiyun      contains:
26*4882a593Smuzhiyun        enum:
27*4882a593Smuzhiyun          - syscon
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun  required:
30*4882a593Smuzhiyun    - compatible
31*4882a593Smuzhiyun
32*4882a593Smuzhiyunproperties:
33*4882a593Smuzhiyun  compatible:
34*4882a593Smuzhiyun    anyOf:
35*4882a593Smuzhiyun      - items:
36*4882a593Smuzhiyun          - enum:
37*4882a593Smuzhiyun              - allwinner,sun8i-a83t-system-controller
38*4882a593Smuzhiyun              - allwinner,sun8i-h3-system-controller
39*4882a593Smuzhiyun              - allwinner,sun8i-v3s-system-controller
40*4882a593Smuzhiyun              - allwinner,sun50i-a64-system-controller
41*4882a593Smuzhiyun              - hisilicon,dsa-subctrl
42*4882a593Smuzhiyun              - hisilicon,hi6220-sramctrl
43*4882a593Smuzhiyun              - hisilicon,pcie-sas-subctrl
44*4882a593Smuzhiyun              - hisilicon,peri-subctrl
45*4882a593Smuzhiyun              - microchip,sparx5-cpu-syscon
46*4882a593Smuzhiyun              - mstar,msc313-pmsleep
47*4882a593Smuzhiyun              - samsung,exynos3-sysreg
48*4882a593Smuzhiyun              - samsung,exynos4-sysreg
49*4882a593Smuzhiyun              - samsung,exynos5-sysreg
50*4882a593Smuzhiyun              - samsung,exynos5433-sysreg
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun          - const: syscon
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun      - contains:
55*4882a593Smuzhiyun          const: syscon
56*4882a593Smuzhiyun        minItems: 2
57*4882a593Smuzhiyun        maxItems: 4  # Should be enough
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun  reg:
60*4882a593Smuzhiyun    maxItems: 1
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun  reg-io-width:
63*4882a593Smuzhiyun    description: |
64*4882a593Smuzhiyun      The size (in bytes) of the IO accesses that should be performed
65*4882a593Smuzhiyun      on the device.
66*4882a593Smuzhiyun    $ref: /schemas/types.yaml#/definitions/uint32
67*4882a593Smuzhiyun    enum: [1, 2, 4, 8]
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun  hwlocks:
70*4882a593Smuzhiyun    maxItems: 1
71*4882a593Smuzhiyun    description:
72*4882a593Smuzhiyun      Reference to a phandle of a hardware spinlock provider node.
73*4882a593Smuzhiyun
74*4882a593Smuzhiyunrequired:
75*4882a593Smuzhiyun  - compatible
76*4882a593Smuzhiyun  - reg
77*4882a593Smuzhiyun
78*4882a593SmuzhiyunadditionalProperties: true
79*4882a593Smuzhiyun
80*4882a593Smuzhiyunexamples:
81*4882a593Smuzhiyun  - |
82*4882a593Smuzhiyun    syscon: syscon@1c00000 {
83*4882a593Smuzhiyun        compatible = "allwinner,sun8i-h3-system-controller", "syscon";
84*4882a593Smuzhiyun        reg = <0x01c00000 0x1000>;
85*4882a593Smuzhiyun    };
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun  - |
88*4882a593Smuzhiyun    gpr: iomuxc-gpr@20e0000 {
89*4882a593Smuzhiyun        compatible = "fsl,imx6q-iomuxc-gpr", "syscon";
90*4882a593Smuzhiyun        reg = <0x020e0000 0x38>;
91*4882a593Smuzhiyun        hwlocks = <&hwlock1 1>;
92*4882a593Smuzhiyun    };
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun...
95