public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
* [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