15f62a964SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 25f62a964SEmmanuel Vadot%YAML 1.2 35f62a964SEmmanuel Vadot--- 45f62a964SEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/airoha,en7581-pinctrl.yaml# 55f62a964SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 65f62a964SEmmanuel Vadot 75f62a964SEmmanuel Vadottitle: Airoha EN7581 Pin Controller 85f62a964SEmmanuel Vadot 95f62a964SEmmanuel Vadotmaintainers: 105f62a964SEmmanuel Vadot - Lorenzo Bianconi <lorenzo@kernel.org> 115f62a964SEmmanuel Vadot 125f62a964SEmmanuel Vadotdescription: 135f62a964SEmmanuel Vadot The Airoha's EN7581 Pin controller is used to control SoC pins. 145f62a964SEmmanuel Vadot 155f62a964SEmmanuel Vadotproperties: 165f62a964SEmmanuel Vadot compatible: 175f62a964SEmmanuel Vadot const: airoha,en7581-pinctrl 185f62a964SEmmanuel Vadot 195f62a964SEmmanuel Vadot interrupts: 205f62a964SEmmanuel Vadot maxItems: 1 215f62a964SEmmanuel Vadot 225f62a964SEmmanuel Vadot gpio-controller: true 235f62a964SEmmanuel Vadot 245f62a964SEmmanuel Vadot '#gpio-cells': 255f62a964SEmmanuel Vadot const: 2 265f62a964SEmmanuel Vadot 27*8ccc0d23SEmmanuel Vadot gpio-ranges: 28*8ccc0d23SEmmanuel Vadot maxItems: 1 29*8ccc0d23SEmmanuel Vadot 305f62a964SEmmanuel Vadot interrupt-controller: true 315f62a964SEmmanuel Vadot 325f62a964SEmmanuel Vadot '#interrupt-cells': 335f62a964SEmmanuel Vadot const: 2 345f62a964SEmmanuel Vadot 355f62a964SEmmanuel VadotallOf: 365f62a964SEmmanuel Vadot - $ref: pinctrl.yaml# 375f62a964SEmmanuel Vadot 385f62a964SEmmanuel Vadotrequired: 395f62a964SEmmanuel Vadot - compatible 405f62a964SEmmanuel Vadot - interrupts 415f62a964SEmmanuel Vadot - gpio-controller 425f62a964SEmmanuel Vadot - "#gpio-cells" 435f62a964SEmmanuel Vadot - interrupt-controller 445f62a964SEmmanuel Vadot - "#interrupt-cells" 455f62a964SEmmanuel Vadot 465f62a964SEmmanuel VadotpatternProperties: 475f62a964SEmmanuel Vadot '-pins$': 485f62a964SEmmanuel Vadot type: object 495f62a964SEmmanuel Vadot 505f62a964SEmmanuel Vadot patternProperties: 515f62a964SEmmanuel Vadot '^mux(-|$)': 525f62a964SEmmanuel Vadot type: object 535f62a964SEmmanuel Vadot 545f62a964SEmmanuel Vadot description: 555f62a964SEmmanuel Vadot pinmux configuration nodes. 565f62a964SEmmanuel Vadot 575f62a964SEmmanuel Vadot $ref: /schemas/pinctrl/pinmux-node.yaml 585f62a964SEmmanuel Vadot 595f62a964SEmmanuel Vadot properties: 605f62a964SEmmanuel Vadot function: 615f62a964SEmmanuel Vadot description: 625f62a964SEmmanuel Vadot A string containing the name of the function to mux to the group. 635f62a964SEmmanuel Vadot enum: [pon, tod_1pps, sipo, mdio, uart, i2c, jtag, pcm, spi, 645f62a964SEmmanuel Vadot pcm_spi, i2s, emmc, pnand, pcie_reset, pwm, phy1_led0, 655f62a964SEmmanuel Vadot phy2_led0, phy3_led0, phy4_led0, phy1_led1, phy2_led1, 665f62a964SEmmanuel Vadot phy3_led1, phy4_led1] 675f62a964SEmmanuel Vadot 685f62a964SEmmanuel Vadot groups: 695f62a964SEmmanuel Vadot description: 705f62a964SEmmanuel Vadot An array of strings. Each string contains the name of a group. 715f62a964SEmmanuel Vadot 725f62a964SEmmanuel Vadot required: 735f62a964SEmmanuel Vadot - function 745f62a964SEmmanuel Vadot - groups 755f62a964SEmmanuel Vadot 765f62a964SEmmanuel Vadot allOf: 775f62a964SEmmanuel Vadot - if: 785f62a964SEmmanuel Vadot properties: 795f62a964SEmmanuel Vadot function: 805f62a964SEmmanuel Vadot const: pon 815f62a964SEmmanuel Vadot then: 825f62a964SEmmanuel Vadot properties: 835f62a964SEmmanuel Vadot groups: 845f62a964SEmmanuel Vadot enum: [pon] 855f62a964SEmmanuel Vadot - if: 865f62a964SEmmanuel Vadot properties: 875f62a964SEmmanuel Vadot function: 885f62a964SEmmanuel Vadot const: tod_1pps 895f62a964SEmmanuel Vadot then: 905f62a964SEmmanuel Vadot properties: 915f62a964SEmmanuel Vadot groups: 925f62a964SEmmanuel Vadot enum: [pon_tod_1pps, gsw_tod_1pps] 935f62a964SEmmanuel Vadot - if: 945f62a964SEmmanuel Vadot properties: 955f62a964SEmmanuel Vadot function: 965f62a964SEmmanuel Vadot const: sipo 975f62a964SEmmanuel Vadot then: 985f62a964SEmmanuel Vadot properties: 995f62a964SEmmanuel Vadot groups: 1005f62a964SEmmanuel Vadot enum: [sipo, sipo_rclk] 1015f62a964SEmmanuel Vadot - if: 1025f62a964SEmmanuel Vadot properties: 1035f62a964SEmmanuel Vadot function: 1045f62a964SEmmanuel Vadot const: mdio 1055f62a964SEmmanuel Vadot then: 1065f62a964SEmmanuel Vadot properties: 1075f62a964SEmmanuel Vadot groups: 1085f62a964SEmmanuel Vadot enum: [mdio] 1095f62a964SEmmanuel Vadot - if: 1105f62a964SEmmanuel Vadot properties: 1115f62a964SEmmanuel Vadot function: 1125f62a964SEmmanuel Vadot const: uart 1135f62a964SEmmanuel Vadot then: 1145f62a964SEmmanuel Vadot properties: 1155f62a964SEmmanuel Vadot groups: 1165f62a964SEmmanuel Vadot items: 1175f62a964SEmmanuel Vadot enum: [uart2, uart2_cts_rts, hsuart, hsuart_cts_rts, 1185f62a964SEmmanuel Vadot uart4, uart5] 1195f62a964SEmmanuel Vadot maxItems: 2 1205f62a964SEmmanuel Vadot - if: 1215f62a964SEmmanuel Vadot properties: 1225f62a964SEmmanuel Vadot function: 1235f62a964SEmmanuel Vadot const: i2c 1245f62a964SEmmanuel Vadot then: 1255f62a964SEmmanuel Vadot properties: 1265f62a964SEmmanuel Vadot groups: 1275f62a964SEmmanuel Vadot enum: [i2c1] 1285f62a964SEmmanuel Vadot - if: 1295f62a964SEmmanuel Vadot properties: 1305f62a964SEmmanuel Vadot function: 1315f62a964SEmmanuel Vadot const: jtag 1325f62a964SEmmanuel Vadot then: 1335f62a964SEmmanuel Vadot properties: 1345f62a964SEmmanuel Vadot groups: 1355f62a964SEmmanuel Vadot enum: [jtag_udi, jtag_dfd] 1365f62a964SEmmanuel Vadot - if: 1375f62a964SEmmanuel Vadot properties: 1385f62a964SEmmanuel Vadot function: 1395f62a964SEmmanuel Vadot const: pcm 1405f62a964SEmmanuel Vadot then: 1415f62a964SEmmanuel Vadot properties: 1425f62a964SEmmanuel Vadot groups: 1435f62a964SEmmanuel Vadot enum: [pcm1, pcm2] 1445f62a964SEmmanuel Vadot - if: 1455f62a964SEmmanuel Vadot properties: 1465f62a964SEmmanuel Vadot function: 1475f62a964SEmmanuel Vadot const: spi 1485f62a964SEmmanuel Vadot then: 1495f62a964SEmmanuel Vadot properties: 1505f62a964SEmmanuel Vadot groups: 1515f62a964SEmmanuel Vadot items: 1525f62a964SEmmanuel Vadot enum: [spi_quad, spi_cs1] 1535f62a964SEmmanuel Vadot maxItems: 2 1545f62a964SEmmanuel Vadot - if: 1555f62a964SEmmanuel Vadot properties: 1565f62a964SEmmanuel Vadot function: 1575f62a964SEmmanuel Vadot const: pcm_spi 1585f62a964SEmmanuel Vadot then: 1595f62a964SEmmanuel Vadot properties: 1605f62a964SEmmanuel Vadot groups: 1615f62a964SEmmanuel Vadot items: 1625f62a964SEmmanuel Vadot enum: [pcm_spi, pcm_spi_int, pcm_spi_rst, pcm_spi_cs1, 1635f62a964SEmmanuel Vadot pcm_spi_cs2_p156, pcm_spi_cs2_p128, pcm_spi_cs3, 1645f62a964SEmmanuel Vadot pcm_spi_cs4] 1655f62a964SEmmanuel Vadot maxItems: 7 1665f62a964SEmmanuel Vadot - if: 1675f62a964SEmmanuel Vadot properties: 1685f62a964SEmmanuel Vadot function: 1695f62a964SEmmanuel Vadot const: i2c 1705f62a964SEmmanuel Vadot then: 1715f62a964SEmmanuel Vadot properties: 1725f62a964SEmmanuel Vadot groups: 1735f62a964SEmmanuel Vadot enum: [i2s] 1745f62a964SEmmanuel Vadot - if: 1755f62a964SEmmanuel Vadot properties: 1765f62a964SEmmanuel Vadot function: 1775f62a964SEmmanuel Vadot const: emmc 1785f62a964SEmmanuel Vadot then: 1795f62a964SEmmanuel Vadot properties: 1805f62a964SEmmanuel Vadot groups: 1815f62a964SEmmanuel Vadot enum: [emmc] 1825f62a964SEmmanuel Vadot - if: 1835f62a964SEmmanuel Vadot properties: 1845f62a964SEmmanuel Vadot function: 1855f62a964SEmmanuel Vadot const: pnand 1865f62a964SEmmanuel Vadot then: 1875f62a964SEmmanuel Vadot properties: 1885f62a964SEmmanuel Vadot groups: 1895f62a964SEmmanuel Vadot enum: [pnand] 1905f62a964SEmmanuel Vadot - if: 1915f62a964SEmmanuel Vadot properties: 1925f62a964SEmmanuel Vadot function: 1935f62a964SEmmanuel Vadot const: pcie_reset 1945f62a964SEmmanuel Vadot then: 1955f62a964SEmmanuel Vadot properties: 1965f62a964SEmmanuel Vadot groups: 1975f62a964SEmmanuel Vadot enum: [pcie_reset0, pcie_reset1, pcie_reset2] 1985f62a964SEmmanuel Vadot - if: 1995f62a964SEmmanuel Vadot properties: 2005f62a964SEmmanuel Vadot function: 2015f62a964SEmmanuel Vadot const: pwm 2025f62a964SEmmanuel Vadot then: 2035f62a964SEmmanuel Vadot properties: 2045f62a964SEmmanuel Vadot groups: 2055f62a964SEmmanuel Vadot enum: [gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, 2065f62a964SEmmanuel Vadot gpio7, gpio8, gpio9, gpio10, gpio11, gpio12, gpio13, 2075f62a964SEmmanuel Vadot gpio14, gpio15, gpio16, gpio17, gpio18, gpio19, 2085f62a964SEmmanuel Vadot gpio20, gpio21, gpio22, gpio23, gpio24, gpio25, 2095f62a964SEmmanuel Vadot gpio26, gpio27, gpio28, gpio29, gpio30, gpio31, 2105f62a964SEmmanuel Vadot gpio36, gpio37, gpio38, gpio39, gpio40, gpio41, 2115f62a964SEmmanuel Vadot gpio42, gpio43, gpio44, gpio45, gpio46, gpio47] 2125f62a964SEmmanuel Vadot - if: 2135f62a964SEmmanuel Vadot properties: 2145f62a964SEmmanuel Vadot function: 2155f62a964SEmmanuel Vadot const: phy1_led0 2165f62a964SEmmanuel Vadot then: 2175f62a964SEmmanuel Vadot properties: 2185f62a964SEmmanuel Vadot groups: 2195f62a964SEmmanuel Vadot enum: [gpio33, gpio34, gpio35, gpio42] 2205f62a964SEmmanuel Vadot - if: 2215f62a964SEmmanuel Vadot properties: 2225f62a964SEmmanuel Vadot function: 2235f62a964SEmmanuel Vadot const: phy2_led0 2245f62a964SEmmanuel Vadot then: 2255f62a964SEmmanuel Vadot properties: 2265f62a964SEmmanuel Vadot groups: 2275f62a964SEmmanuel Vadot enum: [gpio33, gpio34, gpio35, gpio42] 2285f62a964SEmmanuel Vadot - if: 2295f62a964SEmmanuel Vadot properties: 2305f62a964SEmmanuel Vadot function: 2315f62a964SEmmanuel Vadot const: phy3_led0 2325f62a964SEmmanuel Vadot then: 2335f62a964SEmmanuel Vadot properties: 2345f62a964SEmmanuel Vadot groups: 2355f62a964SEmmanuel Vadot enum: [gpio33, gpio34, gpio35, gpio42] 2365f62a964SEmmanuel Vadot - if: 2375f62a964SEmmanuel Vadot properties: 2385f62a964SEmmanuel Vadot function: 2395f62a964SEmmanuel Vadot const: phy4_led0 2405f62a964SEmmanuel Vadot then: 2415f62a964SEmmanuel Vadot properties: 2425f62a964SEmmanuel Vadot groups: 2435f62a964SEmmanuel Vadot enum: [gpio33, gpio34, gpio35, gpio42] 2445f62a964SEmmanuel Vadot - if: 2455f62a964SEmmanuel Vadot properties: 2465f62a964SEmmanuel Vadot function: 2475f62a964SEmmanuel Vadot const: phy1_led1 2485f62a964SEmmanuel Vadot then: 2495f62a964SEmmanuel Vadot properties: 2505f62a964SEmmanuel Vadot groups: 2515f62a964SEmmanuel Vadot enum: [gpio43, gpio44, gpio45, gpio46] 2525f62a964SEmmanuel Vadot - if: 2535f62a964SEmmanuel Vadot properties: 2545f62a964SEmmanuel Vadot function: 2555f62a964SEmmanuel Vadot const: phy2_led1 2565f62a964SEmmanuel Vadot then: 2575f62a964SEmmanuel Vadot properties: 2585f62a964SEmmanuel Vadot groups: 2595f62a964SEmmanuel Vadot enum: [gpio43, gpio44, gpio45, gpio46] 2605f62a964SEmmanuel Vadot - if: 2615f62a964SEmmanuel Vadot properties: 2625f62a964SEmmanuel Vadot function: 2635f62a964SEmmanuel Vadot const: phy3_led1 2645f62a964SEmmanuel Vadot then: 2655f62a964SEmmanuel Vadot properties: 2665f62a964SEmmanuel Vadot groups: 2675f62a964SEmmanuel Vadot enum: [gpio43, gpio44, gpio45, gpio46] 2685f62a964SEmmanuel Vadot - if: 2695f62a964SEmmanuel Vadot properties: 2705f62a964SEmmanuel Vadot function: 2715f62a964SEmmanuel Vadot const: phy4_led1 2725f62a964SEmmanuel Vadot then: 2735f62a964SEmmanuel Vadot properties: 2745f62a964SEmmanuel Vadot groups: 2755f62a964SEmmanuel Vadot enum: [gpio43, gpio44, gpio45, gpio46] 2765f62a964SEmmanuel Vadot 2775f62a964SEmmanuel Vadot additionalProperties: false 2785f62a964SEmmanuel Vadot 2795f62a964SEmmanuel Vadot '^conf(-|$)': 2805f62a964SEmmanuel Vadot type: object 2815f62a964SEmmanuel Vadot 2825f62a964SEmmanuel Vadot description: 2835f62a964SEmmanuel Vadot pinconf configuration nodes. 2845f62a964SEmmanuel Vadot 2855f62a964SEmmanuel Vadot $ref: /schemas/pinctrl/pincfg-node.yaml 2865f62a964SEmmanuel Vadot 2875f62a964SEmmanuel Vadot properties: 2885f62a964SEmmanuel Vadot pins: 2895f62a964SEmmanuel Vadot description: 2905f62a964SEmmanuel Vadot An array of strings. Each string contains the name of a pin. 2915f62a964SEmmanuel Vadot items: 2925f62a964SEmmanuel Vadot enum: [uart1_txd, uart1_rxd, i2c_scl, i2c_sda, spi_cs0, spi_clk, 2935f62a964SEmmanuel Vadot spi_mosi, spi_miso, gpio0, gpio1, gpio2, gpio3, gpio4, 2945f62a964SEmmanuel Vadot gpio5, gpio6, gpio7, gpio8, gpio9, gpio10, gpio11, gpio12, 2955f62a964SEmmanuel Vadot gpio13, gpio14, gpio15, gpio16, gpio17, gpio18, gpio19, 2965f62a964SEmmanuel Vadot gpio20, gpio21, gpio22, gpio23, gpio24, gpio25, gpio26, 2975f62a964SEmmanuel Vadot gpio27, gpio28, gpio29, gpio30, gpio31, gpio32, gpio33, 2985f62a964SEmmanuel Vadot gpio34, gpio35, gpio36, gpio37, gpio38, gpio39, gpio40, 2995f62a964SEmmanuel Vadot gpio41, gpio42, gpio43, gpio44, gpio45, gpio46, 3005f62a964SEmmanuel Vadot pcie_reset0, pcie_reset1, pcie_reset2] 3015f62a964SEmmanuel Vadot minItems: 1 3025f62a964SEmmanuel Vadot maxItems: 58 3035f62a964SEmmanuel Vadot 3045f62a964SEmmanuel Vadot bias-disable: true 3055f62a964SEmmanuel Vadot 3065f62a964SEmmanuel Vadot bias-pull-up: true 3075f62a964SEmmanuel Vadot 3085f62a964SEmmanuel Vadot bias-pull-down: true 3095f62a964SEmmanuel Vadot 3105f62a964SEmmanuel Vadot input-enable: true 3115f62a964SEmmanuel Vadot 3125f62a964SEmmanuel Vadot output-enable: true 3135f62a964SEmmanuel Vadot 3145f62a964SEmmanuel Vadot output-low: true 3155f62a964SEmmanuel Vadot 3165f62a964SEmmanuel Vadot output-high: true 3175f62a964SEmmanuel Vadot 3185f62a964SEmmanuel Vadot drive-open-drain: true 3195f62a964SEmmanuel Vadot 3205f62a964SEmmanuel Vadot drive-strength: 3215f62a964SEmmanuel Vadot description: 3225f62a964SEmmanuel Vadot Selects the drive strength for MIO pins, in mA. 3235f62a964SEmmanuel Vadot enum: [2, 4, 6, 8] 3245f62a964SEmmanuel Vadot 3255f62a964SEmmanuel Vadot required: 3265f62a964SEmmanuel Vadot - pins 3275f62a964SEmmanuel Vadot 3285f62a964SEmmanuel Vadot additionalProperties: false 3295f62a964SEmmanuel Vadot 3305f62a964SEmmanuel Vadot additionalProperties: false 3315f62a964SEmmanuel Vadot 3325f62a964SEmmanuel VadotadditionalProperties: false 3335f62a964SEmmanuel Vadot 3345f62a964SEmmanuel Vadotexamples: 3355f62a964SEmmanuel Vadot - | 3365f62a964SEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 3375f62a964SEmmanuel Vadot 3385f62a964SEmmanuel Vadot pinctrl { 3395f62a964SEmmanuel Vadot compatible = "airoha,en7581-pinctrl"; 3405f62a964SEmmanuel Vadot 3415f62a964SEmmanuel Vadot interrupt-parent = <&gic>; 3425f62a964SEmmanuel Vadot interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 3435f62a964SEmmanuel Vadot 3445f62a964SEmmanuel Vadot gpio-controller; 3455f62a964SEmmanuel Vadot #gpio-cells = <2>; 3465f62a964SEmmanuel Vadot 3475f62a964SEmmanuel Vadot interrupt-controller; 3485f62a964SEmmanuel Vadot #interrupt-cells = <2>; 3495f62a964SEmmanuel Vadot 3505f62a964SEmmanuel Vadot pcie1-rst-pins { 3515f62a964SEmmanuel Vadot conf { 3525f62a964SEmmanuel Vadot pins = "pcie_reset1"; 3535f62a964SEmmanuel Vadot drive-open-drain = <1>; 3545f62a964SEmmanuel Vadot }; 3555f62a964SEmmanuel Vadot }; 3565f62a964SEmmanuel Vadot 3575f62a964SEmmanuel Vadot pwm-pins { 3585f62a964SEmmanuel Vadot mux { 3595f62a964SEmmanuel Vadot function = "pwm"; 3605f62a964SEmmanuel Vadot groups = "gpio18"; 3615f62a964SEmmanuel Vadot }; 3625f62a964SEmmanuel Vadot }; 3635f62a964SEmmanuel Vadot 3645f62a964SEmmanuel Vadot spi-pins { 3655f62a964SEmmanuel Vadot mux { 3665f62a964SEmmanuel Vadot function = "spi"; 3675f62a964SEmmanuel Vadot groups = "spi_quad", "spi_cs1"; 3685f62a964SEmmanuel Vadot }; 3695f62a964SEmmanuel Vadot }; 3705f62a964SEmmanuel Vadot 3715f62a964SEmmanuel Vadot uart2-pins { 3725f62a964SEmmanuel Vadot mux { 3735f62a964SEmmanuel Vadot function = "uart"; 3745f62a964SEmmanuel Vadot groups = "uart2", "uart2_cts_rts"; 3755f62a964SEmmanuel Vadot }; 3765f62a964SEmmanuel Vadot }; 3775f62a964SEmmanuel Vadot 3785f62a964SEmmanuel Vadot uar5-pins { 3795f62a964SEmmanuel Vadot mux { 3805f62a964SEmmanuel Vadot function = "uart"; 3815f62a964SEmmanuel Vadot groups = "uart5"; 3825f62a964SEmmanuel Vadot }; 3835f62a964SEmmanuel Vadot }; 3845f62a964SEmmanuel Vadot 3855f62a964SEmmanuel Vadot mmc-pins { 3865f62a964SEmmanuel Vadot mux { 3875f62a964SEmmanuel Vadot function = "emmc"; 3885f62a964SEmmanuel Vadot groups = "emmc"; 3895f62a964SEmmanuel Vadot }; 3905f62a964SEmmanuel Vadot }; 3915f62a964SEmmanuel Vadot 3925f62a964SEmmanuel Vadot mdio-pins { 3935f62a964SEmmanuel Vadot mux { 3945f62a964SEmmanuel Vadot function = "mdio"; 3955f62a964SEmmanuel Vadot groups = "mdio"; 3965f62a964SEmmanuel Vadot }; 3975f62a964SEmmanuel Vadot 3985f62a964SEmmanuel Vadot conf { 3995f62a964SEmmanuel Vadot pins = "gpio2"; 4005f62a964SEmmanuel Vadot output-enable; 4015f62a964SEmmanuel Vadot }; 4025f62a964SEmmanuel Vadot }; 4035f62a964SEmmanuel Vadot }; 404