* [PATCH 1/9] ARM omap: move uart access functions to a more generic place
2011-04-04 13:13 On the road to omap4 Sascha Hauer
@ 2011-04-04 13:13 ` Sascha Hauer
2011-04-04 13:13 ` [PATCH 2/9] ARM omap: rework gpio support Sascha Hauer
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Sascha Hauer @ 2011-04-04 13:13 UTC (permalink / raw)
To: barebox
These functions can be used on omap4 aswell, so move them to
omap.c
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
arch/arm/mach-omap/Makefile | 1 +
arch/arm/mach-omap/omap-uart.c | 36 ++++++++++++++++++++++++++++++++++++
arch/arm/mach-omap/omap3_generic.c | 34 ----------------------------------
3 files changed, 37 insertions(+), 34 deletions(-)
create mode 100644 arch/arm/mach-omap/omap-uart.c
diff --git a/arch/arm/mach-omap/Makefile b/arch/arm/mach-omap/Makefile
index 57bab99..fe2d626 100644
--- a/arch/arm/mach-omap/Makefile
+++ b/arch/arm/mach-omap/Makefile
@@ -25,3 +25,4 @@ obj-$(CONFIG_ARCH_OMAP3) += omap3_core.o omap3_generic.o
obj-$(CONFIG_OMAP3_CLOCK_CONFIG) += omap3_clock_core.o omap3_clock.o
obj-$(CONFIG_GPMC) += gpmc.o
obj-$(CONFIG_GPIO) += gpio.o
+obj-y += omap-uart.o
diff --git a/arch/arm/mach-omap/omap-uart.c b/arch/arm/mach-omap/omap-uart.c
new file mode 100644
index 0000000..477452d
--- /dev/null
+++ b/arch/arm/mach-omap/omap-uart.c
@@ -0,0 +1,36 @@
+#include <common.h>
+#include <asm/io.h>
+
+/**
+ * @brief Uart port register read function for OMAP3
+ *
+ * @param base base address of UART
+ * @param reg_idx register index
+ *
+ * @return character read from register
+ */
+unsigned int omap_uart_read(unsigned long base, unsigned char reg_idx)
+{
+ unsigned int *reg_addr = (unsigned int *)base;
+ reg_addr += reg_idx;
+ return readb(reg_addr);
+}
+EXPORT_SYMBOL(omap_uart_read);
+
+/**
+ * @brief Uart port register write function for OMAP3
+ *
+ * @param val value to write
+ * @param base base address of UART
+ * @param reg_idx register index
+ *
+ * @return void
+ */
+void omap_uart_write(unsigned int val, unsigned long base,
+ unsigned char reg_idx)
+{
+ unsigned int *reg_addr = (unsigned int *)base;
+ reg_addr += reg_idx;
+ writeb(val, reg_addr);
+}
+EXPORT_SYMBOL(omap_uart_write);
diff --git a/arch/arm/mach-omap/omap3_generic.c b/arch/arm/mach-omap/omap3_generic.c
index 843143b..c1940d2 100644
--- a/arch/arm/mach-omap/omap3_generic.c
+++ b/arch/arm/mach-omap/omap3_generic.c
@@ -483,37 +483,3 @@ void a_init(void)
#endif
}
-
-/**
- * @brief Uart port register read function for OMAP3
- *
- * @param base base address of UART
- * @param reg_idx register index
- *
- * @return character read from register
- */
-unsigned int omap_uart_read(unsigned long base, unsigned char reg_idx)
-{
- unsigned int *reg_addr = (unsigned int *)base;
- reg_addr += reg_idx;
- return readb(reg_addr);
-}
-EXPORT_SYMBOL(omap_uart_read);
-
-/**
- * @brief Uart port register write function for OMAP3
- *
- * @param val value to write
- * @param base base address of UART
- * @param reg_idx register index
- *
- * @return void
- */
-void omap_uart_write(unsigned int val, unsigned long base,
- unsigned char reg_idx)
-{
- unsigned int *reg_addr = (unsigned int *)base;
- reg_addr += reg_idx;
- writeb(val, reg_addr);
-}
-EXPORT_SYMBOL(omap_uart_write);
--
1.7.2.3
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/9] ARM omap: rework gpio support
2011-04-04 13:13 On the road to omap4 Sascha Hauer
2011-04-04 13:13 ` [PATCH 1/9] ARM omap: move uart access functions to a more generic place Sascha Hauer
@ 2011-04-04 13:13 ` Sascha Hauer
2011-04-04 13:13 ` [PATCH 3/9] ARM omap: move devices-gpmc-nand.c to omap architecture directory Sascha Hauer
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Sascha Hauer @ 2011-04-04 13:13 UTC (permalink / raw)
To: barebox
The current gpio support is derived from the kernel which allows
for support for omap2/3/4 in a single kernel. We do not need this
here, so make it more simple to be able to add omap4 support later.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
arch/arm/mach-omap/gpio.c | 111 ++++++++++++--------------------
arch/arm/mach-omap/include/mach/gpio.h | 42 ------------
2 files changed, 42 insertions(+), 111 deletions(-)
diff --git a/arch/arm/mach-omap/gpio.c b/arch/arm/mach-omap/gpio.c
index 240ac8e..6b06a73 100644
--- a/arch/arm/mach-omap/gpio.c
+++ b/arch/arm/mach-omap/gpio.c
@@ -40,20 +40,27 @@
#include <asm/io.h>
#include <errno.h>
-static struct gpio_bank gpio_bank_34xx[6] = {
- { (void *)OMAP34XX_GPIO1_BASE, METHOD_GPIO_24XX },
- { (void *)OMAP34XX_GPIO2_BASE, METHOD_GPIO_24XX },
- { (void *)OMAP34XX_GPIO3_BASE, METHOD_GPIO_24XX },
- { (void *)OMAP34XX_GPIO4_BASE, METHOD_GPIO_24XX },
- { (void *)OMAP34XX_GPIO5_BASE, METHOD_GPIO_24XX },
- { (void *)OMAP34XX_GPIO6_BASE, METHOD_GPIO_24XX },
+#ifdef CONFIG_ARCH_OMAP3
+
+#define OMAP_GPIO_OE 0x0034
+#define OMAP_GPIO_DATAIN 0x0038
+#define OMAP_GPIO_DATAOUT 0x003c
+#define OMAP_GPIO_CLEARDATAOUT 0x0090
+#define OMAP_GPIO_SETDATAOUT 0x0094
+
+static void __iomem *gpio_bank[] = {
+ (void *)0x48310000,
+ (void *)0x49050000,
+ (void *)0x49052000,
+ (void *)0x49054000,
+ (void *)0x49056000,
+ (void *)0x49058000,
};
+#endif
-static struct gpio_bank *gpio_bank = &gpio_bank_34xx[0];
-
-static inline struct gpio_bank *get_gpio_bank(int gpio)
+static inline void __iomem *get_gpio_base(int gpio)
{
- return &gpio_bank[gpio >> 5];
+ return gpio_bank[gpio >> 5];
}
static inline int get_gpio_index(int gpio)
@@ -65,7 +72,7 @@ static inline int gpio_valid(int gpio)
{
if (gpio < 0)
return -1;
- if (gpio < 192)
+ if (gpio / 32 < ARRAY_SIZE(gpio_bank))
return 0;
return -1;
}
@@ -81,50 +88,35 @@ static int check_gpio(int gpio)
void gpio_set_value(unsigned gpio, int value)
{
- struct gpio_bank *bank;
- void *reg;
+ void __iomem *reg;
u32 l = 0;
if (check_gpio(gpio) < 0)
return;
- bank = get_gpio_bank(gpio);
- reg = bank->base;
-
- switch (bank->method) {
- case METHOD_GPIO_24XX:
- if (value)
- reg += OMAP24XX_GPIO_SETDATAOUT;
- else
- reg += OMAP24XX_GPIO_CLEARDATAOUT;
- l = 1 << get_gpio_index(gpio);
- break;
- default:
- printf("omap3-gpio unknown bank method %s %d\n",
- __FILE__, __LINE__);
- return;
- }
+
+ reg = get_gpio_base(gpio);
+
+ if (value)
+ reg += OMAP_GPIO_SETDATAOUT;
+ else
+ reg += OMAP_GPIO_CLEARDATAOUT;
+ l = 1 << get_gpio_index(gpio);
+
__raw_writel(l, reg);
}
int gpio_direction_input(unsigned gpio)
{
- struct gpio_bank *bank;
- void *reg;
+ void __iomem *reg;
u32 val;
if (check_gpio(gpio) < 0)
return -EINVAL;
- bank = get_gpio_bank(gpio);
- reg = bank->base;
+ reg = get_gpio_base(gpio);
+
+ reg += OMAP_GPIO_OE;
- switch (bank->method) {
- case METHOD_GPIO_24XX:
- reg += OMAP24XX_GPIO_OE;
- break;
- default:
- return -EINVAL;
- }
val = __raw_readl(reg);
val |= 1 << get_gpio_index(gpio);
__raw_writel(val, reg);
@@ -134,25 +126,16 @@ int gpio_direction_input(unsigned gpio)
int gpio_direction_output(unsigned gpio, int value)
{
- struct gpio_bank *bank;
- void *reg;
+ void __iomem *reg;
u32 val;
if (check_gpio(gpio) < 0)
return -EINVAL;
- bank = get_gpio_bank(gpio);
-
- reg = bank->base;
+ reg = get_gpio_base(gpio);
gpio_set_value(gpio, value);
- switch (bank->method) {
- case METHOD_GPIO_24XX:
- reg += OMAP24XX_GPIO_OE;
- break;
- default:
- return -EINVAL;
- }
+ reg += OMAP_GPIO_OE;
val = __raw_readl(reg);
val &= ~(1 << get_gpio_index(gpio));
@@ -163,22 +146,15 @@ int gpio_direction_output(unsigned gpio, int value)
int gpio_get_value(unsigned gpio)
{
- struct gpio_bank *bank;
- void *reg;
+ void __iomem *reg;
if (check_gpio(gpio) < 0)
return -EINVAL;
- bank = get_gpio_bank(gpio);
- reg = bank->base;
- switch (bank->method) {
- case METHOD_GPIO_24XX:
- reg += OMAP24XX_GPIO_DATAIN;
- break;
- default:
- return -EINVAL;
- }
- return (__raw_readl(reg)
- & (1 << get_gpio_index(gpio))) != 0;
+ reg = get_gpio_base(gpio);
+
+ reg += OMAP_GPIO_DATAIN;
+
+ return (__raw_readl(reg) & (1 << get_gpio_index(gpio))) != 0;
}
static void _reset_gpio(int gpio)
@@ -196,11 +172,8 @@ int omap_request_gpio(int gpio)
void omap_free_gpio(int gpio)
{
- struct gpio_bank *bank;
-
if (check_gpio(gpio) < 0)
return;
- bank = get_gpio_bank(gpio);
_reset_gpio(gpio);
}
diff --git a/arch/arm/mach-omap/include/mach/gpio.h b/arch/arm/mach-omap/include/mach/gpio.h
index 9840b6e..6758f9c 100644
--- a/arch/arm/mach-omap/include/mach/gpio.h
+++ b/arch/arm/mach-omap/include/mach/gpio.h
@@ -38,48 +38,6 @@
#ifndef _GPIO_H
#define _GPIO_H
-#define OMAP24XX_GPIO_REVISION 0x0000
-#define OMAP24XX_GPIO_SYSCONFIG 0x0010
-#define OMAP24XX_GPIO_SYSSTATUS 0x0014
-#define OMAP24XX_GPIO_IRQSTATUS1 0x0018
-#define OMAP24XX_GPIO_IRQSTATUS2 0x0028
-#define OMAP24XX_GPIO_IRQENABLE2 0x002c
-#define OMAP24XX_GPIO_IRQENABLE1 0x001c
-#define OMAP24XX_GPIO_WAKE_EN 0x0020
-#define OMAP24XX_GPIO_CTRL 0x0030
-#define OMAP24XX_GPIO_OE 0x0034
-#define OMAP24XX_GPIO_DATAIN 0x0038
-#define OMAP24XX_GPIO_DATAOUT 0x003c
-#define OMAP24XX_GPIO_LEVELDETECT0 0x0040
-#define OMAP24XX_GPIO_LEVELDETECT1 0x0044
-#define OMAP24XX_GPIO_RISINGDETECT 0x0048
-#define OMAP24XX_GPIO_FALLINGDETECT 0x004c
-#define OMAP24XX_GPIO_DEBOUNCE_EN 0x0050
-#define OMAP24XX_GPIO_DEBOUNCE_VAL 0x0054
-#define OMAP24XX_GPIO_CLEARIRQENABLE1 0x0060
-#define OMAP24XX_GPIO_SETIRQENABLE1 0x0064
-#define OMAP24XX_GPIO_CLEARWKUENA 0x0080
-#define OMAP24XX_GPIO_SETWKUENA 0x0084
-#define OMAP24XX_GPIO_CLEARDATAOUT 0x0090
-#define OMAP24XX_GPIO_SETDATAOUT 0x0094
-
-struct gpio_bank {
- void *base;
- int method;
-};
-
-/* OMAP3 GPIO registers */
-#define OMAP34XX_GPIO1_BASE 0x48310000
-#define OMAP34XX_GPIO2_BASE 0x49050000
-#define OMAP34XX_GPIO3_BASE 0x49052000
-#define OMAP34XX_GPIO4_BASE 0x49054000
-#define OMAP34XX_GPIO5_BASE 0x49056000
-#define OMAP34XX_GPIO6_BASE 0x49058000
-
-#define METHOD_GPIO_24XX 4
-
-/* This is the interface */
-
/* Request a gpio before using it */
int omap_request_gpio(int gpio);
/* Reset and free a gpio after using it */
--
1.7.2.3
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 3/9] ARM omap: move devices-gpmc-nand.c to omap architecture directory
2011-04-04 13:13 On the road to omap4 Sascha Hauer
2011-04-04 13:13 ` [PATCH 1/9] ARM omap: move uart access functions to a more generic place Sascha Hauer
2011-04-04 13:13 ` [PATCH 2/9] ARM omap: rework gpio support Sascha Hauer
@ 2011-04-04 13:13 ` Sascha Hauer
2011-04-04 13:13 ` [PATCH 4/9] ARM omap: move architecture specific kconfig entries to arch part Sascha Hauer
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Sascha Hauer @ 2011-04-04 13:13 UTC (permalink / raw)
To: barebox
The original plan was to add all omap devices into the boards/omap
directory. Anyway, there will be reasons to put a board somewhere
else, so move the generic parts into the omap architecture directory.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
arch/arm/boards/omap/Makefile | 2 -
arch/arm/boards/omap/devices-gpmc-nand.c | 102 ------------------------------
arch/arm/mach-omap/Makefile | 2 +-
arch/arm/mach-omap/devices-gpmc-nand.c | 102 ++++++++++++++++++++++++++++++
4 files changed, 103 insertions(+), 105 deletions(-)
delete mode 100644 arch/arm/boards/omap/devices-gpmc-nand.c
create mode 100644 arch/arm/mach-omap/devices-gpmc-nand.c
diff --git a/arch/arm/boards/omap/Makefile b/arch/arm/boards/omap/Makefile
index 1e74e24..8e0418c 100644
--- a/arch/arm/boards/omap/Makefile
+++ b/arch/arm/boards/omap/Makefile
@@ -24,5 +24,3 @@ obj-$(CONFIG_MACH_DO_LOWLEVEL_INIT) += platform.o
obj-$(CONFIG_MACH_OMAP343xSDP) += board-sdp343x.o
obj-$(CONFIG_MACH_BEAGLE) += board-beagle.o
obj-$(CONFIG_MACH_OMAP3EVM) += board-omap3evm.o
-obj-y += devices-gpmc-nand.o
-
diff --git a/arch/arm/boards/omap/devices-gpmc-nand.c b/arch/arm/boards/omap/devices-gpmc-nand.c
deleted file mode 100644
index 4369aa0..0000000
--- a/arch/arm/boards/omap/devices-gpmc-nand.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
- * @file
- * @brief GPMC specific NAND devices
- *
- * FileName: arch/arm/boards/omap/devices-gpmc-nand.c
- *
- * GPMC NAND Devices such as those from Micron, Samsung are listed here
- */
-/*
- * (C) Copyright 2006-2008
- * Texas Instruments, <www.ti.com>
- * Nishanth Menon <x0nishan@ti.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-#include <common.h>
-#include <console.h>
-#include <init.h>
-#include <driver.h>
-#include <clock.h>
-#include <asm/io.h>
-
-#include <mach/silicon.h>
-#include <mach/gpmc.h>
-#include <mach/gpmc_nand.h>
-
-#define GPMC_CONF1_VALx8 0x00000800
-#define GPMC_CONF1_VALx16 0x00001800
-/* Set up the generic params */
-
-/** GPMC timing for our nand device */
-static struct gpmc_config nand_cfg = {
- .cfg = {
- 0, /*CONF1 */
- 0x00141400, /*CONF2 */
- 0x00141400, /*CONF3 */
- 0x0F010F01, /*CONF4 */
- 0x010C1414, /*CONF5 */
-#ifdef CONFIG_ARCH_OMAP3
- /* Additional bits in OMAP3 */
- 0x1F040000 |
-#endif
- 0x00000A80, /*CONF6 */
- },
-
- /* Nand: dont care about base address */
- .base = 0x28000000,
- /* GPMC address map as small as possible */
- .size = GPMC_SIZE_16M,
-};
-
-/** NAND platform specific settings settings */
-static struct gpmc_nand_platform_data nand_plat = {
- .cs = 0,
- .max_timeout = MSECOND,
- .wait_mon_pin = 0,
- .priv = (void *)&nand_cfg,
-};
-
-/** NAND device definition */
-static struct device_d gpmc_generic_nand_nand_device = {
- .id = -1,
- .name = "gpmc_nand",
- .map_base = OMAP_GPMC_BASE,
- .size = 1024 * 4, /* GPMC size */
- .platform_data = (void *)&nand_plat,
-};
-
-/**
- * @brief gpmc_generic_nand_devices_init - init generic nand device
- *
- * @return success/fail based on device funtion
- */
-int gpmc_generic_nand_devices_init(int cs, int width, int hwecc)
-{
- nand_plat.cs = cs;
-
- if (width == 16)
- nand_cfg.cfg[0] = GPMC_CONF1_VALx16;
- else
- nand_cfg.cfg[0] = GPMC_CONF1_VALx8;
-
- nand_plat.device_width = width;
- nand_plat.plat_options = hwecc ? NAND_HWECC_ENABLE : 0;
-
- /* Configure GPMC CS before register */
- gpmc_cs_config(nand_plat.cs, &nand_cfg);
- return register_device(&gpmc_generic_nand_nand_device);
-}
diff --git a/arch/arm/mach-omap/Makefile b/arch/arm/mach-omap/Makefile
index fe2d626..5df8411 100644
--- a/arch/arm/mach-omap/Makefile
+++ b/arch/arm/mach-omap/Makefile
@@ -23,6 +23,6 @@ obj-$(CONFIG_ARCH_OMAP) += syslib.o
obj-$(CONFIG_OMAP_CLOCK_SOURCE_S32K) += s32k_clksource.o
obj-$(CONFIG_ARCH_OMAP3) += omap3_core.o omap3_generic.o
obj-$(CONFIG_OMAP3_CLOCK_CONFIG) += omap3_clock_core.o omap3_clock.o
-obj-$(CONFIG_GPMC) += gpmc.o
+obj-$(CONFIG_GPMC) += gpmc.o devices-gpmc-nand.o
obj-$(CONFIG_GPIO) += gpio.o
obj-y += omap-uart.o
diff --git a/arch/arm/mach-omap/devices-gpmc-nand.c b/arch/arm/mach-omap/devices-gpmc-nand.c
new file mode 100644
index 0000000..4369aa0
--- /dev/null
+++ b/arch/arm/mach-omap/devices-gpmc-nand.c
@@ -0,0 +1,102 @@
+/**
+ * @file
+ * @brief GPMC specific NAND devices
+ *
+ * FileName: arch/arm/boards/omap/devices-gpmc-nand.c
+ *
+ * GPMC NAND Devices such as those from Micron, Samsung are listed here
+ */
+/*
+ * (C) Copyright 2006-2008
+ * Texas Instruments, <www.ti.com>
+ * Nishanth Menon <x0nishan@ti.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+#include <common.h>
+#include <console.h>
+#include <init.h>
+#include <driver.h>
+#include <clock.h>
+#include <asm/io.h>
+
+#include <mach/silicon.h>
+#include <mach/gpmc.h>
+#include <mach/gpmc_nand.h>
+
+#define GPMC_CONF1_VALx8 0x00000800
+#define GPMC_CONF1_VALx16 0x00001800
+/* Set up the generic params */
+
+/** GPMC timing for our nand device */
+static struct gpmc_config nand_cfg = {
+ .cfg = {
+ 0, /*CONF1 */
+ 0x00141400, /*CONF2 */
+ 0x00141400, /*CONF3 */
+ 0x0F010F01, /*CONF4 */
+ 0x010C1414, /*CONF5 */
+#ifdef CONFIG_ARCH_OMAP3
+ /* Additional bits in OMAP3 */
+ 0x1F040000 |
+#endif
+ 0x00000A80, /*CONF6 */
+ },
+
+ /* Nand: dont care about base address */
+ .base = 0x28000000,
+ /* GPMC address map as small as possible */
+ .size = GPMC_SIZE_16M,
+};
+
+/** NAND platform specific settings settings */
+static struct gpmc_nand_platform_data nand_plat = {
+ .cs = 0,
+ .max_timeout = MSECOND,
+ .wait_mon_pin = 0,
+ .priv = (void *)&nand_cfg,
+};
+
+/** NAND device definition */
+static struct device_d gpmc_generic_nand_nand_device = {
+ .id = -1,
+ .name = "gpmc_nand",
+ .map_base = OMAP_GPMC_BASE,
+ .size = 1024 * 4, /* GPMC size */
+ .platform_data = (void *)&nand_plat,
+};
+
+/**
+ * @brief gpmc_generic_nand_devices_init - init generic nand device
+ *
+ * @return success/fail based on device funtion
+ */
+int gpmc_generic_nand_devices_init(int cs, int width, int hwecc)
+{
+ nand_plat.cs = cs;
+
+ if (width == 16)
+ nand_cfg.cfg[0] = GPMC_CONF1_VALx16;
+ else
+ nand_cfg.cfg[0] = GPMC_CONF1_VALx8;
+
+ nand_plat.device_width = width;
+ nand_plat.plat_options = hwecc ? NAND_HWECC_ENABLE : 0;
+
+ /* Configure GPMC CS before register */
+ gpmc_cs_config(nand_plat.cs, &nand_cfg);
+ return register_device(&gpmc_generic_nand_nand_device);
+}
--
1.7.2.3
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 4/9] ARM omap: move architecture specific kconfig entries to arch part
2011-04-04 13:13 On the road to omap4 Sascha Hauer
` (2 preceding siblings ...)
2011-04-04 13:13 ` [PATCH 3/9] ARM omap: move devices-gpmc-nand.c to omap architecture directory Sascha Hauer
@ 2011-04-04 13:13 ` Sascha Hauer
2011-04-04 13:13 ` [PATCH 5/9] ARM omap: allow to put omap boards into another directory Sascha Hauer
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Sascha Hauer @ 2011-04-04 13:13 UTC (permalink / raw)
To: barebox
Just like all other architectures do.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
arch/arm/boards/omap/Kconfig | 93 ------------------------------------------
arch/arm/mach-omap/Kconfig | 70 ++++++++++++++++++++++++++++++-
2 files changed, 68 insertions(+), 95 deletions(-)
delete mode 100644 arch/arm/boards/omap/Kconfig
diff --git a/arch/arm/boards/omap/Kconfig b/arch/arm/boards/omap/Kconfig
deleted file mode 100644
index d612064..0000000
--- a/arch/arm/boards/omap/Kconfig
+++ /dev/null
@@ -1,93 +0,0 @@
-# OMAP based Board Specific Configuration file
-#
-# (C) Copyright 2008
-# OMAP Architecture specific features
-# Texas Instruments, <www.ti.com>
-# Nishanth Menon <x0nishan@ti.com>
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
-
-config ARCH_TEXT_BASE
- hex
- default 0x80e80000 if MACH_OMAP343xSDP
- default 0x80e80000 if MACH_BEAGLE
-
-menu "OMAP Platform Features"
-
-config BOARDINFO
- default "Texas Instrument's SDP343x" if MACH_OMAP343xSDP
- default "Texas Instrument's Beagle" if MACH_BEAGLE
- default "Texas Instrument's OMAP3EVM" if MACH_OMAP3EVM
-
-choice
- prompt "Select OMAP platform"
-
-config MACH_OMAP343xSDP
- bool "Texas Instrument's SDP343x"
- select MACH_HAS_LOWLEVEL_INIT
- select OMAP_CLOCK_ALL
- select HAS_OMAP_NAND
- help
- Say Y here if you are using SDP343x platform
-
-config MACH_BEAGLE
- bool "Texas Instrument's Beagle Board"
- select MACH_HAS_LOWLEVEL_INIT
- select OMAP_CLOCK_ALL
- select HAS_OMAP_NAND
- help
- Say Y here if you are using Beagle Board
-
-config MACH_OMAP3EVM
- bool "Texas Instrument's OMAP3 EVM"
- select MACH_HAS_LOWLEVEL_INIT
- select OMAP_CLOCK_ALL
- select HAS_OMAP_NAND
- help
- Say Y here if you are using OMAP3EVM
-
-endchoice
-
-if MACH_OMAP3EVM
- choice
- prompt "Select UART"
-
- config OMAP3EVM_UART1
- bool "Use UART1"
- depends on MACH_OMAP3EVM
- help
- Say Y here if you would like to use UART1 as console.
-
- config OMAP3EVM_UART3
- bool "Use UART3"
- depends on MACH_OMAP3EVM
- help
- Say Y here if you would like to use UART3 as console.
- endchoice
-endif
-
-config MACH_OMAP_ADVANCED_MUX
- bool "Enable advanced pin muxing"
- depends on MACH_OMAP343xSDP
- default n
- help
- Say Y here if you would like to have complete pin muxing to be
- done at boot time
-
-config HAS_OMAP_NAND
- bool
-
-endmenu
diff --git a/arch/arm/mach-omap/Kconfig b/arch/arm/mach-omap/Kconfig
index 630405b..a13fb1c 100644
--- a/arch/arm/mach-omap/Kconfig
+++ b/arch/arm/mach-omap/Kconfig
@@ -91,7 +91,73 @@ config GPIO
help
Enable this if you use Texas Instrument's General Purpose IO
-# Get the board specific configurations
-source arch/arm/boards/omap/Kconfig
+config ARCH_TEXT_BASE
+ hex
+ default 0x80e80000 if MACH_OMAP343xSDP
+ default 0x80e80000 if MACH_BEAGLE
+
+config BOARDINFO
+ default "Texas Instrument's SDP343x" if MACH_OMAP343xSDP
+ default "Texas Instrument's Beagle" if MACH_BEAGLE
+ default "Texas Instrument's OMAP3EVM" if MACH_OMAP3EVM
+ default "Texas Instrument's Panda" if MACH_PANDA
+
+choice
+ prompt "Select OMAP board"
+
+config MACH_OMAP343xSDP
+ bool "Texas Instrument's SDP343x"
+ select MACH_HAS_LOWLEVEL_INIT
+ select OMAP_CLOCK_ALL
+ select HAS_OMAP_NAND
+ help
+ Say Y here if you are using SDP343x platform
+
+config MACH_BEAGLE
+ bool "Texas Instrument's Beagle Board"
+ select MACH_HAS_LOWLEVEL_INIT
+ select OMAP_CLOCK_ALL
+ select HAS_OMAP_NAND
+ help
+ Say Y here if you are using Beagle Board
+
+config MACH_OMAP3EVM
+ bool "Texas Instrument's OMAP3 EVM"
+ select MACH_HAS_LOWLEVEL_INIT
+ select OMAP_CLOCK_ALL
+ select HAS_OMAP_NAND
+ help
+ Say Y here if you are using OMAP3EVM
+
+endchoice
+
+if MACH_OMAP3EVM
+ choice
+ prompt "Select UART"
+
+ config OMAP3EVM_UART1
+ bool "Use UART1"
+ depends on MACH_OMAP3EVM
+ help
+ Say Y here if you would like to use UART1 as console.
+
+ config OMAP3EVM_UART3
+ bool "Use UART3"
+ depends on MACH_OMAP3EVM
+ help
+ Say Y here if you would like to use UART3 as console.
+ endchoice
+endif
+
+config MACH_OMAP_ADVANCED_MUX
+ bool "Enable advanced pin muxing"
+ depends on MACH_OMAP343xSDP
+ default n
+ help
+ Say Y here if you would like to have complete pin muxing to be
+ done at boot time
+
+config HAS_OMAP_NAND
+ bool
endmenu
--
1.7.2.3
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 5/9] ARM omap: allow to put omap boards into another directory
2011-04-04 13:13 On the road to omap4 Sascha Hauer
` (3 preceding siblings ...)
2011-04-04 13:13 ` [PATCH 4/9] ARM omap: move architecture specific kconfig entries to arch part Sascha Hauer
@ 2011-04-04 13:13 ` Sascha Hauer
2011-04-04 13:14 ` [PATCH 6/9] ARM omap4: fix indention in Kconfig Sascha Hauer
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Sascha Hauer @ 2011-04-04 13:13 UTC (permalink / raw)
To: barebox
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
arch/arm/Makefile | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 697c783..108bd5e 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -83,7 +83,9 @@ board-$(CONFIG_MACH_MMCCPU) := mmccpu
board-$(CONFIG_MACH_MX1ADS) := mx1ads
board-$(CONFIG_MACH_NOMADIK_8815NHK) := nhk8815
board-$(CONFIG_MACH_NXDB500) := netx
-board-$(CONFIG_ARCH_OMAP) := omap
+board-$(CONFIG_MACH_OMAP343xSDP) := omap
+board-$(CONFIG_MACH_BEAGLE) := omap
+board-$(CONFIG_MACH_OMAP3EVM) := omap
board-$(CONFIG_MACH_PCA100) := phycard-i.MX27
board-$(CONFIG_MACH_PCM037) := pcm037
board-$(CONFIG_MACH_PCM038) := pcm038
--
1.7.2.3
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 6/9] ARM omap4: fix indention in Kconfig
2011-04-04 13:13 On the road to omap4 Sascha Hauer
` (4 preceding siblings ...)
2011-04-04 13:13 ` [PATCH 5/9] ARM omap: allow to put omap boards into another directory Sascha Hauer
@ 2011-04-04 13:14 ` Sascha Hauer
2011-04-04 13:14 ` [PATCH 7/9] omap: rename GPMC Kconfig entry to OMAP_GPMC Sascha Hauer
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Sascha Hauer @ 2011-04-04 13:14 UTC (permalink / raw)
To: barebox
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
arch/arm/mach-omap/Kconfig | 56 ++++++++++++++++++++++----------------------
1 files changed, 28 insertions(+), 28 deletions(-)
diff --git a/arch/arm/mach-omap/Kconfig b/arch/arm/mach-omap/Kconfig
index a13fb1c..ec576a1 100644
--- a/arch/arm/mach-omap/Kconfig
+++ b/arch/arm/mach-omap/Kconfig
@@ -39,38 +39,38 @@ config ARCH_OMAP3
endchoice
- ### Generic Clock configurations to be enabled by Mach - invisible to enable.
- config OMAP_CLOCK_UART
- bool
- config OMAP_CLOCK_UART2
- bool
- config OMAP_CLOCK_UART3
- bool
- config OMAP_CLOCK_I2C
- bool
-
- # Blind enable all possible clocks.. think twice before you do this.
- config OMAP_CLOCK_ALL
- bool
-
- config OMAP_CLOCK_SOURCE_S32K
- bool
-
- config OMAP3_CLOCK_CONFIG
- prompt "Clock Configuration"
- bool
- depends on ARCH_OMAP3
- default y
- help
- Say Y here if you like to have OMAP3 Clock configuration done.
-
- config OMAP3_COPY_CLOCK_SRAM
- prompt "SRAM copy of Clock code"
- bool
- depends on OMAP3_CLOCK_CONFIG
- default y
- help
- Say Y here if you like to have initial OMAP3 Clock configuration done from SRAM.
+### Generic Clock configurations to be enabled by Mach - invisible to enable.
+config OMAP_CLOCK_UART
+ bool
+config OMAP_CLOCK_UART2
+ bool
+config OMAP_CLOCK_UART3
+ bool
+config OMAP_CLOCK_I2C
+ bool
+
+# Blind enable all possible clocks.. think twice before you do this.
+config OMAP_CLOCK_ALL
+ bool
+
+config OMAP_CLOCK_SOURCE_S32K
+ bool
+
+config OMAP3_CLOCK_CONFIG
+ prompt "Clock Configuration"
+ bool
+ depends on ARCH_OMAP3
+ default y
+ help
+ Say Y here if you like to have OMAP3 Clock configuration done.
+
+config OMAP3_COPY_CLOCK_SRAM
+ prompt "SRAM copy of Clock code"
+ bool
+ depends on OMAP3_CLOCK_CONFIG
+ default y
+ help
+ Say Y here if you like to have initial OMAP3 Clock configuration done from SRAM.
config GPMC
prompt "Support for GPMC configuration"
--
1.7.2.3
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 7/9] omap: rename GPMC Kconfig entry to OMAP_GPMC
2011-04-04 13:13 On the road to omap4 Sascha Hauer
` (5 preceding siblings ...)
2011-04-04 13:14 ` [PATCH 6/9] ARM omap4: fix indention in Kconfig Sascha Hauer
@ 2011-04-04 13:14 ` Sascha Hauer
2011-04-04 13:14 ` [PATCH 8/9] arm omap: remove unused request/free gpio functions Sascha Hauer
2011-04-04 13:14 ` [PATCH 9/9] ARM omap: make gpio support mandatory Sascha Hauer
8 siblings, 0 replies; 10+ messages in thread
From: Sascha Hauer @ 2011-04-04 13:14 UTC (permalink / raw)
To: barebox
Give this omap specific entry an omap namespace. Also, remove
unnecessary dependency to omap2/3 in nand Kconfig.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
arch/arm/mach-omap/Kconfig | 2 +-
arch/arm/mach-omap/Makefile | 2 +-
drivers/mtd/nand/Kconfig | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mach-omap/Kconfig b/arch/arm/mach-omap/Kconfig
index ec576a1..3fb85b5 100644
--- a/arch/arm/mach-omap/Kconfig
+++ b/arch/arm/mach-omap/Kconfig
@@ -72,7 +72,7 @@ config OMAP3_COPY_CLOCK_SRAM
help
Say Y here if you like to have initial OMAP3 Clock configuration done from SRAM.
-config GPMC
+config OMAP_GPMC
prompt "Support for GPMC configuration"
bool
depends on (ARCH_OMAP2 || ARCH_OMAP3)
diff --git a/arch/arm/mach-omap/Makefile b/arch/arm/mach-omap/Makefile
index 5df8411..5527f48 100644
--- a/arch/arm/mach-omap/Makefile
+++ b/arch/arm/mach-omap/Makefile
@@ -23,6 +23,6 @@ obj-$(CONFIG_ARCH_OMAP) += syslib.o
obj-$(CONFIG_OMAP_CLOCK_SOURCE_S32K) += s32k_clksource.o
obj-$(CONFIG_ARCH_OMAP3) += omap3_core.o omap3_generic.o
obj-$(CONFIG_OMAP3_CLOCK_CONFIG) += omap3_clock_core.o omap3_clock.o
-obj-$(CONFIG_GPMC) += gpmc.o devices-gpmc-nand.o
+obj-$(CONFIG_OMAP_GPMC) += gpmc.o devices-gpmc-nand.o
obj-$(CONFIG_GPIO) += gpio.o
obj-y += omap-uart.o
diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig
index 12e1237..f335804 100644
--- a/drivers/mtd/nand/Kconfig
+++ b/drivers/mtd/nand/Kconfig
@@ -15,7 +15,7 @@ config NAND_IMX
config NAND_OMAP_GPMC
tristate "NAND Flash Support for GPMC based OMAP platforms"
- depends on ((ARCH_OMAP2 || ARCH_OMAP3) && GPMC)
+ depends on OMAP_GPMC
help
Support for NAND flash using GPMC. GPMC is a common memory
interface found on Texas Instrument's OMAP platforms
--
1.7.2.3
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 8/9] arm omap: remove unused request/free gpio functions
2011-04-04 13:13 On the road to omap4 Sascha Hauer
` (6 preceding siblings ...)
2011-04-04 13:14 ` [PATCH 7/9] omap: rename GPMC Kconfig entry to OMAP_GPMC Sascha Hauer
@ 2011-04-04 13:14 ` Sascha Hauer
2011-04-04 13:14 ` [PATCH 9/9] ARM omap: make gpio support mandatory Sascha Hauer
8 siblings, 0 replies; 10+ messages in thread
From: Sascha Hauer @ 2011-04-04 13:14 UTC (permalink / raw)
To: barebox
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
arch/arm/mach-omap/gpio.c | 21 ---------------------
arch/arm/mach-omap/include/mach/gpio.h | 4 ----
2 files changed, 0 insertions(+), 25 deletions(-)
diff --git a/arch/arm/mach-omap/gpio.c b/arch/arm/mach-omap/gpio.c
index 6b06a73..68b7890 100644
--- a/arch/arm/mach-omap/gpio.c
+++ b/arch/arm/mach-omap/gpio.c
@@ -156,24 +156,3 @@ int gpio_get_value(unsigned gpio)
return (__raw_readl(reg) & (1 << get_gpio_index(gpio))) != 0;
}
-
-static void _reset_gpio(int gpio)
-{
- gpio_direction_input(gpio);
-}
-
-int omap_request_gpio(int gpio)
-{
- if (check_gpio(gpio) < 0)
- return -EINVAL;
-
- return 0;
-}
-
-void omap_free_gpio(int gpio)
-{
- if (check_gpio(gpio) < 0)
- return;
-
- _reset_gpio(gpio);
-}
diff --git a/arch/arm/mach-omap/include/mach/gpio.h b/arch/arm/mach-omap/include/mach/gpio.h
index 6758f9c..245f781 100644
--- a/arch/arm/mach-omap/include/mach/gpio.h
+++ b/arch/arm/mach-omap/include/mach/gpio.h
@@ -38,10 +38,6 @@
#ifndef _GPIO_H
#define _GPIO_H
-/* Request a gpio before using it */
-int omap_request_gpio(int gpio);
-/* Reset and free a gpio after using it */
-void omap_free_gpio(int gpio);
void gpio_set_value(unsigned gpio, int value);
int gpio_get_value(unsigned gpio);
int gpio_direction_output(unsigned gpio, int value);
--
1.7.2.3
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 9/9] ARM omap: make gpio support mandatory
2011-04-04 13:13 On the road to omap4 Sascha Hauer
` (7 preceding siblings ...)
2011-04-04 13:14 ` [PATCH 8/9] arm omap: remove unused request/free gpio functions Sascha Hauer
@ 2011-04-04 13:14 ` Sascha Hauer
8 siblings, 0 replies; 10+ messages in thread
From: Sascha Hauer @ 2011-04-04 13:14 UTC (permalink / raw)
To: barebox
If compiled without gpio support the linker will throw the
gpio functions away anyway, so make the omap kconfig entries
a bit easier.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
arch/arm/mach-omap/Kconfig | 10 +---------
arch/arm/mach-omap/Makefile | 3 +--
2 files changed, 2 insertions(+), 11 deletions(-)
diff --git a/arch/arm/mach-omap/Kconfig b/arch/arm/mach-omap/Kconfig
index 3fb85b5..d171a6f 100644
--- a/arch/arm/mach-omap/Kconfig
+++ b/arch/arm/mach-omap/Kconfig
@@ -32,6 +32,7 @@ choice
config ARCH_OMAP3
bool "OMAP3"
select CPU_V7
+ select GENERIC_GPIO
select ARCH_HAS_LOWLEVEL_INIT
select OMAP_CLOCK_SOURCE_S32K
help
@@ -82,15 +83,6 @@ config OMAP_GPMC
Controller(GPMC). GPMC allows you to configure devices such as NOR,
NAND, OneNAND etc.
-config GPIO
- prompt "Support for GPIO configuration"
- bool
- select GENERIC_GPIO
- depends on (ARCH_OMAP2 || ARCH_OMAP3)
- default y
- help
- Enable this if you use Texas Instrument's General Purpose IO
-
config ARCH_TEXT_BASE
hex
default 0x80e80000 if MACH_OMAP343xSDP
diff --git a/arch/arm/mach-omap/Makefile b/arch/arm/mach-omap/Makefile
index 5527f48..13c327c 100644
--- a/arch/arm/mach-omap/Makefile
+++ b/arch/arm/mach-omap/Makefile
@@ -24,5 +24,4 @@ obj-$(CONFIG_OMAP_CLOCK_SOURCE_S32K) += s32k_clksource.o
obj-$(CONFIG_ARCH_OMAP3) += omap3_core.o omap3_generic.o
obj-$(CONFIG_OMAP3_CLOCK_CONFIG) += omap3_clock_core.o omap3_clock.o
obj-$(CONFIG_OMAP_GPMC) += gpmc.o devices-gpmc-nand.o
-obj-$(CONFIG_GPIO) += gpio.o
-obj-y += omap-uart.o
+obj-y += omap-uart.o gpio.o
--
1.7.2.3
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 10+ messages in thread