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