# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2 --- $id: http://devicetree.org/schemas/gpio/socionext,uniphier-gpio.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: UniPhier GPIO controller maintainers: - Masahiro Yamada <yamada.masahiro@socionext.com> properties: $nodename: pattern: "^gpio@[0-9a-f]+$" compatible: const: socionext,uniphier-gpio reg: maxItems: 1 gpio-controller: true "#gpio-cells": const: 2 interrupt-controller: true "#interrupt-cells": description: | The first cell defines the interrupt number. The second cell bits[3:0] is used to specify trigger type as follows: 1 = low-to-high edge triggered 2 = high-to-low edge triggered 4 = active high level-sensitive 8 = active low level-sensitive Valid combinations are 1, 2, 3, 4, 8. const: 2 ngpios: minimum: 0 maximum: 512 gpio-ranges: true gpio-ranges-group-names: true socionext,interrupt-ranges: description: | Specifies an interrupt number mapping between this GPIO controller and its interrupt parent, in the form of arbitrary number of <child-interrupt-base parent-interrupt-base length> triplets. $ref: /schemas/types.yaml#/definitions/uint32-matrix patternProperties: "^.+-hog(-[0-9]+)?$": type: object properties: gpio-hog: true gpios: true input: true output-high: true output-low: true line-name: true required: - gpio-hog - gpios additionalProperties: false required: - compatible - reg - gpio-controller - "#gpio-cells" - interrupt-controller - "#interrupt-cells" - ngpios - gpio-ranges - socionext,interrupt-ranges additionalProperties: false examples: - | #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/uniphier-gpio.h> gpio: gpio@55000000 { compatible = "socionext,uniphier-gpio"; reg = <0x55000000 0x200>; interrupt-parent = <&aidet>; interrupt-controller; #interrupt-cells = <2>; gpio-controller; #gpio-cells = <2>; gpio-ranges = <&pinctrl 0 0 0>; gpio-ranges-group-names = "gpio_range"; ngpios = <248>; socionext,interrupt-ranges = <0 48 16>, <16 154 5>, <21 217 3>; }; // Consumer: // Please note UNIPHIER_GPIO_PORT(29, 4) represents PORT294 in the SoC // document. Unfortunately, only the one's place is octal in the port // numbering. (That is, PORT 8, 9, 18, 19, 28, 29, ... do not exist.) // UNIPHIER_GPIO_PORT() is a helper macro to calculate 29 * 8 + 4. sdhci0_pwrseq { compatible = "mmc-pwrseq-emmc"; reset-gpios = <&gpio UNIPHIER_GPIO_PORT(29, 4) GPIO_ACTIVE_LOW>; };