18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/pinctrl/allwinner,sun4i-a10-pinctrl.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Allwinner A10 Pin Controller Device Tree Bindings 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimaintainers: 108c2ecf20Sopenharmony_ci - Chen-Yu Tsai <wens@csie.org> 118c2ecf20Sopenharmony_ci - Maxime Ripard <mripard@kernel.org> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ciproperties: 148c2ecf20Sopenharmony_ci "#gpio-cells": 158c2ecf20Sopenharmony_ci const: 3 168c2ecf20Sopenharmony_ci description: 178c2ecf20Sopenharmony_ci GPIO consumers must use three arguments, first the number of the 188c2ecf20Sopenharmony_ci bank, then the pin number inside that bank, and finally the GPIO 198c2ecf20Sopenharmony_ci flags. 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci "#interrupt-cells": 228c2ecf20Sopenharmony_ci const: 3 238c2ecf20Sopenharmony_ci description: 248c2ecf20Sopenharmony_ci Interrupts consumers must use three arguments, first the number 258c2ecf20Sopenharmony_ci of the bank, then the pin number inside that bank, and finally 268c2ecf20Sopenharmony_ci the interrupts flags. 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci compatible: 298c2ecf20Sopenharmony_ci enum: 308c2ecf20Sopenharmony_ci - allwinner,sun4i-a10-pinctrl 318c2ecf20Sopenharmony_ci - allwinner,sun5i-a10s-pinctrl 328c2ecf20Sopenharmony_ci - allwinner,sun5i-a13-pinctrl 338c2ecf20Sopenharmony_ci - allwinner,sun6i-a31-pinctrl 348c2ecf20Sopenharmony_ci - allwinner,sun6i-a31-r-pinctrl 358c2ecf20Sopenharmony_ci - allwinner,sun6i-a31s-pinctrl 368c2ecf20Sopenharmony_ci - allwinner,sun7i-a20-pinctrl 378c2ecf20Sopenharmony_ci - allwinner,sun8i-a23-pinctrl 388c2ecf20Sopenharmony_ci - allwinner,sun8i-a23-r-pinctrl 398c2ecf20Sopenharmony_ci - allwinner,sun8i-a33-pinctrl 408c2ecf20Sopenharmony_ci - allwinner,sun8i-a83t-pinctrl 418c2ecf20Sopenharmony_ci - allwinner,sun8i-a83t-r-pinctrl 428c2ecf20Sopenharmony_ci - allwinner,sun8i-h3-pinctrl 438c2ecf20Sopenharmony_ci - allwinner,sun8i-h3-r-pinctrl 448c2ecf20Sopenharmony_ci - allwinner,sun8i-r40-pinctrl 458c2ecf20Sopenharmony_ci - allwinner,sun8i-v3-pinctrl 468c2ecf20Sopenharmony_ci - allwinner,sun8i-v3s-pinctrl 478c2ecf20Sopenharmony_ci - allwinner,sun9i-a80-pinctrl 488c2ecf20Sopenharmony_ci - allwinner,sun9i-a80-r-pinctrl 498c2ecf20Sopenharmony_ci - allwinner,sun50i-a64-pinctrl 508c2ecf20Sopenharmony_ci - allwinner,sun50i-a64-r-pinctrl 518c2ecf20Sopenharmony_ci - allwinner,sun50i-a100-pinctrl 528c2ecf20Sopenharmony_ci - allwinner,sun50i-a100-r-pinctrl 538c2ecf20Sopenharmony_ci - allwinner,sun50i-h5-pinctrl 548c2ecf20Sopenharmony_ci - allwinner,sun50i-h6-pinctrl 558c2ecf20Sopenharmony_ci - allwinner,sun50i-h6-r-pinctrl 568c2ecf20Sopenharmony_ci - allwinner,suniv-f1c100s-pinctrl 578c2ecf20Sopenharmony_ci - nextthing,gr8-pinctrl 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci reg: 608c2ecf20Sopenharmony_ci maxItems: 1 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci interrupts: 638c2ecf20Sopenharmony_ci minItems: 1 648c2ecf20Sopenharmony_ci maxItems: 7 658c2ecf20Sopenharmony_ci description: 668c2ecf20Sopenharmony_ci One interrupt per external interrupt bank supported on the 678c2ecf20Sopenharmony_ci controller, sorted by bank number ascending order. 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci clocks: 708c2ecf20Sopenharmony_ci items: 718c2ecf20Sopenharmony_ci - description: Bus Clock 728c2ecf20Sopenharmony_ci - description: High Frequency Oscillator 738c2ecf20Sopenharmony_ci - description: Low Frequency Oscillator 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_ci clock-names: 768c2ecf20Sopenharmony_ci items: 778c2ecf20Sopenharmony_ci - const: apb 788c2ecf20Sopenharmony_ci - const: hosc 798c2ecf20Sopenharmony_ci - const: losc 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci resets: 828c2ecf20Sopenharmony_ci maxItems: 1 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ci gpio-controller: true 858c2ecf20Sopenharmony_ci interrupt-controller: true 868c2ecf20Sopenharmony_ci gpio-line-names: true 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci input-debounce: 898c2ecf20Sopenharmony_ci description: 908c2ecf20Sopenharmony_ci Debouncing periods in microseconds, one period per interrupt 918c2ecf20Sopenharmony_ci bank found in the controller 928c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 938c2ecf20Sopenharmony_ci minItems: 1 948c2ecf20Sopenharmony_ci maxItems: 5 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_cipatternProperties: 978c2ecf20Sopenharmony_ci # It's pretty scary, but the basic idea is that: 988c2ecf20Sopenharmony_ci # - One node name can start with either s- or r- for PRCM nodes, 998c2ecf20Sopenharmony_ci # - Then, the name itself can be any repetition of <string>- (to 1008c2ecf20Sopenharmony_ci # accomodate with nodes like uart4-rts-cts-pins), where each 1018c2ecf20Sopenharmony_ci # string can be either starting with 'p' but in a string longer 1028c2ecf20Sopenharmony_ci # than 3, or something that doesn't start with 'p', 1038c2ecf20Sopenharmony_ci # - Then, the bank name is optional and will be between pa and pg, 1048c2ecf20Sopenharmony_ci # pl or pm. Some pins groups that have several options will have 1058c2ecf20Sopenharmony_ci # the pin numbers then, 1068c2ecf20Sopenharmony_ci # - Finally, the name will end with either -pin or pins. 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci "^([rs]-)?(([a-z0-9]{3,}|[a-oq-z][a-z0-9]*?)?-)+?(p[a-ilm][0-9]*?-)??pins?$": 1098c2ecf20Sopenharmony_ci type: object 1108c2ecf20Sopenharmony_ci 1118c2ecf20Sopenharmony_ci properties: 1128c2ecf20Sopenharmony_ci pins: true 1138c2ecf20Sopenharmony_ci function: true 1148c2ecf20Sopenharmony_ci bias-disable: true 1158c2ecf20Sopenharmony_ci bias-pull-up: true 1168c2ecf20Sopenharmony_ci bias-pull-down: true 1178c2ecf20Sopenharmony_ci 1188c2ecf20Sopenharmony_ci drive-strength: 1198c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 1208c2ecf20Sopenharmony_ci enum: [10, 20, 30, 40] 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci required: 1238c2ecf20Sopenharmony_ci - pins 1248c2ecf20Sopenharmony_ci - function 1258c2ecf20Sopenharmony_ci 1268c2ecf20Sopenharmony_ci additionalProperties: false 1278c2ecf20Sopenharmony_ci 1288c2ecf20Sopenharmony_ci "^vcc-p[a-hlm]-supply$": 1298c2ecf20Sopenharmony_ci description: 1308c2ecf20Sopenharmony_ci Power supplies for pin banks. 1318c2ecf20Sopenharmony_ci 1328c2ecf20Sopenharmony_cirequired: 1338c2ecf20Sopenharmony_ci - "#gpio-cells" 1348c2ecf20Sopenharmony_ci - "#interrupt-cells" 1358c2ecf20Sopenharmony_ci - compatible 1368c2ecf20Sopenharmony_ci - reg 1378c2ecf20Sopenharmony_ci - interrupts 1388c2ecf20Sopenharmony_ci - clocks 1398c2ecf20Sopenharmony_ci - clock-names 1408c2ecf20Sopenharmony_ci - gpio-controller 1418c2ecf20Sopenharmony_ci - interrupt-controller 1428c2ecf20Sopenharmony_ci 1438c2ecf20Sopenharmony_ciallOf: 1448c2ecf20Sopenharmony_ci # FIXME: We should have the pin bank supplies here, but not a lot of 1458c2ecf20Sopenharmony_ci # boards are defining it at the moment so it would generate a lot of 1468c2ecf20Sopenharmony_ci # warnings. 1478c2ecf20Sopenharmony_ci 1488c2ecf20Sopenharmony_ci - if: 1498c2ecf20Sopenharmony_ci properties: 1508c2ecf20Sopenharmony_ci compatible: 1518c2ecf20Sopenharmony_ci enum: 1528c2ecf20Sopenharmony_ci - allwinner,sun50i-a100-pinctrl 1538c2ecf20Sopenharmony_ci 1548c2ecf20Sopenharmony_ci then: 1558c2ecf20Sopenharmony_ci properties: 1568c2ecf20Sopenharmony_ci interrupts: 1578c2ecf20Sopenharmony_ci minItems: 7 1588c2ecf20Sopenharmony_ci maxItems: 7 1598c2ecf20Sopenharmony_ci 1608c2ecf20Sopenharmony_ci - if: 1618c2ecf20Sopenharmony_ci properties: 1628c2ecf20Sopenharmony_ci compatible: 1638c2ecf20Sopenharmony_ci enum: 1648c2ecf20Sopenharmony_ci - allwinner,sun9i-a80-pinctrl 1658c2ecf20Sopenharmony_ci 1668c2ecf20Sopenharmony_ci then: 1678c2ecf20Sopenharmony_ci properties: 1688c2ecf20Sopenharmony_ci interrupts: 1698c2ecf20Sopenharmony_ci minItems: 5 1708c2ecf20Sopenharmony_ci maxItems: 5 1718c2ecf20Sopenharmony_ci 1728c2ecf20Sopenharmony_ci - if: 1738c2ecf20Sopenharmony_ci properties: 1748c2ecf20Sopenharmony_ci compatible: 1758c2ecf20Sopenharmony_ci enum: 1768c2ecf20Sopenharmony_ci - allwinner,sun6i-a31-pinctrl 1778c2ecf20Sopenharmony_ci - allwinner,sun6i-a31s-pinctrl 1788c2ecf20Sopenharmony_ci - allwinner,sun50i-h6-pinctrl 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_ci then: 1818c2ecf20Sopenharmony_ci properties: 1828c2ecf20Sopenharmony_ci interrupts: 1838c2ecf20Sopenharmony_ci minItems: 4 1848c2ecf20Sopenharmony_ci maxItems: 4 1858c2ecf20Sopenharmony_ci 1868c2ecf20Sopenharmony_ci - if: 1878c2ecf20Sopenharmony_ci properties: 1888c2ecf20Sopenharmony_ci compatible: 1898c2ecf20Sopenharmony_ci enum: 1908c2ecf20Sopenharmony_ci - allwinner,sun8i-a23-pinctrl 1918c2ecf20Sopenharmony_ci - allwinner,sun8i-a83t-pinctrl 1928c2ecf20Sopenharmony_ci - allwinner,sun50i-a64-pinctrl 1938c2ecf20Sopenharmony_ci - allwinner,sun50i-h5-pinctrl 1948c2ecf20Sopenharmony_ci - allwinner,suniv-f1c100s-pinctrl 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ci then: 1978c2ecf20Sopenharmony_ci properties: 1988c2ecf20Sopenharmony_ci interrupts: 1998c2ecf20Sopenharmony_ci minItems: 3 2008c2ecf20Sopenharmony_ci maxItems: 3 2018c2ecf20Sopenharmony_ci 2028c2ecf20Sopenharmony_ci - if: 2038c2ecf20Sopenharmony_ci properties: 2048c2ecf20Sopenharmony_ci compatible: 2058c2ecf20Sopenharmony_ci enum: 2068c2ecf20Sopenharmony_ci - allwinner,sun6i-a31-r-pinctrl 2078c2ecf20Sopenharmony_ci - allwinner,sun8i-a33-pinctrl 2088c2ecf20Sopenharmony_ci - allwinner,sun8i-h3-pinctrl 2098c2ecf20Sopenharmony_ci - allwinner,sun8i-v3-pinctrl 2108c2ecf20Sopenharmony_ci - allwinner,sun8i-v3s-pinctrl 2118c2ecf20Sopenharmony_ci - allwinner,sun9i-a80-r-pinctrl 2128c2ecf20Sopenharmony_ci - allwinner,sun50i-h6-r-pinctrl 2138c2ecf20Sopenharmony_ci 2148c2ecf20Sopenharmony_ci then: 2158c2ecf20Sopenharmony_ci properties: 2168c2ecf20Sopenharmony_ci interrupts: 2178c2ecf20Sopenharmony_ci minItems: 2 2188c2ecf20Sopenharmony_ci maxItems: 2 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_ci - if: 2218c2ecf20Sopenharmony_ci properties: 2228c2ecf20Sopenharmony_ci compatible: 2238c2ecf20Sopenharmony_ci enum: 2248c2ecf20Sopenharmony_ci - allwinner,sun4i-a10-pinctrl 2258c2ecf20Sopenharmony_ci - allwinner,sun5i-a10s-pinctrl 2268c2ecf20Sopenharmony_ci - allwinner,sun5i-a13-pinctrl 2278c2ecf20Sopenharmony_ci - allwinner,sun7i-a20-pinctrl 2288c2ecf20Sopenharmony_ci - allwinner,sun8i-a23-r-pinctrl 2298c2ecf20Sopenharmony_ci - allwinner,sun8i-a83t-r-pinctrl 2308c2ecf20Sopenharmony_ci - allwinner,sun8i-h3-r-pinctrl 2318c2ecf20Sopenharmony_ci - allwinner,sun8i-r40-pinctrl 2328c2ecf20Sopenharmony_ci - allwinner,sun50i-a64-r-pinctrl 2338c2ecf20Sopenharmony_ci - allwinner,sun50i-a100-r-pinctrl 2348c2ecf20Sopenharmony_ci - nextthing,gr8-pinctrl 2358c2ecf20Sopenharmony_ci 2368c2ecf20Sopenharmony_ci then: 2378c2ecf20Sopenharmony_ci properties: 2388c2ecf20Sopenharmony_ci interrupts: 2398c2ecf20Sopenharmony_ci minItems: 1 2408c2ecf20Sopenharmony_ci maxItems: 1 2418c2ecf20Sopenharmony_ci 2428c2ecf20Sopenharmony_ciadditionalProperties: false 2438c2ecf20Sopenharmony_ci 2448c2ecf20Sopenharmony_ciexamples: 2458c2ecf20Sopenharmony_ci - | 2468c2ecf20Sopenharmony_ci #include <dt-bindings/clock/sun5i-ccu.h> 2478c2ecf20Sopenharmony_ci 2488c2ecf20Sopenharmony_ci pio: pinctrl@1c20800 { 2498c2ecf20Sopenharmony_ci compatible = "allwinner,sun5i-a13-pinctrl"; 2508c2ecf20Sopenharmony_ci reg = <0x01c20800 0x400>; 2518c2ecf20Sopenharmony_ci interrupts = <28>; 2528c2ecf20Sopenharmony_ci clocks = <&ccu CLK_APB0_PIO>, <&osc24M>, <&osc32k>; 2538c2ecf20Sopenharmony_ci clock-names = "apb", "hosc", "losc"; 2548c2ecf20Sopenharmony_ci gpio-controller; 2558c2ecf20Sopenharmony_ci interrupt-controller; 2568c2ecf20Sopenharmony_ci #interrupt-cells = <3>; 2578c2ecf20Sopenharmony_ci #gpio-cells = <3>; 2588c2ecf20Sopenharmony_ci 2598c2ecf20Sopenharmony_ci uart1_pe_pins: uart1-pe-pins { 2608c2ecf20Sopenharmony_ci pins = "PE10", "PE11"; 2618c2ecf20Sopenharmony_ci function = "uart1"; 2628c2ecf20Sopenharmony_ci }; 2638c2ecf20Sopenharmony_ci 2648c2ecf20Sopenharmony_ci uart1_pg_pins: uart1-pg-pins { 2658c2ecf20Sopenharmony_ci pins = "PG3", "PG4"; 2668c2ecf20Sopenharmony_ci function = "uart1"; 2678c2ecf20Sopenharmony_ci }; 2688c2ecf20Sopenharmony_ci }; 269