/* * armadillo 800 eva board support * * Copyright (C) 2012 Renesas Solutions Corp. * Copyright (C) 2012 Kuninori Morimoto * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* * CON1 Camera Module * CON2 Extension Bus * CON3 HDMI Output * CON4 Composite Video Output * CON5 H-UDI JTAG * CON6 ARM JTAG * CON7 SD1 * CON8 SD2 * CON9 RTC BackUp * CON10 Monaural Mic Input * CON11 Stereo Headphone Output * CON12 Audio Line Output(L) * CON13 Audio Line Output(R) * CON14 AWL13 Module * CON15 Extension * CON16 LCD1 * CON17 LCD2 * CON19 Power Input * CON20 USB1 * CON21 USB2 * CON22 Serial * CON23 LAN * CON24 USB3 * LED1 Camera LED(Yellow) * LED2 Power LED (Green) * ED3-LED6 User LED(Yellow) * LED7 LAN link LED(Green) * LED8 LAN activity LED(Yellow) */ /* * DipSwitch * * SW1 * * -12345678-+---------------+---------------------------- * 1 | boot | hermit * 0 | boot | OS auto boot * -12345678-+---------------+---------------------------- * 00 | boot device | eMMC * 10 | boot device | SDHI0 (CON7) * 01 | boot device | - * 11 | boot device | Extension Buss (CS0) * -12345678-+---------------+---------------------------- * 0 | Extension Bus | D8-D15 disable, eMMC enable * 1 | Extension Bus | D8-D15 enable, eMMC disable * -12345678-+---------------+---------------------------- * 0 | SDHI1 | COM8 enable, COM14 disable * 1 | SDHI1 | COM8 enable, COM14 disable * -12345678-+---------------+---------------------------- * 00 | JTAG | SH-X2 * 10 | JTAG | ARM * 01 | JTAG | - * 11 | JTAG | Boundary Scan *-----------+---------------+---------------------------- */ /* * board devices */ static struct platform_device *eva_devices[] __initdata = { }; /* * board init */ static void __init eva_init(void) { r8a7740_pinmux_init(); /* SCIFA1 */ gpio_request(GPIO_FN_SCIFA1_RXD, NULL); gpio_request(GPIO_FN_SCIFA1_TXD, NULL); #ifdef CONFIG_CACHE_L2X0 /* Early BRESP enable, Shared attribute override enable, 32K*8way */ l2x0_init(__io(0xf0002000), 0x40440000, 0x82000fff); #endif r8a7740_add_standard_devices(); platform_add_devices(eva_devices, ARRAY_SIZE(eva_devices)); } static void __init eva_earlytimer_init(void) { struct clk *xtal1; r8a7740_clock_init(MD_CK0 | MD_CK2); xtal1 = clk_get(NULL, "extal1"); if (!IS_ERR(xtal1)) { /* armadillo 800 eva extal1 is 24MHz */ clk_set_rate(xtal1, 24000000); clk_put(xtal1); } shmobile_earlytimer_init(); } static void __init eva_add_early_devices(void) { r8a7740_add_early_devices(); /* override timer setup with board-specific code */ shmobile_timer.init = eva_earlytimer_init; } MACHINE_START(ARMADILLO800EVA, "armadillo800eva") .map_io = r8a7740_map_io, .init_early = eva_add_early_devices, .init_irq = r8a7740_init_irq, .handle_irq = shmobile_handle_irq_intc, .init_machine = eva_init, .timer = &shmobile_timer, MACHINE_END