18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/syscon.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: System Controller Registers R/W Device Tree Bindings
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cidescription: |
108c2ecf20Sopenharmony_ci  System controller node represents a register region containing a set
118c2ecf20Sopenharmony_ci  of miscellaneous registers. The registers are not cohesive enough to
128c2ecf20Sopenharmony_ci  represent as any specific type of device. The typical use-case is
138c2ecf20Sopenharmony_ci  for some other node's driver, or platform-specific code, to acquire
148c2ecf20Sopenharmony_ci  a reference to the syscon node (e.g. by phandle, node path, or
158c2ecf20Sopenharmony_ci  search using a specific compatible value), interrogate the node (or
168c2ecf20Sopenharmony_ci  associated OS driver) to determine the location of the registers,
178c2ecf20Sopenharmony_ci  and access the registers directly.
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_cimaintainers:
208c2ecf20Sopenharmony_ci  - Lee Jones <lee.jones@linaro.org>
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ciselect:
238c2ecf20Sopenharmony_ci  properties:
248c2ecf20Sopenharmony_ci    compatible:
258c2ecf20Sopenharmony_ci      contains:
268c2ecf20Sopenharmony_ci        enum:
278c2ecf20Sopenharmony_ci          - syscon
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci  required:
308c2ecf20Sopenharmony_ci    - compatible
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ciproperties:
338c2ecf20Sopenharmony_ci  compatible:
348c2ecf20Sopenharmony_ci    anyOf:
358c2ecf20Sopenharmony_ci      - items:
368c2ecf20Sopenharmony_ci          - enum:
378c2ecf20Sopenharmony_ci              - allwinner,sun8i-a83t-system-controller
388c2ecf20Sopenharmony_ci              - allwinner,sun8i-h3-system-controller
398c2ecf20Sopenharmony_ci              - allwinner,sun8i-v3s-system-controller
408c2ecf20Sopenharmony_ci              - allwinner,sun50i-a64-system-controller
418c2ecf20Sopenharmony_ci              - hisilicon,dsa-subctrl
428c2ecf20Sopenharmony_ci              - hisilicon,hi6220-sramctrl
438c2ecf20Sopenharmony_ci              - hisilicon,pcie-sas-subctrl
448c2ecf20Sopenharmony_ci              - hisilicon,peri-subctrl
458c2ecf20Sopenharmony_ci              - microchip,sparx5-cpu-syscon
468c2ecf20Sopenharmony_ci              - mstar,msc313-pmsleep
478c2ecf20Sopenharmony_ci              - samsung,exynos3-sysreg
488c2ecf20Sopenharmony_ci              - samsung,exynos4-sysreg
498c2ecf20Sopenharmony_ci              - samsung,exynos5-sysreg
508c2ecf20Sopenharmony_ci              - samsung,exynos5433-sysreg
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci          - const: syscon
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci      - contains:
558c2ecf20Sopenharmony_ci          const: syscon
568c2ecf20Sopenharmony_ci        minItems: 2
578c2ecf20Sopenharmony_ci        maxItems: 4  # Should be enough
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci  reg:
608c2ecf20Sopenharmony_ci    maxItems: 1
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ci  reg-io-width:
638c2ecf20Sopenharmony_ci    description: |
648c2ecf20Sopenharmony_ci      The size (in bytes) of the IO accesses that should be performed
658c2ecf20Sopenharmony_ci      on the device.
668c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
678c2ecf20Sopenharmony_ci    enum: [1, 2, 4, 8]
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci  hwlocks:
708c2ecf20Sopenharmony_ci    maxItems: 1
718c2ecf20Sopenharmony_ci    description:
728c2ecf20Sopenharmony_ci      Reference to a phandle of a hardware spinlock provider node.
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_cirequired:
758c2ecf20Sopenharmony_ci  - compatible
768c2ecf20Sopenharmony_ci  - reg
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ciadditionalProperties: true
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ciexamples:
818c2ecf20Sopenharmony_ci  - |
828c2ecf20Sopenharmony_ci    syscon: syscon@1c00000 {
838c2ecf20Sopenharmony_ci        compatible = "allwinner,sun8i-h3-system-controller", "syscon";
848c2ecf20Sopenharmony_ci        reg = <0x01c00000 0x1000>;
858c2ecf20Sopenharmony_ci    };
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ci  - |
888c2ecf20Sopenharmony_ci    gpr: iomuxc-gpr@20e0000 {
898c2ecf20Sopenharmony_ci        compatible = "fsl,imx6q-iomuxc-gpr", "syscon";
908c2ecf20Sopenharmony_ci        reg = <0x020e0000 0x38>;
918c2ecf20Sopenharmony_ci        hwlocks = <&hwlock1 1>;
928c2ecf20Sopenharmony_ci    };
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci...
95