18c2ecf20Sopenharmony_ciBroadcom NSP (Northstar plus) IOMUX Controller
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciThe NSP IOMUX controller supports group based mux configuration. In
48c2ecf20Sopenharmony_ciaddition, certain pins can be muxed to GPIO function individually.
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ciRequired properties:
78c2ecf20Sopenharmony_ci- compatible:
88c2ecf20Sopenharmony_ci    Must be "brcm,nsp-pinmux"
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci- reg:
118c2ecf20Sopenharmony_ci    Should contain the register physical address and length for each of
128c2ecf20Sopenharmony_ci    GPIO_CONTROL0, GP_AUX_SEL and IPROC_CONFIG IOMUX registers
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ciProperties in subnodes:
158c2ecf20Sopenharmony_ci- function:
168c2ecf20Sopenharmony_ci    The mux function to select
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci- groups:
198c2ecf20Sopenharmony_ci    The list of groups to select with a given function
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciFor more details, refer to
228c2ecf20Sopenharmony_ciDocumentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciFor example:
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci	pinmux: pinmux@1803f1c0 {
278c2ecf20Sopenharmony_ci		compatible = "brcm,nsp-pinmux";
288c2ecf20Sopenharmony_ci		reg = <0x1803f1c0 0x04>,
298c2ecf20Sopenharmony_ci		      <0x18030028 0x04>,
308c2ecf20Sopenharmony_ci		      <0x1803f408 0x04>;
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci		pinctrl-names = "default";
338c2ecf20Sopenharmony_ci		pinctrl-0 = <&pwm &gpio_b &nand_sel>;
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci		pwm: pwm {
368c2ecf20Sopenharmony_ci			function = "pwm";
378c2ecf20Sopenharmony_ci			groups = "pwm0_grp", "pwm1_grp";
388c2ecf20Sopenharmony_ci		};
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci		gpio_b: gpio_b {
418c2ecf20Sopenharmony_ci			function = "gpio_b";
428c2ecf20Sopenharmony_ci			groups = "gpio_b_0_grp", "gpio_b_1_grp";
438c2ecf20Sopenharmony_ci		};
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci		nand_sel: nand_sel {
468c2ecf20Sopenharmony_ci			function = "nand";
478c2ecf20Sopenharmony_ci			groups = "nand_grp";
488c2ecf20Sopenharmony_ci		};
498c2ecf20Sopenharmony_ci	};
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ciList of supported functions and groups in Northstar Plus:
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci"spi": "spi_grp"
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci"i2c": "i2c_grp"
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci"mdio": "mdio_grp"
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci"pwm": "pwm0_grp", "pwm1_grp", "pwm2_grp", "pwm3_grp"
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci"gpio_b": "gpio_b_0_grp", "gpio_b_1_grp", "gpio_b_2_grp", "gpio_b_3_grp"
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci"uart1": "uart1_grp"
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci"uart2": "uart2_grp"
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci"synce": "synce_grp"
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci"sata_led_grps": "sata0_led_grp", "sata1_led_grp"
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci"xtal_out": "xtal_out_grp"
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ci"sdio": "sdio_pwr_grp", "sdio_1p8v_grp"
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci"switch_led": "switch_p05_led0_grp", "switch_p05_led1_grp"
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ci"nand": "nand_grp"
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ci"emmc": "emmc_grp"
80