1*c66ec88fSEmmanuel VadotAxis ARTPEC-6 Pin Controller 2*c66ec88fSEmmanuel Vadot 3*c66ec88fSEmmanuel VadotRequired properties: 4*c66ec88fSEmmanuel Vadot- compatible: "axis,artpec6-pinctrl". 5*c66ec88fSEmmanuel Vadot- reg: Should contain the register physical address and length for the pin 6*c66ec88fSEmmanuel Vadot controller. 7*c66ec88fSEmmanuel Vadot 8*c66ec88fSEmmanuel VadotA pinctrl node should contain at least one subnode representing the pinctrl 9*c66ec88fSEmmanuel Vadotgroups available on the machine. Each subnode will list the mux function 10*c66ec88fSEmmanuel Vadotrequired and what pin group it will use. Each subnode will also configure the 11*c66ec88fSEmmanuel Vadotdrive strength and bias pullup of the pin group. If either of these options is 12*c66ec88fSEmmanuel Vadotnot set, its actual value will be unspecified. 13*c66ec88fSEmmanuel Vadot 14*c66ec88fSEmmanuel Vadot 15*c66ec88fSEmmanuel VadotRequired subnode-properties: 16*c66ec88fSEmmanuel Vadot- function: Function to mux. 17*c66ec88fSEmmanuel Vadot- groups: Name of the pin group to use for the function above. 18*c66ec88fSEmmanuel Vadot 19*c66ec88fSEmmanuel Vadot Available functions and groups (function: group0, group1...): 20*c66ec88fSEmmanuel Vadot gpio: cpuclkoutgrp0, udlclkoutgrp0, i2c1grp0, i2c2grp0, 21*c66ec88fSEmmanuel Vadot i2c3grp0, i2s0grp0, i2s1grp0, i2srefclkgrp0, spi0grp0, 22*c66ec88fSEmmanuel Vadot spi1grp0, pciedebuggrp0, uart0grp0, uart0grp1, uart0grp2, 23*c66ec88fSEmmanuel Vadot uart1grp0, uart1grp1, uart2grp0, uart2grp1, uart2grp2, 24*c66ec88fSEmmanuel Vadot uart3grp0, uart4grp0, uart4grp1, uart5grp0, uart5grp1, 25*c66ec88fSEmmanuel Vadot uart5nocts 26*c66ec88fSEmmanuel Vadot cpuclkout: cpuclkoutgrp0 27*c66ec88fSEmmanuel Vadot udlclkout: udlclkoutgrp0 28*c66ec88fSEmmanuel Vadot i2c1: i2c1grp0 29*c66ec88fSEmmanuel Vadot i2c2: i2c2grp0 30*c66ec88fSEmmanuel Vadot i2c3: i2c3grp0 31*c66ec88fSEmmanuel Vadot i2s0: i2s0grp0 32*c66ec88fSEmmanuel Vadot i2s1: i2s1grp0 33*c66ec88fSEmmanuel Vadot i2srefclk: i2srefclkgrp0 34*c66ec88fSEmmanuel Vadot spi0: spi0grp0 35*c66ec88fSEmmanuel Vadot spi1: spi1grp0 36*c66ec88fSEmmanuel Vadot pciedebug: pciedebuggrp0 37*c66ec88fSEmmanuel Vadot uart0: uart0grp0, uart0grp1, uart0grp2 38*c66ec88fSEmmanuel Vadot uart1: uart1grp0, uart1grp1 39*c66ec88fSEmmanuel Vadot uart2: uart2grp0, uart2grp1, uart2grp2 40*c66ec88fSEmmanuel Vadot uart3: uart3grp0 41*c66ec88fSEmmanuel Vadot uart4: uart4grp0, uart4grp1 42*c66ec88fSEmmanuel Vadot uart5: uart5grp0, uart5grp1, uart5nocts 43*c66ec88fSEmmanuel Vadot nand: nandgrp0 44*c66ec88fSEmmanuel Vadot sdio0: sdio0grp0 45*c66ec88fSEmmanuel Vadot sdio1: sdio1grp0 46*c66ec88fSEmmanuel Vadot ethernet: ethernetgrp0 47*c66ec88fSEmmanuel Vadot 48*c66ec88fSEmmanuel Vadot 49*c66ec88fSEmmanuel VadotOptional subnode-properties (see pinctrl-bindings.txt): 50*c66ec88fSEmmanuel Vadot- drive-strength: 4, 6, 8, 9 mA. For SD and NAND pins, this is for 3.3V VCCQ3. 51*c66ec88fSEmmanuel Vadot- bias-pull-up 52*c66ec88fSEmmanuel Vadot- bias-disable 53*c66ec88fSEmmanuel Vadot 54*c66ec88fSEmmanuel VadotExamples: 55*c66ec88fSEmmanuel Vadotpinctrl@f801d000 { 56*c66ec88fSEmmanuel Vadot compatible = "axis,artpec6-pinctrl"; 57*c66ec88fSEmmanuel Vadot reg = <0xf801d000 0x400>; 58*c66ec88fSEmmanuel Vadot 59*c66ec88fSEmmanuel Vadot pinctrl_uart0: uart0grp { 60*c66ec88fSEmmanuel Vadot function = "uart0"; 61*c66ec88fSEmmanuel Vadot groups = "uart0grp0"; 62*c66ec88fSEmmanuel Vadot drive-strength = <4>; 63*c66ec88fSEmmanuel Vadot bias-pull-up; 64*c66ec88fSEmmanuel Vadot }; 65*c66ec88fSEmmanuel Vadot pinctrl_uart3: uart3grp { 66*c66ec88fSEmmanuel Vadot function = "uart3"; 67*c66ec88fSEmmanuel Vadot groups = "uart3grp0"; 68*c66ec88fSEmmanuel Vadot }; 69*c66ec88fSEmmanuel Vadot}; 70*c66ec88fSEmmanuel Vadotuart0: uart@f8036000 { 71*c66ec88fSEmmanuel Vadot compatible = "arm,pl011", "arm,primecell"; 72*c66ec88fSEmmanuel Vadot reg = <0xf8036000 0x1000>; 73*c66ec88fSEmmanuel Vadot interrupts = <0 104 IRQ_TYPE_LEVEL_HIGH>; 74*c66ec88fSEmmanuel Vadot clocks = <&pll2div24>, <&apb_pclk>; 75*c66ec88fSEmmanuel Vadot clock-names = "uart_clk", "apb_pclk"; 76*c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 77*c66ec88fSEmmanuel Vadot pinctrl-0 = <&pinctrl_uart0>; 78*c66ec88fSEmmanuel Vadot}; 79*c66ec88fSEmmanuel Vadotuart3: uart@f8039000 { 80*c66ec88fSEmmanuel Vadot compatible = "arm,pl011", "arm,primecell"; 81*c66ec88fSEmmanuel Vadot reg = <0xf8039000 0x1000>; 82*c66ec88fSEmmanuel Vadot interrupts = <0 128 IRQ_TYPE_LEVEL_HIGH>; 83*c66ec88fSEmmanuel Vadot clocks = <&pll2div24>, <&apb_pclk>; 84*c66ec88fSEmmanuel Vadot clock-names = "uart_clk", "apb_pclk"; 85*c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 86*c66ec88fSEmmanuel Vadot pinctrl-0 = <&pinctrl_uart3>; 87*c66ec88fSEmmanuel Vadot}; 88