1*c66ec88fSEmmanuel VadotBroadcom NSP (Northstar plus) IOMUX Controller 2*c66ec88fSEmmanuel Vadot 3*c66ec88fSEmmanuel VadotThe NSP 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- compatible: 8*c66ec88fSEmmanuel Vadot Must be "brcm,nsp-pinmux" 9*c66ec88fSEmmanuel Vadot 10*c66ec88fSEmmanuel Vadot- reg: 11*c66ec88fSEmmanuel Vadot Should contain the register physical address and length for each of 12*c66ec88fSEmmanuel Vadot GPIO_CONTROL0, GP_AUX_SEL and IPROC_CONFIG IOMUX registers 13*c66ec88fSEmmanuel Vadot 14*c66ec88fSEmmanuel VadotProperties in subnodes: 15*c66ec88fSEmmanuel Vadot- function: 16*c66ec88fSEmmanuel Vadot The mux function to select 17*c66ec88fSEmmanuel Vadot 18*c66ec88fSEmmanuel Vadot- groups: 19*c66ec88fSEmmanuel Vadot The list of groups to select with a given function 20*c66ec88fSEmmanuel Vadot 21*c66ec88fSEmmanuel VadotFor more details, refer to 22*c66ec88fSEmmanuel VadotDocumentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt 23*c66ec88fSEmmanuel Vadot 24*c66ec88fSEmmanuel VadotFor example: 25*c66ec88fSEmmanuel Vadot 26*c66ec88fSEmmanuel Vadot pinmux: pinmux@1803f1c0 { 27*c66ec88fSEmmanuel Vadot compatible = "brcm,nsp-pinmux"; 28*c66ec88fSEmmanuel Vadot reg = <0x1803f1c0 0x04>, 29*c66ec88fSEmmanuel Vadot <0x18030028 0x04>, 30*c66ec88fSEmmanuel Vadot <0x1803f408 0x04>; 31*c66ec88fSEmmanuel Vadot 32*c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 33*c66ec88fSEmmanuel Vadot pinctrl-0 = <&pwm &gpio_b &nand_sel>; 34*c66ec88fSEmmanuel Vadot 35*c66ec88fSEmmanuel Vadot pwm: pwm { 36*c66ec88fSEmmanuel Vadot function = "pwm"; 37*c66ec88fSEmmanuel Vadot groups = "pwm0_grp", "pwm1_grp"; 38*c66ec88fSEmmanuel Vadot }; 39*c66ec88fSEmmanuel Vadot 40*c66ec88fSEmmanuel Vadot gpio_b: gpio_b { 41*c66ec88fSEmmanuel Vadot function = "gpio_b"; 42*c66ec88fSEmmanuel Vadot groups = "gpio_b_0_grp", "gpio_b_1_grp"; 43*c66ec88fSEmmanuel Vadot }; 44*c66ec88fSEmmanuel Vadot 45*c66ec88fSEmmanuel Vadot nand_sel: nand_sel { 46*c66ec88fSEmmanuel Vadot function = "nand"; 47*c66ec88fSEmmanuel Vadot groups = "nand_grp"; 48*c66ec88fSEmmanuel Vadot }; 49*c66ec88fSEmmanuel Vadot }; 50*c66ec88fSEmmanuel Vadot 51*c66ec88fSEmmanuel VadotList of supported functions and groups in Northstar Plus: 52*c66ec88fSEmmanuel Vadot 53*c66ec88fSEmmanuel Vadot"spi": "spi_grp" 54*c66ec88fSEmmanuel Vadot 55*c66ec88fSEmmanuel Vadot"i2c": "i2c_grp" 56*c66ec88fSEmmanuel Vadot 57*c66ec88fSEmmanuel Vadot"mdio": "mdio_grp" 58*c66ec88fSEmmanuel Vadot 59*c66ec88fSEmmanuel Vadot"pwm": "pwm0_grp", "pwm1_grp", "pwm2_grp", "pwm3_grp" 60*c66ec88fSEmmanuel Vadot 61*c66ec88fSEmmanuel Vadot"gpio_b": "gpio_b_0_grp", "gpio_b_1_grp", "gpio_b_2_grp", "gpio_b_3_grp" 62*c66ec88fSEmmanuel Vadot 63*c66ec88fSEmmanuel Vadot"uart1": "uart1_grp" 64*c66ec88fSEmmanuel Vadot 65*c66ec88fSEmmanuel Vadot"uart2": "uart2_grp" 66*c66ec88fSEmmanuel Vadot 67*c66ec88fSEmmanuel Vadot"synce": "synce_grp" 68*c66ec88fSEmmanuel Vadot 69*c66ec88fSEmmanuel Vadot"sata_led_grps": "sata0_led_grp", "sata1_led_grp" 70*c66ec88fSEmmanuel Vadot 71*c66ec88fSEmmanuel Vadot"xtal_out": "xtal_out_grp" 72*c66ec88fSEmmanuel Vadot 73*c66ec88fSEmmanuel Vadot"sdio": "sdio_pwr_grp", "sdio_1p8v_grp" 74*c66ec88fSEmmanuel Vadot 75*c66ec88fSEmmanuel Vadot"switch_led": "switch_p05_led0_grp", "switch_p05_led1_grp" 76*c66ec88fSEmmanuel Vadot 77*c66ec88fSEmmanuel Vadot"nand": "nand_grp" 78*c66ec88fSEmmanuel Vadot 79*c66ec88fSEmmanuel Vadot"emmc": "emmc_grp" 80