From f37dd149a62386fe5255807dc2e8c19fce7df440 Mon Sep 17 00:00:00 2001 From: Syed Mohammed Khasim Date: Wed, 31 Oct 2007 05:12:53 -0700 Subject: [PATCH] To add basic support for Mistral's OMAP2430 OSK Adds minimal booting support for MISTRAL's OMAP2430 OSK All Credit and Thanks to Mistral's 2430 OSK Team Signed-off-by: Syed Mohammed Khasim Signed-off-by: Tony Lindgren --- arch/arm/mach-omap2/Kconfig | 3 + arch/arm/mach-omap2/Makefile | 1 + arch/arm/mach-omap2/board-2430osk.c | 142 ++++++++++++++++++++++++++++ 3 files changed, 146 insertions(+) create mode 100644 arch/arm/mach-omap2/board-2430osk.c diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index 9323bd071d5..95c41bcd996 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig @@ -106,3 +106,6 @@ config MACH_OMAP_3430SDP bool "OMAP 3430 SDP board" depends on ARCH_OMAP3 && ARCH_OMAP34XX +config MACH_OMAP_2430OSK + bool "OMAP 2430 OSK board" + depends on ARCH_OMAP2 && ARCH_OMAP24XX diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index ef07637c0a9..88adcd432bb 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile @@ -27,6 +27,7 @@ obj-$(CONFIG_MACH_OMAP_H4) += board-h4.o obj-$(CONFIG_MACH_OMAP_2430SDP) += board-2430sdp.o \ board-2430sdp-flash.o \ board-2430sdp-usb.o +obj-$(CONFIG_MACH_OMAP_2430OSK) += board-2430osk.o obj-$(CONFIG_MACH_OMAP_3430SDP) += board-3430sdp.o obj-$(CONFIG_MACH_OMAP_APOLLON) += board-apollon.o \ board-apollon-keys.o diff --git a/arch/arm/mach-omap2/board-2430osk.c b/arch/arm/mach-omap2/board-2430osk.c new file mode 100644 index 00000000000..116fb6e391b --- /dev/null +++ b/arch/arm/mach-omap2/board-2430osk.c @@ -0,0 +1,142 @@ +/* + * linux/arch/arm/mach-omap2/board-2430osk.c + * + * Copyright (C) 2007 Mistral Software Pvt Ltd + * + * Modified from mach-omap2/board-generic.c + * + * 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 +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include + +#include + +static void __init omap_2430osk_init_irq(void) +{ + omap2_init_common_hw(); + omap_init_irq(); + omap_gpio_init(); +} + +static struct omap_uart_config osk2430_uart_config __initdata = { + .enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)), +}; + +static struct omap_board_config_kernel osk2430_config[] __initdata = { + + {OMAP_TAG_UART, &osk2430_uart_config}, +}; + +#if defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE) + +#define OMAP2_I2C_BASE1 0x48070000 +#define OMAP2_I2C_BASE2 0x48072000 +#define OMAP2_I2C_INT1 56 +#define OMAP2_I2C_INT2 57 + +static u32 omap2_i2c1_clkrate = 400; +static u32 omap2_i2c2_clkrate = 2600; + +static struct resource i2c_resources1[] = { + { + .start = OMAP2_I2C_BASE1, + .end = OMAP2_I2C_BASE1 + 0x3f, + .flags = IORESOURCE_MEM, + }, + { + .start = OMAP2_I2C_INT1, + .flags = IORESOURCE_IRQ, + }, +}; + +static struct resource i2c_resources2[] = { + { + .start = OMAP2_I2C_BASE2, + .end = OMAP2_I2C_BASE2 + 0x3f, + .flags = IORESOURCE_MEM, + }, + { + .start = OMAP2_I2C_INT2, + .flags = IORESOURCE_IRQ, + }, +}; + +static struct platform_device omap_i2c_device1 = { + .name = "i2c_omap", + .id = 1, + .num_resources = ARRAY_SIZE(i2c_resources1), + .resource = i2c_resources1, + .dev = { + .platform_data = &omap2_i2c1_clkrate, + }, +}; + +static struct platform_device omap_i2c_device2 = { + .name = "i2c_omap", + .id = 2, + .num_resources = ARRAY_SIZE(i2c_resources2), + .resource = i2c_resources2, + .dev = { + .platform_data = &omap2_i2c2_clkrate, + }, +}; + +static void omap_init_i2c(void) +{ + (void) platform_device_register(&omap_i2c_device2); + (void) platform_device_register(&omap_i2c_device1); +} + +#else + +static void omap_init_i2c(void) {} + +#endif + +static int __init omap2430_i2c_init(void) +{ + omap_init_i2c(); + return 0; +} + +static void __init omap_2430osk_init(void) +{ + omap_board_config = osk2430_config; + omap_board_config_size = ARRAY_SIZE(osk2430_config); + omap_serial_init(); +} + +static void __init omap_2430osk_map_io(void) +{ + omap2_map_common_io(); +} + +arch_initcall(omap2430_i2c_init); + +MACHINE_START(OMAP_2430OSK, "OMAP2430 2430OSK board") + /* Maintainer: Syed Khasim */ + .phys_io = 0x48000000, + .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, + .boot_params = 0x80000100, + .map_io = omap_2430osk_map_io, + .init_irq = omap_2430osk_init_irq, + .init_machine = omap_2430osk_init, + .timer = &omap_timer, +MACHINE_END -- 2.41.1