* [PATCH 0/7] Support for OMAP3430 LDP (Zoom)
@ 2008-05-02 11:23 Nishant Kamat
2008-05-02 11:23 ` [PATCH 1/7] ARM: OMAP: Add basic board support for OMAP LDP Nishant Kamat
0 siblings, 1 reply; 16+ messages in thread
From: Nishant Kamat @ 2008-05-02 11:23 UTC (permalink / raw)
To: linux-omap
Tony, All,
Following is a series of patches that add basic support for OMAP3430 LDP,
also known as the Zoom development kit. Refer [1] for more info.
Please consider for merging.
Thanks,
Nishant
[1] http://focus.ti.com/general/docs/wtbu/wtbusplashcontent.tsp?templateId=6123&contentId=36405
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 1/7] ARM: OMAP: Add basic board support for OMAP LDP.
2008-05-02 11:23 [PATCH 0/7] Support for OMAP3430 LDP (Zoom) Nishant Kamat
@ 2008-05-02 11:23 ` Nishant Kamat
2008-05-02 11:23 ` [PATCH 2/7] ARM: OMAP: Add default kernel config " Nishant Kamat
` (2 more replies)
0 siblings, 3 replies; 16+ messages in thread
From: Nishant Kamat @ 2008-05-02 11:23 UTC (permalink / raw)
To: linux-omap; +Cc: Nishant Kamat
This adds basic board support for the OMAP3430 LDP development platform.
It adds support for the touchscreen, RTC, UART and MMC - all of which work
with little or no changes w.r.t. the OMAP3430 SDP.
Signed-off-by: Nishant Kamat <nskamat@ti.com>
---
arch/arm/mach-omap2/Kconfig | 4 +
arch/arm/mach-omap2/Makefile | 2 +
arch/arm/mach-omap2/board-ldp.c | 251 +++++++++++++++++++++++++++++++++
include/asm-arm/arch-omap/board-ldp.h | 34 +++++
include/asm-arm/arch-omap/hardware.h | 4 +
include/linux/i2c/twl4030.h | 2 +
6 files changed, 297 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/mach-omap2/board-ldp.c
create mode 100644 include/asm-arm/arch-omap/board-ldp.h
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 5c229cc..d38f8ca 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -98,6 +98,10 @@ config MACH_OMAP_2430SDP
bool "OMAP 2430 SDP board"
depends on ARCH_OMAP2 && ARCH_OMAP2430
+config MACH_OMAP_LDP
+ bool "OMAP 3 LDP 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 512b446..f58d341 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -41,6 +41,8 @@ obj-$(CONFIG_MACH_OMAP3EVM) += board-omap3evm.o
obj-$(CONFIG_MACH_OMAP3_BEAGLE) += board-omap3beagle.o \
usb-musb.o usb-ehci.o \
hsmmc.o
+obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o \
+ hsmmc.o
obj-$(CONFIG_MACH_OMAP_APOLLON) += board-apollon.o \
board-apollon-mmc.o \
board-apollon-keys.o
diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c
new file mode 100644
index 0000000..4994dd8
--- /dev/null
+++ b/arch/arm/mach-omap2/board-ldp.c
@@ -0,0 +1,251 @@
+/*
+ * linux/arch/arm/mach-omap2/board-ldp.c
+ *
+ * Copyright (C) 2008 Texas Instruments Inc.
+ * Nishant Kamat <nskamat@ti.com>
+ *
+ * Modified from mach-omap2/board-3430sdp.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 <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/delay.h>
+#include <linux/input.h>
+#include <linux/workqueue.h>
+#include <linux/err.h>
+#include <linux/clk.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/ads7846.h>
+#include <linux/i2c/twl4030.h>
+#include <linux/i2c/twl4030-rtc.h>
+
+#include <asm/hardware.h>
+#include <asm/mach-types.h>
+#include <asm/mach/arch.h>
+#include <asm/mach/map.h>
+
+#include <asm/arch/mcspi.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/board.h>
+#include <asm/arch/common.h>
+#include <asm/arch/gpmc.h>
+#include <asm/arch/hsmmc.h>
+
+#include <asm/io.h>
+#include <asm/delay.h>
+#include <asm/arch/control.h>
+
+#define ENABLE_VAUX1_DEDICATED 0x03
+#define ENABLE_VAUX1_DEV_GRP 0x20
+
+#define TWL4030_MSECURE_GPIO 22
+
+static int ts_gpio;
+
+#ifdef CONFIG_RTC_DRV_TWL4030
+static int twl4030_rtc_init(void)
+{
+ int ret = 0;
+
+ /* 3430ES2.0 doesn't have msecure/gpio-22 line connected to T2 */
+ if (is_device_type_gp() && is_sil_rev_less_than(OMAP3430_REV_ES2_0)) {
+ u32 msecure_pad_config_reg = omap_ctrl_base_get() + 0xA3C;
+ int mux_mask = 0x04;
+ u16 tmp;
+
+ ret = omap_request_gpio(TWL4030_MSECURE_GPIO);
+ if (ret < 0) {
+ printk(KERN_ERR "twl4030_rtc_init: can't"
+ "reserve GPIO:%d !\n", TWL4030_MSECURE_GPIO);
+ goto out;
+ }
+ /*
+ * TWL4030 will be in secure mode if msecure line from OMAP
+ * is low. Make msecure line high in order to change the
+ * TWL4030 RTC time and calender registers.
+ */
+ omap_set_gpio_direction(TWL4030_MSECURE_GPIO, 0);
+
+ tmp = omap_readw(msecure_pad_config_reg);
+ tmp &= 0xF8; /* To enable mux mode 03/04 = GPIO_RTC */
+ tmp |= mux_mask;/* To enable mux mode 03/04 = GPIO_RTC */
+ omap_writew(tmp, msecure_pad_config_reg);
+
+ omap_set_gpio_dataout(TWL4030_MSECURE_GPIO, 1);
+ }
+out:
+ return ret;
+}
+
+static void twl4030_rtc_exit(void)
+{
+ omap_free_gpio(TWL4030_MSECURE_GPIO);
+}
+
+static struct twl4030rtc_platform_data ldp_twl4030rtc_data = {
+ .init = &twl4030_rtc_init,
+ .exit = &twl4030_rtc_exit,
+};
+
+static struct platform_device ldp_twl4030rtc_device = {
+ .name = "twl4030_rtc",
+ .id = -1,
+ .dev = {
+ .platform_data = &ldp_twl4030rtc_data,
+ },
+};
+#endif
+
+/**
+ * @brief ads7846_dev_init : Requests & sets GPIO line for pen-irq
+ *
+ * @return - void. If request gpio fails then Flag KERN_ERR.
+ */
+static void ads7846_dev_init(void)
+{
+ if (omap_request_gpio(ts_gpio) < 0) {
+ printk(KERN_ERR "can't get ads746 pen down GPIO\n");
+ return;
+ }
+
+ omap_set_gpio_direction(ts_gpio, 1);
+
+ omap_set_gpio_debounce(ts_gpio, 1);
+ omap_set_gpio_debounce_time(ts_gpio, 0xa);
+}
+
+static int ads7846_get_pendown_state(void)
+{
+ return !omap_get_gpio_datain(ts_gpio);
+}
+
+/*
+ * This enable(1)/disable(0) the voltage for TS: uses twl4030 calls
+ */
+static int ads7846_vaux_control(int vaux_cntrl)
+{
+ int ret = 0;
+
+#ifdef CONFIG_TWL4030_CORE
+ /* check for return value of ldo_use: if success it returns 0 */
+ if (vaux_cntrl == VAUX_ENABLE) {
+ if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
+ ENABLE_VAUX1_DEDICATED, TWL4030_VAUX1_DEDICATED))
+ return -EIO;
+ if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
+ ENABLE_VAUX1_DEV_GRP, TWL4030_VAUX1_DEV_GRP))
+ return -EIO;
+ } else if (vaux_cntrl == VAUX_DISABLE) {
+ if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
+ 0x00, TWL4030_VAUX1_DEDICATED))
+ return -EIO;
+ if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
+ 0x00, TWL4030_VAUX1_DEV_GRP))
+ return -EIO;
+ }
+#else
+ ret = -EIO;
+#endif
+ return ret;
+}
+
+static struct ads7846_platform_data tsc2046_config __initdata = {
+ .get_pendown_state = ads7846_get_pendown_state,
+ .keep_vref_on = 1,
+ .vaux_control = ads7846_vaux_control,
+};
+
+
+static struct omap2_mcspi_device_config tsc2046_mcspi_config = {
+ .turbo_mode = 0,
+ .single_channel = 1, /* 0: slave, 1: master */
+};
+
+static struct spi_board_info ldp_spi_board_info[] __initdata = {
+ [0] = {
+ /*
+ * TSC2046 operates at a max freqency of 2MHz, so
+ * operate slightly below at 1.5MHz
+ */
+ .modalias = "ads7846",
+ .bus_num = 1,
+ .chip_select = 0,
+ .max_speed_hz = 1500000,
+ .controller_data = &tsc2046_mcspi_config,
+ .irq = 0,
+ .platform_data = &tsc2046_config,
+ },
+};
+
+static struct platform_device *ldp_devices[] __initdata = {
+#ifdef CONFIG_RTC_DRV_TWL4030
+ &ldp_twl4030rtc_device,
+#endif
+};
+
+static void __init omap_ldp_init_irq(void)
+{
+ omap2_init_common_hw();
+ omap_init_irq();
+ omap_gpio_init();
+}
+
+static struct omap_uart_config ldp_uart_config __initdata = {
+ .enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)),
+};
+
+static struct omap_mmc_config ldp_mmc_config __initdata = {
+ .mmc [0] = {
+ .enabled = 1,
+ .wire4 = 1,
+ },
+};
+
+static struct omap_board_config_kernel ldp_config[] __initdata = {
+ { OMAP_TAG_UART, &ldp_uart_config },
+ { OMAP_TAG_MMC, &ldp_mmc_config },
+};
+
+static int __init omap_i2c_init(void)
+{
+ omap_register_i2c_bus(1, 2600, NULL, 0);
+ omap_register_i2c_bus(2, 400, NULL, 0);
+ omap_register_i2c_bus(3, 400, NULL, 0);
+ return 0;
+}
+
+static void __init omap_ldp_init(void)
+{
+ platform_add_devices(ldp_devices, ARRAY_SIZE(ldp_devices));
+ omap_board_config = ldp_config;
+ omap_board_config_size = ARRAY_SIZE(ldp_config);
+ ts_gpio = 54;
+ ldp_spi_board_info[0].irq = OMAP_GPIO_IRQ(ts_gpio);
+ spi_register_board_info(ldp_spi_board_info,
+ ARRAY_SIZE(ldp_spi_board_info));
+ ads7846_dev_init();
+ omap_serial_init();
+ hsmmc_init();
+}
+
+static void __init omap_ldp_map_io(void)
+{
+ omap2_set_globals_343x();
+ omap2_map_common_io();
+}
+arch_initcall(omap_i2c_init);
+
+MACHINE_START(OMAP_LDP, "OMAP LDP board")
+ .phys_io = 0x48000000,
+ .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
+ .boot_params = 0x80000100,
+ .map_io = omap_ldp_map_io,
+ .init_irq = omap_ldp_init_irq,
+ .init_machine = omap_ldp_init,
+ .timer = &omap_timer,
+MACHINE_END
diff --git a/include/asm-arm/arch-omap/board-ldp.h b/include/asm-arm/arch-omap/board-ldp.h
new file mode 100644
index 0000000..b227561
--- /dev/null
+++ b/include/asm-arm/arch-omap/board-ldp.h
@@ -0,0 +1,34 @@
+/*
+ * linux/include/asm-arm/arch-omap/board-ldp.h
+ *
+ * Hardware definitions for TI OMAP3 LDP.
+ *
+ * Copyright (C) 2008 Texas Instruments Inc.
+ *
+ * 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_LDP_H
+#define __ASM_ARCH_OMAP_LDP_H
+
+#define TWL4030_IRQNUM INT_34XX_SYS_NIRQ
+
+#endif /* __ASM_ARCH_OMAP_LDP_H */
diff --git a/include/asm-arm/arch-omap/hardware.h b/include/asm-arm/arch-omap/hardware.h
index 09f8ef8..fed9a76 100644
--- a/include/asm-arm/arch-omap/hardware.h
+++ b/include/asm-arm/arch-omap/hardware.h
@@ -343,6 +343,10 @@
#include "board-omap3beagle.h"
#endif
+#ifdef CONFIG_MACH_OMAP_LDP
+#include "board-ldp.h"
+#endif
+
#ifdef CONFIG_MACH_OMAP_APOLLON
#include "board-apollon.h"
#endif
diff --git a/include/linux/i2c/twl4030.h b/include/linux/i2c/twl4030.h
index 05d07f9..40af46e 100644
--- a/include/linux/i2c/twl4030.h
+++ b/include/linux/i2c/twl4030.h
@@ -77,6 +77,8 @@
/* Offsets to Power Registers */
#define TWL4030_VDAC_DEV_GRP 0x3B
#define TWL4030_VDAC_DEDICATED 0x3E
+#define TWL4030_VAUX1_DEV_GRP 0x17
+#define TWL4030_VAUX1_DEDICATED 0x1A
#define TWL4030_VAUX2_DEV_GRP 0x1B
#define TWL4030_VAUX2_DEDICATED 0x1E
#define TWL4030_VAUX3_DEV_GRP 0x1F
--
1.5.3.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 2/7] ARM: OMAP: Add default kernel config for OMAP LDP
2008-05-02 11:23 ` [PATCH 1/7] ARM: OMAP: Add basic board support for OMAP LDP Nishant Kamat
@ 2008-05-02 11:23 ` Nishant Kamat
2008-05-02 11:23 ` [PATCH 3/7] ARM: OMAP: Add NAND flash support " Nishant Kamat
2008-05-02 11:31 ` [PATCH 1/7] ARM: OMAP: Add basic board support for OMAP LDP Felipe Balbi
2008-05-02 23:18 ` Tony Lindgren
2 siblings, 1 reply; 16+ messages in thread
From: Nishant Kamat @ 2008-05-02 11:23 UTC (permalink / raw)
To: linux-omap; +Cc: Nishant Kamat
This patch adds a default config for the OMAP LDP platform. It supports
UART, touchscreen, RTC and MMC drivers.
Signed-off-by: Nishant Kamat <nskamat@ti.com>
---
arch/arm/configs/omap_ldp_defconfig | 1038 +++++++++++++++++++++++++++++++++++
1 files changed, 1038 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/configs/omap_ldp_defconfig
diff --git a/arch/arm/configs/omap_ldp_defconfig b/arch/arm/configs/omap_ldp_defconfig
new file mode 100644
index 0000000..20c3e03
--- /dev/null
+++ b/arch/arm/configs/omap_ldp_defconfig
@@ -0,0 +1,1038 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.25-omap1
+# Mon Apr 28 18:36:47 2008
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_MMU=y
+# CONFIG_NO_IOPORT is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_SUPPORTS_AOUT=y
+CONFIG_ZONE_DMA=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_CGROUPS is not set
+CONFIG_GROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_USER_SCHED=y
+# CONFIG_CGROUP_SCHED is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_KALLSYMS_EXTRA_PASS=y
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_COMPAT_BRK=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_KMOD=y
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+CONFIG_CLASSIC_RCU=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_DAVINCI is not set
+CONFIG_ARCH_OMAP=y
+# CONFIG_ARCH_MSM7X00A is not set
+
+#
+# TI OMAP Implementations
+#
+CONFIG_ARCH_OMAP_OTG=y
+# CONFIG_ARCH_OMAP1 is not set
+# CONFIG_ARCH_OMAP2 is not set
+CONFIG_ARCH_OMAP3=y
+
+#
+# OMAP Feature Selections
+#
+CONFIG_OMAP_DEBUG_SRAM_PATCH=y
+# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set
+# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set
+# CONFIG_OMAP_RESET_CLOCKS is not set
+CONFIG_OMAP_BOOT_TAG=y
+CONFIG_OMAP_BOOT_REASON=y
+# CONFIG_OMAP_COMPONENT_VERSION is not set
+# CONFIG_OMAP_GPIO_SWITCH is not set
+CONFIG_OMAP_MUX=y
+CONFIG_OMAP_MUX_DEBUG=y
+CONFIG_OMAP_MUX_WARNINGS=y
+CONFIG_OMAP_MCBSP=y
+# CONFIG_OMAP_MMU_FWK is not set
+# CONFIG_OMAP_MBOX_FWK is not set
+# CONFIG_OMAP_MPU_TIMER is not set
+CONFIG_OMAP_32K_TIMER=y
+CONFIG_OMAP_32K_TIMER_HZ=128
+CONFIG_OMAP_DM_TIMER=y
+# CONFIG_OMAP_LL_DEBUG_UART1 is not set
+# CONFIG_OMAP_LL_DEBUG_UART2 is not set
+CONFIG_OMAP_LL_DEBUG_UART3=y
+CONFIG_OMAP_SERIAL_WAKE=y
+CONFIG_ARCH_OMAP34XX=y
+CONFIG_ARCH_OMAP3430=y
+
+#
+# OMAP Board Type
+#
+CONFIG_MACH_OMAP_LDP=y
+# CONFIG_MACH_OMAP_3430SDP is not set
+# CONFIG_MACH_OMAP3EVM is not set
+# CONFIG_MACH_OMAP3_BEAGLE is not set
+
+#
+# Boot options
+#
+
+#
+# Power management
+#
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_V7=y
+CONFIG_CPU_32v7=y
+CONFIG_CPU_ABRT_EV7=y
+CONFIG_CPU_PABRT_IFAR=y
+CONFIG_CPU_CACHE_V7=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V7=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_ARM_THUMBEE is not set
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+CONFIG_HAS_TLS_REG=y
+# CONFIG_OUTER_CACHE is not set
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+# CONFIG_PREEMPT is not set
+CONFIG_HZ=128
+CONFIG_AEABI=y
+CONFIG_OABI_COMPAT=y
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_RESOURCES_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+# CONFIG_LEDS is not set
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="root=/dev/nfs nfsroot=192.168.0.1:/home/user/buildroot ip=192.168.0.2:192.168.0.1:192.168.0.1:255.255.255.0:tgt:eth0:off rw console=ttyS2,115200n8"
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_FPE_NWFPE=y
+# CONFIG_FPE_NWFPE_XP is not set
+# CONFIG_FPE_FASTFPE is not set
+CONFIG_VFP=y
+CONFIG_VFPv3=y
+# CONFIG_NEON is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_MISC=y
+
+#
+# Power management options
+#
+CONFIG_PM=y
+# CONFIG_PM_LEGACY is not set
+# CONFIG_PM_DEBUG is not set
+# CONFIG_SUSPEND is not set
+# CONFIG_APM_EMULATION is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+
+#
+# Networking
+#
+# CONFIG_NET is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_FW_LOADER is not set
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_MTD is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_BLK_DEV_XIP is not set
+# CONFIG_CDROM_PKTCDVD is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_OMAP_STI is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HAVE_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_MULTI_LUN is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+# CONFIG_SCSI_SRP_ATTRS is not set
+CONFIG_SCSI_LOWLEVEL=y
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=y
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_UCB1400 is not set
+# CONFIG_TOUCHSCREEN_TSC2005 is not set
+# CONFIG_TOUCHSCREEN_TSC2102 is not set
+# CONFIG_TOUCHSCREEN_TSC210X is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_DETECT_IRQ=y
+CONFIG_SERIAL_8250_RSA=y
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_NVRAM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=y
+
+#
+# I2C Hardware Bus support
+#
+# CONFIG_I2C_GPIO is not set
+# CONFIG_I2C_OCORES is not set
+CONFIG_I2C_OMAP=y
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_PCA_PLATFORM is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_DS1682 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_PCF8575 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_ISP1301_OMAP is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_SENSORS_TLV320AIC23 is not set
+CONFIG_TWL4030_CORE=y
+CONFIG_TWL4030_GPIO=y
+CONFIG_TWL4030_MADC=y
+# CONFIG_TWL4030_USB is not set
+# CONFIG_TWL4030_PWRBUTTON is not set
+# CONFIG_TWL4030_POWEROFF is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_LP5521 is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# SPI support
+#
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_BITBANG is not set
+CONFIG_SPI_OMAP24XX=y
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_AT25 is not set
+# CONFIG_SPI_TSC2101 is not set
+# CONFIG_SPI_TSC2102 is not set
+# CONFIG_SPI_TSC210X is not set
+# CONFIG_SPI_TSC2301 is not set
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_TLE62X0 is not set
+CONFIG_HAVE_GPIO_LIB=y
+
+#
+# GPIO Support
+#
+# CONFIG_DEBUG_GPIO is not set
+
+#
+# I2C GPIO expanders:
+#
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_GPIO_PCF857X is not set
+
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MCP23S08 is not set
+CONFIG_W1=y
+
+#
+# 1-wire Bus Masters
+#
+# CONFIG_W1_MASTER_DS2482 is not set
+# CONFIG_W1_MASTER_DS1WM is not set
+CONFIG_HDQ_MASTER_OMAP=y
+# CONFIG_W1_MASTER_GPIO is not set
+
+#
+# 1-wire Slaves
+#
+# CONFIG_W1_SLAVE_THERM is not set
+# CONFIG_W1_SLAVE_SMEM is not set
+# CONFIG_W1_SLAVE_DS2433 is not set
+# CONFIG_W1_SLAVE_DS2760 is not set
+CONFIG_W1_SLAVE_BQ27000=y
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_BATTERY_DS2760 is not set
+# CONFIG_HWMON is not set
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_NOWAYOUT=y
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+CONFIG_OMAP_WATCHDOG=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_ASIC3 is not set
+# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_PASIC3 is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+CONFIG_DAB=y
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+# CONFIG_FB is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=y
+# CONFIG_SND_SEQUENCER is not set
+# CONFIG_SND_MIXER_OSS is not set
+# CONFIG_SND_PCM_OSS is not set
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# ALSA ARM devices
+#
+# CONFIG_SND_OMAP_AIC23 is not set
+# CONFIG_SND_OMAP_TSC2101 is not set
+# CONFIG_SND_SX1 is not set
+# CONFIG_SND_OMAP_TSC2102 is not set
+# CONFIG_SND_OMAP24XX_EAC is not set
+
+#
+# SPI devices
+#
+
+#
+# System on Chip audio support
+#
+# CONFIG_SND_SOC is not set
+
+#
+# ALSA SoC audio for Freescale SOCs
+#
+
+#
+# SoC Audio for the Texas Instruments OMAP
+#
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HID_DEBUG is not set
+# CONFIG_HIDRAW is not set
+# CONFIG_USB_SUPPORT is not set
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_BOUNCE=y
+# CONFIG_SDIO_UART is not set
+
+#
+# MMC/SD Host Controller Drivers
+#
+CONFIG_MMC_OMAP_HS=y
+# CONFIG_MMC_SPI is not set
+# CONFIG_NEW_LEDS is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+CONFIG_RTC_DRV_TWL4030=y
+# CONFIG_RTC_DRV_S35390A is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_UIO is not set
+
+#
+# CBUS support
+#
+# CONFIG_CBUS is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+# CONFIG_EXT3_FS_XATTR is not set
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_QUOTA=y
+CONFIG_PRINT_QUOTA_WARNING=y
+# CONFIG_QFMT_V1 is not set
+CONFIG_QFMT_V2=y
+CONFIG_QUOTACTL=y
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_SAMPLES is not set
+# CONFIG_DEBUG_USER is not set
+# CONFIG_DEBUG_ERRORS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+CONFIG_DEBUG_LL=y
+# CONFIG_DEBUG_ICEDCC is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_MANAGER=y
+# CONFIG_CRYPTO_GF128MUL is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_CRYPTD is not set
+# CONFIG_CRYPTO_AUTHENC is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+# CONFIG_CRYPTO_CCM is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_SEQIV is not set
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=y
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+CONFIG_CRYPTO_ECB=m
+# CONFIG_CRYPTO_LRW is not set
+CONFIG_CRYPTO_PCBC=m
+# CONFIG_CRYPTO_XTS is not set
+
+#
+# Hash modes
+#
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_XCBC is not set
+
+#
+# Digest
+#
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD5=y
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+
+#
+# Compression
+#
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_LZO is not set
+CONFIG_CRYPTO_HW=y
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_CRC_CCITT=y
+# CONFIG_CRC16 is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+CONFIG_LIBCRC32C=y
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
--
1.5.3.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 3/7] ARM: OMAP: Add NAND flash support for OMAP LDP
2008-05-02 11:23 ` [PATCH 2/7] ARM: OMAP: Add default kernel config " Nishant Kamat
@ 2008-05-02 11:23 ` Nishant Kamat
2008-05-02 11:23 ` [PATCH 4/7] NET: SMC911X: Driver works for SMC9211 too Nishant Kamat
0 siblings, 1 reply; 16+ messages in thread
From: Nishant Kamat @ 2008-05-02 11:23 UTC (permalink / raw)
To: linux-omap; +Cc: Rohit Choraria, Nishant Kamat
From: Rohit Choraria <rohitkc@ti.com>
This patch adds NAND flash support for OMAP LDP platform.
Signed-off-by: Rohit Choraria <rohitkc@ti.com>
Signed-off-by: Nishant Kamat <nskamat@ti.com>
---
arch/arm/configs/omap_ldp_defconfig | 101 ++++++++++++++++++++++++++++-
arch/arm/mach-omap2/Makefile | 3 +-
arch/arm/mach-omap2/board-ldp-flash.c | 115 +++++++++++++++++++++++++++++++++
arch/arm/mach-omap2/board-ldp.c | 1 +
include/asm-arm/arch-omap/board-ldp.h | 2 +
5 files changed, 219 insertions(+), 3 deletions(-)
create mode 100644 arch/arm/mach-omap2/board-ldp-flash.c
diff --git a/arch/arm/configs/omap_ldp_defconfig b/arch/arm/configs/omap_ldp_defconfig
index 20c3e03..1c04221 100644
--- a/arch/arm/configs/omap_ldp_defconfig
+++ b/arch/arm/configs/omap_ldp_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.25-omap1
-# Mon Apr 28 18:36:47 2008
+# Mon Apr 28 19:52:04 2008
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -333,7 +333,91 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
-# CONFIG_MTD is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_CONCAT=y
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_AFS_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=y
+# CONFIG_MTD_CFI_AMDSTD is not set
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PHYSMAP is not set
+# CONFIG_MTD_ARM_INTEGRATOR is not set
+CONFIG_MTD_OMAP_NOR=y
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_NAND=y
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+CONFIG_MTD_NAND_ECC_SMC=y
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_NANDSIM is not set
+# CONFIG_MTD_NAND_PLATFORM is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_COW_COMMON is not set
@@ -823,6 +907,17 @@ CONFIG_TMPFS=y
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_MINIX_FS is not set
@@ -1032,6 +1127,8 @@ CONFIG_CRC_CCITT=y
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
CONFIG_LIBCRC32C=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index f58d341..73406f2 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -42,7 +42,8 @@ obj-$(CONFIG_MACH_OMAP3_BEAGLE) += board-omap3beagle.o \
usb-musb.o usb-ehci.o \
hsmmc.o
obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o \
- hsmmc.o
+ hsmmc.o \
+ board-ldp-flash.o
obj-$(CONFIG_MACH_OMAP_APOLLON) += board-apollon.o \
board-apollon-mmc.o \
board-apollon-keys.o
diff --git a/arch/arm/mach-omap2/board-ldp-flash.c b/arch/arm/mach-omap2/board-ldp-flash.c
new file mode 100644
index 0000000..c2c1370
--- /dev/null
+++ b/arch/arm/mach-omap2/board-ldp-flash.c
@@ -0,0 +1,115 @@
+/*
+ * linux/arch/arm/mach-omap2/board-ldp-flash.c
+ *
+ * Copyright (C) 2008 Texas Instruments Inc.
+ *
+ * Modified from mach-omap2/board-2430sdp-flash.c
+ * Author: Rohit Choraria <rohitkc@ti.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/platform_device.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/partitions.h>
+#include <linux/mtd/nand.h>
+#include <linux/types.h>
+#include <linux/io.h>
+
+#include <asm/mach/flash.h>
+#include <asm/arch/board.h>
+#include <asm/arch/gpmc.h>
+#include <asm/arch/nand.h>
+
+#define GPMC_CS0_BASE 0x60
+#define GPMC_CS_SIZE 0x30
+
+static struct mtd_partition ldp_nand_partitions[] = {
+ /* All the partition sizes are listed in terms of NAND block size */
+ {
+ .name = "X-Loader-NAND",
+ .offset = 0,
+ .size = 4 * (64 * 2048),
+ .mask_flags = MTD_WRITEABLE, /* force read-only */
+ },
+ {
+ .name = "U-Boot-NAND",
+ .offset = MTDPART_OFS_APPEND, /* Offset = 0x80000 */
+ .size = 4 * (64 * 2048),
+ .mask_flags = MTD_WRITEABLE, /* force read-only */
+ },
+ {
+ .name = "Boot Env-NAND",
+ .offset = MTDPART_OFS_APPEND, /* Offset = 0x100000 */
+ .size = 2 * (64 * 2048),
+ },
+ {
+ .name = "Kernel-NAND",
+ .offset = MTDPART_OFS_APPEND, /* Offset = 0x140000 */
+ .size = 32 * (64 * 2048),
+ },
+ {
+ .name = "File System - NAND",
+ .size = MTDPART_SIZ_FULL,
+ .offset = MTDPART_OFS_APPEND, /* Offset = 0x540000 */
+ },
+};
+
+/* NAND chip access: 16 bit */
+static struct omap_nand_platform_data ldp_nand_data = {
+ .parts = ldp_nand_partitions,
+ .nr_parts = ARRAY_SIZE(ldp_nand_partitions),
+ .nand_setup = NULL,
+ .dma_channel = -1, /* disable DMA in OMAP NAND driver */
+ .dev_ready = NULL,
+};
+
+static struct resource ldp_nand_resource = {
+ .flags = IORESOURCE_MEM,
+};
+
+static struct platform_device ldp_nand_device = {
+ .name = "omap2-nand",
+ .id = 0,
+ .dev = {
+ .platform_data = &ldp_nand_data,
+ },
+ .num_resources = 1,
+ .resource = &ldp_nand_resource,
+};
+
+void __init ldp_flash_init(void)
+{
+ u8 cs = 0;
+ u8 nandcs = GPMC_CS_NUM + 1;
+ u32 gpmc_base_add = OMAP34XX_GPMC_VIRT;
+
+ /* find out the chip-select on which NAND exists */
+ while (cs < GPMC_CS_NUM) {
+ u32 ret = 0;
+ ret = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG1);
+
+ if ((ret & 0xC00) == 0x800) {
+ if (nandcs > GPMC_CS_NUM)
+ nandcs = cs;
+ }
+ cs++;
+ }
+ if (nandcs > GPMC_CS_NUM) {
+ printk(KERN_INFO "NAND: Unable to find configuration "
+ "in GPMC\n ");
+ return;
+ }
+ if (nandcs < GPMC_CS_NUM) {
+ ldp_nand_data.cs = nandcs;
+ ldp_nand_data.gpmc_cs_baseaddr = (void *)(gpmc_base_add +
+ GPMC_CS0_BASE + nandcs * GPMC_CS_SIZE);
+ ldp_nand_data.gpmc_baseaddr = (void *) (gpmc_base_add);
+
+ if (platform_device_register(&ldp_nand_device) < 0)
+ printk(KERN_ERR "Unable to register NAND device\n");
+ }
+}
diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c
index 4994dd8..6a4339a 100644
--- a/arch/arm/mach-omap2/board-ldp.c
+++ b/arch/arm/mach-omap2/board-ldp.c
@@ -229,6 +229,7 @@ static void __init omap_ldp_init(void)
spi_register_board_info(ldp_spi_board_info,
ARRAY_SIZE(ldp_spi_board_info));
ads7846_dev_init();
+ ldp_flash_init();
omap_serial_init();
hsmmc_init();
}
diff --git a/include/asm-arm/arch-omap/board-ldp.h b/include/asm-arm/arch-omap/board-ldp.h
index b227561..88b02a8 100644
--- a/include/asm-arm/arch-omap/board-ldp.h
+++ b/include/asm-arm/arch-omap/board-ldp.h
@@ -29,6 +29,8 @@
#ifndef __ASM_ARCH_OMAP_LDP_H
#define __ASM_ARCH_OMAP_LDP_H
+extern void ldp_flash_init(void);
+
#define TWL4030_IRQNUM INT_34XX_SYS_NIRQ
#endif /* __ASM_ARCH_OMAP_LDP_H */
--
1.5.3.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 4/7] NET: SMC911X: Driver works for SMC9211 too
2008-05-02 11:23 ` [PATCH 3/7] ARM: OMAP: Add NAND flash support " Nishant Kamat
@ 2008-05-02 11:23 ` Nishant Kamat
2008-05-02 11:23 ` [PATCH 5/7] NET: SMC911X: Add support for OMAP LDP platform Nishant Kamat
2008-05-02 23:19 ` [PATCH 4/7] NET: SMC911X: Driver works for SMC9211 too Tony Lindgren
0 siblings, 2 replies; 16+ messages in thread
From: Nishant Kamat @ 2008-05-02 11:23 UTC (permalink / raw)
To: linux-omap; +Cc: Nishant Kamat
The smc911x driver can support SMC9211 also. This patch adds 9211
in the table of supported chip ids, and fixes the ID verification
to care about only 4 nibbles.
Signed-off-by: Nishant Kamat <nskamat@ti.com>
---
drivers/net/smc911x.c | 4 ++--
drivers/net/smc911x.h | 5 ++++-
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index 76cc1d3..00b9b3e 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -1,6 +1,6 @@
/*
* smc911x.c
- * This is a driver for SMSC's LAN911{5,6,7,8} single-chip Ethernet devices.
+ * Driver for SMSC's LAN9{115,116,117,118, 211} single-chip Ethernet devices.
*
* Copyright (C) 2005 Sensoria Corp
* Derived from the unified SMC91x driver by Nicolas Pitre
@@ -1902,7 +1902,7 @@ static int __init smc911x_probe(struct net_device *dev, unsigned long ioaddr)
* recognize. These might need to be added to later,
* as future revisions could be added.
*/
- chip_id = SMC_GET_PN();
+ chip_id = 0xffff & SMC_GET_PN();
DBG(SMC_DEBUG_MISC, "%s: id probe returned 0x%04x\n", CARDNAME, chip_id);
for(i=0;chip_ids[i].id != 0; i++) {
if (chip_ids[i].id == chip_id) break;
diff --git a/drivers/net/smc911x.h b/drivers/net/smc911x.h
index 7defa63..a416c61 100644
--- a/drivers/net/smc911x.h
+++ b/drivers/net/smc911x.h
@@ -1,5 +1,6 @@
/*------------------------------------------------------------------------
- . smc911x.h - macros for SMSC's LAN911{5,6,7,8} single-chip Ethernet device.
+ . smc911x.h - macros for SMSC's LAN9{115,116,117,118,211} single-chip
+ . Ethernet device.
.
. Copyright (C) 2005 Sensoria Corp.
. Derived from the unified SMC91x driver by Nicolas Pitre
@@ -608,6 +609,7 @@ smc_pxa_dma_outsw(struct device *dev, u_long ioaddr, u_long physaddr,
#define CHIP_9116 0x116
#define CHIP_9117 0x117
#define CHIP_9118 0x118
+#define CHIP_9211 0x9211
struct chip_id {
u16 id;
@@ -619,6 +621,7 @@ static const struct chip_id chip_ids[] = {
{ CHIP_9116, "LAN9116" },
{ CHIP_9117, "LAN9117" },
{ CHIP_9118, "LAN9118" },
+ { CHIP_9211, "LAN9211" },
{ 0, NULL },
};
--
1.5.3.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 5/7] NET: SMC911X: Add support for OMAP LDP platform
2008-05-02 11:23 ` [PATCH 4/7] NET: SMC911X: Driver works for SMC9211 too Nishant Kamat
@ 2008-05-02 11:23 ` Nishant Kamat
2008-05-02 11:24 ` [PATCH 6/7] NET: SMC911X: Fix timeout handling Nishant Kamat
` (2 more replies)
2008-05-02 23:19 ` [PATCH 4/7] NET: SMC911X: Driver works for SMC9211 too Tony Lindgren
1 sibling, 3 replies; 16+ messages in thread
From: Nishant Kamat @ 2008-05-02 11:23 UTC (permalink / raw)
To: linux-omap; +Cc: Nishant Kamat
This patch adds support for OMAP LDP platform to smc911x driver.
Signed-off-by: Nishant Kamat <nskamat@ti.com>
---
drivers/net/Kconfig | 2 +-
drivers/net/smc911x.c | 9 ++++++---
drivers/net/smc911x.h | 5 +++++
3 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 015e163..49752d0 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -955,7 +955,7 @@ config SMC911X
tristate "SMSC LAN911[5678] support"
select CRC32
select MII
- depends on ARCH_PXA || SH_MAGIC_PANEL_R2
+ depends on ARCH_PXA || SH_MAGIC_PANEL_R2 || ARCH_OMAP34XX
help
This is a driver for SMSC's LAN911x series of Ethernet chipsets
including the new LAN9115, LAN9116, LAN9117, and LAN9118.
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index 00b9b3e..14a0e3a 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -2136,7 +2136,7 @@ static int smc911x_drv_probe(struct platform_device *pdev)
ret = -ENODEV;
goto out;
}
-
+#ifndef SMC_MEM_RESERVED
/*
* Request the regions.
*/
@@ -2144,7 +2144,7 @@ static int smc911x_drv_probe(struct platform_device *pdev)
ret = -EBUSY;
goto out;
}
-
+#endif
ndev = alloc_etherdev(sizeof(struct smc911x_local));
if (!ndev) {
printk("%s: could not allocate device.\n", CARDNAME);
@@ -2172,7 +2172,9 @@ static int smc911x_drv_probe(struct platform_device *pdev)
release_both:
free_netdev(ndev);
release_1:
+#ifndef SMC_MEM_RESERVED
release_mem_region(res->start, SMC911X_IO_EXTENT);
+#endif
out:
printk("%s: not found (%d).\n", CARDNAME, ret);
}
@@ -2211,8 +2213,9 @@ static int smc911x_drv_remove(struct platform_device *pdev)
#endif
iounmap((void *)ndev->base_addr);
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+#ifndef SMC_MEM_RESERVED
release_mem_region(res->start, SMC911X_IO_EXTENT);
-
+#endif
free_netdev(ndev);
return 0;
}
diff --git a/drivers/net/smc911x.h b/drivers/net/smc911x.h
index a416c61..aed2121 100644
--- a/drivers/net/smc911x.h
+++ b/drivers/net/smc911x.h
@@ -43,6 +43,11 @@
#define SMC_USE_16BIT 0
#define SMC_USE_32BIT 1
#define SMC_IRQ_SENSE IRQF_TRIGGER_LOW
+#elif defined(CONFIG_MACH_OMAP_LDP)
+ #define SMC_USE_16BIT 0
+ #define SMC_USE_32BIT 1
+ #define SMC_IRQ_SENSE IRQF_TRIGGER_LOW
+ #define SMC_MEM_RESERVED 1
#endif
--
1.5.3.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 6/7] NET: SMC911X: Fix timeout handling
2008-05-02 11:23 ` [PATCH 5/7] NET: SMC911X: Add support for OMAP LDP platform Nishant Kamat
@ 2008-05-02 11:24 ` Nishant Kamat
2008-05-02 11:24 ` [PATCH 7/7] ARM: OMAP: Add ethernet support for OMAP LDP Nishant Kamat
2008-05-02 23:20 ` [PATCH 6/7] NET: SMC911X: Fix timeout handling Tony Lindgren
2008-05-02 18:09 ` [PATCH 5/7] NET: SMC911X: Add support for OMAP LDP platform Steve Sakoman
2008-05-02 23:19 ` Tony Lindgren
2 siblings, 2 replies; 16+ messages in thread
From: Nishant Kamat @ 2008-05-02 11:24 UTC (permalink / raw)
To: linux-omap; +Cc: Nishant Kamat
Due to incorrect decrement operation in the loop, the timeout
value would never be zero in case of hardware error. This patch
fixes the decrement operation.
Signed-off-by: Nishant Kamat <nskamat@ti.com>
---
drivers/net/smc911x.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index 14a0e3a..e5afcf2 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -243,7 +243,7 @@ static void smc911x_reset(struct net_device *dev)
do {
udelay(10);
reg = SMC_GET_PMT_CTRL() & PMT_CTRL_READY_;
- } while ( timeout-- && !reg);
+ } while (--timeout && !reg);
if (timeout == 0) {
PRINTK("%s: smc911x_reset timeout waiting for PM restore\n", dev->name);
return;
@@ -267,7 +267,7 @@ static void smc911x_reset(struct net_device *dev)
resets++;
break;
}
- } while ( timeout-- && (reg & HW_CFG_SRST_));
+ } while (--timeout && (reg & HW_CFG_SRST_));
}
if (timeout == 0) {
PRINTK("%s: smc911x_reset timeout waiting for reset\n", dev->name);
@@ -276,7 +276,7 @@ static void smc911x_reset(struct net_device *dev)
/* make sure EEPROM has finished loading before setting GPIO_CFG */
timeout=1000;
- while ( timeout-- && (SMC_GET_E2P_CMD() & E2P_CMD_EPC_BUSY_)) {
+ while (--timeout && (SMC_GET_E2P_CMD() & E2P_CMD_EPC_BUSY_)) {
udelay(10);
}
if (timeout == 0){
@@ -413,7 +413,7 @@ static inline void smc911x_drop_pkt(struct net_device *dev)
do {
udelay(10);
reg = SMC_GET_RX_DP_CTRL() & RX_DP_CTRL_FFWD_BUSY_;
- } while ( timeout-- && reg);
+ } while (--timeout && reg);
if (timeout == 0) {
PRINTK("%s: timeout waiting for RX fast forward\n", dev->name);
}
--
1.5.3.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 7/7] ARM: OMAP: Add ethernet support for OMAP LDP
2008-05-02 11:24 ` [PATCH 6/7] NET: SMC911X: Fix timeout handling Nishant Kamat
@ 2008-05-02 11:24 ` Nishant Kamat
2008-05-02 23:20 ` [PATCH 6/7] NET: SMC911X: Fix timeout handling Tony Lindgren
1 sibling, 0 replies; 16+ messages in thread
From: Nishant Kamat @ 2008-05-02 11:24 UTC (permalink / raw)
To: linux-omap; +Cc: Nishant Kamat
This patch adds ethernet support (smc911x) for OMAP LDP platform.
Signed-off-by: Nishant Kamat <nskamat@ti.com>
---
arch/arm/configs/omap_ldp_defconfig | 155 ++++++++++++++++++++++++++++++++-
arch/arm/mach-omap2/board-ldp.c | 51 +++++++++++
include/asm-arm/arch-omap/board-ldp.h | 6 ++
3 files changed, 209 insertions(+), 3 deletions(-)
diff --git a/arch/arm/configs/omap_ldp_defconfig b/arch/arm/configs/omap_ldp_defconfig
index 1c04221..7d4ff7b 100644
--- a/arch/arm/configs/omap_ldp_defconfig
+++ b/arch/arm/configs/omap_ldp_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.25-omap1
-# Mon Apr 28 19:52:04 2008
+# Tue Apr 29 19:51:36 2008
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -37,8 +37,11 @@ CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_CGROUPS is not set
@@ -317,7 +320,86 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
#
# Networking
#
-# CONFIG_NET is not set
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_NET_KEY=y
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+# CONFIG_INET_LRO is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+
+#
+# Wireless
+#
+# CONFIG_CFG80211 is not set
+# CONFIG_WIRELESS_EXT is not set
+# CONFIG_MAC80211 is not set
+# CONFIG_IEEE80211 is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
#
# Device Drivers
@@ -333,6 +415,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
CONFIG_MTD_CONCAT=y
@@ -423,11 +506,13 @@ CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=16384
# CONFIG_BLK_DEV_XIP is not set
# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
CONFIG_MISC_DEVICES=y
# CONFIG_EEPROM_93CX6 is not set
# CONFIG_OMAP_STI is not set
@@ -468,12 +553,52 @@ CONFIG_SCSI_WAIT_SCAN=m
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
CONFIG_SCSI_LOWLEVEL=y
+# CONFIG_ISCSI_TCP is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_ATA is not set
# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NETDEVICES_MULTIQUEUE is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+# CONFIG_PHYLIB is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_AX88796 is not set
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+# CONFIG_ENC28J60 is not set
+CONFIG_SMC911X=y
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_B44 is not set
+CONFIG_NETDEV_1000=y
+# CONFIG_E1000E_ENABLED is not set
+CONFIG_NETDEV_10000=y
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+# CONFIG_IWLWIFI_LEDS is not set
+# CONFIG_WAN is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
#
# Input device support
@@ -685,6 +810,7 @@ CONFIG_SSB_POSSIBLE=y
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
CONFIG_DAB=y
#
@@ -856,12 +982,14 @@ CONFIG_EXT3_FS=y
CONFIG_JBD=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
-# CONFIG_FS_POSIX_ACL is not set
+CONFIG_FS_POSIX_ACL=y
# CONFIG_XFS_FS is not set
+# CONFIG_OCFS2_FS is not set
CONFIG_DNOTIFY=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_QUOTA=y
+# CONFIG_QUOTA_NETLINK_INTERFACE is not set
CONFIG_PRINT_QUOTA_WARNING=y
# CONFIG_QFMT_V1 is not set
CONFIG_QFMT_V2=y
@@ -926,6 +1054,26 @@ CONFIG_JFFS2_RTIME=y
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFSD is not set
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# CONFIG_SUNRPC_BIND34 is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
#
# Partition Types
@@ -988,6 +1136,7 @@ CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set
+# CONFIG_DLM is not set
#
# Kernel hacking
diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c
index 6a4339a..747bd8f 100644
--- a/arch/arm/mach-omap2/board-ldp.c
+++ b/arch/arm/mach-omap2/board-ldp.c
@@ -45,6 +45,26 @@
#define TWL4030_MSECURE_GPIO 22
+static struct resource ldp_smc911x_resources[] = {
+ [0] = {
+ .start = OMAP34XX_ETHR_START,
+ .end = OMAP34XX_ETHR_START + SZ_4K,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = 0,
+ .end = 0,
+ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL,
+ },
+};
+
+static struct platform_device ldp_smc911x_device = {
+ .name = "smc911x",
+ .id = -1,
+ .num_resources = ARRAY_SIZE(ldp_smc911x_resources),
+ .resource = ldp_smc911x_resources,
+};
+
static int ts_gpio;
#ifdef CONFIG_RTC_DRV_TWL4030
@@ -183,16 +203,47 @@ static struct spi_board_info ldp_spi_board_info[] __initdata = {
};
static struct platform_device *ldp_devices[] __initdata = {
+ &ldp_smc911x_device,
#ifdef CONFIG_RTC_DRV_TWL4030
&ldp_twl4030rtc_device,
#endif
};
+static inline void __init ldp_init_smc911x(void)
+{
+ int eth_cs;
+ unsigned long cs_mem_base;
+ int eth_gpio = 0;
+
+ eth_cs = LDP_SMC911X_CS;
+
+ if (gpmc_cs_request(eth_cs, SZ_16M, &cs_mem_base) < 0) {
+ printk(KERN_ERR "Failed to request GPMC mem for smc911x\n");
+ return;
+ }
+
+ ldp_smc911x_resources[0].start = cs_mem_base + 0x0;
+ ldp_smc911x_resources[0].end = cs_mem_base + 0xf;
+ udelay(100);
+
+ eth_gpio = LDP_SMC911X_GPIO;
+
+ ldp_smc911x_resources[1].start = OMAP_GPIO_IRQ(eth_gpio);
+
+ if (omap_request_gpio(eth_gpio) < 0) {
+ printk(KERN_ERR "Failed to request GPIO%d for smc911x IRQ\n",
+ eth_gpio);
+ return;
+ }
+ omap_set_gpio_direction(eth_gpio, 1);
+}
+
static void __init omap_ldp_init_irq(void)
{
omap2_init_common_hw();
omap_init_irq();
omap_gpio_init();
+ ldp_init_smc911x();
}
static struct omap_uart_config ldp_uart_config __initdata = {
diff --git a/include/asm-arm/arch-omap/board-ldp.h b/include/asm-arm/arch-omap/board-ldp.h
index 88b02a8..8f96e25 100644
--- a/include/asm-arm/arch-omap/board-ldp.h
+++ b/include/asm-arm/arch-omap/board-ldp.h
@@ -31,6 +31,12 @@
extern void ldp_flash_init(void);
+#define DEBUG_BASE 0x08000000
+
+#define OMAP34XX_ETHR_START DEBUG_BASE
+#define LDP_SMC911X_CS 1
+#define LDP_SMC911X_GPIO 152
+
#define TWL4030_IRQNUM INT_34XX_SYS_NIRQ
#endif /* __ASM_ARCH_OMAP_LDP_H */
--
1.5.3.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 1/7] ARM: OMAP: Add basic board support for OMAP LDP.
2008-05-02 11:23 ` [PATCH 1/7] ARM: OMAP: Add basic board support for OMAP LDP Nishant Kamat
2008-05-02 11:23 ` [PATCH 2/7] ARM: OMAP: Add default kernel config " Nishant Kamat
@ 2008-05-02 11:31 ` Felipe Balbi
2008-05-02 11:44 ` Kamat, Nishant
2008-05-02 23:18 ` Tony Lindgren
2 siblings, 1 reply; 16+ messages in thread
From: Felipe Balbi @ 2008-05-02 11:31 UTC (permalink / raw)
To: Nishant Kamat; +Cc: linux-omap
On Fri, 2 May 2008 06:23:55 -0500, Nishant Kamat <nskamat@ti.com> wrote:
> This adds basic board support for the OMAP3430 LDP development platform.
> It adds support for the touchscreen, RTC, UART and MMC - all of which
work
> with little or no changes w.r.t. the OMAP3430 SDP.
>
> Signed-off-by: Nishant Kamat <nskamat@ti.com>
> ---
> arch/arm/mach-omap2/Kconfig | 4 +
> arch/arm/mach-omap2/Makefile | 2 +
> arch/arm/mach-omap2/board-ldp.c | 251
> +++++++++++++++++++++++++++++++++
> include/asm-arm/arch-omap/board-ldp.h | 34 +++++
> include/asm-arm/arch-omap/hardware.h | 4 +
> include/linux/i2c/twl4030.h | 2 +
> 6 files changed, 297 insertions(+), 0 deletions(-)
> create mode 100644 arch/arm/mach-omap2/board-ldp.c
> create mode 100644 include/asm-arm/arch-omap/board-ldp.h
>
> diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
> index 5c229cc..d38f8ca 100644
> --- a/arch/arm/mach-omap2/Kconfig
> +++ b/arch/arm/mach-omap2/Kconfig
> @@ -98,6 +98,10 @@ config MACH_OMAP_2430SDP
> bool "OMAP 2430 SDP board"
> depends on ARCH_OMAP2 && ARCH_OMAP2430
>
> +config MACH_OMAP_LDP
> + bool "OMAP 3 LDP 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 512b446..f58d341 100644
> --- a/arch/arm/mach-omap2/Makefile
> +++ b/arch/arm/mach-omap2/Makefile
> @@ -41,6 +41,8 @@ obj-$(CONFIG_MACH_OMAP3EVM) += board-omap3evm.o
> obj-$(CONFIG_MACH_OMAP3_BEAGLE) += board-omap3beagle.o \
> usb-musb.o usb-ehci.o \
> hsmmc.o
> +obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o \
> + hsmmc.o
> obj-$(CONFIG_MACH_OMAP_APOLLON) += board-apollon.o \
> board-apollon-mmc.o \
> board-apollon-keys.o
> diff --git a/arch/arm/mach-omap2/board-ldp.c
> b/arch/arm/mach-omap2/board-ldp.c
> new file mode 100644
> index 0000000..4994dd8
> --- /dev/null
> +++ b/arch/arm/mach-omap2/board-ldp.c
> @@ -0,0 +1,251 @@
> +/*
> + * linux/arch/arm/mach-omap2/board-ldp.c
> + *
> + * Copyright (C) 2008 Texas Instruments Inc.
> + * Nishant Kamat <nskamat@ti.com>
> + *
> + * Modified from mach-omap2/board-3430sdp.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 <linux/kernel.h>
> +#include <linux/init.h>
> +#include <linux/platform_device.h>
> +#include <linux/delay.h>
> +#include <linux/input.h>
> +#include <linux/workqueue.h>
> +#include <linux/err.h>
> +#include <linux/clk.h>
> +#include <linux/spi/spi.h>
> +#include <linux/spi/ads7846.h>
> +#include <linux/i2c/twl4030.h>
> +#include <linux/i2c/twl4030-rtc.h>
> +
> +#include <asm/hardware.h>
> +#include <asm/mach-types.h>
> +#include <asm/mach/arch.h>
> +#include <asm/mach/map.h>
> +
> +#include <asm/arch/mcspi.h>
> +#include <asm/arch/gpio.h>
> +#include <asm/arch/board.h>
> +#include <asm/arch/common.h>
> +#include <asm/arch/gpmc.h>
> +#include <asm/arch/hsmmc.h>
> +
> +#include <asm/io.h>
> +#include <asm/delay.h>
> +#include <asm/arch/control.h>
> +
> +#define ENABLE_VAUX1_DEDICATED 0x03
> +#define ENABLE_VAUX1_DEV_GRP 0x20
> +
> +#define TWL4030_MSECURE_GPIO 22
> +
> +static int ts_gpio;
> +
> +#ifdef CONFIG_RTC_DRV_TWL4030
> +static int twl4030_rtc_init(void)
> +{
> + int ret = 0;
> +
> + /* 3430ES2.0 doesn't have msecure/gpio-22 line connected to T2 */
> + if (is_device_type_gp() && is_sil_rev_less_than(OMAP3430_REV_ES2_0)) {
> + u32 msecure_pad_config_reg = omap_ctrl_base_get() + 0xA3C;
> + int mux_mask = 0x04;
> + u16 tmp;
> +
> + ret = omap_request_gpio(TWL4030_MSECURE_GPIO);
> + if (ret < 0) {
> + printk(KERN_ERR "twl4030_rtc_init: can't"
> + "reserve GPIO:%d !\n", TWL4030_MSECURE_GPIO);
> + goto out;
> + }
> + /*
> + * TWL4030 will be in secure mode if msecure line from OMAP
> + * is low. Make msecure line high in order to change the
> + * TWL4030 RTC time and calender registers.
> + */
> + omap_set_gpio_direction(TWL4030_MSECURE_GPIO, 0);
> +
> + tmp = omap_readw(msecure_pad_config_reg);
> + tmp &= 0xF8; /* To enable mux mode 03/04 = GPIO_RTC */
> + tmp |= mux_mask;/* To enable mux mode 03/04 = GPIO_RTC */
> + omap_writew(tmp, msecure_pad_config_reg);
> +
> + omap_set_gpio_dataout(TWL4030_MSECURE_GPIO, 1);
> + }
> +out:
> + return ret;
> +}
> +
> +static void twl4030_rtc_exit(void)
> +{
> + omap_free_gpio(TWL4030_MSECURE_GPIO);
> +}
> +
> +static struct twl4030rtc_platform_data ldp_twl4030rtc_data = {
> + .init = &twl4030_rtc_init,
> + .exit = &twl4030_rtc_exit,
> +};
> +
> +static struct platform_device ldp_twl4030rtc_device = {
> + .name = "twl4030_rtc",
> + .id = -1,
> + .dev = {
> + .platform_data = &ldp_twl4030rtc_data,
> + },
> +};
> +#endif
> +
> +/**
> + * @brief ads7846_dev_init : Requests & sets GPIO line for pen-irq
> + *
> + * @return - void. If request gpio fails then Flag KERN_ERR.
> + */
> +static void ads7846_dev_init(void)
> +{
> + if (omap_request_gpio(ts_gpio) < 0) {
> + printk(KERN_ERR "can't get ads746 pen down GPIO\n");
> + return;
> + }
> +
> + omap_set_gpio_direction(ts_gpio, 1);
> +
> + omap_set_gpio_debounce(ts_gpio, 1);
> + omap_set_gpio_debounce_time(ts_gpio, 0xa);
> +}
> +
> +static int ads7846_get_pendown_state(void)
> +{
> + return !omap_get_gpio_datain(ts_gpio);
> +}
> +
> +/*
> + * This enable(1)/disable(0) the voltage for TS: uses twl4030 calls
> + */
> +static int ads7846_vaux_control(int vaux_cntrl)
> +{
> + int ret = 0;
> +
> +#ifdef CONFIG_TWL4030_CORE
> + /* check for return value of ldo_use: if success it returns 0 */
> + if (vaux_cntrl == VAUX_ENABLE) {
> + if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
> + ENABLE_VAUX1_DEDICATED, TWL4030_VAUX1_DEDICATED))
> + return -EIO;
> + if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
> + ENABLE_VAUX1_DEV_GRP, TWL4030_VAUX1_DEV_GRP))
> + return -EIO;
> + } else if (vaux_cntrl == VAUX_DISABLE) {
> + if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
> + 0x00, TWL4030_VAUX1_DEDICATED))
> + return -EIO;
> + if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
> + 0x00, TWL4030_VAUX1_DEV_GRP))
> + return -EIO;
> + }
> +#else
> + ret = -EIO;
> +#endif
> + return ret;
> +}
> +
> +static struct ads7846_platform_data tsc2046_config __initdata = {
> + .get_pendown_state = ads7846_get_pendown_state,
> + .keep_vref_on = 1,
> + .vaux_control = ads7846_vaux_control,
> +};
> +
> +
> +static struct omap2_mcspi_device_config tsc2046_mcspi_config = {
> + .turbo_mode = 0,
> + .single_channel = 1, /* 0: slave, 1: master */
> +};
> +
> +static struct spi_board_info ldp_spi_board_info[] __initdata = {
> + [0] = {
> + /*
> + * TSC2046 operates at a max freqency of 2MHz, so
> + * operate slightly below at 1.5MHz
> + */
> + .modalias = "ads7846",
> + .bus_num = 1,
> + .chip_select = 0,
> + .max_speed_hz = 1500000,
> + .controller_data = &tsc2046_mcspi_config,
> + .irq = 0,
> + .platform_data = &tsc2046_config,
> + },
> +};
> +
> +static struct platform_device *ldp_devices[] __initdata = {
> +#ifdef CONFIG_RTC_DRV_TWL4030
> + &ldp_twl4030rtc_device,
> +#endif
> +};
> +
> +static void __init omap_ldp_init_irq(void)
> +{
> + omap2_init_common_hw();
> + omap_init_irq();
> + omap_gpio_init();
> +}
> +
> +static struct omap_uart_config ldp_uart_config __initdata = {
> + .enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)),
> +};
> +
> +static struct omap_mmc_config ldp_mmc_config __initdata = {
> + .mmc [0] = {
> + .enabled = 1,
> + .wire4 = 1,
> + },
> +};
> +
> +static struct omap_board_config_kernel ldp_config[] __initdata = {
> + { OMAP_TAG_UART, &ldp_uart_config },
> + { OMAP_TAG_MMC, &ldp_mmc_config },
> +};
> +
> +static int __init omap_i2c_init(void)
> +{
> + omap_register_i2c_bus(1, 2600, NULL, 0);
> + omap_register_i2c_bus(2, 400, NULL, 0);
> + omap_register_i2c_bus(3, 400, NULL, 0);
> + return 0;
> +}
> +
> +static void __init omap_ldp_init(void)
> +{
> + platform_add_devices(ldp_devices, ARRAY_SIZE(ldp_devices));
> + omap_board_config = ldp_config;
> + omap_board_config_size = ARRAY_SIZE(ldp_config);
> + ts_gpio = 54;
> + ldp_spi_board_info[0].irq = OMAP_GPIO_IRQ(ts_gpio);
> + spi_register_board_info(ldp_spi_board_info,
> + ARRAY_SIZE(ldp_spi_board_info));
> + ads7846_dev_init();
> + omap_serial_init();
> + hsmmc_init();
no usb?
How about usb_musb() here?
Could you try that ?
you'll need to include <asm/arch/usb-musb.h>
if it works, just append to this patch ;-)
> +}
> +
> +static void __init omap_ldp_map_io(void)
> +{
> + omap2_set_globals_343x();
> + omap2_map_common_io();
> +}
> +arch_initcall(omap_i2c_init);
> +
> +MACHINE_START(OMAP_LDP, "OMAP LDP board")
> + .phys_io = 0x48000000,
> + .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
> + .boot_params = 0x80000100,
> + .map_io = omap_ldp_map_io,
> + .init_irq = omap_ldp_init_irq,
> + .init_machine = omap_ldp_init,
> + .timer = &omap_timer,
> +MACHINE_END
> diff --git a/include/asm-arm/arch-omap/board-ldp.h
> b/include/asm-arm/arch-omap/board-ldp.h
> new file mode 100644
> index 0000000..b227561
> --- /dev/null
> +++ b/include/asm-arm/arch-omap/board-ldp.h
> @@ -0,0 +1,34 @@
> +/*
> + * linux/include/asm-arm/arch-omap/board-ldp.h
> + *
> + * Hardware definitions for TI OMAP3 LDP.
> + *
> + * Copyright (C) 2008 Texas Instruments Inc.
> + *
> + * 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_LDP_H
> +#define __ASM_ARCH_OMAP_LDP_H
> +
> +#define TWL4030_IRQNUM INT_34XX_SYS_NIRQ
> +
> +#endif /* __ASM_ARCH_OMAP_LDP_H */
> diff --git a/include/asm-arm/arch-omap/hardware.h
> b/include/asm-arm/arch-omap/hardware.h
> index 09f8ef8..fed9a76 100644
> --- a/include/asm-arm/arch-omap/hardware.h
> +++ b/include/asm-arm/arch-omap/hardware.h
> @@ -343,6 +343,10 @@
> #include "board-omap3beagle.h"
> #endif
>
> +#ifdef CONFIG_MACH_OMAP_LDP
> +#include "board-ldp.h"
> +#endif
> +
> #ifdef CONFIG_MACH_OMAP_APOLLON
> #include "board-apollon.h"
> #endif
> diff --git a/include/linux/i2c/twl4030.h b/include/linux/i2c/twl4030.h
> index 05d07f9..40af46e 100644
> --- a/include/linux/i2c/twl4030.h
> +++ b/include/linux/i2c/twl4030.h
> @@ -77,6 +77,8 @@
> /* Offsets to Power Registers */
> #define TWL4030_VDAC_DEV_GRP 0x3B
> #define TWL4030_VDAC_DEDICATED 0x3E
> +#define TWL4030_VAUX1_DEV_GRP 0x17
> +#define TWL4030_VAUX1_DEDICATED 0x1A
> #define TWL4030_VAUX2_DEV_GRP 0x1B
> #define TWL4030_VAUX2_DEDICATED 0x1E
> #define TWL4030_VAUX3_DEV_GRP 0x1F
> --
> 1.5.3.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Best Regards,
Felipe Balbi
http://felipebalbi.com
me@felipebalbi.com
^ permalink raw reply [flat|nested] 16+ messages in thread
* RE: [PATCH 1/7] ARM: OMAP: Add basic board support for OMAP LDP.
2008-05-02 11:31 ` [PATCH 1/7] ARM: OMAP: Add basic board support for OMAP LDP Felipe Balbi
@ 2008-05-02 11:44 ` Kamat, Nishant
2008-05-02 12:13 ` Felipe Balbi
0 siblings, 1 reply; 16+ messages in thread
From: Kamat, Nishant @ 2008-05-02 11:44 UTC (permalink / raw)
To: Felipe Balbi; +Cc: linux-omap
Filipe,
> -----Original Message-----
> From: Felipe Balbi [mailto:me@felipebalbi.com]
>
[. . .]
> > + ads7846_dev_init();
> > + omap_serial_init();
> > + hsmmc_init();
>
> no usb?
> How about usb_musb() here?
>
> Could you try that ?
>
> you'll need to include <asm/arch/usb-musb.h>
>
> if it works, just append to this patch ;-)
Last time I tried, it didn't work straight off the bat. I'll send it in
another patch once it works..
Regards,
Nishant
^ permalink raw reply [flat|nested] 16+ messages in thread
* RE: [PATCH 1/7] ARM: OMAP: Add basic board support for OMAP LDP.
2008-05-02 11:44 ` Kamat, Nishant
@ 2008-05-02 12:13 ` Felipe Balbi
0 siblings, 0 replies; 16+ messages in thread
From: Felipe Balbi @ 2008-05-02 12:13 UTC (permalink / raw)
To: Kamat, Nishant; +Cc: linux-omap
On Fri, 2 May 2008 06:44:16 -0500, "Kamat, Nishant" <nskamat@ti.com> wrote:
> Filipe,
>
>> -----Original Message-----
>> From: Felipe Balbi [mailto:me@felipebalbi.com]
>>
> [. . .]
>
>> > + ads7846_dev_init();
>> > + omap_serial_init();
>> > + hsmmc_init();
>>
>> no usb?
>> How about usb_musb() here?
>>
>> Could you try that ?
>>
>> you'll need to include <asm/arch/usb-musb.h>
>>
>> if it works, just append to this patch ;-)
>
> Last time I tried, it didn't work straight off the bat. I'll send it in
> another patch once it works..
Ok then,
Send me the erroenous output if you wish. I could try to help
you digging the problem.
--
Best Regards,
Felipe Balbi
http://felipebalbi.com
me@felipebalbi.com
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 5/7] NET: SMC911X: Add support for OMAP LDP platform
2008-05-02 11:23 ` [PATCH 5/7] NET: SMC911X: Add support for OMAP LDP platform Nishant Kamat
2008-05-02 11:24 ` [PATCH 6/7] NET: SMC911X: Fix timeout handling Nishant Kamat
@ 2008-05-02 18:09 ` Steve Sakoman
2008-05-02 23:19 ` Tony Lindgren
2 siblings, 0 replies; 16+ messages in thread
From: Steve Sakoman @ 2008-05-02 18:09 UTC (permalink / raw)
To: Nishant Kamat, linux-omap@vger.kernel.org
I tested patches 4, 5, and 6 with the OPM3 EVM (after a 1 line
change). No compilation issues, and networking functioned properly.
I have only one change to suggest (and it was required for proper
operation on the OMAP3 EVM). See below for inline comment.
Steve
On Fri, May 2, 2008 at 4:23 AM, Nishant Kamat <nskamat@ti.com> wrote:
> This patch adds support for OMAP LDP platform to smc911x driver.
>
> Signed-off-by: Nishant Kamat <nskamat@ti.com>
> ---
> drivers/net/Kconfig | 2 +-
> drivers/net/smc911x.c | 9 ++++++---
> drivers/net/smc911x.h | 5 +++++
> 3 files changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
> index 015e163..49752d0 100644
> --- a/drivers/net/Kconfig
> +++ b/drivers/net/Kconfig
> @@ -955,7 +955,7 @@ config SMC911X
> tristate "SMSC LAN911[5678] support"
> select CRC32
> select MII
> - depends on ARCH_PXA || SH_MAGIC_PANEL_R2
> + depends on ARCH_PXA || SH_MAGIC_PANEL_R2 || ARCH_OMAP34XX
> help
> This is a driver for SMSC's LAN911x series of Ethernet chipsets
> including the new LAN9115, LAN9116, LAN9117, and LAN9118.
> diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
> index 00b9b3e..14a0e3a 100644
> --- a/drivers/net/smc911x.c
> +++ b/drivers/net/smc911x.c
> @@ -2136,7 +2136,7 @@ static int smc911x_drv_probe(struct platform_device *pdev)
> ret = -ENODEV;
> goto out;
> }
> -
> +#ifndef SMC_MEM_RESERVED
> /*
> * Request the regions.
> */
> @@ -2144,7 +2144,7 @@ static int smc911x_drv_probe(struct platform_device *pdev)
> ret = -EBUSY;
> goto out;
> }
> -
> +#endif
> ndev = alloc_etherdev(sizeof(struct smc911x_local));
> if (!ndev) {
> printk("%s: could not allocate device.\n", CARDNAME);
> @@ -2172,7 +2172,9 @@ static int smc911x_drv_probe(struct platform_device *pdev)
> release_both:
> free_netdev(ndev);
> release_1:
> +#ifndef SMC_MEM_RESERVED
> release_mem_region(res->start, SMC911X_IO_EXTENT);
> +#endif
> out:
> printk("%s: not found (%d).\n", CARDNAME, ret);
> }
> @@ -2211,8 +2213,9 @@ static int smc911x_drv_remove(struct platform_device *pdev)
> #endif
> iounmap((void *)ndev->base_addr);
> res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> +#ifndef SMC_MEM_RESERVED
> release_mem_region(res->start, SMC911X_IO_EXTENT);
> -
> +#endif
> free_netdev(ndev);
> return 0;
> }
> diff --git a/drivers/net/smc911x.h b/drivers/net/smc911x.h
> index a416c61..aed2121 100644
> --- a/drivers/net/smc911x.h
> +++ b/drivers/net/smc911x.h
> @@ -43,6 +43,11 @@
> #define SMC_USE_16BIT 0
> #define SMC_USE_32BIT 1
> #define SMC_IRQ_SENSE IRQF_TRIGGER_LOW
> +#elif defined(CONFIG_MACH_OMAP_LDP)
In order to generalize this patch for use by other 34xx architecture
boards, the above line should be:
+#elif defined(CONFIG_ARCH_OMAP34XX)
> + #define SMC_USE_16BIT 0
> + #define SMC_USE_32BIT 1
> + #define SMC_IRQ_SENSE IRQF_TRIGGER_LOW
> + #define SMC_MEM_RESERVED 1
> #endif
>
>
> --
> 1.5.3.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 1/7] ARM: OMAP: Add basic board support for OMAP LDP.
2008-05-02 11:23 ` [PATCH 1/7] ARM: OMAP: Add basic board support for OMAP LDP Nishant Kamat
2008-05-02 11:23 ` [PATCH 2/7] ARM: OMAP: Add default kernel config " Nishant Kamat
2008-05-02 11:31 ` [PATCH 1/7] ARM: OMAP: Add basic board support for OMAP LDP Felipe Balbi
@ 2008-05-02 23:18 ` Tony Lindgren
2 siblings, 0 replies; 16+ messages in thread
From: Tony Lindgren @ 2008-05-02 23:18 UTC (permalink / raw)
To: Nishant Kamat; +Cc: linux-omap
* Nishant Kamat <nskamat@ti.com> [080502 04:26]:
> This adds basic board support for the OMAP3430 LDP development platform.
> It adds support for the touchscreen, RTC, UART and MMC - all of which work
> with little or no changes w.r.t. the OMAP3430 SDP.
>
> Signed-off-by: Nishant Kamat <nskamat@ti.com>
> ---
> arch/arm/mach-omap2/Kconfig | 4 +
> arch/arm/mach-omap2/Makefile | 2 +
> arch/arm/mach-omap2/board-ldp.c | 251 +++++++++++++++++++++++++++++++++
> include/asm-arm/arch-omap/board-ldp.h | 34 +++++
> include/asm-arm/arch-omap/hardware.h | 4 +
> include/linux/i2c/twl4030.h | 2 +
> 6 files changed, 297 insertions(+), 0 deletions(-)
> create mode 100644 arch/arm/mach-omap2/board-ldp.c
> create mode 100644 include/asm-arm/arch-omap/board-ldp.h
>
> diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
> index 5c229cc..d38f8ca 100644
> --- a/arch/arm/mach-omap2/Kconfig
> +++ b/arch/arm/mach-omap2/Kconfig
> @@ -98,6 +98,10 @@ config MACH_OMAP_2430SDP
> bool "OMAP 2430 SDP board"
> depends on ARCH_OMAP2 && ARCH_OMAP2430
>
> +config MACH_OMAP_LDP
> + bool "OMAP 3 LDP 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 512b446..f58d341 100644
> --- a/arch/arm/mach-omap2/Makefile
> +++ b/arch/arm/mach-omap2/Makefile
> @@ -41,6 +41,8 @@ obj-$(CONFIG_MACH_OMAP3EVM) += board-omap3evm.o
> obj-$(CONFIG_MACH_OMAP3_BEAGLE) += board-omap3beagle.o \
> usb-musb.o usb-ehci.o \
> hsmmc.o
> +obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o \
> + hsmmc.o
> obj-$(CONFIG_MACH_OMAP_APOLLON) += board-apollon.o \
> board-apollon-mmc.o \
> board-apollon-keys.o
> diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c
> new file mode 100644
> index 0000000..4994dd8
> --- /dev/null
> +++ b/arch/arm/mach-omap2/board-ldp.c
> @@ -0,0 +1,251 @@
> +/*
> + * linux/arch/arm/mach-omap2/board-ldp.c
> + *
> + * Copyright (C) 2008 Texas Instruments Inc.
> + * Nishant Kamat <nskamat@ti.com>
> + *
> + * Modified from mach-omap2/board-3430sdp.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 <linux/kernel.h>
> +#include <linux/init.h>
> +#include <linux/platform_device.h>
> +#include <linux/delay.h>
> +#include <linux/input.h>
> +#include <linux/workqueue.h>
> +#include <linux/err.h>
> +#include <linux/clk.h>
> +#include <linux/spi/spi.h>
> +#include <linux/spi/ads7846.h>
> +#include <linux/i2c/twl4030.h>
> +#include <linux/i2c/twl4030-rtc.h>
> +
> +#include <asm/hardware.h>
> +#include <asm/mach-types.h>
> +#include <asm/mach/arch.h>
> +#include <asm/mach/map.h>
> +
> +#include <asm/arch/mcspi.h>
> +#include <asm/arch/gpio.h>
> +#include <asm/arch/board.h>
> +#include <asm/arch/common.h>
> +#include <asm/arch/gpmc.h>
> +#include <asm/arch/hsmmc.h>
> +
> +#include <asm/io.h>
> +#include <asm/delay.h>
> +#include <asm/arch/control.h>
> +
> +#define ENABLE_VAUX1_DEDICATED 0x03
> +#define ENABLE_VAUX1_DEV_GRP 0x20
> +
> +#define TWL4030_MSECURE_GPIO 22
> +
> +static int ts_gpio;
> +
> +#ifdef CONFIG_RTC_DRV_TWL4030
> +static int twl4030_rtc_init(void)
> +{
> + int ret = 0;
> +
> + /* 3430ES2.0 doesn't have msecure/gpio-22 line connected to T2 */
> + if (is_device_type_gp() && is_sil_rev_less_than(OMAP3430_REV_ES2_0)) {
> + u32 msecure_pad_config_reg = omap_ctrl_base_get() + 0xA3C;
> + int mux_mask = 0x04;
> + u16 tmp;
> +
> + ret = omap_request_gpio(TWL4030_MSECURE_GPIO);
> + if (ret < 0) {
> + printk(KERN_ERR "twl4030_rtc_init: can't"
> + "reserve GPIO:%d !\n", TWL4030_MSECURE_GPIO);
> + goto out;
> + }
> + /*
> + * TWL4030 will be in secure mode if msecure line from OMAP
> + * is low. Make msecure line high in order to change the
> + * TWL4030 RTC time and calender registers.
> + */
> + omap_set_gpio_direction(TWL4030_MSECURE_GPIO, 0);
> +
> + tmp = omap_readw(msecure_pad_config_reg);
> + tmp &= 0xF8; /* To enable mux mode 03/04 = GPIO_RTC */
> + tmp |= mux_mask;/* To enable mux mode 03/04 = GPIO_RTC */
> + omap_writew(tmp, msecure_pad_config_reg);
> +
> + omap_set_gpio_dataout(TWL4030_MSECURE_GPIO, 1);
> + }
> +out:
> + return ret;
> +}
> +
> +static void twl4030_rtc_exit(void)
> +{
> + omap_free_gpio(TWL4030_MSECURE_GPIO);
> +}
> +
> +static struct twl4030rtc_platform_data ldp_twl4030rtc_data = {
> + .init = &twl4030_rtc_init,
> + .exit = &twl4030_rtc_exit,
> +};
> +
> +static struct platform_device ldp_twl4030rtc_device = {
> + .name = "twl4030_rtc",
> + .id = -1,
> + .dev = {
> + .platform_data = &ldp_twl4030rtc_data,
> + },
> +};
> +#endif
> +
> +/**
> + * @brief ads7846_dev_init : Requests & sets GPIO line for pen-irq
> + *
> + * @return - void. If request gpio fails then Flag KERN_ERR.
> + */
> +static void ads7846_dev_init(void)
> +{
> + if (omap_request_gpio(ts_gpio) < 0) {
> + printk(KERN_ERR "can't get ads746 pen down GPIO\n");
> + return;
> + }
> +
> + omap_set_gpio_direction(ts_gpio, 1);
> +
> + omap_set_gpio_debounce(ts_gpio, 1);
> + omap_set_gpio_debounce_time(ts_gpio, 0xa);
> +}
> +
> +static int ads7846_get_pendown_state(void)
> +{
> + return !omap_get_gpio_datain(ts_gpio);
> +}
> +
> +/*
> + * This enable(1)/disable(0) the voltage for TS: uses twl4030 calls
> + */
> +static int ads7846_vaux_control(int vaux_cntrl)
> +{
> + int ret = 0;
> +
> +#ifdef CONFIG_TWL4030_CORE
> + /* check for return value of ldo_use: if success it returns 0 */
> + if (vaux_cntrl == VAUX_ENABLE) {
> + if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
> + ENABLE_VAUX1_DEDICATED, TWL4030_VAUX1_DEDICATED))
> + return -EIO;
> + if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
> + ENABLE_VAUX1_DEV_GRP, TWL4030_VAUX1_DEV_GRP))
> + return -EIO;
> + } else if (vaux_cntrl == VAUX_DISABLE) {
> + if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
> + 0x00, TWL4030_VAUX1_DEDICATED))
> + return -EIO;
> + if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
> + 0x00, TWL4030_VAUX1_DEV_GRP))
> + return -EIO;
> + }
> +#else
> + ret = -EIO;
> +#endif
> + return ret;
> +}
> +
> +static struct ads7846_platform_data tsc2046_config __initdata = {
> + .get_pendown_state = ads7846_get_pendown_state,
> + .keep_vref_on = 1,
> + .vaux_control = ads7846_vaux_control,
> +};
> +
> +
> +static struct omap2_mcspi_device_config tsc2046_mcspi_config = {
> + .turbo_mode = 0,
> + .single_channel = 1, /* 0: slave, 1: master */
> +};
> +
> +static struct spi_board_info ldp_spi_board_info[] __initdata = {
> + [0] = {
> + /*
> + * TSC2046 operates at a max freqency of 2MHz, so
> + * operate slightly below at 1.5MHz
> + */
> + .modalias = "ads7846",
> + .bus_num = 1,
> + .chip_select = 0,
> + .max_speed_hz = 1500000,
> + .controller_data = &tsc2046_mcspi_config,
> + .irq = 0,
> + .platform_data = &tsc2046_config,
> + },
> +};
> +
> +static struct platform_device *ldp_devices[] __initdata = {
> +#ifdef CONFIG_RTC_DRV_TWL4030
> + &ldp_twl4030rtc_device,
> +#endif
> +};
> +
> +static void __init omap_ldp_init_irq(void)
> +{
> + omap2_init_common_hw();
> + omap_init_irq();
> + omap_gpio_init();
> +}
> +
> +static struct omap_uart_config ldp_uart_config __initdata = {
> + .enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)),
> +};
> +
> +static struct omap_mmc_config ldp_mmc_config __initdata = {
> + .mmc [0] = {
> + .enabled = 1,
> + .wire4 = 1,
> + },
> +};
> +
> +static struct omap_board_config_kernel ldp_config[] __initdata = {
> + { OMAP_TAG_UART, &ldp_uart_config },
> + { OMAP_TAG_MMC, &ldp_mmc_config },
> +};
> +
> +static int __init omap_i2c_init(void)
> +{
> + omap_register_i2c_bus(1, 2600, NULL, 0);
> + omap_register_i2c_bus(2, 400, NULL, 0);
> + omap_register_i2c_bus(3, 400, NULL, 0);
> + return 0;
> +}
> +
> +static void __init omap_ldp_init(void)
> +{
> + platform_add_devices(ldp_devices, ARRAY_SIZE(ldp_devices));
> + omap_board_config = ldp_config;
> + omap_board_config_size = ARRAY_SIZE(ldp_config);
> + ts_gpio = 54;
> + ldp_spi_board_info[0].irq = OMAP_GPIO_IRQ(ts_gpio);
> + spi_register_board_info(ldp_spi_board_info,
> + ARRAY_SIZE(ldp_spi_board_info));
> + ads7846_dev_init();
> + omap_serial_init();
> + hsmmc_init();
> +}
> +
> +static void __init omap_ldp_map_io(void)
> +{
> + omap2_set_globals_343x();
> + omap2_map_common_io();
> +}
> +arch_initcall(omap_i2c_init);
> +
> +MACHINE_START(OMAP_LDP, "OMAP LDP board")
> + .phys_io = 0x48000000,
> + .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
> + .boot_params = 0x80000100,
> + .map_io = omap_ldp_map_io,
> + .init_irq = omap_ldp_init_irq,
> + .init_machine = omap_ldp_init,
> + .timer = &omap_timer,
> +MACHINE_END
> diff --git a/include/asm-arm/arch-omap/board-ldp.h b/include/asm-arm/arch-omap/board-ldp.h
> new file mode 100644
> index 0000000..b227561
> --- /dev/null
> +++ b/include/asm-arm/arch-omap/board-ldp.h
> @@ -0,0 +1,34 @@
> +/*
> + * linux/include/asm-arm/arch-omap/board-ldp.h
> + *
> + * Hardware definitions for TI OMAP3 LDP.
> + *
> + * Copyright (C) 2008 Texas Instruments Inc.
> + *
> + * 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_LDP_H
> +#define __ASM_ARCH_OMAP_LDP_H
> +
> +#define TWL4030_IRQNUM INT_34XX_SYS_NIRQ
Let's patch away this first before applying these. This should really be
OMAP3_TWL4030_IRQNUM in 34xx.h
> +
> +#endif /* __ASM_ARCH_OMAP_LDP_H */
> diff --git a/include/asm-arm/arch-omap/hardware.h b/include/asm-arm/arch-omap/hardware.h
> index 09f8ef8..fed9a76 100644
> --- a/include/asm-arm/arch-omap/hardware.h
> +++ b/include/asm-arm/arch-omap/hardware.h
> @@ -343,6 +343,10 @@
> #include "board-omap3beagle.h"
> #endif
>
> +#ifdef CONFIG_MACH_OMAP_LDP
> +#include "board-ldp.h"
> +#endif
> +
> #ifdef CONFIG_MACH_OMAP_APOLLON
> #include "board-apollon.h"
> #endif
> diff --git a/include/linux/i2c/twl4030.h b/include/linux/i2c/twl4030.h
> index 05d07f9..40af46e 100644
> --- a/include/linux/i2c/twl4030.h
> +++ b/include/linux/i2c/twl4030.h
> @@ -77,6 +77,8 @@
> /* Offsets to Power Registers */
> #define TWL4030_VDAC_DEV_GRP 0x3B
> #define TWL4030_VDAC_DEDICATED 0x3E
> +#define TWL4030_VAUX1_DEV_GRP 0x17
> +#define TWL4030_VAUX1_DEDICATED 0x1A
> #define TWL4030_VAUX2_DEV_GRP 0x1B
> #define TWL4030_VAUX2_DEDICATED 0x1E
> #define TWL4030_VAUX3_DEV_GRP 0x1F
Please send this twl4030 patch first as a separate patch.
> --
> 1.5.3.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 4/7] NET: SMC911X: Driver works for SMC9211 too
2008-05-02 11:23 ` [PATCH 4/7] NET: SMC911X: Driver works for SMC9211 too Nishant Kamat
2008-05-02 11:23 ` [PATCH 5/7] NET: SMC911X: Add support for OMAP LDP platform Nishant Kamat
@ 2008-05-02 23:19 ` Tony Lindgren
1 sibling, 0 replies; 16+ messages in thread
From: Tony Lindgren @ 2008-05-02 23:19 UTC (permalink / raw)
To: Nishant Kamat; +Cc: linux-omap
* Nishant Kamat <nskamat@ti.com> [080502 04:26]:
> The smc911x driver can support SMC9211 also. This patch adds 9211
> in the table of supported chip ids, and fixes the ID verification
> to care about only 4 nibbles.
This patch should be sent via smc911x maintainer on appropriate
mailing list.
Tony
> Signed-off-by: Nishant Kamat <nskamat@ti.com>
> ---
> drivers/net/smc911x.c | 4 ++--
> drivers/net/smc911x.h | 5 ++++-
> 2 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
> index 76cc1d3..00b9b3e 100644
> --- a/drivers/net/smc911x.c
> +++ b/drivers/net/smc911x.c
> @@ -1,6 +1,6 @@
> /*
> * smc911x.c
> - * This is a driver for SMSC's LAN911{5,6,7,8} single-chip Ethernet devices.
> + * Driver for SMSC's LAN9{115,116,117,118, 211} single-chip Ethernet devices.
> *
> * Copyright (C) 2005 Sensoria Corp
> * Derived from the unified SMC91x driver by Nicolas Pitre
> @@ -1902,7 +1902,7 @@ static int __init smc911x_probe(struct net_device *dev, unsigned long ioaddr)
> * recognize. These might need to be added to later,
> * as future revisions could be added.
> */
> - chip_id = SMC_GET_PN();
> + chip_id = 0xffff & SMC_GET_PN();
> DBG(SMC_DEBUG_MISC, "%s: id probe returned 0x%04x\n", CARDNAME, chip_id);
> for(i=0;chip_ids[i].id != 0; i++) {
> if (chip_ids[i].id == chip_id) break;
> diff --git a/drivers/net/smc911x.h b/drivers/net/smc911x.h
> index 7defa63..a416c61 100644
> --- a/drivers/net/smc911x.h
> +++ b/drivers/net/smc911x.h
> @@ -1,5 +1,6 @@
> /*------------------------------------------------------------------------
> - . smc911x.h - macros for SMSC's LAN911{5,6,7,8} single-chip Ethernet device.
> + . smc911x.h - macros for SMSC's LAN9{115,116,117,118,211} single-chip
> + . Ethernet device.
> .
> . Copyright (C) 2005 Sensoria Corp.
> . Derived from the unified SMC91x driver by Nicolas Pitre
> @@ -608,6 +609,7 @@ smc_pxa_dma_outsw(struct device *dev, u_long ioaddr, u_long physaddr,
> #define CHIP_9116 0x116
> #define CHIP_9117 0x117
> #define CHIP_9118 0x118
> +#define CHIP_9211 0x9211
>
> struct chip_id {
> u16 id;
> @@ -619,6 +621,7 @@ static const struct chip_id chip_ids[] = {
> { CHIP_9116, "LAN9116" },
> { CHIP_9117, "LAN9117" },
> { CHIP_9118, "LAN9118" },
> + { CHIP_9211, "LAN9211" },
> { 0, NULL },
> };
>
> --
> 1.5.3.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 5/7] NET: SMC911X: Add support for OMAP LDP platform
2008-05-02 11:23 ` [PATCH 5/7] NET: SMC911X: Add support for OMAP LDP platform Nishant Kamat
2008-05-02 11:24 ` [PATCH 6/7] NET: SMC911X: Fix timeout handling Nishant Kamat
2008-05-02 18:09 ` [PATCH 5/7] NET: SMC911X: Add support for OMAP LDP platform Steve Sakoman
@ 2008-05-02 23:19 ` Tony Lindgren
2 siblings, 0 replies; 16+ messages in thread
From: Tony Lindgren @ 2008-05-02 23:19 UTC (permalink / raw)
To: Nishant Kamat; +Cc: linux-omap
* Nishant Kamat <nskamat@ti.com> [080502 04:26]:
> This patch adds support for OMAP LDP platform to smc911x driver.
This too should go via smc911x maintainer.
Tony
>
> Signed-off-by: Nishant Kamat <nskamat@ti.com>
> ---
> drivers/net/Kconfig | 2 +-
> drivers/net/smc911x.c | 9 ++++++---
> drivers/net/smc911x.h | 5 +++++
> 3 files changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
> index 015e163..49752d0 100644
> --- a/drivers/net/Kconfig
> +++ b/drivers/net/Kconfig
> @@ -955,7 +955,7 @@ config SMC911X
> tristate "SMSC LAN911[5678] support"
> select CRC32
> select MII
> - depends on ARCH_PXA || SH_MAGIC_PANEL_R2
> + depends on ARCH_PXA || SH_MAGIC_PANEL_R2 || ARCH_OMAP34XX
> help
> This is a driver for SMSC's LAN911x series of Ethernet chipsets
> including the new LAN9115, LAN9116, LAN9117, and LAN9118.
> diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
> index 00b9b3e..14a0e3a 100644
> --- a/drivers/net/smc911x.c
> +++ b/drivers/net/smc911x.c
> @@ -2136,7 +2136,7 @@ static int smc911x_drv_probe(struct platform_device *pdev)
> ret = -ENODEV;
> goto out;
> }
> -
> +#ifndef SMC_MEM_RESERVED
> /*
> * Request the regions.
> */
> @@ -2144,7 +2144,7 @@ static int smc911x_drv_probe(struct platform_device *pdev)
> ret = -EBUSY;
> goto out;
> }
> -
> +#endif
> ndev = alloc_etherdev(sizeof(struct smc911x_local));
> if (!ndev) {
> printk("%s: could not allocate device.\n", CARDNAME);
> @@ -2172,7 +2172,9 @@ static int smc911x_drv_probe(struct platform_device *pdev)
> release_both:
> free_netdev(ndev);
> release_1:
> +#ifndef SMC_MEM_RESERVED
> release_mem_region(res->start, SMC911X_IO_EXTENT);
> +#endif
> out:
> printk("%s: not found (%d).\n", CARDNAME, ret);
> }
> @@ -2211,8 +2213,9 @@ static int smc911x_drv_remove(struct platform_device *pdev)
> #endif
> iounmap((void *)ndev->base_addr);
> res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> +#ifndef SMC_MEM_RESERVED
> release_mem_region(res->start, SMC911X_IO_EXTENT);
> -
> +#endif
> free_netdev(ndev);
> return 0;
> }
> diff --git a/drivers/net/smc911x.h b/drivers/net/smc911x.h
> index a416c61..aed2121 100644
> --- a/drivers/net/smc911x.h
> +++ b/drivers/net/smc911x.h
> @@ -43,6 +43,11 @@
> #define SMC_USE_16BIT 0
> #define SMC_USE_32BIT 1
> #define SMC_IRQ_SENSE IRQF_TRIGGER_LOW
> +#elif defined(CONFIG_MACH_OMAP_LDP)
> + #define SMC_USE_16BIT 0
> + #define SMC_USE_32BIT 1
> + #define SMC_IRQ_SENSE IRQF_TRIGGER_LOW
> + #define SMC_MEM_RESERVED 1
> #endif
>
>
> --
> 1.5.3.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 6/7] NET: SMC911X: Fix timeout handling
2008-05-02 11:24 ` [PATCH 6/7] NET: SMC911X: Fix timeout handling Nishant Kamat
2008-05-02 11:24 ` [PATCH 7/7] ARM: OMAP: Add ethernet support for OMAP LDP Nishant Kamat
@ 2008-05-02 23:20 ` Tony Lindgren
1 sibling, 0 replies; 16+ messages in thread
From: Tony Lindgren @ 2008-05-02 23:20 UTC (permalink / raw)
To: Nishant Kamat; +Cc: linux-omap
* Nishant Kamat <nskamat@ti.com> [080502 04:26]:
> Due to incorrect decrement operation in the loop, the timeout
> value would never be zero in case of hardware error. This patch
> fixes the decrement operation.
And this too.
Tony
> Signed-off-by: Nishant Kamat <nskamat@ti.com>
> ---
> drivers/net/smc911x.c | 8 ++++----
> 1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
> index 14a0e3a..e5afcf2 100644
> --- a/drivers/net/smc911x.c
> +++ b/drivers/net/smc911x.c
> @@ -243,7 +243,7 @@ static void smc911x_reset(struct net_device *dev)
> do {
> udelay(10);
> reg = SMC_GET_PMT_CTRL() & PMT_CTRL_READY_;
> - } while ( timeout-- && !reg);
> + } while (--timeout && !reg);
> if (timeout == 0) {
> PRINTK("%s: smc911x_reset timeout waiting for PM restore\n", dev->name);
> return;
> @@ -267,7 +267,7 @@ static void smc911x_reset(struct net_device *dev)
> resets++;
> break;
> }
> - } while ( timeout-- && (reg & HW_CFG_SRST_));
> + } while (--timeout && (reg & HW_CFG_SRST_));
> }
> if (timeout == 0) {
> PRINTK("%s: smc911x_reset timeout waiting for reset\n", dev->name);
> @@ -276,7 +276,7 @@ static void smc911x_reset(struct net_device *dev)
>
> /* make sure EEPROM has finished loading before setting GPIO_CFG */
> timeout=1000;
> - while ( timeout-- && (SMC_GET_E2P_CMD() & E2P_CMD_EPC_BUSY_)) {
> + while (--timeout && (SMC_GET_E2P_CMD() & E2P_CMD_EPC_BUSY_)) {
> udelay(10);
> }
> if (timeout == 0){
> @@ -413,7 +413,7 @@ static inline void smc911x_drop_pkt(struct net_device *dev)
> do {
> udelay(10);
> reg = SMC_GET_RX_DP_CTRL() & RX_DP_CTRL_FFWD_BUSY_;
> - } while ( timeout-- && reg);
> + } while (--timeout && reg);
> if (timeout == 0) {
> PRINTK("%s: timeout waiting for RX fast forward\n", dev->name);
> }
> --
> 1.5.3.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2008-05-02 23:20 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-02 11:23 [PATCH 0/7] Support for OMAP3430 LDP (Zoom) Nishant Kamat
2008-05-02 11:23 ` [PATCH 1/7] ARM: OMAP: Add basic board support for OMAP LDP Nishant Kamat
2008-05-02 11:23 ` [PATCH 2/7] ARM: OMAP: Add default kernel config " Nishant Kamat
2008-05-02 11:23 ` [PATCH 3/7] ARM: OMAP: Add NAND flash support " Nishant Kamat
2008-05-02 11:23 ` [PATCH 4/7] NET: SMC911X: Driver works for SMC9211 too Nishant Kamat
2008-05-02 11:23 ` [PATCH 5/7] NET: SMC911X: Add support for OMAP LDP platform Nishant Kamat
2008-05-02 11:24 ` [PATCH 6/7] NET: SMC911X: Fix timeout handling Nishant Kamat
2008-05-02 11:24 ` [PATCH 7/7] ARM: OMAP: Add ethernet support for OMAP LDP Nishant Kamat
2008-05-02 23:20 ` [PATCH 6/7] NET: SMC911X: Fix timeout handling Tony Lindgren
2008-05-02 18:09 ` [PATCH 5/7] NET: SMC911X: Add support for OMAP LDP platform Steve Sakoman
2008-05-02 23:19 ` Tony Lindgren
2008-05-02 23:19 ` [PATCH 4/7] NET: SMC911X: Driver works for SMC9211 too Tony Lindgren
2008-05-02 11:31 ` [PATCH 1/7] ARM: OMAP: Add basic board support for OMAP LDP Felipe Balbi
2008-05-02 11:44 ` Kamat, Nishant
2008-05-02 12:13 ` Felipe Balbi
2008-05-02 23:18 ` Tony Lindgren
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox