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