aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/sh/boards/mach-sdk7786/setup.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/sh/boards/mach-sdk7786/setup.c b/arch/sh/boards/mach-sdk7786/setup.c
index f2d4b75bf31..c38c6cc293b 100644
--- a/arch/sh/boards/mach-sdk7786/setup.c
+++ b/arch/sh/boards/mach-sdk7786/setup.c
@@ -218,6 +218,23 @@ static void __init init_sdk7786_IRQ(void)
218 plat_irq_setup_pins(IRQ_MODE_IRL3210_MASK); 218 plat_irq_setup_pins(IRQ_MODE_IRL3210_MASK);
219} 219}
220 220
221#define MODSWR_REGS 0x07fff830
222
223static int sdk7786_mode_pins(void)
224{
225 void __iomem *modswr;
226 int pin_states;
227
228 modswr = ioremap_nocache(MODSWR_REGS, SZ_16);
229 if (!modswr)
230 return -ENXIO;
231
232 pin_states = ioread16(modswr);
233 iounmap(modswr);
234
235 return pin_states;
236}
237
221/* Initialize the board */ 238/* Initialize the board */
222static void __init sdk7786_setup(char **cmdline_p) 239static void __init sdk7786_setup(char **cmdline_p)
223{ 240{
@@ -230,5 +247,6 @@ static void __init sdk7786_setup(char **cmdline_p)
230static struct sh_machine_vector mv_sdk7786 __initmv = { 247static struct sh_machine_vector mv_sdk7786 __initmv = {
231 .mv_name = "SDK7786", 248 .mv_name = "SDK7786",
232 .mv_setup = sdk7786_setup, 249 .mv_setup = sdk7786_setup,
250 .mv_mode_pins = sdk7786_mode_pins,
233 .mv_init_irq = init_sdk7786_IRQ, 251 .mv_init_irq = init_sdk7786_IRQ,
234}; 252};