xref: /linux/Documentation/devicetree/bindings/soc/cirrus/cirrus,ep9301-syscon.yaml (revision 3fd6c59042dbba50391e30862beac979491145fe)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/soc/cirrus/cirrus,ep9301-syscon.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Cirrus Logic EP93xx Platforms System Controller
8
9maintainers:
10  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
11  - Nikita Shubin <nikita.shubin@maquefel.me>
12
13description: |
14  Central resources are controlled by a set of software-locked registers,
15  which can be used to prevent accidental accesses. Syscon generates
16  the various bus and peripheral clocks and controls the system startup
17  configuration.
18
19  The System Controller (Syscon) provides:
20  - Clock control
21  - Power management
22  - System configuration management
23
24  Syscon registers are common for all EP93xx SoC's, through some actual peripheral
25  may be missing depending on actual SoC model.
26
27properties:
28  compatible:
29    oneOf:
30      - items:
31          - enum:
32              - cirrus,ep9302-syscon
33              - cirrus,ep9307-syscon
34              - cirrus,ep9312-syscon
35              - cirrus,ep9315-syscon
36          - const: cirrus,ep9301-syscon
37          - const: syscon
38      - items:
39          - const: cirrus,ep9301-syscon
40          - const: syscon
41
42  reg:
43    maxItems: 1
44
45  "#clock-cells":
46    const: 1
47
48  clocks:
49    items:
50      - description: reference clock
51
52patternProperties:
53  '^pins-':
54    type: object
55    description: pin node
56    $ref: /schemas/pinctrl/pinmux-node.yaml
57
58    properties:
59      function:
60        enum: [ spi, ac97, i2s, pwm, keypad, pata, lcd, gpio ]
61
62      groups:
63        enum: [ ssp, ac97, i2s_on_ssp, i2s_on_ac97, pwm1, gpio1agrp,
64                gpio2agrp, gpio3agrp, gpio4agrp, gpio6agrp, gpio7agrp,
65                rasteronsdram0grp, rasteronsdram3grp, keypadgrp, idegrp ]
66
67    required:
68      - function
69      - groups
70
71    unevaluatedProperties: false
72
73required:
74  - compatible
75  - reg
76  - "#clock-cells"
77  - clocks
78
79additionalProperties: false
80
81examples:
82  - |
83    syscon@80930000 {
84      compatible = "cirrus,ep9301-syscon", "syscon";
85      reg = <0x80930000 0x1000>;
86
87      #clock-cells = <1>;
88      clocks = <&xtali>;
89
90      spi_default_pins: pins-spi {
91        function = "spi";
92        groups = "ssp";
93      };
94    };
95