303 lines · yaml
1# SPDX-License-Identifier: GPL-2.02%YAML 1.23---4$id: http://devicetree.org/schemas/pinctrl/allwinner,sun4i-a10-pinctrl.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Allwinner A10 Pin Controller8 9maintainers:10 - Chen-Yu Tsai <wens@csie.org>11 - Maxime Ripard <mripard@kernel.org>12 13properties:14 "#gpio-cells":15 const: 316 description:17 GPIO consumers must use three arguments, first the number of the18 bank, then the pin number inside that bank, and finally the GPIO19 flags.20 21 "#interrupt-cells":22 const: 323 description:24 Interrupts consumers must use three arguments, first the number25 of the bank, then the pin number inside that bank, and finally26 the interrupts flags.27 28 compatible:29 enum:30 - allwinner,sun4i-a10-pinctrl31 - allwinner,sun5i-a10s-pinctrl32 - allwinner,sun5i-a13-pinctrl33 - allwinner,sun6i-a31-pinctrl34 - allwinner,sun6i-a31-r-pinctrl35 - allwinner,sun6i-a31s-pinctrl36 - allwinner,sun7i-a20-pinctrl37 - allwinner,sun8i-a23-pinctrl38 - allwinner,sun8i-a23-r-pinctrl39 - allwinner,sun8i-a33-pinctrl40 - allwinner,sun8i-a83t-pinctrl41 - allwinner,sun8i-a83t-r-pinctrl42 - allwinner,sun8i-h3-pinctrl43 - allwinner,sun8i-h3-r-pinctrl44 - allwinner,sun8i-r40-pinctrl45 - allwinner,sun8i-v3-pinctrl46 - allwinner,sun8i-v3s-pinctrl47 - allwinner,sun9i-a80-pinctrl48 - allwinner,sun9i-a80-r-pinctrl49 - allwinner,sun20i-d1-pinctrl50 - allwinner,sun50i-a64-pinctrl51 - allwinner,sun50i-a64-r-pinctrl52 - allwinner,sun50i-a100-pinctrl53 - allwinner,sun50i-a100-r-pinctrl54 - allwinner,sun50i-h5-pinctrl55 - allwinner,sun50i-h6-pinctrl56 - allwinner,sun50i-h6-r-pinctrl57 - allwinner,sun50i-h616-pinctrl58 - allwinner,sun50i-h616-r-pinctrl59 - allwinner,suniv-f1c100s-pinctrl60 - nextthing,gr8-pinctrl61 62 reg:63 maxItems: 164 65 interrupts:66 minItems: 167 maxItems: 868 description:69 One interrupt per external interrupt bank supported on the70 controller, sorted by bank number ascending order.71 72 clocks:73 items:74 - description: Bus Clock75 - description: High Frequency Oscillator76 - description: Low Frequency Oscillator77 78 clock-names:79 items:80 - const: apb81 - const: hosc82 - const: losc83 84 gpio-controller: true85 interrupt-controller: true86 gpio-line-names: true87 88 input-debounce:89 description:90 Debouncing periods in microseconds, one period per interrupt91 bank found in the controller92 $ref: /schemas/types.yaml#/definitions/uint32-array93 minItems: 194 maxItems: 895 96patternProperties:97 # It's pretty scary, but the basic idea is that:98 # - One node name can start with either s- or r- for PRCM nodes,99 # - Then, the name itself can be any repetition of <string>- (to100 # accommodate with nodes like uart4-rts-cts-pins), where each101 # string can be either starting with 'p' but in a string longer102 # than 3, or something that doesn't start with 'p',103 # - Then, the bank name is optional and will be between pa and pg,104 # pl or pm. Some pins groups that have several options will have105 # the pin numbers then,106 # - Finally, the name will end with either -pin or pins.107 108 "^([rs]-)?(([a-z0-9]{3,}|[a-oq-z][a-z0-9]*?)?-)+?(p[a-ilm][0-9]*?-)??pins?$":109 type: object110 111 properties:112 pins: true113 function: true114 bias-disable: true115 bias-pull-up: true116 bias-pull-down: true117 118 drive-strength:119 $ref: /schemas/types.yaml#/definitions/uint32120 enum: [10, 20, 30, 40]121 122 required:123 - pins124 - function125 126 additionalProperties: false127 128 "^vcc-p[a-ilm]-supply$":129 description:130 Power supplies for pin banks.131 132required:133 - "#gpio-cells"134 - compatible135 - reg136 - clocks137 - clock-names138 - gpio-controller139 140allOf:141 # FIXME: We should have the pin bank supplies here, but not a lot of142 # boards are defining it at the moment so it would generate a lot of143 # warnings.144 145 - $ref: pinctrl.yaml#146 - if:147 not:148 properties:149 compatible:150 enum:151 - allwinner,sun50i-h616-r-pinctrl152 153 then:154 required:155 - "#interrupt-cells"156 - interrupts157 - interrupt-controller158 159 - if:160 properties:161 compatible:162 enum:163 - allwinner,sun50i-h616-pinctrl164 165 then:166 properties:167 interrupts:168 minItems: 8169 170 - if:171 properties:172 compatible:173 enum:174 - allwinner,sun50i-a100-pinctrl175 176 then:177 properties:178 interrupts:179 minItems: 7180 maxItems: 7181 182 - if:183 properties:184 compatible:185 enum:186 - allwinner,sun20i-d1-pinctrl187 188 then:189 properties:190 interrupts:191 minItems: 6192 maxItems: 6193 194 - if:195 properties:196 compatible:197 enum:198 - allwinner,sun9i-a80-pinctrl199 200 then:201 properties:202 interrupts:203 minItems: 5204 maxItems: 5205 206 - if:207 properties:208 compatible:209 enum:210 - allwinner,sun6i-a31-pinctrl211 - allwinner,sun6i-a31s-pinctrl212 - allwinner,sun50i-h6-pinctrl213 214 then:215 properties:216 interrupts:217 minItems: 4218 maxItems: 4219 220 - if:221 properties:222 compatible:223 enum:224 - allwinner,sun8i-a23-pinctrl225 - allwinner,sun8i-a83t-pinctrl226 - allwinner,sun50i-a64-pinctrl227 - allwinner,sun50i-h5-pinctrl228 - allwinner,suniv-f1c100s-pinctrl229 230 then:231 properties:232 interrupts:233 minItems: 3234 maxItems: 3235 236 - if:237 properties:238 compatible:239 enum:240 - allwinner,sun6i-a31-r-pinctrl241 - allwinner,sun8i-a33-pinctrl242 - allwinner,sun8i-h3-pinctrl243 - allwinner,sun8i-v3-pinctrl244 - allwinner,sun8i-v3s-pinctrl245 - allwinner,sun9i-a80-r-pinctrl246 - allwinner,sun50i-h6-r-pinctrl247 248 then:249 properties:250 interrupts:251 minItems: 2252 maxItems: 2253 254 - if:255 properties:256 compatible:257 enum:258 - allwinner,sun4i-a10-pinctrl259 - allwinner,sun5i-a10s-pinctrl260 - allwinner,sun5i-a13-pinctrl261 - allwinner,sun7i-a20-pinctrl262 - allwinner,sun8i-a23-r-pinctrl263 - allwinner,sun8i-a83t-r-pinctrl264 - allwinner,sun8i-h3-r-pinctrl265 - allwinner,sun8i-r40-pinctrl266 - allwinner,sun50i-a64-r-pinctrl267 - allwinner,sun50i-a100-r-pinctrl268 - nextthing,gr8-pinctrl269 270 then:271 properties:272 interrupts:273 minItems: 1274 maxItems: 1275 276additionalProperties: false277 278examples:279 - |280 #include <dt-bindings/clock/sun5i-ccu.h>281 282 pio: pinctrl@1c20800 {283 compatible = "allwinner,sun5i-a13-pinctrl";284 reg = <0x01c20800 0x400>;285 interrupts = <28>;286 clocks = <&ccu CLK_APB0_PIO>, <&osc24M>, <&osc32k>;287 clock-names = "apb", "hosc", "losc";288 gpio-controller;289 interrupt-controller;290 #interrupt-cells = <3>;291 #gpio-cells = <3>;292 293 uart1_pe_pins: uart1-pe-pins {294 pins = "PE10", "PE11";295 function = "uart1";296 };297 298 uart1_pg_pins: uart1-pg-pins {299 pins = "PG3", "PG4";300 function = "uart1";301 };302 };303