1/* linux/arch/arm/mach-s5pv310/mach-smdkv310.c 2 * 3 * Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 * http://www.samsung.com/ 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. 9*/ 10 11#include <linux/serial_core.h> 12 13#include <asm/mach/arch.h> 14#include <asm/mach-types.h> 15#include <asm/hardware/cache-l2x0.h> 16 17#include <plat/regs-serial.h> 18#include <plat/s5pv310.h> 19#include <plat/cpu.h> 20 21#include <mach/map.h> 22 23/* Following are default values for UCON, ULCON and UFCON UART registers */ 24#define SMDKV310_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \ 25 S3C2410_UCON_RXILEVEL | \ 26 S3C2410_UCON_TXIRQMODE | \ 27 S3C2410_UCON_RXIRQMODE | \ 28 S3C2410_UCON_RXFIFO_TOI | \ 29 S3C2443_UCON_RXERR_IRQEN) 30 31#define SMDKV310_ULCON_DEFAULT S3C2410_LCON_CS8 32 33#define SMDKV310_UFCON_DEFAULT (S3C2410_UFCON_FIFOMODE | \ 34 S5PV210_UFCON_TXTRIG4 | \ 35 S5PV210_UFCON_RXTRIG4) 36 37static struct s3c2410_uartcfg smdkv310_uartcfgs[] __initdata = { 38 [0] = { 39 .hwport = 0, 40 .flags = 0, 41 .ucon = SMDKV310_UCON_DEFAULT, 42 .ulcon = SMDKV310_ULCON_DEFAULT, 43 .ufcon = SMDKV310_UFCON_DEFAULT, 44 }, 45 [1] = { 46 .hwport = 1, 47 .flags = 0, 48 .ucon = SMDKV310_UCON_DEFAULT, 49 .ulcon = SMDKV310_ULCON_DEFAULT, 50 .ufcon = SMDKV310_UFCON_DEFAULT, 51 }, 52 [2] = { 53 .hwport = 2, 54 .flags = 0, 55 .ucon = SMDKV310_UCON_DEFAULT, 56 .ulcon = SMDKV310_ULCON_DEFAULT, 57 .ufcon = SMDKV310_UFCON_DEFAULT, 58 }, 59 [3] = { 60 .hwport = 3, 61 .flags = 0, 62 .ucon = SMDKV310_UCON_DEFAULT, 63 .ulcon = SMDKV310_ULCON_DEFAULT, 64 .ufcon = SMDKV310_UFCON_DEFAULT, 65 }, 66}; 67 68static void __init smdkv310_map_io(void) 69{ 70 s5p_init_io(NULL, 0, S5P_VA_CHIPID); 71 s3c24xx_init_clocks(24000000); 72 s3c24xx_init_uarts(smdkv310_uartcfgs, ARRAY_SIZE(smdkv310_uartcfgs)); 73} 74 75static void __init smdkv310_machine_init(void) 76{ 77#ifdef CONFIG_CACHE_L2X0 78 l2x0_init(S5P_VA_L2CC, 1 << 28, 0xffffffff); 79#endif 80} 81 82MACHINE_START(SMDKV310, "SMDKV310") 83 /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ 84 /* Maintainer: Changhwan Youn <chaos.youn@samsung.com> */ 85 .phys_io = S3C_PA_UART & 0xfff00000, 86 .io_pg_offst = (((u32)S3C_VA_UART) >> 18) & 0xfffc, 87 .boot_params = S5P_PA_SDRAM + 0x100, 88 .init_irq = s5pv310_init_irq, 89 .map_io = smdkv310_map_io, 90 .init_machine = smdkv310_machine_init, 91 .timer = &s5pv310_timer, 92MACHINE_END 93