11 #include <linux/kernel.h>
50 static void dove_mpp_gpio_mode(
int start,
int end,
int gpio_mode)
54 for (i = start; i <=
end; i++)
60 static void __init dove_mpp_dump_regs(
void)
65 pr_debug(
"PMU_MPP_GENERAL_CTRL: %08x\n",
71 static void __init dove_mpp_cfg_nfc(
int sel)
82 static void __init dove_mpp_cfg_au1(
int sel)
94 if (!sel || sel == 0x2)
95 dove_mpp_gpio_mode(52, 57, 0);
101 dove_mpp_gpio_mode(56, 57, 0);
109 dove_mpp_gpio_mode(52, 55, 0);
122 static void __init dove_mpp_conf_grp(
unsigned int *mpp_grp_list)
127 for ( ; *mpp_grp_list; mpp_grp_list++) {
129 unsigned int sel =
MPP_SEL(*mpp_grp_list);
132 pr_err(
"dove: invalid MPP GRP number (%u)\n", num);
136 mpp_ctrl4 &= ~(0x1 << num);
137 mpp_ctrl4 |= sel << num;
140 dove_mpp_gpio_mode(dove_mpp_grp[num].start,
141 dove_mpp_grp[num].end, gpio_mode);
148 unsigned int *mpp_grp_list,
149 unsigned int grp_au1_52_57,
150 unsigned int grp_nfc_64_71)
152 dove_mpp_dump_regs();
157 dove_mpp_conf_grp(mpp_grp_list);
158 dove_mpp_cfg_au1(grp_au1_52_57);
159 dove_mpp_cfg_nfc(grp_nfc_64_71);
161 dove_mpp_dump_regs();