1e3dcb725SMaxime Ripard# SPDX-License-Identifier: GPL-2.0 2e3dcb725SMaxime Ripard%YAML 1.2 3e3dcb725SMaxime Ripard--- 4e3dcb725SMaxime Ripard$id: http://devicetree.org/schemas/pinctrl/allwinner,sun4i-a10-pinctrl.yaml# 5e3dcb725SMaxime Ripard$schema: http://devicetree.org/meta-schemas/core.yaml# 6e3dcb725SMaxime Ripard 7e3dcb725SMaxime Ripardtitle: Allwinner A10 Pin Controller Device Tree Bindings 8e3dcb725SMaxime Ripard 9e3dcb725SMaxime Ripardmaintainers: 10e3dcb725SMaxime Ripard - Chen-Yu Tsai <wens@csie.org> 115c7404bbSMaxime Ripard - Maxime Ripard <mripard@kernel.org> 12e3dcb725SMaxime Ripard 13e3dcb725SMaxime Ripardproperties: 14e3dcb725SMaxime Ripard "#gpio-cells": 15e3dcb725SMaxime Ripard const: 3 16e3dcb725SMaxime Ripard description: 17e3dcb725SMaxime Ripard GPIO consumers must use three arguments, first the number of the 18e3dcb725SMaxime Ripard bank, then the pin number inside that bank, and finally the GPIO 19e3dcb725SMaxime Ripard flags. 20e3dcb725SMaxime Ripard 21e3dcb725SMaxime Ripard "#interrupt-cells": 22e3dcb725SMaxime Ripard const: 3 23e3dcb725SMaxime Ripard description: 24e3dcb725SMaxime Ripard Interrupts consumers must use three arguments, first the number 25e3dcb725SMaxime Ripard of the bank, then the pin number inside that bank, and finally 26e3dcb725SMaxime Ripard the interrupts flags. 27e3dcb725SMaxime Ripard 28e3dcb725SMaxime Ripard compatible: 29e3dcb725SMaxime Ripard enum: 30e3dcb725SMaxime Ripard - allwinner,sun4i-a10-pinctrl 31e3dcb725SMaxime Ripard - allwinner,sun5i-a10s-pinctrl 32e3dcb725SMaxime Ripard - allwinner,sun5i-a13-pinctrl 33e3dcb725SMaxime Ripard - allwinner,sun6i-a31-pinctrl 34e3dcb725SMaxime Ripard - allwinner,sun6i-a31-r-pinctrl 35e3dcb725SMaxime Ripard - allwinner,sun6i-a31s-pinctrl 36e3dcb725SMaxime Ripard - allwinner,sun7i-a20-pinctrl 37e3dcb725SMaxime Ripard - allwinner,sun8i-a23-pinctrl 38e3dcb725SMaxime Ripard - allwinner,sun8i-a23-r-pinctrl 39e3dcb725SMaxime Ripard - allwinner,sun8i-a33-pinctrl 40e3dcb725SMaxime Ripard - allwinner,sun8i-a83t-pinctrl 41e3dcb725SMaxime Ripard - allwinner,sun8i-a83t-r-pinctrl 42e3dcb725SMaxime Ripard - allwinner,sun8i-h3-pinctrl 43e3dcb725SMaxime Ripard - allwinner,sun8i-h3-r-pinctrl 44e3dcb725SMaxime Ripard - allwinner,sun8i-r40-pinctrl 45e3dcb725SMaxime Ripard - allwinner,sun8i-v3-pinctrl 46e3dcb725SMaxime Ripard - allwinner,sun8i-v3s-pinctrl 47e3dcb725SMaxime Ripard - allwinner,sun9i-a80-pinctrl 48e3dcb725SMaxime Ripard - allwinner,sun9i-a80-r-pinctrl 49*329d32a9SSamuel Holland - allwinner,sun20i-d1-pinctrl 50e3dcb725SMaxime Ripard - allwinner,sun50i-a64-pinctrl 51e3dcb725SMaxime Ripard - allwinner,sun50i-a64-r-pinctrl 525e842dc2SYangtao Li - allwinner,sun50i-a100-pinctrl 535e842dc2SYangtao Li - allwinner,sun50i-a100-r-pinctrl 54e3dcb725SMaxime Ripard - allwinner,sun50i-h5-pinctrl 55e3dcb725SMaxime Ripard - allwinner,sun50i-h6-pinctrl 56e3dcb725SMaxime Ripard - allwinner,sun50i-h6-r-pinctrl 57fdca7cb9SAndre Przywara - allwinner,sun50i-h616-pinctrl 58fdca7cb9SAndre Przywara - allwinner,sun50i-h616-r-pinctrl 59e3dcb725SMaxime Ripard - allwinner,suniv-f1c100s-pinctrl 60e3dcb725SMaxime Ripard - nextthing,gr8-pinctrl 61e3dcb725SMaxime Ripard 62e3dcb725SMaxime Ripard reg: 63e3dcb725SMaxime Ripard maxItems: 1 64e3dcb725SMaxime Ripard 65e3dcb725SMaxime Ripard interrupts: 66e3dcb725SMaxime Ripard minItems: 1 67fdca7cb9SAndre Przywara maxItems: 8 68e3dcb725SMaxime Ripard description: 69e3dcb725SMaxime Ripard One interrupt per external interrupt bank supported on the 70e3dcb725SMaxime Ripard controller, sorted by bank number ascending order. 71e3dcb725SMaxime Ripard 72e3dcb725SMaxime Ripard clocks: 73e3dcb725SMaxime Ripard items: 74e3dcb725SMaxime Ripard - description: Bus Clock 75e3dcb725SMaxime Ripard - description: High Frequency Oscillator 76e3dcb725SMaxime Ripard - description: Low Frequency Oscillator 77e3dcb725SMaxime Ripard 78e3dcb725SMaxime Ripard clock-names: 79e3dcb725SMaxime Ripard items: 80e3dcb725SMaxime Ripard - const: apb 81e3dcb725SMaxime Ripard - const: hosc 82e3dcb725SMaxime Ripard - const: losc 83e3dcb725SMaxime Ripard 84e3dcb725SMaxime Ripard gpio-controller: true 85e3dcb725SMaxime Ripard interrupt-controller: true 86e3dcb725SMaxime Ripard gpio-line-names: true 87e3dcb725SMaxime Ripard 88e3dcb725SMaxime Ripard input-debounce: 89e3dcb725SMaxime Ripard description: 90e3dcb725SMaxime Ripard Debouncing periods in microseconds, one period per interrupt 91e3dcb725SMaxime Ripard bank found in the controller 923d21a460SRob Herring $ref: /schemas/types.yaml#/definitions/uint32-array 933d21a460SRob Herring minItems: 1 94fdca7cb9SAndre Przywara maxItems: 8 95e3dcb725SMaxime Ripard 96e3dcb725SMaxime RipardpatternProperties: 97e3dcb725SMaxime Ripard # It's pretty scary, but the basic idea is that: 98e3dcb725SMaxime Ripard # - One node name can start with either s- or r- for PRCM nodes, 99e3dcb725SMaxime Ripard # - Then, the name itself can be any repetition of <string>- (to 100e3dcb725SMaxime Ripard # accomodate with nodes like uart4-rts-cts-pins), where each 101e3dcb725SMaxime Ripard # string can be either starting with 'p' but in a string longer 102e3dcb725SMaxime Ripard # than 3, or something that doesn't start with 'p', 103e3dcb725SMaxime Ripard # - Then, the bank name is optional and will be between pa and pg, 104e3dcb725SMaxime Ripard # pl or pm. Some pins groups that have several options will have 105e3dcb725SMaxime Ripard # the pin numbers then, 106e3dcb725SMaxime Ripard # - Finally, the name will end with either -pin or pins. 107e3dcb725SMaxime Ripard 108e3dcb725SMaxime Ripard "^([rs]-)?(([a-z0-9]{3,}|[a-oq-z][a-z0-9]*?)?-)+?(p[a-ilm][0-9]*?-)??pins?$": 109e3dcb725SMaxime Ripard type: object 110e3dcb725SMaxime Ripard 111e3dcb725SMaxime Ripard properties: 112e3dcb725SMaxime Ripard pins: true 113e3dcb725SMaxime Ripard function: true 114e3dcb725SMaxime Ripard bias-disable: true 115e3dcb725SMaxime Ripard bias-pull-up: true 116e3dcb725SMaxime Ripard bias-pull-down: true 117e3dcb725SMaxime Ripard 118e3dcb725SMaxime Ripard drive-strength: 1193d21a460SRob Herring $ref: /schemas/types.yaml#/definitions/uint32 1203d21a460SRob Herring enum: [10, 20, 30, 40] 121e3dcb725SMaxime Ripard 122e3dcb725SMaxime Ripard required: 123e3dcb725SMaxime Ripard - pins 124e3dcb725SMaxime Ripard - function 125e3dcb725SMaxime Ripard 126e3dcb725SMaxime Ripard additionalProperties: false 127e3dcb725SMaxime Ripard 128c1e72763SAndre Przywara "^vcc-p[a-ilm]-supply$": 129e3dcb725SMaxime Ripard description: 130e3dcb725SMaxime Ripard Power supplies for pin banks. 131e3dcb725SMaxime Ripard 132e3dcb725SMaxime Ripardrequired: 133e3dcb725SMaxime Ripard - "#gpio-cells" 134e3dcb725SMaxime Ripard - compatible 135e3dcb725SMaxime Ripard - reg 136e3dcb725SMaxime Ripard - clocks 137e3dcb725SMaxime Ripard - clock-names 138e3dcb725SMaxime Ripard - gpio-controller 139e3dcb725SMaxime Ripard 140e3dcb725SMaxime RipardallOf: 141e3dcb725SMaxime Ripard # FIXME: We should have the pin bank supplies here, but not a lot of 142e3dcb725SMaxime Ripard # boards are defining it at the moment so it would generate a lot of 143e3dcb725SMaxime Ripard # warnings. 144e3dcb725SMaxime Ripard 145c09acbc4SRafał Miłecki - $ref: "pinctrl.yaml#" 146e3dcb725SMaxime Ripard - if: 147ee84131bSAndre Przywara not: 148ee84131bSAndre Przywara properties: 149ee84131bSAndre Przywara compatible: 150ee84131bSAndre Przywara enum: 151ee84131bSAndre Przywara - allwinner,sun50i-h616-r-pinctrl 152ee84131bSAndre Przywara 153ee84131bSAndre Przywara then: 154ee84131bSAndre Przywara required: 155ee84131bSAndre Przywara - "#interrupt-cells" 156ee84131bSAndre Przywara - interrupts 157ee84131bSAndre Przywara - interrupt-controller 158ee84131bSAndre Przywara 159ee84131bSAndre Przywara - if: 160e3dcb725SMaxime Ripard properties: 161e3dcb725SMaxime Ripard compatible: 162e3dcb725SMaxime Ripard enum: 163fdca7cb9SAndre Przywara - allwinner,sun50i-h616-pinctrl 164fdca7cb9SAndre Przywara 165fdca7cb9SAndre Przywara then: 166fdca7cb9SAndre Przywara properties: 167fdca7cb9SAndre Przywara interrupts: 168fdca7cb9SAndre Przywara minItems: 8 169fdca7cb9SAndre Przywara 170fdca7cb9SAndre Przywara - if: 171fdca7cb9SAndre Przywara properties: 172fdca7cb9SAndre Przywara compatible: 173fdca7cb9SAndre Przywara enum: 1745e842dc2SYangtao Li - allwinner,sun50i-a100-pinctrl 1755e842dc2SYangtao Li 1765e842dc2SYangtao Li then: 1775e842dc2SYangtao Li properties: 1785e842dc2SYangtao Li interrupts: 1795e842dc2SYangtao Li minItems: 7 1805e842dc2SYangtao Li maxItems: 7 1815e842dc2SYangtao Li 1825e842dc2SYangtao Li - if: 1835e842dc2SYangtao Li properties: 1845e842dc2SYangtao Li compatible: 1855e842dc2SYangtao Li enum: 186*329d32a9SSamuel Holland - allwinner,sun20i-d1-pinctrl 187*329d32a9SSamuel Holland 188*329d32a9SSamuel Holland then: 189*329d32a9SSamuel Holland properties: 190*329d32a9SSamuel Holland interrupts: 191*329d32a9SSamuel Holland minItems: 6 192*329d32a9SSamuel Holland maxItems: 6 193*329d32a9SSamuel Holland 194*329d32a9SSamuel Holland - if: 195*329d32a9SSamuel Holland properties: 196*329d32a9SSamuel Holland compatible: 197*329d32a9SSamuel Holland enum: 198e3dcb725SMaxime Ripard - allwinner,sun9i-a80-pinctrl 199e3dcb725SMaxime Ripard 200e3dcb725SMaxime Ripard then: 201e3dcb725SMaxime Ripard properties: 202e3dcb725SMaxime Ripard interrupts: 203e3dcb725SMaxime Ripard minItems: 5 204e3dcb725SMaxime Ripard maxItems: 5 205e3dcb725SMaxime Ripard 20696bef667SYangtao Li - if: 207e3dcb725SMaxime Ripard properties: 208e3dcb725SMaxime Ripard compatible: 209e3dcb725SMaxime Ripard enum: 210e3dcb725SMaxime Ripard - allwinner,sun6i-a31-pinctrl 211e3dcb725SMaxime Ripard - allwinner,sun6i-a31s-pinctrl 212e3dcb725SMaxime Ripard - allwinner,sun50i-h6-pinctrl 213e3dcb725SMaxime Ripard 214e3dcb725SMaxime Ripard then: 215e3dcb725SMaxime Ripard properties: 216e3dcb725SMaxime Ripard interrupts: 217e3dcb725SMaxime Ripard minItems: 4 218e3dcb725SMaxime Ripard maxItems: 4 219e3dcb725SMaxime Ripard 22096bef667SYangtao Li - if: 221e3dcb725SMaxime Ripard properties: 222e3dcb725SMaxime Ripard compatible: 223e3dcb725SMaxime Ripard enum: 224e3dcb725SMaxime Ripard - allwinner,sun8i-a23-pinctrl 225e3dcb725SMaxime Ripard - allwinner,sun8i-a83t-pinctrl 226e3dcb725SMaxime Ripard - allwinner,sun50i-a64-pinctrl 227e3dcb725SMaxime Ripard - allwinner,sun50i-h5-pinctrl 228e3dcb725SMaxime Ripard - allwinner,suniv-f1c100s-pinctrl 229e3dcb725SMaxime Ripard 230e3dcb725SMaxime Ripard then: 231e3dcb725SMaxime Ripard properties: 232e3dcb725SMaxime Ripard interrupts: 233e3dcb725SMaxime Ripard minItems: 3 234e3dcb725SMaxime Ripard maxItems: 3 235e3dcb725SMaxime Ripard 23696bef667SYangtao Li - if: 237e3dcb725SMaxime Ripard properties: 238e3dcb725SMaxime Ripard compatible: 239e3dcb725SMaxime Ripard enum: 240e3dcb725SMaxime Ripard - allwinner,sun6i-a31-r-pinctrl 241e3dcb725SMaxime Ripard - allwinner,sun8i-a33-pinctrl 242e3dcb725SMaxime Ripard - allwinner,sun8i-h3-pinctrl 243e3dcb725SMaxime Ripard - allwinner,sun8i-v3-pinctrl 244e3dcb725SMaxime Ripard - allwinner,sun8i-v3s-pinctrl 245e3dcb725SMaxime Ripard - allwinner,sun9i-a80-r-pinctrl 246e3dcb725SMaxime Ripard - allwinner,sun50i-h6-r-pinctrl 247e3dcb725SMaxime Ripard 248e3dcb725SMaxime Ripard then: 249e3dcb725SMaxime Ripard properties: 250e3dcb725SMaxime Ripard interrupts: 251e3dcb725SMaxime Ripard minItems: 2 252e3dcb725SMaxime Ripard maxItems: 2 253e3dcb725SMaxime Ripard 25496bef667SYangtao Li - if: 25596bef667SYangtao Li properties: 25696bef667SYangtao Li compatible: 25796bef667SYangtao Li enum: 25896bef667SYangtao Li - allwinner,sun4i-a10-pinctrl 25996bef667SYangtao Li - allwinner,sun5i-a10s-pinctrl 26096bef667SYangtao Li - allwinner,sun5i-a13-pinctrl 26196bef667SYangtao Li - allwinner,sun7i-a20-pinctrl 26296bef667SYangtao Li - allwinner,sun8i-a23-r-pinctrl 26396bef667SYangtao Li - allwinner,sun8i-a83t-r-pinctrl 26496bef667SYangtao Li - allwinner,sun8i-h3-r-pinctrl 26596bef667SYangtao Li - allwinner,sun8i-r40-pinctrl 26696bef667SYangtao Li - allwinner,sun50i-a64-r-pinctrl 2675e842dc2SYangtao Li - allwinner,sun50i-a100-r-pinctrl 26896bef667SYangtao Li - nextthing,gr8-pinctrl 26996bef667SYangtao Li 27096bef667SYangtao Li then: 271e3dcb725SMaxime Ripard properties: 272e3dcb725SMaxime Ripard interrupts: 273e3dcb725SMaxime Ripard minItems: 1 274e3dcb725SMaxime Ripard maxItems: 1 275e3dcb725SMaxime Ripard 276e3dcb725SMaxime RipardadditionalProperties: false 277e3dcb725SMaxime Ripard 278e3dcb725SMaxime Ripardexamples: 279e3dcb725SMaxime Ripard - | 280e3dcb725SMaxime Ripard #include <dt-bindings/clock/sun5i-ccu.h> 281e3dcb725SMaxime Ripard 282e3dcb725SMaxime Ripard pio: pinctrl@1c20800 { 283e3dcb725SMaxime Ripard compatible = "allwinner,sun5i-a13-pinctrl"; 284e3dcb725SMaxime Ripard reg = <0x01c20800 0x400>; 285e3dcb725SMaxime Ripard interrupts = <28>; 286e3dcb725SMaxime Ripard clocks = <&ccu CLK_APB0_PIO>, <&osc24M>, <&osc32k>; 287e3dcb725SMaxime Ripard clock-names = "apb", "hosc", "losc"; 288e3dcb725SMaxime Ripard gpio-controller; 289e3dcb725SMaxime Ripard interrupt-controller; 290e3dcb725SMaxime Ripard #interrupt-cells = <3>; 291e3dcb725SMaxime Ripard #gpio-cells = <3>; 292e3dcb725SMaxime Ripard 293e3dcb725SMaxime Ripard uart1_pe_pins: uart1-pe-pins { 294e3dcb725SMaxime Ripard pins = "PE10", "PE11"; 295e3dcb725SMaxime Ripard function = "uart1"; 296e3dcb725SMaxime Ripard }; 297e3dcb725SMaxime Ripard 298e3dcb725SMaxime Ripard uart1_pg_pins: uart1-pg-pins { 299e3dcb725SMaxime Ripard pins = "PG3", "PG4"; 300e3dcb725SMaxime Ripard function = "uart1"; 301e3dcb725SMaxime Ripard }; 302e3dcb725SMaxime Ripard }; 303