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 properties: >> 59 gpio-hog: true >> 60 gpios: true >> 61 input: true >> 62 output-high: true >> 63 output-low: true >> 64 line-name: true >> 65 58 required: 66 required: 59 - gpio-hog 67 - gpio-hog >> 68 - gpios >> 69 >> 70 additionalProperties: false 60 71 61 required: 72 required: 62 - compatible 73 - compatible 63 - reg 74 - reg 64 - gpio-controller 75 - gpio-controller 65 - "#gpio-cells" 76 - "#gpio-cells" 66 - interrupt-controller 77 - interrupt-controller 67 - "#interrupt-cells" 78 - "#interrupt-cells" 68 - ngpios 79 - ngpios 69 - gpio-ranges 80 - gpio-ranges 70 - socionext,interrupt-ranges 81 - socionext,interrupt-ranges 71 82 72 additionalProperties: false 83 additionalProperties: false 73 84 74 examples: 85 examples: 75 - | 86 - | 76 #include <dt-bindings/gpio/gpio.h> 87 #include <dt-bindings/gpio/gpio.h> 77 #include <dt-bindings/gpio/uniphier-gpio.h 88 #include <dt-bindings/gpio/uniphier-gpio.h> 78 89 79 gpio: gpio@55000000 { 90 gpio: gpio@55000000 { 80 compatible = "socionext,uniphier-gpio" 91 compatible = "socionext,uniphier-gpio"; 81 reg = <0x55000000 0x200>; 92 reg = <0x55000000 0x200>; 82 interrupt-parent = <&aidet>; 93 interrupt-parent = <&aidet>; 83 interrupt-controller; 94 interrupt-controller; 84 #interrupt-cells = <2>; 95 #interrupt-cells = <2>; 85 gpio-controller; 96 gpio-controller; 86 #gpio-cells = <2>; 97 #gpio-cells = <2>; 87 gpio-ranges = <&pinctrl 0 0 0>; 98 gpio-ranges = <&pinctrl 0 0 0>; 88 gpio-ranges-group-names = "gpio_range" 99 gpio-ranges-group-names = "gpio_range"; 89 ngpios = <248>; 100 ngpios = <248>; 90 socionext,interrupt-ranges = <0 48 16> 101 socionext,interrupt-ranges = <0 48 16>, <16 154 5>, <21 217 3>; 91 }; 102 }; 92 103 93 // Consumer: 104 // Consumer: 94 // Please note UNIPHIER_GPIO_PORT(29, 4) r 105 // Please note UNIPHIER_GPIO_PORT(29, 4) represents PORT294 in the SoC 95 // document. Unfortunately, only the one's 106 // document. Unfortunately, only the one's place is octal in the port 96 // numbering. (That is, PORT 8, 9, 18, 19, 107 // numbering. (That is, PORT 8, 9, 18, 19, 28, 29, ... do not exist.) 97 // UNIPHIER_GPIO_PORT() is a helper macro 108 // UNIPHIER_GPIO_PORT() is a helper macro to calculate 29 * 8 + 4. 98 sdhci0_pwrseq { 109 sdhci0_pwrseq { 99 compatible = "mmc-pwrseq-emmc"; 110 compatible = "mmc-pwrseq-emmc"; 100 reset-gpios = <&gpio UNIPHIER_GPIO_POR 111 reset-gpios = <&gpio UNIPHIER_GPIO_PORT(29, 4) GPIO_ACTIVE_LOW>; 101 }; 112 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.