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