14 #include <linux/module.h>
19 #define DRIVER_NAME "spear310-pinmux"
22 #define PMX_CONFIG_REG 0x08
25 static const unsigned emi_cs_0_to_5_pins[] = { 45, 46, 47, 48, 49, 50 };
36 .muxregs = emi_cs_0_to_5_muxreg,
42 .name =
"emi_cs_0_to_5_grp",
43 .pins = emi_cs_0_to_5_pins,
45 .modemuxs = emi_cs_0_to_5_modemux,
46 .nmodemuxs =
ARRAY_SIZE(emi_cs_0_to_5_modemux),
49 static const char *
const emi_cs_0_to_5_grps[] = {
"emi_cs_0_to_5_grp" };
52 .groups = emi_cs_0_to_5_grps,
57 static const unsigned uart1_pins[] = { 0, 1 };
68 .muxregs = uart1_muxreg,
77 .modemuxs = uart1_modemux,
81 static const char *
const uart1_grps[] = {
"uart1_grp" };
89 static const unsigned uart2_pins[] = { 43, 44 };
100 .muxregs = uart2_muxreg,
109 .modemuxs = uart2_modemux,
113 static const char *
const uart2_grps[] = {
"uart2_grp" };
116 .groups = uart2_grps,
121 static const unsigned uart3_pins[] = { 37, 38 };
132 .muxregs = uart3_muxreg,
141 .modemuxs = uart3_modemux,
145 static const char *
const uart3_grps[] = {
"uart3_grp" };
148 .groups = uart3_grps,
153 static const unsigned uart4_pins[] = { 39, 40 };
164 .muxregs = uart4_muxreg,
173 .modemuxs = uart4_modemux,
177 static const char *
const uart4_grps[] = {
"uart4_grp" };
180 .groups = uart4_grps,
185 static const unsigned uart5_pins[] = { 41, 42 };
196 .muxregs = uart5_muxreg,
205 .modemuxs = uart5_modemux,
209 static const char *
const uart5_grps[] = {
"uart5_grp" };
212 .groups = uart5_grps,
217 static const unsigned fsmc_pins[] = { 34, 35, 36 };
228 .muxregs = fsmc_muxreg,
237 .modemuxs = fsmc_modemux,
241 static const char *
const fsmc_grps[] = {
"fsmc_grp" };
249 static const unsigned rs485_0_pins[] = { 19, 20, 21, 22, 23 };
260 .muxregs = rs485_0_muxreg,
266 .name =
"rs485_0_grp",
267 .pins = rs485_0_pins,
269 .modemuxs = rs485_0_modemux,
273 static const char *
const rs485_0_grps[] = {
"rs485_0" };
276 .groups = rs485_0_grps,
281 static const unsigned rs485_1_pins[] = { 14, 15, 16, 17, 18 };
292 .muxregs = rs485_1_muxreg,
298 .name =
"rs485_1_grp",
299 .pins = rs485_1_pins,
301 .modemuxs = rs485_1_modemux,
305 static const char *
const rs485_1_grps[] = {
"rs485_1" };
308 .groups = rs485_1_grps,
313 static const unsigned tdm_pins[] = { 10, 11, 12, 13 };
324 .muxregs = tdm_muxreg,
333 .modemuxs = tdm_modemux,
337 static const char *
const tdm_grps[] = {
"tdm_grp" };
347 &emi_cs_0_to_5_pingroup,
362 &emi_cs_0_to_5_function,
376 .compatible =
"st,spear310-pinmux",
410 .of_match_table = spear310_pinctrl_of_match,
412 .probe = spear310_pinctrl_probe,
416 static int __init spear310_pinctrl_init(
void)
422 static void __exit spear310_pinctrl_exit(
void)