xref: /linux/Documentation/devicetree/bindings/pinctrl/pinctrl_spear.txt (revision 52130b6033c580c27d968f64cd73209c9609e4e0)
1*52130b60SViresh KumarST Microelectronics, SPEAr pinmux controller
2*52130b60SViresh Kumar
3*52130b60SViresh KumarRequired properties:
4*52130b60SViresh Kumar- compatible	: "st,spear300-pinmux"
5*52130b60SViresh Kumar		: "st,spear310-pinmux"
6*52130b60SViresh Kumar		: "st,spear320-pinmux"
7*52130b60SViresh Kumar- reg		: Address range of the pinctrl registers
8*52130b60SViresh Kumar- st,pinmux-mode: Mandatory for SPEAr300 and SPEAr320 and invalid for others.
9*52130b60SViresh Kumar	- Its values for SPEAr300:
10*52130b60SViresh Kumar		- NAND_MODE		: <0>
11*52130b60SViresh Kumar		- NOR_MODE		: <1>
12*52130b60SViresh Kumar		- PHOTO_FRAME_MODE	: <2>
13*52130b60SViresh Kumar		- LEND_IP_PHONE_MODE	: <3>
14*52130b60SViresh Kumar		- HEND_IP_PHONE_MODE	: <4>
15*52130b60SViresh Kumar		- LEND_WIFI_PHONE_MODE	: <5>
16*52130b60SViresh Kumar		- HEND_WIFI_PHONE_MODE	: <6>
17*52130b60SViresh Kumar		- ATA_PABX_WI2S_MODE	: <7>
18*52130b60SViresh Kumar		- ATA_PABX_I2S_MODE	: <8>
19*52130b60SViresh Kumar		- CAML_LCDW_MODE	: <9>
20*52130b60SViresh Kumar		- CAMU_LCD_MODE		: <10>
21*52130b60SViresh Kumar		- CAMU_WLCD_MODE	: <11>
22*52130b60SViresh Kumar		- CAML_LCD_MODE		: <12>
23*52130b60SViresh Kumar	- Its values for SPEAr320:
24*52130b60SViresh Kumar		- AUTO_NET_SMII_MODE	: <0>
25*52130b60SViresh Kumar		- AUTO_NET_MII_MODE	: <1>
26*52130b60SViresh Kumar		- AUTO_EXP_MODE		: <2>
27*52130b60SViresh Kumar		- SMALL_PRINTERS_MODE	: <3>
28*52130b60SViresh Kumar		- EXTENDED_MODE		: <4>
29*52130b60SViresh Kumar
30*52130b60SViresh KumarPlease refer to pinctrl-bindings.txt in this directory for details of the common
31*52130b60SViresh Kumarpinctrl bindings used by client devices.
32*52130b60SViresh Kumar
33*52130b60SViresh KumarSPEAr's pinmux nodes act as a container for an abitrary number of subnodes. Each
34*52130b60SViresh Kumarof these subnodes represents muxing for a pin, a group, or a list of pins or
35*52130b60SViresh Kumargroups.
36*52130b60SViresh Kumar
37*52130b60SViresh KumarThe name of each subnode is not important; all subnodes should be enumerated
38*52130b60SViresh Kumarand processed purely based on their content.
39*52130b60SViresh Kumar
40*52130b60SViresh KumarRequired subnode-properties:
41*52130b60SViresh Kumar- st,pins : An array of strings. Each string contains the name of a pin or
42*52130b60SViresh Kumar  group.
43*52130b60SViresh Kumar- st,function: A string containing the name of the function to mux to the pin or
44*52130b60SViresh Kumar  group. See the SPEAr's TRM to determine which are valid for each pin or group.
45*52130b60SViresh Kumar
46*52130b60SViresh Kumar  Valid values for group and function names can be found from looking at the
47*52130b60SViresh Kumar  group and function arrays in driver files:
48*52130b60SViresh Kumar  drivers/pinctrl/spear/pinctrl-spear3*0.c
49*52130b60SViresh Kumar
50*52130b60SViresh KumarValid values for group names are:
51*52130b60SViresh KumarFor All SPEAr3xx machines:
52*52130b60SViresh Kumar	"firda_grp", "i2c0_grp", "ssp_cs_grp", "ssp0_grp", "mii0_grp",
53*52130b60SViresh Kumar	"gpio0_pin0_grp", "gpio0_pin1_grp", "gpio0_pin2_grp", "gpio0_pin3_grp",
54*52130b60SViresh Kumar	"gpio0_pin4_grp", "gpio0_pin5_grp", "uart0_ext_grp", "uart0_grp",
55*52130b60SViresh Kumar	"timer_0_1_grp", timer_0_1_pins, "timer_2_3_grp"
56*52130b60SViresh Kumar
57*52130b60SViresh KumarFor SPEAr300 machines:
58*52130b60SViresh Kumar	"fsmc_2chips_grp", "fsmc_4chips_grp", "clcd_lcdmode_grp",
59*52130b60SViresh Kumar	"clcd_pfmode_grp", "tdm_grp", "i2c_clk_grp_grp", "caml_grp", "camu_grp",
60*52130b60SViresh Kumar	"dac_grp", "i2s_grp", "sdhci_4bit_grp", "sdhci_8bit_grp",
61*52130b60SViresh Kumar	"gpio1_0_to_3_grp", "gpio1_4_to_7_grp"
62*52130b60SViresh Kumar
63*52130b60SViresh KumarFor SPEAr310 machines:
64*52130b60SViresh Kumar	"emi_cs_0_to_5_grp", "uart1_grp", "uart2_grp", "uart3_grp", "uart4_grp",
65*52130b60SViresh Kumar	"uart5_grp", "fsmc_grp", "rs485_0_grp", "rs485_1_grp", "tdm_grp"
66*52130b60SViresh Kumar
67*52130b60SViresh KumarFor SPEAr320 machines:
68*52130b60SViresh Kumar	"clcd_grp", "emi_grp", "fsmc_8bit_grp", "fsmc_16bit_grp", "spp_grp",
69*52130b60SViresh Kumar	"sdhci_led_grp", "sdhci_cd_12_grp", "sdhci_cd_51_grp", "i2s_grp",
70*52130b60SViresh Kumar	"uart1_grp", "uart1_modem_2_to_7_grp", "uart1_modem_31_to_36_grp",
71*52130b60SViresh Kumar	"uart1_modem_34_to_45_grp", "uart1_modem_80_to_85_grp", "uart2_grp",
72*52130b60SViresh Kumar	"uart3_8_9_grp", "uart3_15_16_grp", "uart3_41_42_grp",
73*52130b60SViresh Kumar	"uart3_52_53_grp", "uart3_73_74_grp", "uart3_94_95_grp",
74*52130b60SViresh Kumar	"uart3_98_99_grp", "uart4_6_7_grp", "uart4_13_14_grp",
75*52130b60SViresh Kumar	"uart4_39_40_grp", "uart4_71_72_grp", "uart4_92_93_grp",
76*52130b60SViresh Kumar	"uart4_100_101_grp", "uart5_4_5_grp", "uart5_37_38_grp",
77*52130b60SViresh Kumar	"uart5_69_70_grp", "uart5_90_91_grp", "uart6_2_3_grp",
78*52130b60SViresh Kumar	"uart6_88_89_grp", "rs485_grp", "touchscreen_grp", "can0_grp",
79*52130b60SViresh Kumar	"can1_grp", "pwm0_1_pin_8_9_grp", "pwm0_1_pin_14_15_grp",
80*52130b60SViresh Kumar	"pwm0_1_pin_30_31_grp", "pwm0_1_pin_37_38_grp", "pwm0_1_pin_42_43_grp",
81*52130b60SViresh Kumar	"pwm0_1_pin_59_60_grp", "pwm0_1_pin_88_89_grp", "pwm2_pin_7_grp",
82*52130b60SViresh Kumar	"pwm2_pin_13_grp", "pwm2_pin_29_grp", "pwm2_pin_34_grp",
83*52130b60SViresh Kumar	"pwm2_pin_41_grp", "pwm2_pin_58_grp", "pwm2_pin_87_grp",
84*52130b60SViresh Kumar	"pwm3_pin_6_grp", "pwm3_pin_12_grp", "pwm3_pin_28_grp",
85*52130b60SViresh Kumar	"pwm3_pin_40_grp", "pwm3_pin_57_grp", "pwm3_pin_86_grp",
86*52130b60SViresh Kumar	"ssp1_17_20_grp", "ssp1_36_39_grp", "ssp1_48_51_grp", "ssp1_65_68_grp",
87*52130b60SViresh Kumar	"ssp1_94_97_grp", "ssp2_13_16_grp", "ssp2_32_35_grp", "ssp2_44_47_grp",
88*52130b60SViresh Kumar	"ssp2_61_64_grp", "ssp2_90_93_grp", "mii2_grp", "smii0_1_grp",
89*52130b60SViresh Kumar	"rmii0_1_grp", "i2c1_8_9_grp", "i2c1_98_99_grp", "i2c2_0_1_grp",
90*52130b60SViresh Kumar	"i2c2_2_3_grp", "i2c2_19_20_grp", "i2c2_75_76_grp", "i2c2_96_97_grp"
91*52130b60SViresh Kumar
92*52130b60SViresh KumarValid values for function names are:
93*52130b60SViresh KumarFor All SPEAr3xx machines:
94*52130b60SViresh Kumar	"firda", "i2c0", "ssp_cs", "ssp0", "mii0", "gpio0", "uart0_ext",
95*52130b60SViresh Kumar	"uart0", "timer_0_1", "timer_2_3"
96*52130b60SViresh Kumar
97*52130b60SViresh KumarFor SPEAr300 machines:
98*52130b60SViresh Kumar	"fsmc", "clcd", "tdm", "i2c1", "cam", "dac", "i2s", "sdhci", "gpio1"
99*52130b60SViresh Kumar
100*52130b60SViresh KumarFor SPEAr310 machines:
101*52130b60SViresh Kumar	"emi", "uart1", "uart2", "uart3", "uart4", "uart5", "fsmc", "rs485_0",
102*52130b60SViresh Kumar	"rs485_1", "tdm"
103*52130b60SViresh Kumar
104*52130b60SViresh KumarFor SPEAr320 machines:
105*52130b60SViresh Kumar	"clcd", "emi", "fsmc", "spp", "sdhci", "i2s", "uart1", "uart1_modem",
106*52130b60SViresh Kumar	"uart2", "uart3", "uart4", "uart5", "uart6", "rs485", "touchscreen",
107*52130b60SViresh Kumar	"can0", "can1", "pwm0_1", "pwm2", "pwm3", "ssp1", "ssp2", "mii2",
108*52130b60SViresh Kumar	"mii0_1", "i2c1", "i2c2"
109