diff options
author | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2011-07-29 11:35:50 +0800 |
---|---|---|
committer | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2011-08-01 16:33:09 +0800 |
commit | c71a77ab878c3d9d14e91ea4fa5bd4ff8fe1c421 (patch) | |
tree | baa9253468338c34d06d8ebdfc56aa1e7abae4ba /arch | |
parent | 3f59bab47cc40bb0b6076143cc2e6b96be396771 (diff) | |
download | barebox-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.c | 23 | ||||
-rw-r--r-- | arch/arm/boards/omap/board-beagle.c | 5 | ||||
-rw-r--r-- | arch/arm/boards/omap/board-omap3evm.c | 4 | ||||
-rw-r--r-- | arch/arm/boards/omap/board-sdp343x.c | 5 | ||||
-rw-r--r-- | arch/arm/boards/panda/board.c | 5 | ||||
-rw-r--r-- | arch/arm/boards/pcm049/board.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap/include/mach/syslib.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap/omap-uart.c | 36 | ||||
-rw-r--r-- | arch/x86/boards/x86_generic/generic_pc.c | 2 |
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; } |