summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>2011-07-29 11:35:50 +0800
committerJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>2011-08-01 16:33:09 +0800
commitc71a77ab878c3d9d14e91ea4fa5bd4ff8fe1c421 (patch)
treebaa9253468338c34d06d8ebdfc56aa1e7abae4ba /arch
parent3f59bab47cc40bb0b6076143cc2e6b96be396771 (diff)
downloadbarebox-c71a77ab878c3d9d14e91ea4fa5bd4ff8fe1c421.tar.gz
barebox-c71a77ab878c3d9d14e91ea4fa5bd4ff8fe1c421.tar.xz
ns16550: switch to resource
use generic read/write depending on the memory size if no reg_read/write defined Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boards/eukrea_cpuimx27/eukrea_cpuimx27.c23
-rw-r--r--arch/arm/boards/omap/board-beagle.c5
-rw-r--r--arch/arm/boards/omap/board-omap3evm.c4
-rw-r--r--arch/arm/boards/omap/board-sdp343x.c5
-rw-r--r--arch/arm/boards/panda/board.c5
-rw-r--r--arch/arm/boards/pcm049/board.c4
-rw-r--r--arch/arm/mach-omap/Makefile2
-rw-r--r--arch/arm/mach-omap/include/mach/syslib.h4
-rw-r--r--arch/arm/mach-omap/omap-uart.c36
-rw-r--r--arch/x86/boards/x86_generic/generic_pc.c2
10 files changed, 12 insertions, 78 deletions
diff --git a/arch/arm/boards/eukrea_cpuimx27/eukrea_cpuimx27.c b/arch/arm/boards/eukrea_cpuimx27/eukrea_cpuimx27.c
index e8b62b29f5..b38decf580 100644
--- a/arch/arm/boards/eukrea_cpuimx27/eukrea_cpuimx27.c
+++ b/arch/arm/boards/eukrea_cpuimx27/eukrea_cpuimx27.c
@@ -66,27 +66,9 @@ struct imx_nand_platform_data nand_info = {
};
#ifdef CONFIG_DRIVER_SERIAL_NS16550
-unsigned int quad_uart_read(unsigned long base, unsigned char reg_idx)
-{
- unsigned int reg_addr = (unsigned int)base;
- reg_addr += reg_idx << 1;
- return 0xff & readw(reg_addr);
-}
-EXPORT_SYMBOL(quad_uart_read);
-
-void quad_uart_write(unsigned int val, unsigned long base,
- unsigned char reg_idx)
-{
- unsigned int reg_addr = (unsigned int)base;
- reg_addr += reg_idx << 1;
- writew(0xff & val, reg_addr);
-}
-EXPORT_SYMBOL(quad_uart_write);
-
static struct NS16550_plat quad_uart_serial_plat = {
.clock = 14745600,
- .reg_read = quad_uart_read,
- .reg_write = quad_uart_write,
+ .shift = 1,
};
#ifdef CONFIG_EUKREA_CPUIMX27_QUART1
@@ -98,7 +80,6 @@ static struct NS16550_plat quad_uart_serial_plat = {
#elif defined CONFIG_EUKREA_CPUIMX27_QUART4
#define QUART_OFFSET 0x1000000
#endif
-
#endif
static struct i2c_board_info i2c_devices[] = {
@@ -271,7 +252,7 @@ static int eukrea_cpuimx27_console_init(void)
CS3A = 0x00D20000;
#ifdef CONFIG_DRIVER_SERIAL_NS16550
add_ns16550_device(-1, IMX_CS3_BASE + QUART_OFFSET, 0xf,
- &quad_uart_serial_plat);
+ IORESOURCE_MEM_16BIT, &quad_uart_serial_plat);
#endif
return 0;
}
diff --git a/arch/arm/boards/omap/board-beagle.c b/arch/arm/boards/omap/board-beagle.c
index 49e95d9ef3..e12e2fe1de 100644
--- a/arch/arm/boards/omap/board-beagle.c
+++ b/arch/arm/boards/omap/board-beagle.c
@@ -237,8 +237,6 @@ void board_init(void)
static struct NS16550_plat serial_plat = {
.clock = 48000000, /* 48MHz (APLL96/2) */
- .reg_read = omap_uart_read,
- .reg_write = omap_uart_write,
};
/**
@@ -250,7 +248,8 @@ static struct NS16550_plat serial_plat = {
static int beagle_console_init(void)
{
/* Register the serial port */
- add_ns16550_device(-1, OMAP_UART3_BASE, 1024, &serial_plat);
+ add_ns16550_device(-1, OMAP_UART3_BASE, 1024, IORESOURCE_MEM_8BIT,
+ &serial_plat);
return 0;
}
diff --git a/arch/arm/boards/omap/board-omap3evm.c b/arch/arm/boards/omap/board-omap3evm.c
index 0c243f32f9..8b5c9b3231 100644
--- a/arch/arm/boards/omap/board-omap3evm.c
+++ b/arch/arm/boards/omap/board-omap3evm.c
@@ -213,8 +213,6 @@ void board_init(void)
static struct NS16550_plat serial_plat = {
.clock = 48000000, /* 48MHz (APLL96/2) */
- .reg_read = omap_uart_read,
- .reg_write = omap_uart_write,
};
/**
@@ -230,7 +228,7 @@ static int omap3evm_init_console(void)
#elif defined(CONFIG_OMAP3EVM_UART3)
OMAP_UART3_BASE,
#endif
- 1024, &serial_plat);
+ 1024, IORESOURCE_MEM_8BIT, &serial_plat);
return 0;
}
diff --git a/arch/arm/boards/omap/board-sdp343x.c b/arch/arm/boards/omap/board-sdp343x.c
index 36f226cfe4..7c6df05135 100644
--- a/arch/arm/boards/omap/board-sdp343x.c
+++ b/arch/arm/boards/omap/board-sdp343x.c
@@ -605,8 +605,6 @@ static void mux_config(void)
static struct NS16550_plat serial_plat = {
.clock = 48000000, /* 48MHz (APLL96/2) */
- .reg_read = omap_uart_read,
- .reg_write = omap_uart_write,
};
/**
@@ -617,7 +615,8 @@ static struct NS16550_plat serial_plat = {
static int sdp3430_console_init(void)
{
/* Register the serial port */
- add_ns16550_device(-1, OMAP_UART3_BASE, 1024, &serial_plat);
+ add_ns16550_device(-1, OMAP_UART3_BASE, 1024, IORESOURCE_MEM_8BIT,
+ &serial_plat);
return 0;
}
diff --git a/arch/arm/boards/panda/board.c b/arch/arm/boards/panda/board.c
index 4164c1f233..deded28475 100644
--- a/arch/arm/boards/panda/board.c
+++ b/arch/arm/boards/panda/board.c
@@ -32,14 +32,13 @@ static int board_revision;
static struct NS16550_plat serial_plat = {
.clock = 48000000, /* 48MHz (APLL96/2) */
- .reg_read = omap_uart_read,
- .reg_write = omap_uart_write,
};
static int panda_console_init(void)
{
/* Register the serial port */
- add_ns16550_device(-1, OMAP44XX_UART3_BASE, 1024, &serial_plat);
+ add_ns16550_device(-1, OMAP44XX_UART3_BASE, 1024, IORESOURCE_MEM_8BIT,
+ &serial_plat);
return 0;
}
diff --git a/arch/arm/boards/pcm049/board.c b/arch/arm/boards/pcm049/board.c
index d6de29b6e8..d3f13108e4 100644
--- a/arch/arm/boards/pcm049/board.c
+++ b/arch/arm/boards/pcm049/board.c
@@ -43,14 +43,12 @@
static struct NS16550_plat serial_plat = {
.clock = 48000000, /* 48MHz (APLL96/2) */
- .reg_read = omap_uart_read,
- .reg_write = omap_uart_write,
};
static int pcm049_console_init(void)
{
/* Register the serial port */
- add_ns16550_device(-1, OMAP44XX_UART3_BASE, 1024, &serial_plat);
+ add_ns16550_device(-1, OMAP44XX_UART3_BASE, 1024, IORESOURCE_MEM_8BIT, &serial_plat);
return 0;
}
diff --git a/arch/arm/mach-omap/Makefile b/arch/arm/mach-omap/Makefile
index a4b9a55774..7204746000 100644
--- a/arch/arm/mach-omap/Makefile
+++ b/arch/arm/mach-omap/Makefile
@@ -25,4 +25,4 @@ obj-$(CONFIG_ARCH_OMAP3) += omap3_core.o omap3_generic.o
obj-$(CONFIG_ARCH_OMAP4) += omap4_generic.o omap4_clock.o
obj-$(CONFIG_OMAP3_CLOCK_CONFIG) += omap3_clock_core.o omap3_clock.o
obj-$(CONFIG_OMAP_GPMC) += gpmc.o devices-gpmc-nand.o
-obj-y += omap-uart.o gpio.o xload.o
+obj-y += gpio.o xload.o
diff --git a/arch/arm/mach-omap/include/mach/syslib.h b/arch/arm/mach-omap/include/mach/syslib.h
index 6a7044adcc..65aca0297f 100644
--- a/arch/arm/mach-omap/include/mach/syslib.h
+++ b/arch/arm/mach-omap/include/mach/syslib.h
@@ -57,8 +57,4 @@ static inline void sr32(u32 addr, u32 start_bit, u32 num_bits, u32 value)
u32 wait_on_value(u32 read_bit_mask, u32 match_value, u32 read_addr, u32 bound);
void sdelay(unsigned long loops);
-/** All architectures need to implement these */
-void omap_uart_write(unsigned int val, unsigned long base,
- unsigned char reg_idx);
-unsigned int omap_uart_read(unsigned long base, unsigned char reg_idx);
#endif /* __ASM_ARCH_OMAP_SYSLIB_H_ */
diff --git a/arch/arm/mach-omap/omap-uart.c b/arch/arm/mach-omap/omap-uart.c
deleted file mode 100644
index 477452d990..0000000000
--- a/arch/arm/mach-omap/omap-uart.c
+++ /dev/null
@@ -1,36 +0,0 @@
-#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/x86/boards/x86_generic/generic_pc.c b/arch/x86/boards/x86_generic/generic_pc.c
index b35d26ff9f..7a93d9bc31 100644
--- a/arch/x86/boards/x86_generic/generic_pc.c
+++ b/arch/x86/boards/x86_generic/generic_pc.c
@@ -85,7 +85,7 @@ static struct NS16550_plat serial_plat = {
static int pc_console_init(void)
{
/* Register the serial port */
- add_ns16550_device(-1, 0x3f8, 8, &serial_plat);
+ add_ns16550_device(-1, 0x3f8, 8, 0, &serial_plat);
return 0;
}