xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/brcm,nsp-pinmux.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
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