Loading...
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 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 | # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2 --- $id: http://devicetree.org/schemas/pinctrl/microchip,sparx5-sgpio.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Microsemi/Microchip Serial GPIO controller maintainers: - Lars Povlsen <lars.povlsen@microchip.com> description: | By using a serial interface, the SIO controller significantly extend the number of available GPIOs with a minimum number of additional pins on the device. The primary purpose of the SIO controllers is to connect control signals from SFP modules and to act as an LED controller. properties: $nodename: pattern: "^gpio@[0-9a-f]+$" compatible: enum: - microchip,sparx5-sgpio - mscc,ocelot-sgpio - mscc,luton-sgpio "#address-cells": const: 1 "#size-cells": const: 0 reg: maxItems: 1 clocks: maxItems: 1 microchip,sgpio-port-ranges: description: This is a sequence of tuples, defining intervals of enabled ports in the serial input stream. The enabled ports must match the hardware configuration in order for signals to be properly written/read to/from the controller holding registers. Being tuples, then number of arguments must be even. The tuples mast be ordered (low, high) and are inclusive. $ref: /schemas/types.yaml#/definitions/uint32-matrix items: items: - description: | "low" indicates start bit number of range minimum: 0 maximum: 31 - description: | "high" indicates end bit number of range minimum: 0 maximum: 31 minItems: 1 maxItems: 32 bus-frequency: description: The sgpio controller frequency (Hz). This dictates the serial bitstream speed, which again affects the latency in getting control signals back and forth between external shift registers. The speed must be no larger than half the system clock, and larger than zero. default: 12500000 resets: maxItems: 1 reset-names: items: - const: switch patternProperties: "^gpio@[0-1]$": type: object properties: compatible: const: microchip,sparx5-sgpio-bank reg: description: | The GPIO bank number. "0" is designates the input pin bank, "1" the output bank. maxItems: 1 gpio-controller: true '#gpio-cells': description: | Specifies the pin (port and bit) and flags. Note that the SGIO pin is defined by *2* numbers, a port number between 0 and 31, and a bit index, 0 to 3. The maximum bit number is controlled indirectly by the "ngpios" property: (ngpios/32). const: 3 interrupts: description: Specifies the sgpio IRQ (in parent controller) maxItems: 1 interrupt-controller: true '#interrupt-cells': description: Specifies the pin (port and bit) and flags, as defined in defined in include/dt-bindings/interrupt-controller/irq.h const: 3 ngpios: description: The numbers of GPIO's exposed. This must be a multiple of 32. minimum: 32 maximum: 128 required: - compatible - reg - gpio-controller - '#gpio-cells' - ngpios additionalProperties: false additionalProperties: false required: - compatible - reg - clocks - microchip,sgpio-port-ranges - "#address-cells" - "#size-cells" examples: - | #include <dt-bindings/interrupt-controller/arm-gic.h> sgpio2: gpio@1101059c { #address-cells = <1>; #size-cells = <0>; compatible = "microchip,sparx5-sgpio"; clocks = <&sys_clk>; pinctrl-0 = <&sgpio2_pins>; pinctrl-names = "default"; reg = <0x1101059c 0x118>; microchip,sgpio-port-ranges = <0 0>, <16 18>, <28 31>; bus-frequency = <25000000>; sgpio_in2: gpio@0 { reg = <0>; compatible = "microchip,sparx5-sgpio-bank"; gpio-controller; #gpio-cells = <3>; ngpios = <96>; interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; interrupt-controller; #interrupt-cells = <3>; }; sgpio_out2: gpio@1 { compatible = "microchip,sparx5-sgpio-bank"; reg = <1>; gpio-controller; #gpio-cells = <3>; ngpios = <96>; }; }; |