From edca314f27c984f353a5129253d8d5241b82c517 Mon Sep 17 00:00:00 2001 From: Shawn Guo Date: Thu, 17 Feb 2011 14:28:50 +0800 Subject: ARM: mx23: dynamically allocate mx23 auart device i.MX23 Reference Manaul starts auart index from 1 than 0. Changing the index to start from 0 requires corresponding changes on base address, irq, and iomux definitions, and will probably confuse people who reads codes and hardware documents together. This patch introduced the field 'hwid' to distinguish the driver id and controller id. These two ids are different on mx23 while identical on mx28. Signed-off-by: Shawn Guo Signed-off-by: Sascha Hauer --- arch/arm/mach-mxs/devices/platform-auart.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'arch/arm/mach-mxs/devices') diff --git a/arch/arm/mach-mxs/devices/platform-auart.c b/arch/arm/mach-mxs/devices/platform-auart.c index f0dbf8a2145..796606cce0c 100644 --- a/arch/arm/mach-mxs/devices/platform-auart.c +++ b/arch/arm/mach-mxs/devices/platform-auart.c @@ -7,23 +7,33 @@ * Free Software Foundation. */ #include +#include #include #include -#define mxs_auart_data_entry_single(soc, _id) \ +#define mxs_auart_data_entry_single(soc, _id, hwid) \ { \ .id = _id, \ - .iobase = soc ## _AUART ## _id ## _BASE_ADDR, \ - .irq = soc ## _INT_AUART ## _id, \ + .iobase = soc ## _AUART ## hwid ## _BASE_ADDR, \ + .irq = soc ## _INT_AUART ## hwid, \ } -#define mxs_auart_data_entry(soc, _id) \ - [_id] = mxs_auart_data_entry_single(soc, _id) +#define mxs_auart_data_entry(soc, _id, hwid) \ + [_id] = mxs_auart_data_entry_single(soc, _id, hwid) + +#ifdef CONFIG_SOC_IMX23 +const struct mxs_auart_data mx23_auart_data[] __initconst = { +#define mx23_auart_data_entry(_id, hwid) \ + mxs_auart_data_entry(MX23, _id, hwid) + mx23_auart_data_entry(0, 1), + mx23_auart_data_entry(1, 2), +}; +#endif #ifdef CONFIG_SOC_IMX28 const struct mxs_auart_data mx28_auart_data[] __initconst = { #define mx28_auart_data_entry(_id) \ - mxs_auart_data_entry(MX28, _id) + mxs_auart_data_entry(MX28, _id, _id) mx28_auart_data_entry(0), mx28_auart_data_entry(1), mx28_auart_data_entry(2), -- cgit v1.2.3-18-g5258