File Index
Files and directories
Sign in
FILE

microchip,sparx5-sgpio.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/pinctrl/microchip,sparx5-sgpio.yaml YAML
  1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/pinctrl/microchip,sparx5-sgpio.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Microsemi/Microchip Serial GPIO controller
  8
  9maintainers:
 10  - Lars Povlsen <lars.povlsen@microchip.com>
 11
 12description: |
 13  By using a serial interface, the SIO controller significantly extend
 14  the number of available GPIOs with a minimum number of additional
 15  pins on the device. The primary purpose of the SIO controllers is to
 16  connect control signals from SFP modules and to act as an LED
 17  controller.
 18
 19properties:
 20  $nodename:
 21    pattern: '^gpio@[0-9a-f]+$'
 22
 23  compatible:
 24    enum:
 25      - microchip,sparx5-sgpio
 26      - mscc,ocelot-sgpio
 27      - mscc,luton-sgpio
 28
 29  '#address-cells':
 30    const: 1
 31
 32  '#size-cells':
 33    const: 0
 34
 35  reg:
 36    maxItems: 1
 37
 38  clocks:
 39    maxItems: 1
 40
 41  microchip,sgpio-port-ranges:
 42    description: This is a sequence of tuples, defining intervals of
 43      enabled ports in the serial input stream. The enabled ports must
 44      match the hardware configuration in order for signals to be
 45      properly written/read to/from the controller holding
 46      registers. Being tuples, then number of arguments must be
 47      even. The tuples mast be ordered (low, high) and are
 48      inclusive.
 49    $ref: /schemas/types.yaml#/definitions/uint32-matrix
 50    items:
 51      items:
 52        - description: |
 53            "low" indicates start bit number of range
 54          minimum: 0
 55          maximum: 31
 56        - description: |
 57            "high" indicates end bit number of range
 58          minimum: 0
 59          maximum: 31
 60    minItems: 1
 61    maxItems: 32
 62
 63  bus-frequency:
 64    description: The sgpio controller frequency (Hz). This dictates
 65      the serial bitstream speed, which again affects the latency in
 66      getting control signals back and forth between external shift
 67      registers. The speed must be no larger than half the system
 68      clock, and larger than zero.
 69    default: 12500000
 70
 71  resets:
 72    maxItems: 1
 73
 74  reset-names:
 75    items:
 76      - const: switch
 77
 78patternProperties:
 79  '^gpio@[0-1]$':
 80    type: object
 81    properties:
 82      compatible:
 83        const: microchip,sparx5-sgpio-bank
 84
 85      reg:
 86        description: |
 87          The GPIO bank number. "0" is designates the input pin bank,
 88          "1" the output bank.
 89        maxItems: 1
 90
 91      gpio-controller: true
 92
 93      '#gpio-cells':
 94        description: |
 95         Specifies the pin (port and bit) and flags. Note that the
 96         SGIO pin is defined by *2* numbers, a port number between 0
 97         and 31, and a bit index, 0 to 3. The maximum bit number is
 98         controlled indirectly by the "ngpios" property: (ngpios/32).
 99        const: 3
100
101      interrupts:
102        description: Specifies the sgpio IRQ (in parent controller)
103        maxItems: 1
104
105      interrupt-controller: true
106
107      '#interrupt-cells':
108        description:
109          Specifies the pin (port and bit) and flags, as defined in
110          defined in include/dt-bindings/interrupt-controller/irq.h
111        const: 3
112
113      ngpios:
114        description: The numbers of GPIO's exposed. This must be a
115          multiple of 32.
116        minimum: 32
117        maximum: 128
118
119    required:
120      - compatible
121      - reg
122      - gpio-controller
123      - '#gpio-cells'
124      - ngpios
125
126    additionalProperties: false
127
128additionalProperties: false
129
130required:
131  - compatible
132  - reg
133  - clocks
134  - microchip,sgpio-port-ranges
135  - '#address-cells'
136  - '#size-cells'
137
138examples:
139  - |
140    #include <dt-bindings/interrupt-controller/arm-gic.h>
141    sgpio2: gpio@1101059c {
142      #address-cells = <1>;
143      #size-cells = <0>;
144      compatible = "microchip,sparx5-sgpio";
145      clocks = <&sys_clk>;
146      pinctrl-0 = <&sgpio2_pins>;
147      pinctrl-names = "default";
148      reg = <0x1101059c 0x118>;
149      microchip,sgpio-port-ranges = <0 0>, <16 18>, <28 31>;
150      bus-frequency = <25000000>;
151      sgpio_in2: gpio@0 {
152        reg = <0>;
153        compatible = "microchip,sparx5-sgpio-bank";
154        gpio-controller;
155        #gpio-cells = <3>;
156        ngpios = <96>;
157        interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
158        interrupt-controller;
159        #interrupt-cells = <3>;
160      };
161      sgpio_out2: gpio@1 {
162        compatible = "microchip,sparx5-sgpio-bank";
163        reg = <1>;
164        gpio-controller;
165        #gpio-cells = <3>;
166        ngpios = <96>;
167      };
168    };
~/ Read-only file preview.