1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/pinctrl/ingenic,pinctrl.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Ingenic SoCs pin controller 8 9description: > 10 Please refer to pinctrl-bindings.txt in this directory for details of the 11 common pinctrl bindings used by client devices, including the meaning of the 12 phrase "pin configuration node". 13 14 For the Ingenic SoCs, pin control is tightly bound with GPIO ports. All pins 15 may be used as GPIOs, multiplexed device functions are configured within the 16 GPIO port configuration registers and it is typical to refer to pins using the 17 naming scheme "PxN" where x is a character identifying the GPIO port with 18 which the pin is associated and N is an integer from 0 to 31 identifying the 19 pin within that GPIO port. For example PA0 is the first pin in GPIO port A, 20 and PB31 is the last pin in GPIO port B. The JZ4730, the JZ4740, the JZ4725B, 21 the X1000 and the X1830 contains 4 GPIO ports, PA to PD, for a total of 128 22 pins. The X2000 and the X2100 contains 5 GPIO ports, PA to PE, for a total of 23 160 pins. The JZ4750, the JZ4755 the JZ4760, the JZ4770 and the JZ4780 contains 24 6 GPIO ports, PA to PF, for a total of 192 pins. The JZ4775 contains 7 GPIO 25 ports, PA to PG, for a total of 224 pins. 26 27maintainers: 28 - Paul Cercueil <paul@crapouillou.net> 29 30properties: 31 compatible: 32 oneOf: 33 - enum: 34 - ingenic,jz4730-pinctrl 35 - ingenic,jz4740-pinctrl 36 - ingenic,jz4725b-pinctrl 37 - ingenic,jz4750-pinctrl 38 - ingenic,jz4755-pinctrl 39 - ingenic,jz4760-pinctrl 40 - ingenic,jz4770-pinctrl 41 - ingenic,jz4775-pinctrl 42 - ingenic,jz4780-pinctrl 43 - ingenic,x1000-pinctrl 44 - ingenic,x1500-pinctrl 45 - ingenic,x1600-pinctrl 46 - ingenic,x1830-pinctrl 47 - ingenic,x2000-pinctrl 48 - ingenic,x2100-pinctrl 49 - items: 50 - const: ingenic,jz4760b-pinctrl 51 - const: ingenic,jz4760-pinctrl 52 - items: 53 - const: ingenic,x1000e-pinctrl 54 - const: ingenic,x1000-pinctrl 55 - items: 56 - const: ingenic,x2000e-pinctrl 57 - const: ingenic,x2000-pinctrl 58 59 reg: 60 maxItems: 1 61 62 "#address-cells": 63 const: 1 64 65 "#size-cells": 66 const: 0 67 68patternProperties: 69 "^gpio@[0-9]$": 70 type: object 71 properties: 72 compatible: 73 enum: 74 - ingenic,jz4730-gpio 75 - ingenic,jz4740-gpio 76 - ingenic,jz4725b-gpio 77 - ingenic,jz4750-gpio 78 - ingenic,jz4755-gpio 79 - ingenic,jz4760-gpio 80 - ingenic,jz4770-gpio 81 - ingenic,jz4775-gpio 82 - ingenic,jz4780-gpio 83 - ingenic,x1000-gpio 84 - ingenic,x1500-gpio 85 - ingenic,x1600-gpio 86 - ingenic,x1830-gpio 87 - ingenic,x2000-gpio 88 - ingenic,x2100-gpio 89 90 reg: 91 items: 92 - description: The GPIO bank number 93 94 gpio-controller: true 95 96 "#gpio-cells": 97 const: 2 98 99 gpio-ranges: 100 maxItems: 1 101 102 interrupt-controller: true 103 104 "#interrupt-cells": 105 const: 2 106 description: 107 Refer to ../interrupt-controller/interrupts.txt for more details. 108 109 interrupts: 110 maxItems: 1 111 112 required: 113 - compatible 114 - reg 115 - gpio-controller 116 - "#gpio-cells" 117 - interrupts 118 - interrupt-controller 119 - "#interrupt-cells" 120 121 additionalProperties: false 122 123allOf: 124 - $ref: pinctrl.yaml# 125 126required: 127 - compatible 128 - reg 129 - "#address-cells" 130 - "#size-cells" 131 132additionalProperties: 133 anyOf: 134 - type: object 135 allOf: 136 - $ref: pincfg-node.yaml# 137 - $ref: pinmux-node.yaml# 138 139 properties: 140 function: true 141 groups: true 142 pins: true 143 bias-disable: true 144 bias-pull-up: true 145 bias-pull-down: true 146 output-low: true 147 output-high: true 148 additionalProperties: false 149 150 - type: object 151 additionalProperties: 152 type: object 153 allOf: 154 - $ref: pincfg-node.yaml# 155 - $ref: pinmux-node.yaml# 156 157 properties: 158 function: true 159 groups: true 160 pins: true 161 bias-disable: true 162 bias-pull-up: true 163 bias-pull-down: true 164 output-low: true 165 output-high: true 166 additionalProperties: false 167 168examples: 169 - | 170 pinctrl@10010000 { 171 compatible = "ingenic,jz4770-pinctrl"; 172 reg = <0x10010000 0x600>; 173 174 #address-cells = <1>; 175 #size-cells = <0>; 176 177 gpio@0 { 178 compatible = "ingenic,jz4770-gpio"; 179 reg = <0>; 180 181 gpio-controller; 182 gpio-ranges = <&pinctrl 0 0 32>; 183 #gpio-cells = <2>; 184 185 interrupt-controller; 186 #interrupt-cells = <2>; 187 188 interrupt-parent = <&intc>; 189 interrupts = <17>; 190 }; 191 }; 192