|
@@ -0,0 +1,147 @@
|
|
|
+/* linux/arch/arm/mach-s5pv210/mach-aquila.c
|
|
|
+ *
|
|
|
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd.
|
|
|
+ * http://www.samsung.com/
|
|
|
+ *
|
|
|
+ * This program is free software; you can redistribute it and/or modify
|
|
|
+ * it under the terms of the GNU General Public License version 2 as
|
|
|
+ * published by the Free Software Foundation.
|
|
|
+*/
|
|
|
+
|
|
|
+#include <linux/kernel.h>
|
|
|
+#include <linux/types.h>
|
|
|
+#include <linux/init.h>
|
|
|
+#include <linux/serial_core.h>
|
|
|
+#include <linux/fb.h>
|
|
|
+#include <linux/i2c.h>
|
|
|
+#include <linux/i2c-gpio.h>
|
|
|
+#include <linux/mfd/max8998.h>
|
|
|
+#include <linux/mfd/wm8994/pdata.h>
|
|
|
+#include <linux/regulator/fixed.h>
|
|
|
+#include <linux/gpio_keys.h>
|
|
|
+#include <linux/input.h>
|
|
|
+#include <linux/gpio.h>
|
|
|
+
|
|
|
+#include <asm/hardware/vic.h>
|
|
|
+#include <asm/mach/arch.h>
|
|
|
+#include <asm/mach/map.h>
|
|
|
+#include <asm/setup.h>
|
|
|
+#include <asm/mach-types.h>
|
|
|
+
|
|
|
+#include <video/samsung_fimd.h>
|
|
|
+#include <mach/map.h>
|
|
|
+#include <mach/regs-clock.h>
|
|
|
+
|
|
|
+#include <plat/gpio-cfg.h>
|
|
|
+#include <plat/regs-serial.h>
|
|
|
+#include <plat/devs.h>
|
|
|
+#include <plat/cpu.h>
|
|
|
+#include <plat/fb.h>
|
|
|
+#include <plat/fimc-core.h>
|
|
|
+#include <plat/sdhci.h>
|
|
|
+#include <plat/s5p-time.h>
|
|
|
+
|
|
|
+#include "common.h"
|
|
|
+
|
|
|
+/* Following are default values for UCON, ULCON and UFCON UART registers */
|
|
|
+#define AQUILA_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \
|
|
|
+ S3C2410_UCON_RXILEVEL | \
|
|
|
+ S3C2410_UCON_TXIRQMODE | \
|
|
|
+ S3C2410_UCON_RXIRQMODE | \
|
|
|
+ S3C2410_UCON_RXFIFO_TOI | \
|
|
|
+ S3C2443_UCON_RXERR_IRQEN)
|
|
|
+
|
|
|
+#define AQUILA_ULCON_DEFAULT S3C2410_LCON_CS8
|
|
|
+
|
|
|
+#define AQUILA_UFCON_DEFAULT S3C2410_UFCON_FIFOMODE
|
|
|
+
|
|
|
+static struct s3c2410_uartcfg aquila_uartcfgs[] __initdata = {
|
|
|
+ [0] = {
|
|
|
+ .hwport = 0,
|
|
|
+ .flags = 0,
|
|
|
+ .ucon = AQUILA_UCON_DEFAULT,
|
|
|
+ .ulcon = AQUILA_ULCON_DEFAULT,
|
|
|
+ /*
|
|
|
+ * Actually UART0 can support 256 bytes fifo, but aquila board
|
|
|
+ * supports 128 bytes fifo because of initial chip bug
|
|
|
+ */
|
|
|
+ .ufcon = AQUILA_UFCON_DEFAULT |
|
|
|
+ S5PV210_UFCON_TXTRIG128 | S5PV210_UFCON_RXTRIG128,
|
|
|
+ },
|
|
|
+ [1] = {
|
|
|
+ .hwport = 1,
|
|
|
+ .flags = 0,
|
|
|
+ .ucon = AQUILA_UCON_DEFAULT,
|
|
|
+ .ulcon = AQUILA_ULCON_DEFAULT,
|
|
|
+ .ufcon = AQUILA_UFCON_DEFAULT |
|
|
|
+ S5PV210_UFCON_TXTRIG64 | S5PV210_UFCON_RXTRIG64,
|
|
|
+ },
|
|
|
+ [2] = {
|
|
|
+ .hwport = 2,
|
|
|
+ .flags = 0,
|
|
|
+ .ucon = AQUILA_UCON_DEFAULT,
|
|
|
+ .ulcon = AQUILA_ULCON_DEFAULT,
|
|
|
+ .ufcon = AQUILA_UFCON_DEFAULT |
|
|
|
+ S5PV210_UFCON_TXTRIG16 | S5PV210_UFCON_RXTRIG16,
|
|
|
+ },
|
|
|
+ [3] = {
|
|
|
+ .hwport = 3,
|
|
|
+ .flags = 0,
|
|
|
+ .ucon = AQUILA_UCON_DEFAULT,
|
|
|
+ .ulcon = AQUILA_ULCON_DEFAULT,
|
|
|
+ .ufcon = AQUILA_UFCON_DEFAULT |
|
|
|
+ S5PV210_UFCON_TXTRIG16 | S5PV210_UFCON_RXTRIG16,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+/* Frame Buffer */
|
|
|
+static struct s3c_fb_pd_win aquila_fb_win0 = {
|
|
|
+ .max_bpp = 32,
|
|
|
+ .default_bpp = 16,
|
|
|
+ .xres = 480,
|
|
|
+ .yres = 800,
|
|
|
+};
|
|
|
+
|
|
|
+static struct s3c_fb_pd_win aquila_fb_win1 = {
|
|
|
+ .max_bpp = 32,
|
|
|
+ .default_bpp = 16,
|
|
|
+ .xres = 480,
|
|
|
+ .yres = 800,
|
|
|
+};
|
|
|
+
|
|
|
+static struct fb_videomode aquila_lcd_timing = {
|
|
|
+ .left_margin = 16,
|
|
|
+ .right_margin = 16,
|
|
|
+ .upper_margin = 3,
|
|
|
+ .lower_margin = 28,
|
|
|
+ .hsync_len = 2,
|
|
|
+ .vsync_len = 2,
|
|
|
+ .xres = 480,
|
|
|
+ .yres = 800,
|
|
|
+};
|
|
|
+
|
|
|
+static struct s3c_fb_platdata aquila_lcd_pdata __initdata = {
|
|
|
+ .win[0] = &aquila_fb_win0,
|
|
|
+ .win[1] = &aquila_fb_win1,
|
|
|
+ .vtiming = &aquila_lcd_timing,
|
|
|
+ .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
|
|
|
+ .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC |
|
|
|
+ VIDCON1_INV_VCLK | VIDCON1_INV_VDEN,
|
|
|
+ .setup_gpio = s5pv210_fb_gpio_setup_24bpp,
|
|
|
+};
|
|
|
+
|
|
|
+/* MAX8998 regulators */
|
|
|
+#if defined(CONFIG_REGULATOR_MAX8998) || defined(CONFIG_REGULATOR_MAX8998_MODULE)
|
|
|
+
|
|
|
+static struct regulator_init_data aquila_ldo2_data = {
|
|
|
+ .constraints = {
|
|
|
+ .name = "VALIVE_1.1V",
|
|
|
+ .min_uV = 1100000,
|
|
|
+ .max_uV = 1100000,
|
|
|
+ .apply_uV = 1,
|
|
|
+ .always_on = 1,
|
|
|
+ .state_mem = {
|
|
|
+ .enabled = 1,
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|