diff options
Diffstat (limited to 'arch/arm/mach-shmobile/board-bockw-reference.c')
-rw-r--r-- | arch/arm/mach-shmobile/board-bockw-reference.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/board-bockw-reference.c b/arch/arm/mach-shmobile/board-bockw-reference.c index 1a7c893e1a52..ae88fdad4b3a 100644 --- a/arch/arm/mach-shmobile/board-bockw-reference.c +++ b/arch/arm/mach-shmobile/board-bockw-reference.c | |||
@@ -36,15 +36,35 @@ static const struct pinctrl_map bockw_pinctrl_map[] = { | |||
36 | "scif0_ctrl", "scif0"), | 36 | "scif0_ctrl", "scif0"), |
37 | }; | 37 | }; |
38 | 38 | ||
39 | #define FPGA 0x18200000 | ||
40 | #define IRQ0MR 0x30 | ||
41 | #define COMCTLR 0x101c | ||
39 | static void __init bockw_init(void) | 42 | static void __init bockw_init(void) |
40 | { | 43 | { |
44 | static void __iomem *fpga; | ||
45 | |||
41 | r8a7778_clock_init(); | 46 | r8a7778_clock_init(); |
47 | r8a7778_init_irq_extpin_dt(1); | ||
42 | 48 | ||
43 | pinctrl_register_mappings(bockw_pinctrl_map, | 49 | pinctrl_register_mappings(bockw_pinctrl_map, |
44 | ARRAY_SIZE(bockw_pinctrl_map)); | 50 | ARRAY_SIZE(bockw_pinctrl_map)); |
45 | r8a7778_pinmux_init(); | 51 | r8a7778_pinmux_init(); |
46 | r8a7778_add_dt_devices(); | 52 | r8a7778_add_dt_devices(); |
47 | 53 | ||
54 | fpga = ioremap_nocache(FPGA, SZ_1M); | ||
55 | if (fpga) { | ||
56 | /* | ||
57 | * CAUTION | ||
58 | * | ||
59 | * IRQ0/1 is cascaded interrupt from FPGA. | ||
60 | * it should be cared in the future | ||
61 | * Now, it is assuming IRQ0 was used only from SMSC. | ||
62 | */ | ||
63 | u16 val = ioread16(fpga + IRQ0MR); | ||
64 | val &= ~(1 << 4); /* enable SMSC911x */ | ||
65 | iowrite16(val, fpga + IRQ0MR); | ||
66 | } | ||
67 | |||
48 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | 68 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); |
49 | } | 69 | } |
50 | 70 | ||