1*59f04460SMikhail Kshevetskiy# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*59f04460SMikhail Kshevetskiy%YAML 1.2 3*59f04460SMikhail Kshevetskiy--- 4*59f04460SMikhail Kshevetskiy$id: http://devicetree.org/schemas/pinctrl/airoha,an7563-pinctrl.yaml# 5*59f04460SMikhail Kshevetskiy$schema: http://devicetree.org/meta-schemas/core.yaml# 6*59f04460SMikhail Kshevetskiy 7*59f04460SMikhail Kshevetskiytitle: Airoha AN7563 Pin Controller 8*59f04460SMikhail Kshevetskiy 9*59f04460SMikhail Kshevetskiymaintainers: 10*59f04460SMikhail Kshevetskiy - Lorenzo Bianconi <lorenzo@kernel.org> 11*59f04460SMikhail Kshevetskiy 12*59f04460SMikhail Kshevetskiydescription: 13*59f04460SMikhail Kshevetskiy The Airoha's AN7563 Pin controller is used to control SoC pins. 14*59f04460SMikhail Kshevetskiy 15*59f04460SMikhail Kshevetskiyproperties: 16*59f04460SMikhail Kshevetskiy compatible: 17*59f04460SMikhail Kshevetskiy const: airoha,an7563-pinctrl 18*59f04460SMikhail Kshevetskiy 19*59f04460SMikhail Kshevetskiy interrupts: 20*59f04460SMikhail Kshevetskiy maxItems: 1 21*59f04460SMikhail Kshevetskiy 22*59f04460SMikhail Kshevetskiy gpio-controller: true 23*59f04460SMikhail Kshevetskiy 24*59f04460SMikhail Kshevetskiy '#gpio-cells': 25*59f04460SMikhail Kshevetskiy const: 2 26*59f04460SMikhail Kshevetskiy 27*59f04460SMikhail Kshevetskiy gpio-ranges: 28*59f04460SMikhail Kshevetskiy maxItems: 1 29*59f04460SMikhail Kshevetskiy 30*59f04460SMikhail Kshevetskiy interrupt-controller: true 31*59f04460SMikhail Kshevetskiy 32*59f04460SMikhail Kshevetskiy '#interrupt-cells': 33*59f04460SMikhail Kshevetskiy const: 2 34*59f04460SMikhail Kshevetskiy 35*59f04460SMikhail KshevetskiyallOf: 36*59f04460SMikhail Kshevetskiy - $ref: pinctrl.yaml# 37*59f04460SMikhail Kshevetskiy 38*59f04460SMikhail Kshevetskiyrequired: 39*59f04460SMikhail Kshevetskiy - compatible 40*59f04460SMikhail Kshevetskiy - interrupts 41*59f04460SMikhail Kshevetskiy - gpio-controller 42*59f04460SMikhail Kshevetskiy - "#gpio-cells" 43*59f04460SMikhail Kshevetskiy - interrupt-controller 44*59f04460SMikhail Kshevetskiy - "#interrupt-cells" 45*59f04460SMikhail Kshevetskiy 46*59f04460SMikhail KshevetskiypatternProperties: 47*59f04460SMikhail Kshevetskiy '-pins$': 48*59f04460SMikhail Kshevetskiy type: object 49*59f04460SMikhail Kshevetskiy 50*59f04460SMikhail Kshevetskiy patternProperties: 51*59f04460SMikhail Kshevetskiy '^mux(-|$)': 52*59f04460SMikhail Kshevetskiy type: object 53*59f04460SMikhail Kshevetskiy 54*59f04460SMikhail Kshevetskiy description: 55*59f04460SMikhail Kshevetskiy pinmux configuration nodes. 56*59f04460SMikhail Kshevetskiy 57*59f04460SMikhail Kshevetskiy $ref: /schemas/pinctrl/pinmux-node.yaml 58*59f04460SMikhail Kshevetskiy 59*59f04460SMikhail Kshevetskiy properties: 60*59f04460SMikhail Kshevetskiy function: 61*59f04460SMikhail Kshevetskiy description: 62*59f04460SMikhail Kshevetskiy A string containing the name of the function to mux to the group. 63*59f04460SMikhail Kshevetskiy enum: [pon, sipo, mdio, uart, jtag, pcm, spi, pnand, gpio, 64*59f04460SMikhail Kshevetskiy pcie_reset, pwm, phy1_led0, phy2_led0, phy3_led0, 65*59f04460SMikhail Kshevetskiy phy4_led0, phy1_led1, phy2_led1, phy3_led1, phy4_led1] 66*59f04460SMikhail Kshevetskiy 67*59f04460SMikhail Kshevetskiy groups: 68*59f04460SMikhail Kshevetskiy description: 69*59f04460SMikhail Kshevetskiy An array of strings. Each string contains the name of a group. 70*59f04460SMikhail Kshevetskiy 71*59f04460SMikhail Kshevetskiy required: 72*59f04460SMikhail Kshevetskiy - function 73*59f04460SMikhail Kshevetskiy - groups 74*59f04460SMikhail Kshevetskiy 75*59f04460SMikhail Kshevetskiy allOf: 76*59f04460SMikhail Kshevetskiy - if: 77*59f04460SMikhail Kshevetskiy properties: 78*59f04460SMikhail Kshevetskiy function: 79*59f04460SMikhail Kshevetskiy const: pon 80*59f04460SMikhail Kshevetskiy then: 81*59f04460SMikhail Kshevetskiy properties: 82*59f04460SMikhail Kshevetskiy groups: 83*59f04460SMikhail Kshevetskiy enum: [pon] 84*59f04460SMikhail Kshevetskiy - if: 85*59f04460SMikhail Kshevetskiy properties: 86*59f04460SMikhail Kshevetskiy function: 87*59f04460SMikhail Kshevetskiy const: sipo 88*59f04460SMikhail Kshevetskiy then: 89*59f04460SMikhail Kshevetskiy properties: 90*59f04460SMikhail Kshevetskiy groups: 91*59f04460SMikhail Kshevetskiy enum: [sipo, sipo_rclk] 92*59f04460SMikhail Kshevetskiy - if: 93*59f04460SMikhail Kshevetskiy properties: 94*59f04460SMikhail Kshevetskiy function: 95*59f04460SMikhail Kshevetskiy const: mdio 96*59f04460SMikhail Kshevetskiy then: 97*59f04460SMikhail Kshevetskiy properties: 98*59f04460SMikhail Kshevetskiy groups: 99*59f04460SMikhail Kshevetskiy enum: [mdio] 100*59f04460SMikhail Kshevetskiy - if: 101*59f04460SMikhail Kshevetskiy properties: 102*59f04460SMikhail Kshevetskiy function: 103*59f04460SMikhail Kshevetskiy const: uart 104*59f04460SMikhail Kshevetskiy then: 105*59f04460SMikhail Kshevetskiy properties: 106*59f04460SMikhail Kshevetskiy groups: 107*59f04460SMikhail Kshevetskiy items: 108*59f04460SMikhail Kshevetskiy enum: [hsuart, hsuart_cts_rts] 109*59f04460SMikhail Kshevetskiy maxItems: 2 110*59f04460SMikhail Kshevetskiy - if: 111*59f04460SMikhail Kshevetskiy properties: 112*59f04460SMikhail Kshevetskiy function: 113*59f04460SMikhail Kshevetskiy const: jtag 114*59f04460SMikhail Kshevetskiy then: 115*59f04460SMikhail Kshevetskiy properties: 116*59f04460SMikhail Kshevetskiy groups: 117*59f04460SMikhail Kshevetskiy enum: [jtag_udi, jtag_dfd] 118*59f04460SMikhail Kshevetskiy - if: 119*59f04460SMikhail Kshevetskiy properties: 120*59f04460SMikhail Kshevetskiy function: 121*59f04460SMikhail Kshevetskiy const: pcm 122*59f04460SMikhail Kshevetskiy then: 123*59f04460SMikhail Kshevetskiy properties: 124*59f04460SMikhail Kshevetskiy groups: 125*59f04460SMikhail Kshevetskiy enum: [pcm1, pcm2] 126*59f04460SMikhail Kshevetskiy - if: 127*59f04460SMikhail Kshevetskiy properties: 128*59f04460SMikhail Kshevetskiy function: 129*59f04460SMikhail Kshevetskiy const: spi 130*59f04460SMikhail Kshevetskiy then: 131*59f04460SMikhail Kshevetskiy properties: 132*59f04460SMikhail Kshevetskiy groups: 133*59f04460SMikhail Kshevetskiy items: 134*59f04460SMikhail Kshevetskiy enum: [spi_quad, spi_cs1] 135*59f04460SMikhail Kshevetskiy maxItems: 2 136*59f04460SMikhail Kshevetskiy - if: 137*59f04460SMikhail Kshevetskiy properties: 138*59f04460SMikhail Kshevetskiy function: 139*59f04460SMikhail Kshevetskiy const: pnand 140*59f04460SMikhail Kshevetskiy then: 141*59f04460SMikhail Kshevetskiy properties: 142*59f04460SMikhail Kshevetskiy groups: 143*59f04460SMikhail Kshevetskiy enum: [pnand] 144*59f04460SMikhail Kshevetskiy - if: 145*59f04460SMikhail Kshevetskiy properties: 146*59f04460SMikhail Kshevetskiy function: 147*59f04460SMikhail Kshevetskiy const: gpio 148*59f04460SMikhail Kshevetskiy then: 149*59f04460SMikhail Kshevetskiy properties: 150*59f04460SMikhail Kshevetskiy groups: 151*59f04460SMikhail Kshevetskiy enum: [gpio28, gpio29, gpio30, gpio31, gpio32, 152*59f04460SMikhail Kshevetskiy gpio33, gpio34, gpio35, gpio36, gpio37] 153*59f04460SMikhail Kshevetskiy - if: 154*59f04460SMikhail Kshevetskiy properties: 155*59f04460SMikhail Kshevetskiy function: 156*59f04460SMikhail Kshevetskiy const: pcie_reset 157*59f04460SMikhail Kshevetskiy then: 158*59f04460SMikhail Kshevetskiy properties: 159*59f04460SMikhail Kshevetskiy groups: 160*59f04460SMikhail Kshevetskiy enum: [pcie_reset0, pcie_reset1] 161*59f04460SMikhail Kshevetskiy - if: 162*59f04460SMikhail Kshevetskiy properties: 163*59f04460SMikhail Kshevetskiy function: 164*59f04460SMikhail Kshevetskiy const: pwm 165*59f04460SMikhail Kshevetskiy then: 166*59f04460SMikhail Kshevetskiy properties: 167*59f04460SMikhail Kshevetskiy groups: 168*59f04460SMikhail Kshevetskiy enum: [gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, 169*59f04460SMikhail Kshevetskiy gpio7, gpio8, gpio9, gpio10, gpio11, gpio12, gpio13, 170*59f04460SMikhail Kshevetskiy gpio14, gpio15, gpio16, gpio17, gpio18, gpio19, 171*59f04460SMikhail Kshevetskiy gpio20, gpio21, gpio22, gpio23, gpio24, gpio25, 172*59f04460SMikhail Kshevetskiy gpio26, gpio27, gpio28, gpio29, gpio30, gpio31, 173*59f04460SMikhail Kshevetskiy gpio36, gpio37] 174*59f04460SMikhail Kshevetskiy - if: 175*59f04460SMikhail Kshevetskiy properties: 176*59f04460SMikhail Kshevetskiy function: 177*59f04460SMikhail Kshevetskiy const: phy1_led0 178*59f04460SMikhail Kshevetskiy then: 179*59f04460SMikhail Kshevetskiy properties: 180*59f04460SMikhail Kshevetskiy groups: 181*59f04460SMikhail Kshevetskiy enum: [gpio8, gpio9, gpio10, gpio11] 182*59f04460SMikhail Kshevetskiy - if: 183*59f04460SMikhail Kshevetskiy properties: 184*59f04460SMikhail Kshevetskiy function: 185*59f04460SMikhail Kshevetskiy const: phy2_led0 186*59f04460SMikhail Kshevetskiy then: 187*59f04460SMikhail Kshevetskiy properties: 188*59f04460SMikhail Kshevetskiy groups: 189*59f04460SMikhail Kshevetskiy enum: [gpio8, gpio9, gpio10, gpio11] 190*59f04460SMikhail Kshevetskiy - if: 191*59f04460SMikhail Kshevetskiy properties: 192*59f04460SMikhail Kshevetskiy function: 193*59f04460SMikhail Kshevetskiy const: phy3_led0 194*59f04460SMikhail Kshevetskiy then: 195*59f04460SMikhail Kshevetskiy properties: 196*59f04460SMikhail Kshevetskiy groups: 197*59f04460SMikhail Kshevetskiy enum: [gpio8, gpio9, gpio10, gpio11] 198*59f04460SMikhail Kshevetskiy - if: 199*59f04460SMikhail Kshevetskiy properties: 200*59f04460SMikhail Kshevetskiy function: 201*59f04460SMikhail Kshevetskiy const: phy4_led0 202*59f04460SMikhail Kshevetskiy then: 203*59f04460SMikhail Kshevetskiy properties: 204*59f04460SMikhail Kshevetskiy groups: 205*59f04460SMikhail Kshevetskiy enum: [gpio8, gpio9, gpio10, gpio11] 206*59f04460SMikhail Kshevetskiy - if: 207*59f04460SMikhail Kshevetskiy properties: 208*59f04460SMikhail Kshevetskiy function: 209*59f04460SMikhail Kshevetskiy const: phy1_led1 210*59f04460SMikhail Kshevetskiy then: 211*59f04460SMikhail Kshevetskiy properties: 212*59f04460SMikhail Kshevetskiy groups: 213*59f04460SMikhail Kshevetskiy enum: [gpio4, gpio5, gpio6, gpio7] 214*59f04460SMikhail Kshevetskiy - if: 215*59f04460SMikhail Kshevetskiy properties: 216*59f04460SMikhail Kshevetskiy function: 217*59f04460SMikhail Kshevetskiy const: phy2_led1 218*59f04460SMikhail Kshevetskiy then: 219*59f04460SMikhail Kshevetskiy properties: 220*59f04460SMikhail Kshevetskiy groups: 221*59f04460SMikhail Kshevetskiy enum: [gpio4, gpio5, gpio6, gpio7] 222*59f04460SMikhail Kshevetskiy - if: 223*59f04460SMikhail Kshevetskiy properties: 224*59f04460SMikhail Kshevetskiy function: 225*59f04460SMikhail Kshevetskiy const: phy3_led1 226*59f04460SMikhail Kshevetskiy then: 227*59f04460SMikhail Kshevetskiy properties: 228*59f04460SMikhail Kshevetskiy groups: 229*59f04460SMikhail Kshevetskiy enum: [gpio4, gpio5, gpio6, gpio7] 230*59f04460SMikhail Kshevetskiy - if: 231*59f04460SMikhail Kshevetskiy properties: 232*59f04460SMikhail Kshevetskiy function: 233*59f04460SMikhail Kshevetskiy const: phy4_led1 234*59f04460SMikhail Kshevetskiy then: 235*59f04460SMikhail Kshevetskiy properties: 236*59f04460SMikhail Kshevetskiy groups: 237*59f04460SMikhail Kshevetskiy enum: [gpio4, gpio5, gpio6, gpio7] 238*59f04460SMikhail Kshevetskiy 239*59f04460SMikhail Kshevetskiy additionalProperties: false 240*59f04460SMikhail Kshevetskiy 241*59f04460SMikhail Kshevetskiy '^conf(-|$)': 242*59f04460SMikhail Kshevetskiy type: object 243*59f04460SMikhail Kshevetskiy 244*59f04460SMikhail Kshevetskiy description: 245*59f04460SMikhail Kshevetskiy pinconf configuration nodes. 246*59f04460SMikhail Kshevetskiy 247*59f04460SMikhail Kshevetskiy $ref: /schemas/pinctrl/pincfg-node.yaml 248*59f04460SMikhail Kshevetskiy 249*59f04460SMikhail Kshevetskiy properties: 250*59f04460SMikhail Kshevetskiy pins: 251*59f04460SMikhail Kshevetskiy description: 252*59f04460SMikhail Kshevetskiy An array of strings. Each string contains the name of a pin. 253*59f04460SMikhail Kshevetskiy items: 254*59f04460SMikhail Kshevetskiy enum: [gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, gpio7, 255*59f04460SMikhail Kshevetskiy gpio8, gpio9, gpio10, gpio11, gpio12, gpio13, gpio14, 256*59f04460SMikhail Kshevetskiy gpio15, gpio16, gpio17, gpio18, gpio19, gpio20, gpio21, 257*59f04460SMikhail Kshevetskiy gpio22, gpio23, gpio24, gpio25, gpio26, gpio27, 258*59f04460SMikhail Kshevetskiy pcie_reset0, pcie_reset1, i2c_scl, i2c_sda, spi_clk, 259*59f04460SMikhail Kshevetskiy spi_cs, spi_mosi, spi_miso, uart_txd, uart_rxd] 260*59f04460SMikhail Kshevetskiy minItems: 1 261*59f04460SMikhail Kshevetskiy maxItems: 38 262*59f04460SMikhail Kshevetskiy 263*59f04460SMikhail Kshevetskiy bias-disable: true 264*59f04460SMikhail Kshevetskiy 265*59f04460SMikhail Kshevetskiy bias-pull-up: true 266*59f04460SMikhail Kshevetskiy 267*59f04460SMikhail Kshevetskiy bias-pull-down: true 268*59f04460SMikhail Kshevetskiy 269*59f04460SMikhail Kshevetskiy input-enable: true 270*59f04460SMikhail Kshevetskiy 271*59f04460SMikhail Kshevetskiy output-enable: true 272*59f04460SMikhail Kshevetskiy 273*59f04460SMikhail Kshevetskiy output-low: true 274*59f04460SMikhail Kshevetskiy 275*59f04460SMikhail Kshevetskiy output-high: true 276*59f04460SMikhail Kshevetskiy 277*59f04460SMikhail Kshevetskiy drive-open-drain: true 278*59f04460SMikhail Kshevetskiy 279*59f04460SMikhail Kshevetskiy drive-strength: 280*59f04460SMikhail Kshevetskiy description: 281*59f04460SMikhail Kshevetskiy Selects the drive strength for MIO pins, in mA. 282*59f04460SMikhail Kshevetskiy enum: [2, 4, 6, 8] 283*59f04460SMikhail Kshevetskiy 284*59f04460SMikhail Kshevetskiy required: 285*59f04460SMikhail Kshevetskiy - pins 286*59f04460SMikhail Kshevetskiy 287*59f04460SMikhail Kshevetskiy additionalProperties: false 288*59f04460SMikhail Kshevetskiy 289*59f04460SMikhail Kshevetskiy additionalProperties: false 290*59f04460SMikhail Kshevetskiy 291*59f04460SMikhail KshevetskiyadditionalProperties: false 292*59f04460SMikhail Kshevetskiy 293*59f04460SMikhail Kshevetskiyexamples: 294*59f04460SMikhail Kshevetskiy - | 295*59f04460SMikhail Kshevetskiy #include <dt-bindings/interrupt-controller/arm-gic.h> 296*59f04460SMikhail Kshevetskiy 297*59f04460SMikhail Kshevetskiy pinctrl { 298*59f04460SMikhail Kshevetskiy compatible = "airoha,an7563-pinctrl"; 299*59f04460SMikhail Kshevetskiy 300*59f04460SMikhail Kshevetskiy interrupt-parent = <&gic>; 301*59f04460SMikhail Kshevetskiy interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 302*59f04460SMikhail Kshevetskiy 303*59f04460SMikhail Kshevetskiy gpio-controller; 304*59f04460SMikhail Kshevetskiy #gpio-cells = <2>; 305*59f04460SMikhail Kshevetskiy 306*59f04460SMikhail Kshevetskiy interrupt-controller; 307*59f04460SMikhail Kshevetskiy #interrupt-cells = <2>; 308*59f04460SMikhail Kshevetskiy 309*59f04460SMikhail Kshevetskiy gpio-ranges = <&pinctrl 0 0 38>; 310*59f04460SMikhail Kshevetskiy 311*59f04460SMikhail Kshevetskiy pcie1-rst-pins { 312*59f04460SMikhail Kshevetskiy conf { 313*59f04460SMikhail Kshevetskiy pins = "pcie_reset1"; 314*59f04460SMikhail Kshevetskiy drive-open-drain = <1>; 315*59f04460SMikhail Kshevetskiy }; 316*59f04460SMikhail Kshevetskiy }; 317*59f04460SMikhail Kshevetskiy 318*59f04460SMikhail Kshevetskiy pwm-pins { 319*59f04460SMikhail Kshevetskiy mux { 320*59f04460SMikhail Kshevetskiy function = "pwm"; 321*59f04460SMikhail Kshevetskiy groups = "gpio18"; 322*59f04460SMikhail Kshevetskiy }; 323*59f04460SMikhail Kshevetskiy }; 324*59f04460SMikhail Kshevetskiy 325*59f04460SMikhail Kshevetskiy spi-pins { 326*59f04460SMikhail Kshevetskiy mux { 327*59f04460SMikhail Kshevetskiy function = "spi"; 328*59f04460SMikhail Kshevetskiy groups = "spi_quad", "spi_cs1"; 329*59f04460SMikhail Kshevetskiy }; 330*59f04460SMikhail Kshevetskiy }; 331*59f04460SMikhail Kshevetskiy 332*59f04460SMikhail Kshevetskiy hsuart-pins { 333*59f04460SMikhail Kshevetskiy mux { 334*59f04460SMikhail Kshevetskiy function = "uart"; 335*59f04460SMikhail Kshevetskiy groups = "hsuart", "hsuart_cts_rts"; 336*59f04460SMikhail Kshevetskiy }; 337*59f04460SMikhail Kshevetskiy }; 338*59f04460SMikhail Kshevetskiy 339*59f04460SMikhail Kshevetskiy mdio-pins { 340*59f04460SMikhail Kshevetskiy mux { 341*59f04460SMikhail Kshevetskiy function = "mdio"; 342*59f04460SMikhail Kshevetskiy groups = "mdio"; 343*59f04460SMikhail Kshevetskiy }; 344*59f04460SMikhail Kshevetskiy 345*59f04460SMikhail Kshevetskiy conf { 346*59f04460SMikhail Kshevetskiy pins = "gpio2"; 347*59f04460SMikhail Kshevetskiy output-enable; 348*59f04460SMikhail Kshevetskiy }; 349*59f04460SMikhail Kshevetskiy }; 350*59f04460SMikhail Kshevetskiy }; 351