1 # SPDX-License-Identifier: GPL-2.0-only OR BSD 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 %YAML 1.2 2 %YAML 1.2 3 --- 3 --- 4 $id: http://devicetree.org/schemas/gpio/socion 4 $id: http://devicetree.org/schemas/gpio/socionext,uniphier-gpio.yaml# 5 $schema: http://devicetree.org/meta-schemas/co 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 title: UniPhier GPIO controller 7 title: UniPhier GPIO controller 8 8 9 maintainers: 9 maintainers: 10 - Masahiro Yamada <yamada.masahiro@socionext. 10 - Masahiro Yamada <yamada.masahiro@socionext.com> 11 11 12 properties: 12 properties: 13 $nodename: 13 $nodename: 14 pattern: "^gpio@[0-9a-f]+$" 14 pattern: "^gpio@[0-9a-f]+$" 15 15 16 compatible: 16 compatible: 17 const: socionext,uniphier-gpio 17 const: socionext,uniphier-gpio 18 18 19 reg: 19 reg: 20 maxItems: 1 20 maxItems: 1 21 21 22 gpio-controller: true 22 gpio-controller: true 23 23 24 "#gpio-cells": 24 "#gpio-cells": 25 const: 2 25 const: 2 26 26 27 interrupt-controller: true 27 interrupt-controller: true 28 28 29 "#interrupt-cells": 29 "#interrupt-cells": 30 description: | 30 description: | 31 The first cell defines the interrupt num 31 The first cell defines the interrupt number. 32 The second cell bits[3:0] is used to spe 32 The second cell bits[3:0] is used to specify trigger type as follows: 33 1 = low-to-high edge triggered 33 1 = low-to-high edge triggered 34 2 = high-to-low edge triggered 34 2 = high-to-low edge triggered 35 4 = active high level-sensitive 35 4 = active high level-sensitive 36 8 = active low level-sensitive 36 8 = active low level-sensitive 37 Valid combinations are 1, 2, 3, 4, 8. 37 Valid combinations are 1, 2, 3, 4, 8. 38 const: 2 38 const: 2 39 39 40 ngpios: 40 ngpios: 41 minimum: 0 41 minimum: 0 42 maximum: 512 42 maximum: 512 43 43 44 gpio-ranges: true 44 gpio-ranges: true 45 45 46 gpio-ranges-group-names: true 46 gpio-ranges-group-names: true 47 47 48 socionext,interrupt-ranges: 48 socionext,interrupt-ranges: 49 description: | 49 description: | 50 Specifies an interrupt number mapping be 50 Specifies an interrupt number mapping between this GPIO controller and 51 its interrupt parent, in the form of arb 51 its interrupt parent, in the form of arbitrary number of 52 <child-interrupt-base parent-interrupt-b 52 <child-interrupt-base parent-interrupt-base length> triplets. 53 $ref: /schemas/types.yaml#/definitions/uin 53 $ref: /schemas/types.yaml#/definitions/uint32-matrix 54 54 55 patternProperties: 55 patternProperties: 56 "^.+-hog(-[0-9]+)?$": 56 "^.+-hog(-[0-9]+)?$": 57 type: object 57 type: object 58 required: 58 required: 59 - gpio-hog 59 - gpio-hog 60 60 61 required: 61 required: 62 - compatible 62 - compatible 63 - reg 63 - reg 64 - gpio-controller 64 - gpio-controller 65 - "#gpio-cells" 65 - "#gpio-cells" 66 - interrupt-controller 66 - interrupt-controller 67 - "#interrupt-cells" 67 - "#interrupt-cells" 68 - ngpios 68 - ngpios 69 - gpio-ranges 69 - gpio-ranges 70 - socionext,interrupt-ranges 70 - socionext,interrupt-ranges 71 71 72 additionalProperties: false 72 additionalProperties: false 73 73 74 examples: 74 examples: 75 - | 75 - | 76 #include <dt-bindings/gpio/gpio.h> 76 #include <dt-bindings/gpio/gpio.h> 77 #include <dt-bindings/gpio/uniphier-gpio.h 77 #include <dt-bindings/gpio/uniphier-gpio.h> 78 78 79 gpio: gpio@55000000 { 79 gpio: gpio@55000000 { 80 compatible = "socionext,uniphier-gpio" 80 compatible = "socionext,uniphier-gpio"; 81 reg = <0x55000000 0x200>; 81 reg = <0x55000000 0x200>; 82 interrupt-parent = <&aidet>; 82 interrupt-parent = <&aidet>; 83 interrupt-controller; 83 interrupt-controller; 84 #interrupt-cells = <2>; 84 #interrupt-cells = <2>; 85 gpio-controller; 85 gpio-controller; 86 #gpio-cells = <2>; 86 #gpio-cells = <2>; 87 gpio-ranges = <&pinctrl 0 0 0>; 87 gpio-ranges = <&pinctrl 0 0 0>; 88 gpio-ranges-group-names = "gpio_range" 88 gpio-ranges-group-names = "gpio_range"; 89 ngpios = <248>; 89 ngpios = <248>; 90 socionext,interrupt-ranges = <0 48 16> 90 socionext,interrupt-ranges = <0 48 16>, <16 154 5>, <21 217 3>; 91 }; 91 }; 92 92 93 // Consumer: 93 // Consumer: 94 // Please note UNIPHIER_GPIO_PORT(29, 4) r 94 // Please note UNIPHIER_GPIO_PORT(29, 4) represents PORT294 in the SoC 95 // document. Unfortunately, only the one's 95 // document. Unfortunately, only the one's place is octal in the port 96 // numbering. (That is, PORT 8, 9, 18, 19, 96 // numbering. (That is, PORT 8, 9, 18, 19, 28, 29, ... do not exist.) 97 // UNIPHIER_GPIO_PORT() is a helper macro 97 // UNIPHIER_GPIO_PORT() is a helper macro to calculate 29 * 8 + 4. 98 sdhci0_pwrseq { 98 sdhci0_pwrseq { 99 compatible = "mmc-pwrseq-emmc"; 99 compatible = "mmc-pwrseq-emmc"; 100 reset-gpios = <&gpio UNIPHIER_GPIO_POR 100 reset-gpios = <&gpio UNIPHIER_GPIO_PORT(29, 4) GPIO_ACTIVE_LOW>; 101 }; 101 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.