]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
[PATCH] ARM: OMAP: Support apollon board based on omap2420
authorKyungmin Park <kyungmin.park@samsung.com>
Wed, 25 Jan 2006 04:03:38 +0000 (20:03 -0800)
committerTony Lindgren <tony@atomide.com>
Wed, 25 Jan 2006 04:03:38 +0000 (20:03 -0800)
default enabled features as following
UART
ethernet
LCD
sound + (needs spi patch:)
OneNAND

14 files changed:
arch/arm/mach-omap2/Kconfig
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/board-apollon.c [new file with mode: 0644]
arch/arm/mach-omap2/mux.c
arch/arm/mach-omap2/prcm-regs.h
drivers/video/omap/Makefile
drivers/video/omap/lcd_apollon.c [new file with mode: 0644]
drivers/video/omap/omapfb_main.c
include/asm-arm/arch-omap/board-apollon.h [new file with mode: 0644]
include/asm-arm/arch-omap/hardware.h
include/asm-arm/arch-omap/mux.h
include/asm/arch/board-apollon.h [new file with mode: 0644]
sound/oss/Kconfig
sound/oss/omap-audio-tsc2101.c

index 46634a0cf9d459b4b31294d3b32bb0ba4b5d47d3..ab144c3f734a898942fb2b2c1d493aec5dda6775 100644 (file)
@@ -21,3 +21,6 @@ config MACH_OMAP_H4
        depends on ARCH_OMAP2 && ARCH_OMAP24XX
        select GPIOEXPANDER_OMAP
 
+config MACH_OMAP_APOLLON
+       bool "OMAP 2420 Apollon board"
+       depends on ARCH_OMAP2 && ARCH_OMAP24XX
index 314d0aae5fe6c5013f98844fdd60ed2b823569bb..111eaa64258f2cbcec96bbf56875bebd957cb871 100644 (file)
@@ -13,4 +13,5 @@ obj-$(CONFIG_PM) += pm.o sleep.o
 # Specific board support
 obj-$(CONFIG_MACH_OMAP_GENERIC)                += board-generic.o
 obj-$(CONFIG_MACH_OMAP_H4)             += board-h4.o
+obj-$(CONFIG_MACH_OMAP_APOLLON)                += board-apollon.o
 
diff --git a/arch/arm/mach-omap2/board-apollon.c b/arch/arm/mach-omap2/board-apollon.c
new file mode 100644 (file)
index 0000000..f7f7b8e
--- /dev/null
@@ -0,0 +1,281 @@
+/*
+ * linux/arch/arm/mach-omap/omap2/board-apollon.c
+ *
+ * Copyright (C) 2005,2006 Samsung Electronics
+ * Author: Kyungmin Park <kyungmin.park@samsung.com>
+ *
+ * Modified from mach-omap/omap2/board-h4.c
+ *
+ * Code for apollon OMAP2 board. Should work on many OMAP2 systems where
+ * the bootloader passes the board-specific data to the kernel.
+ * Do not put any board specific code to this file; create a new machine
+ * type if you need custom low-level initializations.
+ *
+ * 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/init.h>
+#include <linux/platform_device.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/partitions.h>
+#include <linux/mtd/onenand.h>
+#include <linux/interrupt.h>
+#include <linux/delay.h>
+
+#include <asm/hardware.h>
+#include <asm/mach-types.h>
+#include <asm/mach/arch.h>
+#include <asm/mach/flash.h>
+
+#include <asm/arch/gpio.h>
+#include <asm/arch/mux.h>
+#include <asm/arch/usb.h>
+#include <asm/arch/board.h>
+#include <asm/arch/common.h>
+#include "prcm-regs.h"
+
+/* LED & Switch macros */
+#define LED0_GPIO13            13
+#define LED1_GPIO14            14
+#define LED2_GPIO15            15
+#define SW_ENTER_GPIO16                16
+#define SW_UP_GPIO17           17
+#define SW_DOWN_GPIO58         58
+
+static struct mtd_partition apollon_partitions[] = {
+       {
+               .name           = "X-Loader + U-Boot",
+               .offset         = 0,
+               .size           = SZ_128K,
+               .mask_flags     = MTD_WRITEABLE,
+       },
+       {
+               .name           = "params",
+               .offset         = MTDPART_OFS_APPEND,
+               .size           = SZ_128K,
+       },
+       {
+               .name           = "kernel",
+               .offset         = MTDPART_OFS_APPEND,
+               .size           = SZ_2M,
+       },
+       {
+               .name           = "rootfs",
+               .offset         = MTDPART_OFS_APPEND,
+               .size           = SZ_16M,
+       },
+       {
+               .name           = "filesystem00",
+               .offset         = MTDPART_OFS_APPEND,
+               .size           = SZ_32M,
+       },
+       {
+               .name           = "filesystem01",
+               .offset         = MTDPART_OFS_APPEND,
+               .size           = MTDPART_SIZ_FULL,
+       },
+};
+
+static struct flash_platform_data apollon_flash_data = {
+       .parts          = apollon_partitions,
+       .nr_parts       = ARRAY_SIZE(apollon_partitions),
+};
+
+static struct resource apollon_flash_resource = {
+       .start          = APOLLON_CS0_BASE,
+       .end            = APOLLON_CS0_BASE + SZ_128K,
+       .flags          = IORESOURCE_MEM,
+};
+
+static struct platform_device apollon_onenand_device = {
+       .name           = "onenand",
+       .id             = -1,
+       .dev            = {
+               .platform_data  = &apollon_flash_data,
+       },
+       .num_resources  = ARRAY_SIZE(&apollon_flash_resource),
+       .resource       = &apollon_flash_resource,
+};
+
+static struct resource apollon_smc91x_resources[] = {
+       [0] = {
+               .start  = APOLLON_ETHR_START,           /* Physical */
+               .end    = APOLLON_ETHR_START + 0xf,
+               .flags  = IORESOURCE_MEM,
+       },
+       [1] = {
+               .start  = OMAP_GPIO_IRQ(APOLLON_ETHR_GPIO_IRQ),
+               .end    = OMAP_GPIO_IRQ(APOLLON_ETHR_GPIO_IRQ),
+               .flags  = IORESOURCE_IRQ,
+       },
+};
+
+static struct platform_device apollon_smc91x_device = {
+       .name           = "smc91x",
+       .id             = -1,
+       .num_resources  = ARRAY_SIZE(apollon_smc91x_resources),
+       .resource       = apollon_smc91x_resources,
+};
+
+static struct platform_device *apollon_devices[] __initdata = {
+       &apollon_onenand_device,
+       &apollon_smc91x_device,
+};
+
+static inline void __init apollon_init_smc91x(void)
+{
+       /* Make sure CS1 timings are correct */
+       GPMC_CONFIG1_1 = 0x00011203;
+       GPMC_CONFIG2_1 = 0x001f1f01;
+       GPMC_CONFIG3_1 = 0x00080803;
+       GPMC_CONFIG4_1 = 0x1c091c09;
+       GPMC_CONFIG5_1 = 0x041f1f1f;
+       GPMC_CONFIG6_1 = 0x000004c4;
+       GPMC_CONFIG7_1 = 0x00000f40 | (APOLLON_CS1_BASE >> 24);
+       udelay(100);
+
+       omap_cfg_reg(W4__24XX_GPIO74);
+       if (omap_request_gpio(APOLLON_ETHR_GPIO_IRQ) < 0) {
+               printk(KERN_ERR "Failed to request GPIO%d for smc91x IRQ\n",
+                       APOLLON_ETHR_GPIO_IRQ);
+               return;
+       }
+       omap_set_gpio_direction(APOLLON_ETHR_GPIO_IRQ, 1);
+}
+
+static void __init omap_apollon_init_irq(void)
+{
+       omap2_init_common_hw();
+       omap_init_irq();
+       omap_gpio_init();
+       apollon_init_smc91x();
+}
+
+static struct omap_uart_config apollon_uart_config __initdata = {
+       .enabled_uarts = (1 << 0) | (0 << 1) | (0 << 2),
+};
+
+static struct omap_mmc_config apollon_mmc_config __initdata = {
+       .mmc [0] = {
+               .enabled        = 0,
+               .wire4          = 0,
+               .wp_pin         = -1,
+               .power_pin      = -1,
+               .switch_pin     = -1,
+       },
+};
+
+static struct omap_lcd_config apollon_lcd_config __initdata = {
+       .panel_name     = "apollon",
+       .ctrl_name      = "internal",
+};
+
+static struct omap_board_config_kernel apollon_config[] = {
+       { OMAP_TAG_UART,        &apollon_uart_config },
+       { OMAP_TAG_MMC,         &apollon_mmc_config },
+       { OMAP_TAG_LCD,         &apollon_lcd_config },
+};
+
+static void __init apollon_led_init(void)
+{
+       /* LED0 - AA10 */
+       omap_cfg_reg(AA10_242X_GPIO13);
+       omap_request_gpio(LED0_GPIO13);
+       omap_set_gpio_direction(LED0_GPIO13, 0);
+       omap_set_gpio_dataout(LED0_GPIO13, 0);
+       /* LED1  - AA6 */
+       omap_cfg_reg(AA6_242X_GPIO14);
+       omap_request_gpio(LED1_GPIO14);
+       omap_set_gpio_direction(LED1_GPIO14, 0);
+       omap_set_gpio_dataout(LED1_GPIO14, 0);
+       /* LED2  - AA4 */
+       omap_cfg_reg(AA4_242X_GPIO15);
+       omap_request_gpio(LED2_GPIO15);
+       omap_set_gpio_direction(LED2_GPIO15, 0);
+       omap_set_gpio_dataout(LED2_GPIO15, 0);
+}
+
+static irqreturn_t apollon_sw_interrupt(int irq, void *ignored, struct pt_regs *regs)
+{
+       static unsigned int led0, led1, led2;
+
+       if (irq == OMAP_GPIO_IRQ(SW_ENTER_GPIO16))
+               omap_set_gpio_dataout(LED0_GPIO13, led0 ^= 1);
+       else if (irq == OMAP_GPIO_IRQ(SW_UP_GPIO17))
+               omap_set_gpio_dataout(LED1_GPIO14, led1 ^= 1);
+       else if (irq == OMAP_GPIO_IRQ(SW_DOWN_GPIO58))
+               omap_set_gpio_dataout(LED2_GPIO15, led2 ^= 1);
+
+       return IRQ_HANDLED;
+}
+
+static void __init apollon_sw_init(void)
+{
+       /* Enter SW - Y11 */
+       omap_cfg_reg(Y11_242X_GPIO16);
+       omap_request_gpio(SW_ENTER_GPIO16);
+       omap_set_gpio_direction(SW_ENTER_GPIO16, 1);
+       /* Up SW - AA12 */
+       omap_cfg_reg(AA12_242X_GPIO17);
+       omap_request_gpio(SW_UP_GPIO17);
+       omap_set_gpio_direction(SW_UP_GPIO17, 1);
+       /* Down SW - AA8 */
+       omap_cfg_reg(AA8_242X_GPIO58);
+       omap_request_gpio(SW_DOWN_GPIO58);
+       omap_set_gpio_direction(SW_DOWN_GPIO58, 1);
+
+       set_irq_type(OMAP_GPIO_IRQ(SW_ENTER_GPIO16), IRQT_RISING);
+       if (request_irq(OMAP_GPIO_IRQ(SW_ENTER_GPIO16), &apollon_sw_interrupt,
+                               SA_SHIRQ, "enter sw",
+                               &apollon_sw_interrupt))
+               return;
+       set_irq_type(OMAP_GPIO_IRQ(SW_UP_GPIO17), IRQT_RISING);
+       if (request_irq(OMAP_GPIO_IRQ(SW_UP_GPIO17), &apollon_sw_interrupt,
+                               SA_SHIRQ, "up sw",
+                               &apollon_sw_interrupt))
+               return;
+       set_irq_type(OMAP_GPIO_IRQ(SW_DOWN_GPIO58), IRQT_RISING);
+       if (request_irq(OMAP_GPIO_IRQ(SW_DOWN_GPIO58), &apollon_sw_interrupt,
+                               SA_SHIRQ, "down sw",
+                               &apollon_sw_interrupt))
+               return;
+}
+
+static void __init omap_apollon_init(void)
+{
+       apollon_led_init();
+       apollon_sw_init();
+
+       /* REVISIT: where's the correct place */
+       omap_cfg_reg(W19_24XX_SYS_NIRQ);
+
+       /*
+        * Make sure the serial ports are muxed on at this point.
+        * You have to mux them off in device drivers later on
+        * if not needed.
+        */
+       platform_add_devices(apollon_devices, ARRAY_SIZE(apollon_devices));
+       omap_board_config = apollon_config;
+       omap_board_config_size = ARRAY_SIZE(apollon_config);
+       omap_serial_init();
+}
+
+static void __init omap_apollon_map_io(void)
+{
+       omap2_map_common_io();
+}
+
+MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon")
+       /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */
+       .phys_ram       = 0x80000000,
+       .phys_io        = 0x48000000,
+       .io_pg_offst    = ((0xd8000000) >> 18) & 0xfffc,
+       .boot_params    = 0x80000100,
+       .map_io         = omap_apollon_map_io,
+       .init_irq       = omap_apollon_init_irq,
+       .init_machine   = omap_apollon_init,
+       .timer          = &omap_timer,
+MACHINE_END
index ac7c78333cc4eaa65ae737ad73049673dda9ad24..1197dc38c20afcd4b87b1f7dff7f98999402e267 100644 (file)
@@ -60,7 +60,15 @@ MUX_CFG_24XX("W15_24XX_MCBSP2_DR",   0x126,  1,      1,      0,      1)
 MUX_CFG_24XX("V15_24XX_MCBSP2_DX",     0x127,  1,      1,      0,      1)
 
 /* 24xx GPIO */
+MUX_CFG_24XX("M21_242X_GPIO11",         0x0c9,  3,      1,      1,      1)
+MUX_CFG_24XX("AA10_242X_GPIO13",       0x0e5,  3,      0,      0,      1)
+MUX_CFG_24XX("AA6_242X_GPIO14",         0x0e6,  3,      0,      0,      1)
+MUX_CFG_24XX("AA4_242X_GPIO15",         0x0e7,  3,      0,      0,      1)
+MUX_CFG_24XX("Y11_242X_GPIO16",         0x0e8,  3,      0,      0,      1)
+MUX_CFG_24XX("AA12_242X_GPIO17",       0x0e9,  3,      0,      0,      1)
+MUX_CFG_24XX("AA8_242X_GPIO58",         0x0ea,  3,      0,      0,      1)
 MUX_CFG_24XX("Y20_24XX_GPIO60",                0x12c,  3,      0,      0,      1)
+MUX_CFG_24XX("W4__24XX_GPIO74",         0x0f2,  3,      0,      0,      1)
 MUX_CFG_24XX("M15_24XX_GPIO92",                0x10a,  3,      0,      0,      1)
 MUX_CFG_24XX("V14_24XX_GPIO117",       0x128,  3,      1,      0,      1)
 
index 4119b50ecac79ee9f1119543247c085aa9951da7..22ac7be4f78289f17670b690c887f6cd058c9167 100644 (file)
 #define GPMC_CONFIG6_1         GPMC_REG32(0x0a4)
 #define GPMC_CONFIG7_1         GPMC_REG32(0x0a8)
 
+/* GPMC CS3 */
+#define GPMC_CONFIG1_3         GPMC_REG32(0x0F0)
+#define GPMC_CONFIG2_3         GPMC_REG32(0x0F4)
+#define GPMC_CONFIG3_3         GPMC_REG32(0x0F8)
+#define GPMC_CONFIG4_3         GPMC_REG32(0x0FC)
+#define GPMC_CONFIG5_3         GPMC_REG32(0x100)
+#define GPMC_CONFIG6_3         GPMC_REG32(0x104)
+#define GPMC_CONFIG7_3         GPMC_REG32(0x108)
+
 /* DSS */
 #define DSS_CONTROL            DISP_REG32(0x040)
 #define DISPC_CONTROL          DISP_REG32(0x440)
index 391bf3f836bcd9e6f02067ff2526b0bafe24c8f0..3b6350cd06208ae83197f9415c817ef233a9807b 100644 (file)
@@ -21,6 +21,7 @@ objs-$(CONFIG_ARCH_OMAP16XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1610.o
 objs-$(CONFIG_ARCH_OMAP15XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1510.o
 objs-y$(CONFIG_MACH_OMAP_OSK) += lcd_osk.o
 objs-y$(CONFIG_MACH_OMAP_PERSEUS2) += lcd_p2.o
+objs-y$(CONFIG_MACH_OMAP_APOLLON) += lcd_apollon.o
 
 omapfb-objs := $(objs-yy)
 
diff --git a/drivers/video/omap/lcd_apollon.c b/drivers/video/omap/lcd_apollon.c
new file mode 100644 (file)
index 0000000..3be38ae
--- /dev/null
@@ -0,0 +1,107 @@
+/*
+ * File: drivers/video/omap/lcd_apollon.c
+ *
+ * LCD panel support for the Samsung OMAP2 Apollon board
+ *
+ * Copyright (C) 2005,2006 Samsung Electronics
+ * Author: Kyungmin Park <kyungmin.park@samsung.com>
+ *
+ * Derived from drivers/video/omap/lcd-h4.c
+ *
+ * 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; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * 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.,
+ * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+#include <linux/module.h>
+
+#include <asm/arch/gpio.h>
+#include <asm/arch/mux.h>
+#include <asm/arch/omapfb.h>
+
+/* #define OMAPFB_DBG 1 */
+
+/* #define USE_35INCH_LCD 1 */
+
+#include "debug.h"
+
+static int apollon_panel_init(struct omapfb_device *fbdev)
+{
+       DBGENTER(1);
+       DBGLEAVE(1);
+       return 0;
+}
+
+static void apollon_panel_cleanup(void)
+{
+       DBGENTER(1);
+       DBGLEAVE(1);
+}
+
+static int apollon_panel_enable(void)
+{
+
+       DBGENTER(1);
+
+       /* configure LCD PWR_EN */
+       omap_cfg_reg(M21_242X_GPIO11);
+
+       DBGLEAVE(1);
+       return 0;
+}
+
+static void apollon_panel_disable(void)
+{
+       DBGENTER(1);
+       DBGLEAVE(1);
+}
+
+static unsigned long apollon_panel_get_caps(void)
+{
+       return 0;
+}
+
+struct lcd_panel apollon_panel = {
+       .name           = "apollon",
+       .config         = OMAP_LCDC_PANEL_TFT | OMAP_LCDC_INV_VSYNC |
+                         OMAP_LCDC_INV_HSYNC,
+
+       .bpp            = 16,
+       .data_lines     = 18,
+#ifdef USE_35INCH_LCD
+       .x_res          = 240,
+       .y_res          = 320,
+       .hsw            = 2,
+       .hfp            = 3,
+       .hbp            = 9,
+       .vsw            = 4,
+       .vfp            = 3,
+       .vbp            = 5,
+#else
+       .x_res          = 480,
+       .y_res          = 272,
+       .hsw            = 41,
+       .hfp            = 2,
+       .hbp            = 2,
+       .vsw            = 10,
+       .vfp            = 2,
+       .vbp            = 2,
+#endif
+       .pixel_clock    = 6250,
+
+       .init           = apollon_panel_init,
+       .cleanup        = apollon_panel_cleanup,
+       .enable         = apollon_panel_enable,
+       .disable        = apollon_panel_disable,
+       .get_caps       = apollon_panel_get_caps,
+};
index 466b30612be47b11424069ea16fca439e8770e5e..fd4b5c7b8edf920bfb3ee80c49bdf0a775acb80e 100644 (file)
@@ -89,6 +89,7 @@ extern struct lcd_panel palmte_panel;
 extern struct lcd_panel innovator1610_panel;
 extern struct lcd_panel innovator1510_panel;
 extern struct lcd_panel lph8923_panel;
+extern struct lcd_panel apollon_panel;
 
 static struct lcd_panel *panels[] = {
 #ifdef CONFIG_MACH_OMAP_H2
@@ -119,6 +120,9 @@ static struct lcd_panel *panels[] = {
        &innovator1610_panel,
 #endif
 
+#endif
+#ifdef CONFIG_MACH_OMAP_APOLLON
+       &apollon_panel,
 #endif
 };
 
diff --git a/include/asm-arm/arch-omap/board-apollon.h b/include/asm-arm/arch-omap/board-apollon.h
new file mode 100644 (file)
index 0000000..de0c5b7
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * linux/include/asm-arm/arch-omap/board-apollon.h
+ *
+ * Hardware definitions for Samsung OMAP24XX Apollon board.
+ *
+ * Initial creation by Kyungmin Park <kyungmin.park@samsung.com>
+ *
+ * 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; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * 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.,
+ * 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __ASM_ARCH_OMAP_APOLLON_H
+#define __ASM_ARCH_OMAP_APOLLON_H
+
+/* Placeholder for APOLLON specific defines */
+/* GPMC CS0 */
+#define APOLLON_CS0_BASE               0x00000000
+/* GPMC CS1 */
+#define APOLLON_CS1_BASE               0x08000000
+#define APOLLON_ETHR_START             (APOLLON_CS1_BASE + 0x300)
+#define APOLLON_ETHR_GPIO_IRQ          74
+/* GPMC CS2 - reserved for OneNAND */
+#define APOLLON_CS2_BASE               0x10000000
+/* GPMC CS3 - reserved for NOR or NAND */
+#define APOLLON_CS3_BASE               0x18000000
+
+#endif /*  __ASM_ARCH_OMAP_APOLLON_H */
+
index ecf5baea84daeb9b7bd7d8de25a5d7407d7b6eed..7909b729826c41bdbbace4d679c07fd9bf6624ea 100644 (file)
 #include "board-h4.h"
 #endif
 
+#ifdef CONFIG_MACH_OMAP_APOLLON
+#include "board-apollon.h"
+#endif
+
 #ifdef CONFIG_MACH_OMAP_OSK
 #include "board-osk.h"
 #endif
index 0fc2cad2104a642a00c10c7ee1ed8f0665b74a86..28fd67542dd89c22592a45e6c572c1ea068a1851 100644 (file)
@@ -417,7 +417,15 @@ enum omap24xx_index {
        V15_24XX_MCBSP2_DX,
 
        /* 24xx GPIO */
+       M21_242X_GPIO11,
+       AA10_242X_GPIO13,
+       AA6_242X_GPIO14,
+       AA4_242X_GPIO15,
+       Y11_242X_GPIO16,
+       AA12_242X_GPIO17,
+       AA8_242X_GPIO58,
        Y20_24XX_GPIO60,
+       W4__24XX_GPIO74,
        M15_24XX_GPIO92,
        V14_24XX_GPIO117,
 
diff --git a/include/asm/arch/board-apollon.h b/include/asm/arch/board-apollon.h
new file mode 100644 (file)
index 0000000..de0c5b7
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * linux/include/asm-arm/arch-omap/board-apollon.h
+ *
+ * Hardware definitions for Samsung OMAP24XX Apollon board.
+ *
+ * Initial creation by Kyungmin Park <kyungmin.park@samsung.com>
+ *
+ * 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; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * 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.,
+ * 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __ASM_ARCH_OMAP_APOLLON_H
+#define __ASM_ARCH_OMAP_APOLLON_H
+
+/* Placeholder for APOLLON specific defines */
+/* GPMC CS0 */
+#define APOLLON_CS0_BASE               0x00000000
+/* GPMC CS1 */
+#define APOLLON_CS1_BASE               0x08000000
+#define APOLLON_ETHR_START             (APOLLON_CS1_BASE + 0x300)
+#define APOLLON_ETHR_GPIO_IRQ          74
+/* GPMC CS2 - reserved for OneNAND */
+#define APOLLON_CS2_BASE               0x10000000
+/* GPMC CS3 - reserved for NOR or NAND */
+#define APOLLON_CS3_BASE               0x18000000
+
+#endif /*  __ASM_ARCH_OMAP_APOLLON_H */
+
index 33f602a878f155ded4840f0f6a8a4365e23c9900..448f50f54e79ec2991e581bba08d427733b50de1 100644 (file)
@@ -13,7 +13,7 @@ config SOUND_OMAP
 
 config SOUND_OMAP_TSC2101
        tristate "TSC2101 Stereo Codec"
-       depends on SOUND_OMAP && ( MACH_OMAP_H2 || MACH_OMAP_H3 || MACH_OMAP_H4)
+       depends on SOUND_OMAP && ( MACH_OMAP_H2 || MACH_OMAP_H3 || MACH_OMAP_H4 || MACH_OMAP_APOLLON)
        select OMAP_TSC2101 if ( MACH_OMAP_H2 || MACH_OMAP_H3 )
        select OMAP_UWIRE if ARCH_OMAP1
        ---help---
index 63dda67448f02fd07ba21558f71db7effedcbf36..13dc7aff1ab7d5c2d7f5f09349747f94194dcbd9 100644 (file)
@@ -244,7 +244,7 @@ static struct omap_mcbsp_reg_cfg initial_config = {
        /* platform specific initialization */
 #ifdef CONFIG_MACH_OMAP_H2
        .pcr0  = CLKXM | CLKRM | FSXP | FSRP | CLKXP | CLKRP,
-#elif defined(CONFIG_MACH_OMAP_H3) || defined(CONFIG_MACH_OMAP_H4)
+#elif defined(CONFIG_MACH_OMAP_H3) || defined(CONFIG_MACH_OMAP_H4) || defined(CONFIG_MACH_OMAP_APOLLON)
 
 #ifndef TSC_MASTER
        .pcr0  = FSXM | FSRM | CLKXM | CLKRM | CLKXP | CLKRP,