# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/pinctrl/brcm,nsp-gpio.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Broadcom Northstar Plus (NSP) GPIO/PINCONF Controller maintainers: - Ray Jui - Scott Branden description: | The chipCommonA GPIO block also provides generic pin configuration for the pins it controls: bias, pull up/down, slew rate and drive strength. Pin configuration is described in '-pins' child nodes, referenced through the standard pinctrl-0/pinctrl-names properties. Child nodes named '*-hog' are treated as GPIO hogs. properties: compatible: const: brcm,nsp-gpio-a reg: items: - description: GPIO base registers - description: IO control registers "#gpio-cells": const: 2 description: | The first cell is the GPIO pin number (within the controller's pin space) and the second cell is used for the following: bit[0]: polarity (0 for active high and 1 for active low) gpio-controller: true ngpios: description: Number of GPIOs supported (58x25 supports 32 and 58x23 supports 24) maximum: 32 interrupts: maxItems: 1 "#interrupt-cells": const: 2 interrupt-controller: true gpio-ranges: true gpio-line-names: true required: - compatible - reg - "#gpio-cells" - gpio-controller - ngpios dependencies: interrupt-controller: ['#interrupt-cells'] patternProperties: '-pins$': type: object $ref: pincfg-node.yaml# properties: pins: $ref: /schemas/types.yaml#/definitions/string-array items: pattern: '^gpio-' bias-disable: true bias-pull-up: true bias-pull-down: true drive-strength: $ref: /schemas/types.yaml#/definitions/uint32 enum: [ 2, 4, 6, 8, 10, 12, 14, 16 ] slew-rate: description: 0 disables and 1 enables slew rate control enum: [ 0, 1 ] required: - pins additionalProperties: false '-hog(-[0-9]+)?$': type: object required: - gpio-hog additionalProperties: false examples: - | #include gpio@18000020 { compatible = "brcm,nsp-gpio-a"; reg = <0x18000020 0x100>, <0x1803f1c4 0x1c>; #gpio-cells = <2>; gpio-controller; ngpios = <32>; gpio-ranges = <&pinctrl 0 0 31>; interrupt-controller; #interrupt-cells = <2>; interrupts = ; pinctrl-names = "default"; pinctrl-0 = <&led_pins>; led_pins: led-pins { pins = "gpio-1"; bias-pull-up; drive-strength = <16>; }; /* GPIO hog */ pwr-hog { gpio-hog; gpios = <3 1>; output-high; }; };