diff options
| author | Robert Schwebel <robert@schwebel.de> | 2008-04-02 05:29:30 -0400 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-04-17 11:15:17 -0400 |
| commit | d2db9aaa4a5b9f2a1d54080c13f5ff4fc6d0ae1b (patch) | |
| tree | 356086f774a58af35a14f2f6a732e4693719a13c | |
| parent | 2c130fd5294499cd94578f8c792e190959372763 (diff) | |
[ARM] 4887/1: i.MXC family: Separate current platform code
From: Juergen Beisert <j.beisert@pengutronix.de>
This patch separates the current code into i.MX2 and i.MX3 and modifies
the Kconfig files to reflect this separation in the menus.
Things happend since last review:
- make i.MX3 compile again
- fix some structure names to be conform with all the shared/common
sources from i.MX1/i.MX2
Previous changes:
- stay conform to other Kconfig files (note from Russell King)
Signed-off-by: Juergen Beisert <j.beisert@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| -rw-r--r-- | arch/arm/plat-mxc/Kconfig | 2 | ||||
| -rw-r--r-- | include/asm-arm/arch-mxc/hardware.h | 25 | ||||
| -rw-r--r-- | include/asm-arm/arch-mxc/irqs.h | 4 | ||||
| -rw-r--r-- | include/asm-arm/arch-mxc/mx31.h | 30 | ||||
| -rw-r--r-- | include/asm-arm/arch-mxc/mxc.h | 5 |
5 files changed, 43 insertions, 23 deletions
diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig index 03a65c0dfb60..bb6e12738fb3 100644 --- a/arch/arm/plat-mxc/Kconfig +++ b/arch/arm/plat-mxc/Kconfig | |||
| @@ -4,7 +4,7 @@ menu "Freescale MXC Implementations" | |||
| 4 | 4 | ||
| 5 | choice | 5 | choice |
| 6 | prompt "MXC/iMX System Type" | 6 | prompt "MXC/iMX System Type" |
| 7 | default 0 | 7 | default ARCH_MX3 |
| 8 | 8 | ||
| 9 | config ARCH_MX3 | 9 | config ARCH_MX3 |
| 10 | bool "MX3-based" | 10 | bool "MX3-based" |
diff --git a/include/asm-arm/arch-mxc/hardware.h b/include/asm-arm/arch-mxc/hardware.h index e70387e91b77..e87ff0679d5e 100644 --- a/include/asm-arm/arch-mxc/hardware.h +++ b/include/asm-arm/arch-mxc/hardware.h | |||
| @@ -13,34 +13,19 @@ | |||
| 13 | 13 | ||
| 14 | #include <asm/sizes.h> | 14 | #include <asm/sizes.h> |
| 15 | 15 | ||
| 16 | #include <asm/arch/mx31.h> | 16 | #ifdef CONFIG_ARCH_MX3 |
| 17 | # include <asm/arch/mx31.h> | ||
| 18 | #endif | ||
| 17 | 19 | ||
| 18 | #include <asm/arch/mxc.h> | 20 | #include <asm/arch/mxc.h> |
| 19 | 21 | ||
| 20 | #define MXC_MAX_GPIO_LINES (GPIO_NUM_PIN * GPIO_PORT_NUM) | ||
| 21 | |||
| 22 | /* | 22 | /* |
| 23 | * --------------------------------------------------------------------------- | 23 | * --------------------------------------------------------------------------- |
| 24 | * Board specific defines | 24 | * Board specific defines |
| 25 | * --------------------------------------------------------------------------- | 25 | * --------------------------------------------------------------------------- |
| 26 | */ | 26 | */ |
| 27 | #define MXC_EXP_IO_BASE (MXC_GPIO_INT_BASE + MXC_MAX_GPIO_LINES) | 27 | #ifdef CONFIG_MACH_MX31ADS |
| 28 | 28 | # include <asm/arch/board-mx31ads.h> | |
| 29 | #include <asm/arch/board-mx31ads.h> | ||
| 30 | |||
| 31 | #ifndef MXC_MAX_EXP_IO_LINES | ||
| 32 | #define MXC_MAX_EXP_IO_LINES 0 | ||
| 33 | #endif | 29 | #endif |
| 34 | 30 | ||
| 35 | #define MXC_MAX_VIRTUAL_INTS 16 | ||
| 36 | #define MXC_VIRTUAL_INTS_BASE (MXC_EXP_IO_BASE + MXC_MAX_EXP_IO_LINES) | ||
| 37 | #define MXC_SDIO1_CARD_IRQ MXC_VIRTUAL_INTS_BASE | ||
| 38 | #define MXC_SDIO2_CARD_IRQ (MXC_VIRTUAL_INTS_BASE + 1) | ||
| 39 | #define MXC_SDIO3_CARD_IRQ (MXC_VIRTUAL_INTS_BASE + 2) | ||
| 40 | |||
| 41 | #define MXC_MAX_INTS (MXC_MAX_INT_LINES + \ | ||
| 42 | MXC_MAX_GPIO_LINES + \ | ||
| 43 | MXC_MAX_EXP_IO_LINES + \ | ||
| 44 | MXC_MAX_VIRTUAL_INTS) | ||
| 45 | |||
| 46 | #endif /* __ASM_ARCH_MXC_HARDWARE_H__ */ | 31 | #endif /* __ASM_ARCH_MXC_HARDWARE_H__ */ |
diff --git a/include/asm-arm/arch-mxc/irqs.h b/include/asm-arm/arch-mxc/irqs.h index a64e66ba4ae4..b2c5205e1962 100644 --- a/include/asm-arm/arch-mxc/irqs.h +++ b/include/asm-arm/arch-mxc/irqs.h | |||
| @@ -19,7 +19,9 @@ | |||
| 19 | #define MXC_GPIO_TO_IRQ(x) (MXC_GPIO_INT_BASE + x) | 19 | #define MXC_GPIO_TO_IRQ(x) (MXC_GPIO_INT_BASE + x) |
| 20 | 20 | ||
| 21 | /* Number of normal interrupts */ | 21 | /* Number of normal interrupts */ |
| 22 | #define NR_IRQS MXC_MAX_INTS | 22 | #define NR_IRQS (MXC_MAX_INT_LINES + \ |
| 23 | MXC_MAX_GPIO_LINES + \ | ||
| 24 | MXC_MAX_VIRTUAL_INTS) | ||
| 23 | 25 | ||
| 24 | /* Number of fast interrupts */ | 26 | /* Number of fast interrupts */ |
| 25 | #define NR_FIQS MXC_MAX_INTS | 27 | #define NR_FIQS MXC_MAX_INTS |
diff --git a/include/asm-arm/arch-mxc/mx31.h b/include/asm-arm/arch-mxc/mx31.h index 85c49c9e5d15..36a1af495bb3 100644 --- a/include/asm-arm/arch-mxc/mx31.h +++ b/include/asm-arm/arch-mxc/mx31.h | |||
| @@ -317,6 +317,8 @@ | |||
| 317 | #define MXC_MAX_INT_LINES 64 | 317 | #define MXC_MAX_INT_LINES 64 |
| 318 | 318 | ||
| 319 | #define MXC_GPIO_INT_BASE MXC_MAX_INT_LINES | 319 | #define MXC_GPIO_INT_BASE MXC_MAX_INT_LINES |
| 320 | #define MXC_MAX_GPIO_LINES (GPIO_NUM_PIN * GPIO_PORT_NUM) | ||
| 321 | #define MXC_MAX_VIRTUAL_INTS 16 | ||
| 320 | 322 | ||
| 321 | /*! | 323 | /*! |
| 322 | * Number of GPIO port as defined in the IC Spec | 324 | * Number of GPIO port as defined in the IC Spec |
| @@ -329,7 +331,33 @@ | |||
| 329 | 331 | ||
| 330 | #define PROD_SIGNATURE 0x1 /* For MX31 */ | 332 | #define PROD_SIGNATURE 0x1 /* For MX31 */ |
| 331 | 333 | ||
| 334 | /* silicon revisions specific to i.MX31 */ | ||
| 335 | #define CHIP_REV_1_0 0x10 | ||
| 336 | #define CHIP_REV_1_1 0x11 | ||
| 337 | #define CHIP_REV_1_2 0x12 | ||
| 338 | #define CHIP_REV_1_3 0x13 | ||
| 339 | #define CHIP_REV_2_0 0x20 | ||
| 340 | #define CHIP_REV_2_1 0x21 | ||
| 341 | #define CHIP_REV_2_2 0x22 | ||
| 342 | #define CHIP_REV_2_3 0x23 | ||
| 343 | #define CHIP_REV_3_0 0x30 | ||
| 344 | #define CHIP_REV_3_1 0x31 | ||
| 345 | #define CHIP_REV_3_2 0x32 | ||
| 346 | |||
| 332 | #define SYSTEM_REV_MIN CHIP_REV_1_0 | 347 | #define SYSTEM_REV_MIN CHIP_REV_1_0 |
| 333 | #define SYSTEM_REV_NUM 3 | 348 | #define SYSTEM_REV_NUM 3 |
| 334 | 349 | ||
| 335 | #endif /* __ASM_ARCH_MXC_MX31_H__ */ | 350 | #if !defined(__ASSEMBLY__) && !defined(__MXC_BOOT_UNCOMPRESS) |
| 351 | |||
| 352 | /* this is a i.MX31 CPU */ | ||
| 353 | #define cpu_is_mx31() (1) | ||
| 354 | |||
| 355 | extern unsigned int system_rev; | ||
| 356 | |||
| 357 | static inline int mx31_revision(void) | ||
| 358 | { | ||
| 359 | return system_rev; | ||
| 360 | } | ||
| 361 | #endif | ||
| 362 | |||
| 363 | #endif /* __ASM_ARCH_MXC_MX31_H__ */ | ||
diff --git a/include/asm-arm/arch-mxc/mxc.h b/include/asm-arm/arch-mxc/mxc.h index f1349734b8af..146d3f60951a 100644 --- a/include/asm-arm/arch-mxc/mxc.h +++ b/include/asm-arm/arch-mxc/mxc.h | |||
| @@ -15,6 +15,11 @@ | |||
| 15 | #error "Do not include directly." | 15 | #error "Do not include directly." |
| 16 | #endif | 16 | #endif |
| 17 | 17 | ||
| 18 | /* clean up all things that are not used */ | ||
| 19 | #ifndef CONFIG_ARCH_MX3 | ||
| 20 | # define cpu_is_mx31() (0) | ||
| 21 | #endif | ||
| 22 | |||
| 18 | /* | 23 | /* |
| 19 | ***************************************** | 24 | ***************************************** |
| 20 | * GPT Register definitions * | 25 | * GPT Register definitions * |
