Files
linux/Documentation/devicetree/bindings/pinctrl/microchip,sparx5-sgpio.yaml
Rob Herring (Arm) 01585d7470 dt-bindings: Fix inconsistent quoting
yamllint has gained a new check which checks for inconsistent quoting
(mixed " and ' quotes within a file). Fix all the cases yamllint found
so we can enable the check (once the check is in a release). As single
quotes are (slightly) preferred, use them throughout the modified files
even if double quotes are mostly used.

Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Acked-by: Jonathan Cameron <jonathan.cameron@huawei.com>
Acked-by: Andrew Jeffery <andrew@codeconstruct.com.au>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Lee Jones <lee@kernel.org>
Acked-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Link: https://patch.msgid.link/20251015232015.846282-1-robh@kernel.org
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
2025-11-17 11:24:50 -06:00

169 lines
4.3 KiB
YAML

# 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>;
};
};