diff options
author | Olof Johansson <olof@lixom.net> | 2011-12-20 13:05:29 -0500 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2011-12-20 13:05:29 -0500 |
commit | 2123b16bb6275b8b3de27a1ae0962ed31b44bcf1 (patch) | |
tree | 6cfe486d1941c2d85609cbbb6657944d963e9edb /arch/arm/mach-ux500/include/mach | |
parent | 4b3ee30b5201ddeefdc56ad32b6bbc1fab8b084a (diff) | |
parent | 1095843489f7a805106dc0cc39187d5df960d11a (diff) |
Merge branch 'ux500/devel' into next/devel
* ux500/devel:
ARM: ux500: fix the smp_twd clock calculation
ARM: ux500: remove support for early silicon revisions
ARM: ux500: update register files
ARM: ux500: register DB5500 PMU dynamically
ARM: ux500: update ASIC detection for U5500
ARM: ux500: support DB8520
Diffstat (limited to 'arch/arm/mach-ux500/include/mach')
-rw-r--r-- | arch/arm/mach-ux500/include/mach/db5500-regs.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-ux500/include/mach/db8500-regs.h | 20 | ||||
-rw-r--r-- | arch/arm/mach-ux500/include/mach/devices.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-ux500/include/mach/hardware.h | 10 | ||||
-rw-r--r-- | arch/arm/mach-ux500/include/mach/id.h | 24 |
5 files changed, 39 insertions, 21 deletions
diff --git a/arch/arm/mach-ux500/include/mach/db5500-regs.h b/arch/arm/mach-ux500/include/mach/db5500-regs.h index 994b5fe6f85a..8e714bcb099f 100644 --- a/arch/arm/mach-ux500/include/mach/db5500-regs.h +++ b/arch/arm/mach-ux500/include/mach/db5500-regs.h | |||
@@ -65,8 +65,11 @@ | |||
65 | #define U5500_PRCMU_TIMER_4_BASE (U5500_PER4_BASE + 0x07450) | 65 | #define U5500_PRCMU_TIMER_4_BASE (U5500_PER4_BASE + 0x07450) |
66 | #define U5500_MSP1_BASE (U5500_PER4_BASE + 0x9000) | 66 | #define U5500_MSP1_BASE (U5500_PER4_BASE + 0x9000) |
67 | #define U5500_GPIO2_BASE (U5500_PER4_BASE + 0xA000) | 67 | #define U5500_GPIO2_BASE (U5500_PER4_BASE + 0xA000) |
68 | #define U5500_MTIMER_BASE (U5500_PER4_BASE + 0xC000) | ||
68 | #define U5500_CDETECT_BASE (U5500_PER4_BASE + 0xF000) | 69 | #define U5500_CDETECT_BASE (U5500_PER4_BASE + 0xF000) |
69 | #define U5500_PRCMU_TCDM_BASE (U5500_PER4_BASE + 0x18000) | 70 | #define U5500_PRCMU_TCDM_BASE (U5500_PER4_BASE + 0x18000) |
71 | #define U5500_PRCMU_TCPM_BASE (U5500_PER4_BASE + 0x10000) | ||
72 | #define U5500_TPIU_BASE (U5500_PER4_BASE + 0x50000) | ||
70 | 73 | ||
71 | #define U5500_SPI0_BASE (U5500_PER5_BASE + 0x0000) | 74 | #define U5500_SPI0_BASE (U5500_PER5_BASE + 0x0000) |
72 | #define U5500_SPI1_BASE (U5500_PER5_BASE + 0x1000) | 75 | #define U5500_SPI1_BASE (U5500_PER5_BASE + 0x1000) |
@@ -125,6 +128,7 @@ | |||
125 | #define U5500_ACCCON_BASE (0xBFFF1000) | 128 | #define U5500_ACCCON_BASE (0xBFFF1000) |
126 | #define U5500_ACCCON_CPUVEC_RESET_ADDR_OFFSET (0x00000020) | 129 | #define U5500_ACCCON_CPUVEC_RESET_ADDR_OFFSET (0x00000020) |
127 | #define U5500_ACCCON_ACC_CPU_CTRL_OFFSET (0x000000BC) | 130 | #define U5500_ACCCON_ACC_CPU_CTRL_OFFSET (0x000000BC) |
131 | #define U5500_INTCON_MBOX1_INT_RESET_ADDR (0xBFFD31A4) | ||
128 | 132 | ||
129 | #define U5500_ESRAM_BASE 0x40000000 | 133 | #define U5500_ESRAM_BASE 0x40000000 |
130 | #define U5500_ESRAM_DMA_LCPA_OFFSET 0x10000 | 134 | #define U5500_ESRAM_DMA_LCPA_OFFSET 0x10000 |
diff --git a/arch/arm/mach-ux500/include/mach/db8500-regs.h b/arch/arm/mach-ux500/include/mach/db8500-regs.h index 751b0e6938d4..80e10f50282e 100644 --- a/arch/arm/mach-ux500/include/mach/db8500-regs.h +++ b/arch/arm/mach-ux500/include/mach/db8500-regs.h | |||
@@ -22,7 +22,9 @@ | |||
22 | #define U8500_ESRAM_DMA_LCPA_OFFSET 0x10000 | 22 | #define U8500_ESRAM_DMA_LCPA_OFFSET 0x10000 |
23 | 23 | ||
24 | #define U8500_DMA_LCPA_BASE (U8500_ESRAM_BANK0 + U8500_ESRAM_DMA_LCPA_OFFSET) | 24 | #define U8500_DMA_LCPA_BASE (U8500_ESRAM_BANK0 + U8500_ESRAM_DMA_LCPA_OFFSET) |
25 | #define U8500_DMA_LCPA_BASE_ED (U8500_ESRAM_BANK4 + 0x4000) | 25 | |
26 | /* This address fulfills the 256k alignment requirement of the lcla base */ | ||
27 | #define U8500_DMA_LCLA_BASE U8500_ESRAM_BANK4 | ||
26 | 28 | ||
27 | #define U8500_PER3_BASE 0x80000000 | 29 | #define U8500_PER3_BASE 0x80000000 |
28 | #define U8500_STM_BASE 0x80100000 | 30 | #define U8500_STM_BASE 0x80100000 |
@@ -40,15 +42,14 @@ | |||
40 | #define U8500_ASIC_ID_BASE 0x9001D000 | 42 | #define U8500_ASIC_ID_BASE 0x9001D000 |
41 | 43 | ||
42 | #define U8500_PER6_BASE 0xa03c0000 | 44 | #define U8500_PER6_BASE 0xa03c0000 |
45 | #define U8500_PER7_BASE 0xa03d0000 | ||
43 | #define U8500_PER5_BASE 0xa03e0000 | 46 | #define U8500_PER5_BASE 0xa03e0000 |
44 | #define U8500_PER7_BASE_ED 0xa03d0000 | ||
45 | 47 | ||
46 | #define U8500_SVA_BASE 0xa0100000 | 48 | #define U8500_SVA_BASE 0xa0100000 |
47 | #define U8500_SIA_BASE 0xa0200000 | 49 | #define U8500_SIA_BASE 0xa0200000 |
48 | 50 | ||
49 | #define U8500_SGA_BASE 0xa0300000 | 51 | #define U8500_SGA_BASE 0xa0300000 |
50 | #define U8500_MCDE_BASE 0xa0350000 | 52 | #define U8500_MCDE_BASE 0xa0350000 |
51 | #define U8500_DMA_BASE_ED 0xa0362000 | ||
52 | #define U8500_DMA_BASE 0x801C0000 /* v1 */ | 53 | #define U8500_DMA_BASE 0x801C0000 /* v1 */ |
53 | 54 | ||
54 | #define U8500_SBAG_BASE 0xa0390000 | 55 | #define U8500_SBAG_BASE 0xa0390000 |
@@ -66,13 +67,6 @@ | |||
66 | #define U8500_GPIO2_BASE (U8500_PER2_BASE + 0xE000) | 67 | #define U8500_GPIO2_BASE (U8500_PER2_BASE + 0xE000) |
67 | #define U8500_GPIO3_BASE (U8500_PER5_BASE + 0x1E000) | 68 | #define U8500_GPIO3_BASE (U8500_PER5_BASE + 0x1E000) |
68 | 69 | ||
69 | /* per7 base addresses */ | ||
70 | #define U8500_CR_BASE_ED (U8500_PER7_BASE_ED + 0x8000) | ||
71 | #define U8500_MTU0_BASE_ED (U8500_PER7_BASE_ED + 0xa000) | ||
72 | #define U8500_MTU1_BASE_ED (U8500_PER7_BASE_ED + 0xb000) | ||
73 | #define U8500_TZPC0_BASE_ED (U8500_PER7_BASE_ED + 0xc000) | ||
74 | #define U8500_CLKRST7_BASE_ED (U8500_PER7_BASE_ED + 0xf000) | ||
75 | |||
76 | #define U8500_UART0_BASE (U8500_PER1_BASE + 0x0000) | 70 | #define U8500_UART0_BASE (U8500_PER1_BASE + 0x0000) |
77 | #define U8500_UART1_BASE (U8500_PER1_BASE + 0x1000) | 71 | #define U8500_UART1_BASE (U8500_PER1_BASE + 0x1000) |
78 | 72 | ||
@@ -102,12 +96,10 @@ | |||
102 | #define U8500_SCR_BASE (U8500_PER4_BASE + 0x05000) | 96 | #define U8500_SCR_BASE (U8500_PER4_BASE + 0x05000) |
103 | #define U8500_DMC_BASE (U8500_PER4_BASE + 0x06000) | 97 | #define U8500_DMC_BASE (U8500_PER4_BASE + 0x06000) |
104 | #define U8500_PRCMU_BASE (U8500_PER4_BASE + 0x07000) | 98 | #define U8500_PRCMU_BASE (U8500_PER4_BASE + 0x07000) |
105 | #define U8500_PRCMU_TIMER_3_BASE (U8500_PER4_BASE + 0x07338) | ||
106 | #define U8500_PRCMU_TIMER_4_BASE (U8500_PER4_BASE + 0x07450) | ||
107 | #define U8500_PRCMU_TCDM_BASE_V1 (U8500_PER4_BASE + 0x0f000) | ||
108 | #define U8500_PRCMU_TCDM_BASE (U8500_PER4_BASE + 0x68000) | 99 | #define U8500_PRCMU_TCDM_BASE (U8500_PER4_BASE + 0x68000) |
109 | #define U8500_PRCMU_TCPM_BASE (U8500_PER4_BASE + 0x60000) | 100 | #define U8500_PRCMU_TCPM_BASE (U8500_PER4_BASE + 0x60000) |
110 | 101 | #define U8500_PRCMU_TIMER_3_BASE (U8500_PER4_BASE + 0x07338) | |
102 | #define U8500_PRCMU_TIMER_4_BASE (U8500_PER4_BASE + 0x07450) | ||
111 | 103 | ||
112 | /* per3 base addresses */ | 104 | /* per3 base addresses */ |
113 | #define U8500_FSMC_BASE (U8500_PER3_BASE + 0x0000) | 105 | #define U8500_FSMC_BASE (U8500_PER3_BASE + 0x0000) |
diff --git a/arch/arm/mach-ux500/include/mach/devices.h b/arch/arm/mach-ux500/include/mach/devices.h index 020b6369a30a..5f6cb71fc62d 100644 --- a/arch/arm/mach-ux500/include/mach/devices.h +++ b/arch/arm/mach-ux500/include/mach/devices.h | |||
@@ -18,6 +18,4 @@ extern struct amba_device ux500_pl031_device; | |||
18 | extern struct platform_device u8500_dma40_device; | 18 | extern struct platform_device u8500_dma40_device; |
19 | extern struct platform_device ux500_ske_keypad_device; | 19 | extern struct platform_device ux500_ske_keypad_device; |
20 | 20 | ||
21 | void dma40_u8500ed_fixup(void); | ||
22 | |||
23 | #endif | 21 | #endif |
diff --git a/arch/arm/mach-ux500/include/mach/hardware.h b/arch/arm/mach-ux500/include/mach/hardware.h index 470ac52663d6..b6ba26a1367d 100644 --- a/arch/arm/mach-ux500/include/mach/hardware.h +++ b/arch/arm/mach-ux500/include/mach/hardware.h | |||
@@ -10,20 +10,21 @@ | |||
10 | #ifndef __MACH_HARDWARE_H | 10 | #ifndef __MACH_HARDWARE_H |
11 | #define __MACH_HARDWARE_H | 11 | #define __MACH_HARDWARE_H |
12 | 12 | ||
13 | /* macros to get at IO space when running virtually | 13 | /* |
14 | * Macros to get at IO space when running virtually | ||
14 | * We dont map all the peripherals, let ioremap do | 15 | * We dont map all the peripherals, let ioremap do |
15 | * this for us. We map only very basic peripherals here. | 16 | * this for us. We map only very basic peripherals here. |
16 | */ | 17 | */ |
17 | #define U8500_IO_VIRTUAL 0xf0000000 | 18 | #define U8500_IO_VIRTUAL 0xf0000000 |
18 | #define U8500_IO_PHYSICAL 0xa0000000 | 19 | #define U8500_IO_PHYSICAL 0xa0000000 |
19 | 20 | ||
20 | /* this macro is used in assembly, so no cast */ | 21 | /* This macro is used in assembly, so no cast */ |
21 | #define IO_ADDRESS(x) \ | 22 | #define IO_ADDRESS(x) \ |
22 | (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + U8500_IO_VIRTUAL) | 23 | (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + U8500_IO_VIRTUAL) |
23 | 24 | ||
24 | /* typesafe io address */ | 25 | /* typesafe io address */ |
25 | #define __io_address(n) __io(IO_ADDRESS(n)) | 26 | #define __io_address(n) __io(IO_ADDRESS(n)) |
26 | /* used by some plat-nomadik code */ | 27 | /* Used by some plat-nomadik code */ |
27 | #define io_p2v(n) __io_address(n) | 28 | #define io_p2v(n) __io_address(n) |
28 | 29 | ||
29 | #include <mach/db8500-regs.h> | 30 | #include <mach/db8500-regs.h> |
@@ -36,6 +37,5 @@ extern void __iomem *_PRCMU_BASE; | |||
36 | 37 | ||
37 | #define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x) | 38 | #define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x) |
38 | 39 | ||
39 | #endif | 40 | #endif /* __ASSEMBLY__ */ |
40 | |||
41 | #endif /* __MACH_HARDWARE_H */ | 41 | #endif /* __MACH_HARDWARE_H */ |
diff --git a/arch/arm/mach-ux500/include/mach/id.h b/arch/arm/mach-ux500/include/mach/id.h index 02b541a37ee5..833d6a6edc9b 100644 --- a/arch/arm/mach-ux500/include/mach/id.h +++ b/arch/arm/mach-ux500/include/mach/id.h | |||
@@ -47,6 +47,30 @@ static inline bool __attribute_const__ cpu_is_u5500(void) | |||
47 | } | 47 | } |
48 | 48 | ||
49 | /* | 49 | /* |
50 | * 5500 revisions | ||
51 | */ | ||
52 | |||
53 | static inline bool __attribute_const__ cpu_is_u5500v1(void) | ||
54 | { | ||
55 | return cpu_is_u5500() && (dbx500_revision() & 0xf0) == 0xA0; | ||
56 | } | ||
57 | |||
58 | static inline bool __attribute_const__ cpu_is_u5500v2(void) | ||
59 | { | ||
60 | return (dbx500_id.revision & 0xf0) == 0xB0; | ||
61 | } | ||
62 | |||
63 | static inline bool __attribute_const__ cpu_is_u5500v20(void) | ||
64 | { | ||
65 | return cpu_is_u5500() && ((dbx500_revision() & 0xf0) == 0xB0); | ||
66 | } | ||
67 | |||
68 | static inline bool __attribute_const__ cpu_is_u5500v21(void) | ||
69 | { | ||
70 | return cpu_is_u5500() && (dbx500_revision() == 0xB1); | ||
71 | } | ||
72 | |||
73 | /* | ||
50 | * 8500 revisions | 74 | * 8500 revisions |
51 | */ | 75 | */ |
52 | 76 | ||