1*c66ec88fSEmmanuel VadotBroadcom Cygnus IOMUX Controller 2*c66ec88fSEmmanuel Vadot 3*c66ec88fSEmmanuel VadotThe Cygnus IOMUX controller supports group based mux configuration. In 4*c66ec88fSEmmanuel Vadotaddition, certain pins can be muxed to GPIO function individually. 5*c66ec88fSEmmanuel Vadot 6*c66ec88fSEmmanuel VadotRequired properties: 7*c66ec88fSEmmanuel Vadot 8*c66ec88fSEmmanuel Vadot- compatible: 9*c66ec88fSEmmanuel Vadot Must be "brcm,cygnus-pinmux" 10*c66ec88fSEmmanuel Vadot 11*c66ec88fSEmmanuel Vadot- reg: 12*c66ec88fSEmmanuel Vadot Define the base and range of the I/O address space that contains the Cygnus 13*c66ec88fSEmmanuel VadotIOMUX registers 14*c66ec88fSEmmanuel Vadot 15*c66ec88fSEmmanuel VadotProperties in subnodes: 16*c66ec88fSEmmanuel Vadot 17*c66ec88fSEmmanuel Vadot- function: 18*c66ec88fSEmmanuel Vadot The mux function to select 19*c66ec88fSEmmanuel Vadot 20*c66ec88fSEmmanuel Vadot- groups: 21*c66ec88fSEmmanuel Vadot The list of groups to select with a given function 22*c66ec88fSEmmanuel Vadot 23*c66ec88fSEmmanuel VadotFor more details, refer to 24*c66ec88fSEmmanuel VadotDocumentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt 25*c66ec88fSEmmanuel Vadot 26*c66ec88fSEmmanuel VadotFor example: 27*c66ec88fSEmmanuel Vadot 28*c66ec88fSEmmanuel Vadot pinmux: pinmux@0301d0c8 { 29*c66ec88fSEmmanuel Vadot compatible = "brcm,cygnus-pinmux"; 30*c66ec88fSEmmanuel Vadot reg = <0x0301d0c8 0x1b0>; 31*c66ec88fSEmmanuel Vadot 32*c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 33*c66ec88fSEmmanuel Vadot pinctrl-0 = <&i2s0_default>; 34*c66ec88fSEmmanuel Vadot 35*c66ec88fSEmmanuel Vadot i2s0_default: i2s0_default { 36*c66ec88fSEmmanuel Vadot mux { 37*c66ec88fSEmmanuel Vadot function = "i2s0"; 38*c66ec88fSEmmanuel Vadot groups = "i2s0_0_grp", "i2s0_1_grp"; 39*c66ec88fSEmmanuel Vadot }; 40*c66ec88fSEmmanuel Vadot }; 41*c66ec88fSEmmanuel Vadot }; 42*c66ec88fSEmmanuel Vadot 43*c66ec88fSEmmanuel VadotList of supported functions and groups in Cygnus: 44*c66ec88fSEmmanuel Vadot 45*c66ec88fSEmmanuel Vadot"i2s0": "i2s0_0_grp", "i2s0_1_grp" 46*c66ec88fSEmmanuel Vadot 47*c66ec88fSEmmanuel Vadot"i2s1": "i2s1_0_grp", "i2s1_1_grp" 48*c66ec88fSEmmanuel Vadot 49*c66ec88fSEmmanuel Vadot"i2s2": "i2s2_0_grp", "i2s2_1_grp", "i2s2_2_grp", "i2s2_3_grp", "i2s2_4_grp" 50*c66ec88fSEmmanuel Vadot 51*c66ec88fSEmmanuel Vadot"spdif": "spdif_grp" 52*c66ec88fSEmmanuel Vadot 53*c66ec88fSEmmanuel Vadot"pwm0": "pwm0_grp" 54*c66ec88fSEmmanuel Vadot 55*c66ec88fSEmmanuel Vadot"pwm1": "pwm1_grp" 56*c66ec88fSEmmanuel Vadot 57*c66ec88fSEmmanuel Vadot"pwm2": "pwm2_grp" 58*c66ec88fSEmmanuel Vadot 59*c66ec88fSEmmanuel Vadot"pwm3": "pwm3_grp" 60*c66ec88fSEmmanuel Vadot 61*c66ec88fSEmmanuel Vadot"pwm4": "pwm4_grp" 62*c66ec88fSEmmanuel Vadot 63*c66ec88fSEmmanuel Vadot"pwm5": "pwm5_grp" 64*c66ec88fSEmmanuel Vadot 65*c66ec88fSEmmanuel Vadot"key": "key0_grp", "key1_grp", "key2_grp", "key3_grp", "key4_grp", "key5_grp", 66*c66ec88fSEmmanuel Vadot"key6_grp", "key7_grp", "key8_grp", "key9_grp", "key10_grp", "key11_grp", 67*c66ec88fSEmmanuel Vadot"key12_grp", "key13_grp", "key14_grp", "key15_grp" 68*c66ec88fSEmmanuel Vadot 69*c66ec88fSEmmanuel Vadot"audio_dte": "audio_dte0_grp", "audio_dte1_grp", "audio_dte2_grp", "audio_dte3_grp" 70*c66ec88fSEmmanuel Vadot 71*c66ec88fSEmmanuel Vadot"smart_card0": "smart_card0_grp", "smart_card0_fcb_grp" 72*c66ec88fSEmmanuel Vadot 73*c66ec88fSEmmanuel Vadot"smart_card1": "smart_card1_grp", "smart_card1_fcb_grp" 74*c66ec88fSEmmanuel Vadot 75*c66ec88fSEmmanuel Vadot"spi0": "spi0_grp" 76*c66ec88fSEmmanuel Vadot 77*c66ec88fSEmmanuel Vadot"spi1": "spi1_grp" 78*c66ec88fSEmmanuel Vadot 79*c66ec88fSEmmanuel Vadot"spi2": "spi2_grp" 80*c66ec88fSEmmanuel Vadot 81*c66ec88fSEmmanuel Vadot"spi3": "spi3_grp" 82*c66ec88fSEmmanuel Vadot 83*c66ec88fSEmmanuel Vadot"spi4": "spi4_0_grp", "spi4_1_grp" 84*c66ec88fSEmmanuel Vadot 85*c66ec88fSEmmanuel Vadot"spi5": "spi5_grp" 86*c66ec88fSEmmanuel Vadot 87*c66ec88fSEmmanuel Vadot"sw_led0": "sw_led0_0_grp", "sw_led0_1_grp" 88*c66ec88fSEmmanuel Vadot 89*c66ec88fSEmmanuel Vadot"sw_led1": "sw_led1_grp" 90*c66ec88fSEmmanuel Vadot 91*c66ec88fSEmmanuel Vadot"sw_led2": "sw_led2_0_grp", "sw_led2_1_grp" 92*c66ec88fSEmmanuel Vadot 93*c66ec88fSEmmanuel Vadot"d1w": "d1w_grp" 94*c66ec88fSEmmanuel Vadot 95*c66ec88fSEmmanuel Vadot"lcd": "lcd_grp" 96*c66ec88fSEmmanuel Vadot 97*c66ec88fSEmmanuel Vadot"sram": "sram_0_grp", "sram_1_grp" 98*c66ec88fSEmmanuel Vadot 99*c66ec88fSEmmanuel Vadot"uart0": "uart0_grp" 100*c66ec88fSEmmanuel Vadot 101*c66ec88fSEmmanuel Vadot"uart1": "uart1_grp", "uart1_dte_grp" 102*c66ec88fSEmmanuel Vadot 103*c66ec88fSEmmanuel Vadot"uart2": "uart2_grp" 104*c66ec88fSEmmanuel Vadot 105*c66ec88fSEmmanuel Vadot"uart3": "uart3_grp" 106*c66ec88fSEmmanuel Vadot 107*c66ec88fSEmmanuel Vadot"uart4": "uart4_grp" 108*c66ec88fSEmmanuel Vadot 109*c66ec88fSEmmanuel Vadot"qspi": "qspi_0_grp", "qspi_1_grp" 110*c66ec88fSEmmanuel Vadot 111*c66ec88fSEmmanuel Vadot"nand": "nand_grp" 112*c66ec88fSEmmanuel Vadot 113*c66ec88fSEmmanuel Vadot"sdio0": "sdio0_grp", "sdio0_cd_grp", "sdio0_mmc_grp" 114*c66ec88fSEmmanuel Vadot 115*c66ec88fSEmmanuel Vadot"sdio1": "sdio1_data_0_grp", "sdio1_data_1_grp", "sdio1_cd_grp", 116*c66ec88fSEmmanuel Vadot"sdio1_led_grp", "sdio1_mmc_grp" 117*c66ec88fSEmmanuel Vadot 118*c66ec88fSEmmanuel Vadot"can0": "can0_grp" 119*c66ec88fSEmmanuel Vadot 120*c66ec88fSEmmanuel Vadot"can1": "can1_grp" 121*c66ec88fSEmmanuel Vadot 122*c66ec88fSEmmanuel Vadot"cam": "cam_led_grp", "cam_0_grp", "cam_1_grp" 123*c66ec88fSEmmanuel Vadot 124*c66ec88fSEmmanuel Vadot"bsc1": "bsc1_grp" 125*c66ec88fSEmmanuel Vadot 126*c66ec88fSEmmanuel Vadot"pcie_clkreq": "pcie_clkreq_grp" 127*c66ec88fSEmmanuel Vadot 128*c66ec88fSEmmanuel Vadot"usb0_oc": "usb0_oc_grp" 129*c66ec88fSEmmanuel Vadot 130*c66ec88fSEmmanuel Vadot"usb1_oc": "usb1_oc_grp" 131*c66ec88fSEmmanuel Vadot 132*c66ec88fSEmmanuel Vadot"usb2_oc": "usb2_oc_grp" 133