Documentation / devicetree / bindings / soc / cirrus / cirrus,ep9301-syscon.yaml


Based on kernel version 6.12.4. Page generated on 2024-12-12 21:01 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/cirrus/cirrus,ep9301-syscon.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cirrus Logic EP93xx Platforms System Controller

maintainers:
  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
  - Nikita Shubin <nikita.shubin@maquefel.me>

description: |
  Central resources are controlled by a set of software-locked registers,
  which can be used to prevent accidental accesses. Syscon generates
  the various bus and peripheral clocks and controls the system startup
  configuration.
 
  The System Controller (Syscon) provides:
  - Clock control
  - Power management
  - System configuration management
 
  Syscon registers are common for all EP93xx SoC's, through some actual peripheral
  may be missing depending on actual SoC model.

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - cirrus,ep9302-syscon
              - cirrus,ep9307-syscon
              - cirrus,ep9312-syscon
              - cirrus,ep9315-syscon
          - const: cirrus,ep9301-syscon
          - const: syscon
      - items:
          - const: cirrus,ep9301-syscon
          - const: syscon

  reg:
    maxItems: 1
 
  "#clock-cells":
    const: 1

  clocks:
    items:
      - description: reference clock

patternProperties:
  '^pins-':
    type: object
    description: pin node
    $ref: /schemas/pinctrl/pinmux-node.yaml

    properties:
      function:
        enum: [ spi, ac97, i2s, pwm, keypad, pata, lcd, gpio ]

      groups:
        enum: [ ssp, ac97, i2s_on_ssp, i2s_on_ac97, pwm1, gpio1agrp,
                gpio2agrp, gpio3agrp, gpio4agrp, gpio6agrp, gpio7agrp,
                rasteronsdram0grp, rasteronsdram3grp, keypadgrp, idegrp ]

    required:
      - function
      - groups

    unevaluatedProperties: false

required:
  - compatible
  - reg
  - "#clock-cells"
  - clocks

additionalProperties: false

examples:
  - |
    syscon@80930000 {
      compatible = "cirrus,ep9301-syscon", "syscon";
      reg = <0x80930000 0x1000>;
 
      #clock-cells = <1>;
      clocks = <&xtali>;
 
      spi_default_pins: pins-spi {
        function = "spi";
        groups = "ssp";
      };
    };