GNU Linux-libre 4.9.332-gnu1
[releases.git] / Documentation / devicetree / bindings / pinctrl / pinctrl_spear.txt
1 ST Microelectronics, SPEAr pinmux controller
2
3 Required properties:
4 - compatible    : "st,spear300-pinmux"
5                 : "st,spear310-pinmux"
6                 : "st,spear320-pinmux"
7                 : "st,spear1310-pinmux"
8                 : "st,spear1340-pinmux"
9 - reg           : Address range of the pinctrl registers
10 - st,pinmux-mode: Mandatory for SPEAr300 and SPEAr320 and invalid for others.
11         - Its values for SPEAr300:
12                 - NAND_MODE             : <0>
13                 - NOR_MODE              : <1>
14                 - PHOTO_FRAME_MODE      : <2>
15                 - LEND_IP_PHONE_MODE    : <3>
16                 - HEND_IP_PHONE_MODE    : <4>
17                 - LEND_WIFI_PHONE_MODE  : <5>
18                 - HEND_WIFI_PHONE_MODE  : <6>
19                 - ATA_PABX_WI2S_MODE    : <7>
20                 - ATA_PABX_I2S_MODE     : <8>
21                 - CAML_LCDW_MODE        : <9>
22                 - CAMU_LCD_MODE         : <10>
23                 - CAMU_WLCD_MODE        : <11>
24                 - CAML_LCD_MODE         : <12>
25         - Its values for SPEAr320:
26                 - AUTO_NET_SMII_MODE    : <0>
27                 - AUTO_NET_MII_MODE     : <1>
28                 - AUTO_EXP_MODE         : <2>
29                 - SMALL_PRINTERS_MODE   : <3>
30                 - EXTENDED_MODE         : <4>
31
32 Please refer to pinctrl-bindings.txt in this directory for details of the common
33 pinctrl bindings used by client devices.
34
35 SPEAr's pinmux nodes act as a container for an arbitrary number of subnodes. Each
36 of these subnodes represents muxing for a pin, a group, or a list of pins or
37 groups.
38
39 The name of each subnode is not important; all subnodes should be enumerated
40 and processed purely based on their content.
41
42 Required subnode-properties:
43 - st,pins : An array of strings. Each string contains the name of a pin or
44   group.
45 - st,function: A string containing the name of the function to mux to the pin or
46   group. See the SPEAr's TRM to determine which are valid for each pin or group.
47
48   Valid values for group and function names can be found from looking at the
49   group and function arrays in driver files:
50   drivers/pinctrl/spear/pinctrl-spear3*0.c
51
52 Valid values for group names are:
53 For All SPEAr3xx machines:
54         "firda_grp", "i2c0_grp", "ssp_cs_grp", "ssp0_grp", "mii0_grp",
55         "gpio0_pin0_grp", "gpio0_pin1_grp", "gpio0_pin2_grp", "gpio0_pin3_grp",
56         "gpio0_pin4_grp", "gpio0_pin5_grp", "uart0_ext_grp", "uart0_grp",
57         "timer_0_1_grp", timer_0_1_pins, "timer_2_3_grp"
58
59 For SPEAr300 machines:
60         "fsmc_2chips_grp", "fsmc_4chips_grp", "clcd_lcdmode_grp",
61         "clcd_pfmode_grp", "tdm_grp", "i2c_clk_grp_grp", "caml_grp", "camu_grp",
62         "dac_grp", "i2s_grp", "sdhci_4bit_grp", "sdhci_8bit_grp",
63         "gpio1_0_to_3_grp", "gpio1_4_to_7_grp"
64
65 For SPEAr310 machines:
66         "emi_cs_0_to_5_grp", "uart1_grp", "uart2_grp", "uart3_grp", "uart4_grp",
67         "uart5_grp", "fsmc_grp", "rs485_0_grp", "rs485_1_grp", "tdm_grp"
68
69 For SPEAr320 machines:
70         "clcd_grp", "emi_grp", "fsmc_8bit_grp", "fsmc_16bit_grp", "spp_grp",
71         "sdhci_led_grp", "sdhci_cd_12_grp", "sdhci_cd_51_grp", "i2s_grp",
72         "uart1_grp", "uart1_modem_2_to_7_grp", "uart1_modem_31_to_36_grp",
73         "uart1_modem_34_to_45_grp", "uart1_modem_80_to_85_grp", "uart2_grp",
74         "uart3_8_9_grp", "uart3_15_16_grp", "uart3_41_42_grp",
75         "uart3_52_53_grp", "uart3_73_74_grp", "uart3_94_95_grp",
76         "uart3_98_99_grp", "uart4_6_7_grp", "uart4_13_14_grp",
77         "uart4_39_40_grp", "uart4_71_72_grp", "uart4_92_93_grp",
78         "uart4_100_101_grp", "uart5_4_5_grp", "uart5_37_38_grp",
79         "uart5_69_70_grp", "uart5_90_91_grp", "uart6_2_3_grp",
80         "uart6_88_89_grp", "rs485_grp", "touchscreen_grp", "can0_grp",
81         "can1_grp", "pwm0_1_pin_8_9_grp", "pwm0_1_pin_14_15_grp",
82         "pwm0_1_pin_30_31_grp", "pwm0_1_pin_37_38_grp", "pwm0_1_pin_42_43_grp",
83         "pwm0_1_pin_59_60_grp", "pwm0_1_pin_88_89_grp", "pwm2_pin_7_grp",
84         "pwm2_pin_13_grp", "pwm2_pin_29_grp", "pwm2_pin_34_grp",
85         "pwm2_pin_41_grp", "pwm2_pin_58_grp", "pwm2_pin_87_grp",
86         "pwm3_pin_6_grp", "pwm3_pin_12_grp", "pwm3_pin_28_grp",
87         "pwm3_pin_40_grp", "pwm3_pin_57_grp", "pwm3_pin_86_grp",
88         "ssp1_17_20_grp", "ssp1_36_39_grp", "ssp1_48_51_grp", "ssp1_65_68_grp",
89         "ssp1_94_97_grp", "ssp2_13_16_grp", "ssp2_32_35_grp", "ssp2_44_47_grp",
90         "ssp2_61_64_grp", "ssp2_90_93_grp", "mii2_grp", "smii0_1_grp",
91         "rmii0_1_grp", "i2c1_8_9_grp", "i2c1_98_99_grp", "i2c2_0_1_grp",
92         "i2c2_2_3_grp", "i2c2_19_20_grp", "i2c2_75_76_grp", "i2c2_96_97_grp"
93
94 For SPEAr1310 machines:
95         "i2c0_grp", "ssp0_grp", "ssp0_cs0_grp", "ssp0_cs1_2_grp", "i2s0_grp",
96         "i2s1_grp", "clcd_grp", "clcd_high_res_grp", "arm_gpio_grp",
97         "smi_2_chips_grp", "smi_4_chips_grp", "gmii_grp", "rgmii_grp",
98         "smii_0_1_2_grp", "ras_mii_txclk_grp", "nand_8bit_grp",
99         "nand_16bit_grp", "nand_4_chips_grp", "keyboard_6x6_grp",
100         "keyboard_rowcol6_8_grp", "uart0_grp", "uart0_modem_grp",
101         "gpt0_tmr0_grp", "gpt0_tmr1_grp", "gpt1_tmr0_grp", "gpt1_tmr1_grp",
102         "sdhci_grp", "cf_grp", "xd_grp", "touch_xy_grp",
103         "uart1_disable_i2c_grp", "uart1_disable_sd_grp", "uart2_3_grp",
104         "uart4_grp", "uart5_grp", "rs485_0_1_tdm_0_1_grp", "i2c_1_2_grp",
105         "i2c3_dis_smi_clcd_grp", "i2c3_dis_sd_i2s0_grp", "i2c_4_5_dis_smi_grp",
106         "i2c4_dis_sd_grp", "i2c5_dis_sd_grp", "i2c_6_7_dis_kbd_grp",
107         "i2c6_dis_sd_grp", "i2c7_dis_sd_grp", "can0_dis_nor_grp",
108         "can0_dis_sd_grp", "can1_dis_sd_grp", "can1_dis_kbd_grp", "pcie0_grp",
109         "pcie1_grp", "pcie2_grp", "sata0_grp", "sata1_grp", "sata2_grp",
110         "ssp1_dis_kbd_grp", "ssp1_dis_sd_grp", "gpt64_grp"
111
112 For SPEAr1340 machines:
113         "pads_as_gpio_grp", "fsmc_8bit_grp", "fsmc_16bit_grp", "fsmc_pnor_grp",
114         "keyboard_row_col_grp", "keyboard_col5_grp", "spdif_in_grp",
115         "spdif_out_grp", "gpt_0_1_grp", "pwm0_grp", "pwm1_grp", "pwm2_grp",
116         "pwm3_grp", "vip_mux_grp", "vip_mux_cam0_grp", "vip_mux_cam1_grp",
117         "vip_mux_cam2_grp", "vip_mux_cam3_grp", "cam0_grp", "cam1_grp",
118         "cam2_grp", "cam3_grp", "smi_grp", "ssp0_grp", "ssp0_cs1_grp",
119         "ssp0_cs2_grp", "ssp0_cs3_grp", "uart0_grp", "uart0_enh_grp",
120         "uart1_grp", "i2s_in_grp", "i2s_out_grp", "gmii_grp", "rgmii_grp",
121         "rmii_grp", "sgmii_grp", "i2c0_grp", "i2c1_grp", "cec0_grp", "cec1_grp",
122         "sdhci_grp", "cf_grp", "xd_grp", "clcd_grp", "arm_trace_grp",
123         "miphy_dbg_grp", "pcie_grp", "sata_grp"
124
125 Valid values for function names are:
126 For All SPEAr3xx machines:
127         "firda", "i2c0", "ssp_cs", "ssp0", "mii0", "gpio0", "uart0_ext",
128         "uart0", "timer_0_1", "timer_2_3"
129
130 For SPEAr300 machines:
131         "fsmc", "clcd", "tdm", "i2c1", "cam", "dac", "i2s", "sdhci", "gpio1"
132
133 For SPEAr310 machines:
134         "emi", "uart1", "uart2", "uart3", "uart4", "uart5", "fsmc", "rs485_0",
135         "rs485_1", "tdm"
136
137 For SPEAr320 machines:
138         "clcd", "emi", "fsmc", "spp", "sdhci", "i2s", "uart1", "uart1_modem",
139         "uart2", "uart3", "uart4", "uart5", "uart6", "rs485", "touchscreen",
140         "can0", "can1", "pwm0_1", "pwm2", "pwm3", "ssp1", "ssp2", "mii2",
141         "mii0_1", "i2c1", "i2c2"
142
143
144 For SPEAr1310 machines:
145         "i2c0", "ssp0", "i2s0", "i2s1", "clcd", "arm_gpio", "smi", "gmii",
146         "rgmii", "smii_0_1_2", "ras_mii_txclk", "nand", "keyboard", "uart0",
147         "gpt0", "gpt1", "sdhci", "cf", "xd", "touchscreen", "uart1", "uart2_3",
148         "uart4", "uart5", "rs485_0_1_tdm_0_1", "i2c_1_2", "i2c3_i2s1",
149         "i2c_4_5", "i2c_6_7", "can0", "can1", "pci", "sata", "ssp1", "gpt64"
150
151 For SPEAr1340 machines:
152         "pads_as_gpio", "fsmc", "keyboard", "spdif_in", "spdif_out", "gpt_0_1",
153         "pwm", "vip", "cam0", "cam1", "cam2", "cam3", "smi", "ssp0", "uart0",
154         "uart1", "i2s", "gmac", "i2c0", "i2c1", "cec0", "cec1", "sdhci", "cf",
155         "xd", "clcd", "arm_trace", "miphy_dbg", "pcie", "sata"