FILE
allwinner,sun4i-a10-pinctrl.yaml
File preview with syntax highlighting.
linux-6.19.14/Documentation/devicetree/bindings/pinctrl/allwinner,sun4i-a10-pinctrl.yaml
1# SPDX-License-Identifier: GPL-2.0 2%YAML 1.2 3--- 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 Controller 8 9maintainers: 10 - Chen-Yu Tsai <wens@csie.org> 11 - Maxime Ripard <mripard@kernel.org> 12 13properties: 14 "#gpio-cells": 15 const: 3 16 description: 17 GPIO consumers must use three arguments, first the number of the 18 bank, then the pin number inside that bank, and finally the GPIO 19 flags. 20 21 "#interrupt-cells": 22 const: 3 23 description: 24 Interrupts consumers must use three arguments, first the number 25 of the bank, then the pin number inside that bank, and finally 26 the interrupts flags. 27 28 compatible: 29 enum: 30 - allwinner,sun4i-a10-pinctrl 31 - allwinner,sun5i-a10s-pinctrl 32 - allwinner,sun5i-a13-pinctrl 33 - allwinner,sun6i-a31-pinctrl 34 - allwinner,sun6i-a31-r-pinctrl 35 - allwinner,sun6i-a31s-pinctrl 36 - allwinner,sun7i-a20-pinctrl 37 - allwinner,sun8i-a23-pinctrl 38 - allwinner,sun8i-a23-r-pinctrl 39 - allwinner,sun8i-a33-pinctrl 40 - allwinner,sun8i-a83t-pinctrl 41 - allwinner,sun8i-a83t-r-pinctrl 42 - allwinner,sun8i-h3-pinctrl 43 - allwinner,sun8i-h3-r-pinctrl 44 - allwinner,sun8i-r40-pinctrl 45 - allwinner,sun8i-v3-pinctrl 46 - allwinner,sun8i-v3s-pinctrl 47 - allwinner,sun8i-v853-pinctrl 48 - allwinner,sun9i-a80-pinctrl 49 - allwinner,sun9i-a80-r-pinctrl 50 - allwinner,sun20i-d1-pinctrl 51 - allwinner,sun50i-a64-pinctrl 52 - allwinner,sun50i-a64-r-pinctrl 53 - allwinner,sun50i-a100-pinctrl 54 - allwinner,sun50i-a100-r-pinctrl 55 - allwinner,sun50i-h5-pinctrl 56 - allwinner,sun50i-h6-pinctrl 57 - allwinner,sun50i-h6-r-pinctrl 58 - allwinner,sun50i-h616-pinctrl 59 - allwinner,sun50i-h616-r-pinctrl 60 - allwinner,suniv-f1c100s-pinctrl 61 - nextthing,gr8-pinctrl 62 63 reg: 64 maxItems: 1 65 66 interrupts: 67 minItems: 1 68 maxItems: 8 69 description: 70 One interrupt per external interrupt bank supported on the 71 controller, sorted by bank number ascending order. 72 73 clocks: 74 items: 75 - description: Bus Clock 76 - description: High Frequency Oscillator 77 - description: Low Frequency Oscillator 78 79 clock-names: 80 items: 81 - const: apb 82 - const: hosc 83 - const: losc 84 85 gpio-controller: true 86 interrupt-controller: true 87 gpio-line-names: true 88 89 input-debounce: 90 description: 91 Debouncing periods in microseconds, one period per interrupt 92 bank found in the controller 93 $ref: /schemas/types.yaml#/definitions/uint32-array 94 minItems: 1 95 maxItems: 8 96 97patternProperties: 98 # It's pretty scary, but the basic idea is that: 99 # - One node name can start with either s- or r- for PRCM nodes, 100 # - Then, the name itself can be any repetition of <string>- (to 101 # accommodate with nodes like uart4-rts-cts-pins), where each 102 # string can be either starting with 'p' but in a string longer 103 # than 3, or something that doesn't start with 'p', 104 # - Then, the bank name is optional and will be between pa and pg, 105 # pl or pm. Some pins groups that have several options will have 106 # the pin numbers then, 107 # - Finally, the name will end with either -pin or pins. 108 109 "^([rs]-)?(([a-z0-9]{3,}|[a-oq-z][a-z0-9]*?)?-)+?(p[a-ilm][0-9]*?-)??pins?$": 110 type: object 111 112 properties: 113 pins: true 114 function: true 115 bias-disable: true 116 bias-pull-up: true 117 bias-pull-down: true 118 119 drive-strength: 120 $ref: /schemas/types.yaml#/definitions/uint32 121 enum: [10, 20, 30, 40] 122 123 required: 124 - pins 125 - function 126 127 additionalProperties: false 128 129 "^vcc-p[a-ilm]-supply$": 130 description: 131 Power supplies for pin banks. 132 133required: 134 - "#gpio-cells" 135 - compatible 136 - reg 137 - clocks 138 - clock-names 139 - gpio-controller 140 141allOf: 142 # FIXME: We should have the pin bank supplies here, but not a lot of 143 # boards are defining it at the moment so it would generate a lot of 144 # warnings. 145 146 - $ref: pinctrl.yaml# 147 - if: 148 not: 149 properties: 150 compatible: 151 enum: 152 - allwinner,sun50i-h616-r-pinctrl 153 154 then: 155 required: 156 - "#interrupt-cells" 157 - interrupts 158 - interrupt-controller 159 160 - if: 161 properties: 162 compatible: 163 enum: 164 - allwinner,sun50i-h616-pinctrl 165 166 then: 167 properties: 168 interrupts: 169 minItems: 8 170 171 - if: 172 properties: 173 compatible: 174 enum: 175 - allwinner,sun50i-a100-pinctrl 176 177 then: 178 properties: 179 interrupts: 180 minItems: 7 181 maxItems: 7 182 183 - if: 184 properties: 185 compatible: 186 enum: 187 - allwinner,sun8i-v853-pinctrl 188 189 then: 190 properties: 191 interrupts: 192 minItems: 8 193 maxItems: 8 194 195 - if: 196 properties: 197 compatible: 198 enum: 199 - allwinner,sun20i-d1-pinctrl 200 201 then: 202 properties: 203 interrupts: 204 minItems: 6 205 maxItems: 6 206 207 - if: 208 properties: 209 compatible: 210 enum: 211 - allwinner,sun9i-a80-pinctrl 212 213 then: 214 properties: 215 interrupts: 216 minItems: 5 217 maxItems: 5 218 219 - if: 220 properties: 221 compatible: 222 enum: 223 - allwinner,sun6i-a31-pinctrl 224 - allwinner,sun6i-a31s-pinctrl 225 - allwinner,sun50i-h6-pinctrl 226 227 then: 228 properties: 229 interrupts: 230 minItems: 4 231 maxItems: 4 232 233 - if: 234 properties: 235 compatible: 236 enum: 237 - allwinner,sun8i-a23-pinctrl 238 - allwinner,sun8i-a83t-pinctrl 239 - allwinner,sun50i-a64-pinctrl 240 - allwinner,sun50i-h5-pinctrl 241 - allwinner,suniv-f1c100s-pinctrl 242 243 then: 244 properties: 245 interrupts: 246 minItems: 3 247 maxItems: 3 248 249 - if: 250 properties: 251 compatible: 252 enum: 253 - allwinner,sun6i-a31-r-pinctrl 254 - allwinner,sun8i-a33-pinctrl 255 - allwinner,sun8i-h3-pinctrl 256 - allwinner,sun8i-v3-pinctrl 257 - allwinner,sun8i-v3s-pinctrl 258 - allwinner,sun9i-a80-r-pinctrl 259 - allwinner,sun50i-h6-r-pinctrl 260 261 then: 262 properties: 263 interrupts: 264 minItems: 2 265 maxItems: 2 266 267 - if: 268 properties: 269 compatible: 270 enum: 271 - allwinner,sun4i-a10-pinctrl 272 - allwinner,sun5i-a10s-pinctrl 273 - allwinner,sun5i-a13-pinctrl 274 - allwinner,sun7i-a20-pinctrl 275 - allwinner,sun8i-a23-r-pinctrl 276 - allwinner,sun8i-a83t-r-pinctrl 277 - allwinner,sun8i-h3-r-pinctrl 278 - allwinner,sun8i-r40-pinctrl 279 - allwinner,sun50i-a64-r-pinctrl 280 - allwinner,sun50i-a100-r-pinctrl 281 - nextthing,gr8-pinctrl 282 283 then: 284 properties: 285 interrupts: 286 minItems: 1 287 maxItems: 1 288 289additionalProperties: false 290 291examples: 292 - | 293 #include <dt-bindings/clock/sun5i-ccu.h> 294 295 pio: pinctrl@1c20800 { 296 compatible = "allwinner,sun5i-a13-pinctrl"; 297 reg = <0x01c20800 0x400>; 298 interrupts = <28>; 299 clocks = <&ccu CLK_APB0_PIO>, <&osc24M>, <&osc32k>; 300 clock-names = "apb", "hosc", "losc"; 301 gpio-controller; 302 interrupt-controller; 303 #interrupt-cells = <3>; 304 #gpio-cells = <3>; 305 306 uart1_pe_pins: uart1-pe-pins { 307 pins = "PE10", "PE11"; 308 function = "uart1"; 309 }; 310 311 uart1_pg_pins: uart1-pg-pins { 312 pins = "PG3", "PG4"; 313 function = "uart1"; 314 }; 315 };
~/
Read-only file preview.