Re: [PATCH] Add support for OMAP3Stalker boards
* Jason l...@ema-tech.com [100505 19:09]: A question about board version. Is it good to do a hardware check to find out hardware version? Like function static void __init omap3_evm_get_revision(void) in board-omap3evm.c Sure, that's the best option. Some boards are also using the system_rev, which contains the ATAG_REVISION passed from the bootloader. But then you depend on the bootloader to pass it.. So hardare detection early on is the most flexible way of doing this. Regards, Tony -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCH] Add support for OMAP3Stalker boards
Thanks for replaying, I did have a long wait. A question about board version. Is it good to do a hardware check to find out hardware version? Like function static void __init omap3_evm_get_revision(void) in board-omap3evm.c Best regards, Jason -Original Message- From: Tony Lindgren [mailto:t...@atomide.com] Sent: 2010年5月5日 7:00 To: Jason Cc: linux-omap@vger.kernel.org Subject: Re: [PATCH] Add support for OMAP3Stalker boards Hi, Sorry for the delay in replying. Few comments, see below. * Jason l...@ema-tech.com [100303 06:16]: This patche add omap3 board support for the EMA-Tech StalkerBoards. Base on TI's EVM. snip --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig @@ -82,6 +82,26 @@ config MACH_OMAP3517EVM depends on ARCH_OMAP3 select OMAP_PACKAGE_CBB +config MACH_SBC3530 + bool OMAP3 SBC STALKER board + depends on ARCH_OMAP3 + +choice + prompt STALKER_BOARD_TYPE + depends on MACH_SBC3530 + default STALKER_EVM + +config STALKER_BOARD_TYPE_EVM + bool Stalker EVM board + help + Select this option if you have a Stalker EVM board + +config STALKER_BOARD_TYPE_LK_S + bool Stalker LK-S board + help + Select this option if you have a Stalker LK-S board +endchoice + config MACH_OMAP3_PANDORA bool OMAP3 Pandora depends on ARCH_OMAP3 Things like this are best done by looking at the ATAG_REVISION passed by the bootloader. Then you can dynamically initialize the platform data based on the revision. --- /dev/null +++ b/arch/arm/mach-omap2/board-omap3stalker.c @@ -0,0 +1,922 @@ +/* + * linux/arch/arm/mach-omap2/board-omap3evm.c + * + * Copyright (C) 2008 Guangzhou EMA-Tech + * + * Modified from mach-omap2/board-omap3evm.c + * + * Initial code: Syed Mohammed Khasim + * + * 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/delay.h +#include linux/err.h +#include linux/clk.h +#include linux/gpio.h +#include linux/input.h +#include linux/input/matrix_keypad.h +#include linux/leds.h +#include linux/interrupt.h + +#include linux/spi/spi.h +#include linux/spi/ads7846.h +#include linux/i2c/twl.h +#include linux/usb/otg.h +#if defined(CONFIG_STALKER_BOARD_TYPE_EVM) +#include linux/dm9000.h +#elif defined(CONFIG_STALKER_BOARD_TYPE_LK_S) We should not ifdef includes, it should be OK to include them automatically. +#include linux/smsc911x.h +#include linux/gpio_keys.h +#include linux/i2c/at24.h +#endif + +#include linux/regulator/machine.h + +#include linux/mtd/mtd.h +#include linux/mtd/partitions.h +#include linux/mtd/nand.h + +#include mach/hardware.h +#include asm/mach-types.h +#include asm/mach/arch.h +#include asm/mach/map.h +#include asm/mach/flash.h + +#include plat/board.h +#include plat/mux.h +#include plat/gpmc.h +#include plat/nand.h +#include plat/usb.h +#include plat/common.h +#include plat/control.h +#include plat/mcspi.h +#include plat/clock.h +#include plat/omap-pm.h +#include plat/display.h +#include plat/timer-gp.h + +#include mux.h +#include sdram-micron-mt46h32m32lf-6.h +#include hsmmc.h +#include pm.h That's a lot of include files, are they all needed? +static struct mtd_partition omap3stalker_nand_partitions[] = { + /* All the partition sizes are listed in terms of NAND block size */ + { +.name = X-Loader, +.offset = 0, +.size = 4 * (SZ_128K), +.mask_flags = MTD_WRITEABLE, +}, + { +.name = U-Boot, +.offset = MTDPART_OFS_APPEND, +.size = 15 * (SZ_128K), +.mask_flags = MTD_WRITEABLE, +}, + { +.name = U-Boot Env, +.offset = MTDPART_OFS_APPEND, +.size = 1 * (SZ_128K)}, + { +.name = Kernel, +.offset = MTDPART_OFS_APPEND, +.size = 32 * (SZ_128K)}, + { +.name = File System, +.size = MTDPART_SIZ_FULL, +.offset = MTDPART_OFS_APPEND, +}, +}; Please use tabs instead of spaces. +void __init omap3stalker_flash_init(void) +{ + u8 cs = 0; + u8 nandcs = GPMC_CS_NUM + 1; + u32 gpmc_base_add = OMAP34XX_GPMC_VIRT; Please leave out the NAND stuff for now, we need to first fix the NAND driver before adding more of the OMAP34XX_GPMC_VIRT.. +static struct resource omap3stalker_smsc911x_resources[] = { + [0] = { + .start = OMAP3STALKER_ETHR_START, + .end = + (OMAP3STALKER_ETHR_START + OMAP3STALKER_ETHR_SIZE - 1), + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = OMAP_GPIO_IRQ(OMAP3STALKER_ETHR_GPIO_IRQ), + .end = OMAP_GPIO_IRQ
Re: [PATCH] Add support for OMAP3Stalker boards
Hi, Sorry for the delay in replying. Few comments, see below. * Jason l...@ema-tech.com [100303 06:16]: This patche add omap3 board support for the EMA-Tech StalkerBoards. Base on TI's EVM. snip --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig @@ -82,6 +82,26 @@ config MACH_OMAP3517EVM depends on ARCH_OMAP3 select OMAP_PACKAGE_CBB +config MACH_SBC3530 + bool OMAP3 SBC STALKER board + depends on ARCH_OMAP3 + +choice + prompt STALKER_BOARD_TYPE + depends on MACH_SBC3530 + default STALKER_EVM + +config STALKER_BOARD_TYPE_EVM + bool Stalker EVM board + help + Select this option if you have a Stalker EVM board + +config STALKER_BOARD_TYPE_LK_S + bool Stalker LK-S board + help + Select this option if you have a Stalker LK-S board +endchoice + config MACH_OMAP3_PANDORA bool OMAP3 Pandora depends on ARCH_OMAP3 Things like this are best done by looking at the ATAG_REVISION passed by the bootloader. Then you can dynamically initialize the platform data based on the revision. --- /dev/null +++ b/arch/arm/mach-omap2/board-omap3stalker.c @@ -0,0 +1,922 @@ +/* + * linux/arch/arm/mach-omap2/board-omap3evm.c + * + * Copyright (C) 2008 Guangzhou EMA-Tech + * + * Modified from mach-omap2/board-omap3evm.c + * + * Initial code: Syed Mohammed Khasim + * + * 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/delay.h +#include linux/err.h +#include linux/clk.h +#include linux/gpio.h +#include linux/input.h +#include linux/input/matrix_keypad.h +#include linux/leds.h +#include linux/interrupt.h + +#include linux/spi/spi.h +#include linux/spi/ads7846.h +#include linux/i2c/twl.h +#include linux/usb/otg.h +#if defined(CONFIG_STALKER_BOARD_TYPE_EVM) +#include linux/dm9000.h +#elif defined(CONFIG_STALKER_BOARD_TYPE_LK_S) We should not ifdef includes, it should be OK to include them automatically. +#include linux/smsc911x.h +#include linux/gpio_keys.h +#include linux/i2c/at24.h +#endif + +#include linux/regulator/machine.h + +#include linux/mtd/mtd.h +#include linux/mtd/partitions.h +#include linux/mtd/nand.h + +#include mach/hardware.h +#include asm/mach-types.h +#include asm/mach/arch.h +#include asm/mach/map.h +#include asm/mach/flash.h + +#include plat/board.h +#include plat/mux.h +#include plat/gpmc.h +#include plat/nand.h +#include plat/usb.h +#include plat/common.h +#include plat/control.h +#include plat/mcspi.h +#include plat/clock.h +#include plat/omap-pm.h +#include plat/display.h +#include plat/timer-gp.h + +#include mux.h +#include sdram-micron-mt46h32m32lf-6.h +#include hsmmc.h +#include pm.h That's a lot of include files, are they all needed? +static struct mtd_partition omap3stalker_nand_partitions[] = { + /* All the partition sizes are listed in terms of NAND block size */ + { + .name = X-Loader, + .offset = 0, + .size = 4 * (SZ_128K), + .mask_flags = MTD_WRITEABLE, + }, + { + .name = U-Boot, + .offset = MTDPART_OFS_APPEND, + .size = 15 * (SZ_128K), + .mask_flags = MTD_WRITEABLE, + }, + { + .name = U-Boot Env, + .offset = MTDPART_OFS_APPEND, + .size = 1 * (SZ_128K)}, + { + .name = Kernel, + .offset = MTDPART_OFS_APPEND, + .size = 32 * (SZ_128K)}, + { + .name = File System, + .size = MTDPART_SIZ_FULL, + .offset = MTDPART_OFS_APPEND, + }, +}; Please use tabs instead of spaces. +void __init omap3stalker_flash_init(void) +{ + u8 cs = 0; + u8 nandcs = GPMC_CS_NUM + 1; + u32 gpmc_base_add = OMAP34XX_GPMC_VIRT; Please leave out the NAND stuff for now, we need to first fix the NAND driver before adding more of the OMAP34XX_GPMC_VIRT.. +static struct resource omap3stalker_smsc911x_resources[] = { + [0] = { +.start = OMAP3STALKER_ETHR_START, +.end = +(OMAP3STALKER_ETHR_START + OMAP3STALKER_ETHR_SIZE - 1), +.flags = IORESOURCE_MEM, +}, + [1] = { +.start = OMAP_GPIO_IRQ(OMAP3STALKER_ETHR_GPIO_IRQ), +.end = OMAP_GPIO_IRQ(OMAP3STALKER_ETHR_GPIO_IRQ), +.flags = (IORESOURCE_IRQ | IRQF_TRIGGER_LOW), +}, +}; Please use tabs here too instead of spaces. +static struct omap2_hsmmc_info mmc[] = { + { + .mmc = 1, + .wires = 4, + .gpio_cd = -EINVAL, + .gpio_wp = 23, + }, + {} /* Terminator */ +}; + +#if defined(CONFIG_STALKER_BOARD_TYPE_LK_S) +static struct gpio_keys_button gpio_buttons[] = { + { + .code = BTN_EXTRA, + .gpio
[PATCH] Add support for OMAP3Stalker boards
This patche add omap3 board support for the EMA-Tech StalkerBoards. Base on TI's EVM. From ca9879de445ffa8063e79f43a715712eca9b335f Mon Sep 17 00:00:00 2001 From: Jason Lam l...@ema-tech.com Date: Wed, 3 Mar 2010 10:04:36 +0800 Subject: [PATCH] Add support for OMAP3Stalker boards Signed-off-by: Jason Lam l...@ema-tech.com --- arch/arm/mach-omap2/Kconfig | 20 + arch/arm/mach-omap2/Makefile |2 + arch/arm/mach-omap2/board-omap3stalker.c | 922 ++ 3 files changed, 944 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-omap2/board-omap3stalker.c diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index a8a3d1e..50386c8 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig @@ -82,6 +82,26 @@ config MACH_OMAP3517EVM depends on ARCH_OMAP3 select OMAP_PACKAGE_CBB +config MACH_SBC3530 + bool OMAP3 SBC STALKER board + depends on ARCH_OMAP3 + +choice + prompt STALKER_BOARD_TYPE + depends on MACH_SBC3530 + default STALKER_EVM + +config STALKER_BOARD_TYPE_EVM + bool Stalker EVM board + help + Select this option if you have a Stalker EVM board + +config STALKER_BOARD_TYPE_LK_S + bool Stalker LK-S board + help + Select this option if you have a Stalker LK-S board +endchoice + config MACH_OMAP3_PANDORA bool OMAP3 Pandora depends on ARCH_OMAP3 diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index 2069fb3..51cfe4b 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile @@ -110,6 +110,8 @@ obj-$(CONFIG_MACH_OVERO)+= board-overo.o \ hsmmc.o obj-$(CONFIG_MACH_OMAP3EVM)+= board-omap3evm.o \ hsmmc.o +obj-$(CONFIG_MACH_SBC3530) += board-omap3stalker.o \ + hsmmc.o obj-$(CONFIG_MACH_OMAP3_PANDORA) += board-omap3pandora.o \ hsmmc.o obj-$(CONFIG_MACH_OMAP_3430SDP)+= board-3430sdp.o \ diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c new file mode 100644 index 000..bb70b46 --- /dev/null +++ b/arch/arm/mach-omap2/board-omap3stalker.c @@ -0,0 +1,922 @@ +/* + * linux/arch/arm/mach-omap2/board-omap3evm.c + * + * Copyright (C) 2008 Guangzhou EMA-Tech + * + * Modified from mach-omap2/board-omap3evm.c + * + * Initial code: Syed Mohammed Khasim + * + * 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/delay.h +#include linux/err.h +#include linux/clk.h +#include linux/gpio.h +#include linux/input.h +#include linux/input/matrix_keypad.h +#include linux/leds.h +#include linux/interrupt.h + +#include linux/spi/spi.h +#include linux/spi/ads7846.h +#include linux/i2c/twl.h +#include linux/usb/otg.h +#if defined(CONFIG_STALKER_BOARD_TYPE_EVM) +#include linux/dm9000.h +#elif defined(CONFIG_STALKER_BOARD_TYPE_LK_S) +#include linux/smsc911x.h +#include linux/gpio_keys.h +#include linux/i2c/at24.h +#endif + +#include linux/regulator/machine.h + +#include linux/mtd/mtd.h +#include linux/mtd/partitions.h +#include linux/mtd/nand.h + +#include mach/hardware.h +#include asm/mach-types.h +#include asm/mach/arch.h +#include asm/mach/map.h +#include asm/mach/flash.h + +#include plat/board.h +#include plat/mux.h +#include plat/gpmc.h +#include plat/nand.h +#include plat/usb.h +#include plat/common.h +#include plat/control.h +#include plat/mcspi.h +#include plat/clock.h +#include plat/omap-pm.h +#include plat/display.h +#include plat/timer-gp.h + +#include mux.h +#include sdram-micron-mt46h32m32lf-6.h +#include hsmmc.h +#include pm.h + +static struct mtd_partition omap3stalker_nand_partitions[] = { + /* All the partition sizes are listed in terms of NAND block size */ + { +.name = X-Loader, +.offset = 0, +.size = 4 * (SZ_128K), +.mask_flags = MTD_WRITEABLE, +}, + { +.name = U-Boot, +.offset = MTDPART_OFS_APPEND, +.size = 15 * (SZ_128K), +.mask_flags = MTD_WRITEABLE, +}, + { +.name = U-Boot Env, +.offset = MTDPART_OFS_APPEND, +.size = 1 * (SZ_128K)}, + { +.name = Kernel, +.offset = MTDPART_OFS_APPEND, +.size = 32 * (SZ_128K)}, + { +.name = File System, +.size = MTDPART_SIZ_FULL, +.offset = MTDPART_OFS_APPEND, +}, +}; + +static struct omap_nand_platform_data omap3stalker_nand_data = { + .parts = omap3stalker_nand_partitions, + .nr_parts = ARRAY_SIZE(omap3stalker_nand_partitions
[PATCH] Add support for OMAP3Stalker boards
This patche add omap3 board support for the EMA-Tech StalkerBoards. Base on TI's EVM. From ca9879de445ffa8063e79f43a715712eca9b335f Mon Sep 17 00:00:00 2001 From: Jason Lam l...@ema-tech.com Date: Wed, 3 Mar 2010 10:04:36 +0800 Subject: [PATCH] Add support for OMAP3Stalker boards Signed-off-by: Jason Lam l...@ema-tech.com --- arch/arm/mach-omap2/Kconfig | 20 + arch/arm/mach-omap2/Makefile |2 + arch/arm/mach-omap2/board-omap3stalker.c | 922 ++ 3 files changed, 944 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-omap2/board-omap3stalker.c diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index a8a3d1e..50386c8 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig @@ -82,6 +82,26 @@ config MACH_OMAP3517EVM depends on ARCH_OMAP3 select OMAP_PACKAGE_CBB +config MACH_SBC3530 + bool OMAP3 SBC STALKER board + depends on ARCH_OMAP3 + +choice + prompt STALKER_BOARD_TYPE + depends on MACH_SBC3530 + default STALKER_EVM + +config STALKER_BOARD_TYPE_EVM + bool Stalker EVM board + help + Select this option if you have a Stalker EVM board + +config STALKER_BOARD_TYPE_LK_S + bool Stalker LK-S board + help + Select this option if you have a Stalker LK-S board +endchoice + config MACH_OMAP3_PANDORA bool OMAP3 Pandora depends on ARCH_OMAP3 diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index 2069fb3..51cfe4b 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile @@ -110,6 +110,8 @@ obj-$(CONFIG_MACH_OVERO)+= board-overo.o \ hsmmc.o obj-$(CONFIG_MACH_OMAP3EVM)+= board-omap3evm.o \ hsmmc.o +obj-$(CONFIG_MACH_SBC3530) += board-omap3stalker.o \ + hsmmc.o obj-$(CONFIG_MACH_OMAP3_PANDORA) += board-omap3pandora.o \ hsmmc.o obj-$(CONFIG_MACH_OMAP_3430SDP)+= board-3430sdp.o \ diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c new file mode 100644 index 000..bb70b46 --- /dev/null +++ b/arch/arm/mach-omap2/board-omap3stalker.c @@ -0,0 +1,922 @@ +/* + * linux/arch/arm/mach-omap2/board-omap3evm.c + * + * Copyright (C) 2008 Guangzhou EMA-Tech + * + * Modified from mach-omap2/board-omap3evm.c + * + * Initial code: Syed Mohammed Khasim + * + * 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/delay.h +#include linux/err.h +#include linux/clk.h +#include linux/gpio.h +#include linux/input.h +#include linux/input/matrix_keypad.h +#include linux/leds.h +#include linux/interrupt.h + +#include linux/spi/spi.h +#include linux/spi/ads7846.h +#include linux/i2c/twl.h +#include linux/usb/otg.h +#if defined(CONFIG_STALKER_BOARD_TYPE_EVM) +#include linux/dm9000.h +#elif defined(CONFIG_STALKER_BOARD_TYPE_LK_S) +#include linux/smsc911x.h +#include linux/gpio_keys.h +#include linux/i2c/at24.h +#endif + +#include linux/regulator/machine.h + +#include linux/mtd/mtd.h +#include linux/mtd/partitions.h +#include linux/mtd/nand.h + +#include mach/hardware.h +#include asm/mach-types.h +#include asm/mach/arch.h +#include asm/mach/map.h +#include asm/mach/flash.h + +#include plat/board.h +#include plat/mux.h +#include plat/gpmc.h +#include plat/nand.h +#include plat/usb.h +#include plat/common.h +#include plat/control.h +#include plat/mcspi.h +#include plat/clock.h +#include plat/omap-pm.h +#include plat/display.h +#include plat/timer-gp.h + +#include mux.h +#include sdram-micron-mt46h32m32lf-6.h +#include hsmmc.h +#include pm.h + +static struct mtd_partition omap3stalker_nand_partitions[] = { + /* All the partition sizes are listed in terms of NAND block size */ + { +.name = X-Loader, +.offset = 0, +.size = 4 * (SZ_128K), +.mask_flags = MTD_WRITEABLE, +}, + { +.name = U-Boot, +.offset = MTDPART_OFS_APPEND, +.size = 15 * (SZ_128K), +.mask_flags = MTD_WRITEABLE, +}, + { +.name = U-Boot Env, +.offset = MTDPART_OFS_APPEND, +.size = 1 * (SZ_128K)}, + { +.name = Kernel, +.offset = MTDPART_OFS_APPEND, +.size = 32 * (SZ_128K)}, + { +.name = File System, +.size = MTDPART_SIZ_FULL, +.offset = MTDPART_OFS_APPEND, +}, +}; + +static struct omap_nand_platform_data omap3stalker_nand_data = { + .parts = omap3stalker_nand_partitions, + .nr_parts = ARRAY_SIZE(omap3stalker_nand_partitions