diff options
author | Arnd Bergmann <arnd@arndb.de> | 2012-02-27 12:22:36 -0500 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2012-02-29 07:03:08 -0500 |
commit | 7eca30aef7961e68ad74c0ef920546c2be7f6579 (patch) | |
tree | d7161459a86134bee58b8a0980a15b66839467aa /arch/arm/mach-at91/include | |
parent | d65b4e98d7ea3038b767b70fe8be959b2913f16d (diff) | |
parent | d5e5a7f987458f42f24a557a0f4e35f94c43fc09 (diff) |
Merge branch 'at91-3.4-base2+cleanup' of git://github.com/at91linux/linux-at91 into at91/staging/base2+cleanup
* 'at91-3.4-base2+cleanup' of git://github.com/at91linux/linux-at91: (20 commits)
ARM: at91: properly sort dtb files in Makefile.boot
ARM: at91: add at91sam9g25ek.dts in Makefile.boot
ARM: at91/board-dt: drop default console
Atmel: move console default platform_device to serial driver
ARM: at91: merge SRAM Memory banks thanks to mirroring
ARM: at91: finally drop at91_sys_read/write
ARM: at91/rtc-at91sam9: pass the GPBR to use via resources
ARM: at91:rtc/rtc-at91sam9: ioremap register bank
ARM: at91/rtc-at91sam9: each SoC can select the RTT device to use
ARM: at91/PMC: make register base soc independent
ARM: at91/PMC: move assignment out of printf
ARM: at91/pm_slowclock: add runtime detection of memory contoller
ARM: at91: make sdram/ddr register base soc independent
ARM: at91: move at91rm9200 sdramc defines to at91rm9200_sdramc.h
ARM: at91/pm_slowclock: function slow_clock() accepts parameters
ARM: at91/pm_slowclock: rename register to named define
ARM: at91/ST: remove not needed casts
ARM: at91: make ST (System Timer) soc independent
ARM: at91: make matrix register base soc independent
ARM: at91/at91x40: remove use of at91_sys_read/write
Based on top of the at91/9x5, rmk/for-armsoc, at91/device-board,
at91/pm_cleanup and at91/base.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm/mach-at91/include')
29 files changed, 534 insertions, 646 deletions
diff --git a/arch/arm/mach-at91/include/mach/at91_matrix.h b/arch/arm/mach-at91/include/mach/at91_matrix.h new file mode 100644 index 000000000000..02fae9de746b --- /dev/null +++ b/arch/arm/mach-at91/include/mach/at91_matrix.h | |||
@@ -0,0 +1,23 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | ||
3 | * | ||
4 | * Under GPLv2 | ||
5 | */ | ||
6 | |||
7 | #ifndef __MACH_AT91_MATRIX_H__ | ||
8 | #define __MACH_AT91_MATRIX_H__ | ||
9 | |||
10 | #ifndef __ASSEMBLY__ | ||
11 | extern void __iomem *at91_matrix_base; | ||
12 | |||
13 | #define at91_matrix_read(field) \ | ||
14 | __raw_readl(at91_matrix_base + field) | ||
15 | |||
16 | #define at91_matrix_write(field, value) \ | ||
17 | __raw_writel(value, at91_matrix_base + field); | ||
18 | |||
19 | #else | ||
20 | .extern at91_matrix_base | ||
21 | #endif | ||
22 | |||
23 | #endif /* __MACH_AT91_MATRIX_H__ */ | ||
diff --git a/arch/arm/mach-at91/include/mach/at91_pmc.h b/arch/arm/mach-at91/include/mach/at91_pmc.h index e46f93e34aab..36604782a78f 100644 --- a/arch/arm/mach-at91/include/mach/at91_pmc.h +++ b/arch/arm/mach-at91/include/mach/at91_pmc.h | |||
@@ -16,17 +16,27 @@ | |||
16 | #ifndef AT91_PMC_H | 16 | #ifndef AT91_PMC_H |
17 | #define AT91_PMC_H | 17 | #define AT91_PMC_H |
18 | 18 | ||
19 | #define AT91_PMC_SCER (AT91_PMC + 0x00) /* System Clock Enable Register */ | 19 | #ifndef __ASSEMBLY__ |
20 | #define AT91_PMC_SCDR (AT91_PMC + 0x04) /* System Clock Disable Register */ | 20 | extern void __iomem *at91_pmc_base; |
21 | 21 | ||
22 | #define AT91_PMC_SCSR (AT91_PMC + 0x08) /* System Clock Status Register */ | 22 | #define at91_pmc_read(field) \ |
23 | __raw_readl(at91_pmc_base + field) | ||
24 | |||
25 | #define at91_pmc_write(field, value) \ | ||
26 | __raw_writel(value, at91_pmc_base + field) | ||
27 | #else | ||
28 | .extern at91_aic_base | ||
29 | #endif | ||
30 | |||
31 | #define AT91_PMC_SCER 0x00 /* System Clock Enable Register */ | ||
32 | #define AT91_PMC_SCDR 0x04 /* System Clock Disable Register */ | ||
33 | |||
34 | #define AT91_PMC_SCSR 0x08 /* System Clock Status Register */ | ||
23 | #define AT91_PMC_PCK (1 << 0) /* Processor Clock */ | 35 | #define AT91_PMC_PCK (1 << 0) /* Processor Clock */ |
24 | #define AT91RM9200_PMC_UDP (1 << 1) /* USB Devcice Port Clock [AT91RM9200 only] */ | 36 | #define AT91RM9200_PMC_UDP (1 << 1) /* USB Devcice Port Clock [AT91RM9200 only] */ |
25 | #define AT91RM9200_PMC_MCKUDP (1 << 2) /* USB Device Port Master Clock Automatic Disable on Suspend [AT91RM9200 only] */ | 37 | #define AT91RM9200_PMC_MCKUDP (1 << 2) /* USB Device Port Master Clock Automatic Disable on Suspend [AT91RM9200 only] */ |
26 | #define AT91CAP9_PMC_DDR (1 << 2) /* DDR Clock [CAP9 revC & some SAM9 only] */ | ||
27 | #define AT91RM9200_PMC_UHP (1 << 4) /* USB Host Port Clock [AT91RM9200 only] */ | 38 | #define AT91RM9200_PMC_UHP (1 << 4) /* USB Host Port Clock [AT91RM9200 only] */ |
28 | #define AT91SAM926x_PMC_UHP (1 << 6) /* USB Host Port Clock [AT91SAM926x only] */ | 39 | #define AT91SAM926x_PMC_UHP (1 << 6) /* USB Host Port Clock [AT91SAM926x only] */ |
29 | #define AT91CAP9_PMC_UHP (1 << 6) /* USB Host Port Clock [AT91CAP9 only] */ | ||
30 | #define AT91SAM926x_PMC_UDP (1 << 7) /* USB Devcice Port Clock [AT91SAM926x only] */ | 40 | #define AT91SAM926x_PMC_UDP (1 << 7) /* USB Devcice Port Clock [AT91SAM926x only] */ |
31 | #define AT91_PMC_PCK0 (1 << 8) /* Programmable Clock 0 */ | 41 | #define AT91_PMC_PCK0 (1 << 8) /* Programmable Clock 0 */ |
32 | #define AT91_PMC_PCK1 (1 << 9) /* Programmable Clock 1 */ | 42 | #define AT91_PMC_PCK1 (1 << 9) /* Programmable Clock 1 */ |
@@ -36,27 +46,31 @@ | |||
36 | #define AT91_PMC_HCK0 (1 << 16) /* AHB Clock (USB host) [AT91SAM9261 only] */ | 46 | #define AT91_PMC_HCK0 (1 << 16) /* AHB Clock (USB host) [AT91SAM9261 only] */ |
37 | #define AT91_PMC_HCK1 (1 << 17) /* AHB Clock (LCD) [AT91SAM9261 only] */ | 47 | #define AT91_PMC_HCK1 (1 << 17) /* AHB Clock (LCD) [AT91SAM9261 only] */ |
38 | 48 | ||
39 | #define AT91_PMC_PCER (AT91_PMC + 0x10) /* Peripheral Clock Enable Register */ | 49 | #define AT91_PMC_PCER 0x10 /* Peripheral Clock Enable Register */ |
40 | #define AT91_PMC_PCDR (AT91_PMC + 0x14) /* Peripheral Clock Disable Register */ | 50 | #define AT91_PMC_PCDR 0x14 /* Peripheral Clock Disable Register */ |
41 | #define AT91_PMC_PCSR (AT91_PMC + 0x18) /* Peripheral Clock Status Register */ | 51 | #define AT91_PMC_PCSR 0x18 /* Peripheral Clock Status Register */ |
42 | 52 | ||
43 | #define AT91_CKGR_UCKR (AT91_PMC + 0x1C) /* UTMI Clock Register [some SAM9, CAP9] */ | 53 | #define AT91_CKGR_UCKR 0x1C /* UTMI Clock Register [some SAM9] */ |
44 | #define AT91_PMC_UPLLEN (1 << 16) /* UTMI PLL Enable */ | 54 | #define AT91_PMC_UPLLEN (1 << 16) /* UTMI PLL Enable */ |
45 | #define AT91_PMC_UPLLCOUNT (0xf << 20) /* UTMI PLL Start-up Time */ | 55 | #define AT91_PMC_UPLLCOUNT (0xf << 20) /* UTMI PLL Start-up Time */ |
46 | #define AT91_PMC_BIASEN (1 << 24) /* UTMI BIAS Enable */ | 56 | #define AT91_PMC_BIASEN (1 << 24) /* UTMI BIAS Enable */ |
47 | #define AT91_PMC_BIASCOUNT (0xf << 28) /* UTMI BIAS Start-up Time */ | 57 | #define AT91_PMC_BIASCOUNT (0xf << 28) /* UTMI BIAS Start-up Time */ |
48 | 58 | ||
49 | #define AT91_CKGR_MOR (AT91_PMC + 0x20) /* Main Oscillator Register [not on SAM9RL] */ | 59 | #define AT91_CKGR_MOR 0x20 /* Main Oscillator Register [not on SAM9RL] */ |
50 | #define AT91_PMC_MOSCEN (1 << 0) /* Main Oscillator Enable */ | 60 | #define AT91_PMC_MOSCEN (1 << 0) /* Main Oscillator Enable */ |
51 | #define AT91_PMC_OSCBYPASS (1 << 1) /* Oscillator Bypass [SAM9x, CAP9] */ | 61 | #define AT91_PMC_OSCBYPASS (1 << 1) /* Oscillator Bypass */ |
52 | #define AT91_PMC_OSCOUNT (0xff << 8) /* Main Oscillator Start-up Time */ | 62 | #define AT91_PMC_MOSCRCEN (1 << 3) /* Main On-Chip RC Oscillator Enable [some SAM9] */ |
63 | #define AT91_PMC_OSCOUNT (0xff << 8) /* Main Oscillator Start-up Time */ | ||
64 | #define AT91_PMC_KEY (0x37 << 16) /* MOR Writing Key */ | ||
65 | #define AT91_PMC_MOSCSEL (1 << 24) /* Main Oscillator Selection [some SAM9] */ | ||
66 | #define AT91_PMC_CFDEN (1 << 25) /* Clock Failure Detector Enable [some SAM9] */ | ||
53 | 67 | ||
54 | #define AT91_CKGR_MCFR (AT91_PMC + 0x24) /* Main Clock Frequency Register */ | 68 | #define AT91_CKGR_MCFR 0x24 /* Main Clock Frequency Register */ |
55 | #define AT91_PMC_MAINF (0xffff << 0) /* Main Clock Frequency */ | 69 | #define AT91_PMC_MAINF (0xffff << 0) /* Main Clock Frequency */ |
56 | #define AT91_PMC_MAINRDY (1 << 16) /* Main Clock Ready */ | 70 | #define AT91_PMC_MAINRDY (1 << 16) /* Main Clock Ready */ |
57 | 71 | ||
58 | #define AT91_CKGR_PLLAR (AT91_PMC + 0x28) /* PLL A Register */ | 72 | #define AT91_CKGR_PLLAR 0x28 /* PLL A Register */ |
59 | #define AT91_CKGR_PLLBR (AT91_PMC + 0x2c) /* PLL B Register */ | 73 | #define AT91_CKGR_PLLBR 0x2c /* PLL B Register */ |
60 | #define AT91_PMC_DIV (0xff << 0) /* Divider */ | 74 | #define AT91_PMC_DIV (0xff << 0) /* Divider */ |
61 | #define AT91_PMC_PLLCOUNT (0x3f << 8) /* PLL Counter */ | 75 | #define AT91_PMC_PLLCOUNT (0x3f << 8) /* PLL Counter */ |
62 | #define AT91_PMC_OUT (3 << 14) /* PLL Clock Frequency Range */ | 76 | #define AT91_PMC_OUT (3 << 14) /* PLL Clock Frequency Range */ |
@@ -67,27 +81,37 @@ | |||
67 | #define AT91_PMC_USBDIV_4 (2 << 28) | 81 | #define AT91_PMC_USBDIV_4 (2 << 28) |
68 | #define AT91_PMC_USB96M (1 << 28) /* Divider by 2 Enable (PLLB only) */ | 82 | #define AT91_PMC_USB96M (1 << 28) /* Divider by 2 Enable (PLLB only) */ |
69 | 83 | ||
70 | #define AT91_PMC_MCKR (AT91_PMC + 0x30) /* Master Clock Register */ | 84 | #define AT91_PMC_MCKR 0x30 /* Master Clock Register */ |
71 | #define AT91_PMC_CSS (3 << 0) /* Master Clock Selection */ | 85 | #define AT91_PMC_CSS (3 << 0) /* Master Clock Selection */ |
72 | #define AT91_PMC_CSS_SLOW (0 << 0) | 86 | #define AT91_PMC_CSS_SLOW (0 << 0) |
73 | #define AT91_PMC_CSS_MAIN (1 << 0) | 87 | #define AT91_PMC_CSS_MAIN (1 << 0) |
74 | #define AT91_PMC_CSS_PLLA (2 << 0) | 88 | #define AT91_PMC_CSS_PLLA (2 << 0) |
75 | #define AT91_PMC_CSS_PLLB (3 << 0) | 89 | #define AT91_PMC_CSS_PLLB (3 << 0) |
76 | #define AT91_PMC_CSS_UPLL (3 << 0) /* [some SAM9 only] */ | 90 | #define AT91_PMC_CSS_UPLL (3 << 0) /* [some SAM9 only] */ |
77 | #define AT91_PMC_PRES (7 << 2) /* Master Clock Prescaler */ | 91 | #define PMC_PRES_OFFSET 2 |
78 | #define AT91_PMC_PRES_1 (0 << 2) | 92 | #define AT91_PMC_PRES (7 << PMC_PRES_OFFSET) /* Master Clock Prescaler */ |
79 | #define AT91_PMC_PRES_2 (1 << 2) | 93 | #define AT91_PMC_PRES_1 (0 << PMC_PRES_OFFSET) |
80 | #define AT91_PMC_PRES_4 (2 << 2) | 94 | #define AT91_PMC_PRES_2 (1 << PMC_PRES_OFFSET) |
81 | #define AT91_PMC_PRES_8 (3 << 2) | 95 | #define AT91_PMC_PRES_4 (2 << PMC_PRES_OFFSET) |
82 | #define AT91_PMC_PRES_16 (4 << 2) | 96 | #define AT91_PMC_PRES_8 (3 << PMC_PRES_OFFSET) |
83 | #define AT91_PMC_PRES_32 (5 << 2) | 97 | #define AT91_PMC_PRES_16 (4 << PMC_PRES_OFFSET) |
84 | #define AT91_PMC_PRES_64 (6 << 2) | 98 | #define AT91_PMC_PRES_32 (5 << PMC_PRES_OFFSET) |
99 | #define AT91_PMC_PRES_64 (6 << PMC_PRES_OFFSET) | ||
100 | #define PMC_ALT_PRES_OFFSET 4 | ||
101 | #define AT91_PMC_ALT_PRES (7 << PMC_ALT_PRES_OFFSET) /* Master Clock Prescaler [alternate location] */ | ||
102 | #define AT91_PMC_ALT_PRES_1 (0 << PMC_ALT_PRES_OFFSET) | ||
103 | #define AT91_PMC_ALT_PRES_2 (1 << PMC_ALT_PRES_OFFSET) | ||
104 | #define AT91_PMC_ALT_PRES_4 (2 << PMC_ALT_PRES_OFFSET) | ||
105 | #define AT91_PMC_ALT_PRES_8 (3 << PMC_ALT_PRES_OFFSET) | ||
106 | #define AT91_PMC_ALT_PRES_16 (4 << PMC_ALT_PRES_OFFSET) | ||
107 | #define AT91_PMC_ALT_PRES_32 (5 << PMC_ALT_PRES_OFFSET) | ||
108 | #define AT91_PMC_ALT_PRES_64 (6 << PMC_ALT_PRES_OFFSET) | ||
85 | #define AT91_PMC_MDIV (3 << 8) /* Master Clock Division */ | 109 | #define AT91_PMC_MDIV (3 << 8) /* Master Clock Division */ |
86 | #define AT91RM9200_PMC_MDIV_1 (0 << 8) /* [AT91RM9200 only] */ | 110 | #define AT91RM9200_PMC_MDIV_1 (0 << 8) /* [AT91RM9200 only] */ |
87 | #define AT91RM9200_PMC_MDIV_2 (1 << 8) | 111 | #define AT91RM9200_PMC_MDIV_2 (1 << 8) |
88 | #define AT91RM9200_PMC_MDIV_3 (2 << 8) | 112 | #define AT91RM9200_PMC_MDIV_3 (2 << 8) |
89 | #define AT91RM9200_PMC_MDIV_4 (3 << 8) | 113 | #define AT91RM9200_PMC_MDIV_4 (3 << 8) |
90 | #define AT91SAM9_PMC_MDIV_1 (0 << 8) /* [SAM9,CAP9 only] */ | 114 | #define AT91SAM9_PMC_MDIV_1 (0 << 8) /* [SAM9 only] */ |
91 | #define AT91SAM9_PMC_MDIV_2 (1 << 8) | 115 | #define AT91SAM9_PMC_MDIV_2 (1 << 8) |
92 | #define AT91SAM9_PMC_MDIV_4 (2 << 8) | 116 | #define AT91SAM9_PMC_MDIV_4 (2 << 8) |
93 | #define AT91SAM9_PMC_MDIV_6 (3 << 8) /* [some SAM9 only] */ | 117 | #define AT91SAM9_PMC_MDIV_6 (3 << 8) /* [some SAM9 only] */ |
@@ -99,35 +123,55 @@ | |||
99 | #define AT91_PMC_PLLADIV2_OFF (0 << 12) | 123 | #define AT91_PMC_PLLADIV2_OFF (0 << 12) |
100 | #define AT91_PMC_PLLADIV2_ON (1 << 12) | 124 | #define AT91_PMC_PLLADIV2_ON (1 << 12) |
101 | 125 | ||
102 | #define AT91_PMC_USB (AT91_PMC + 0x38) /* USB Clock Register [some SAM9 only] */ | 126 | #define AT91_PMC_USB 0x38 /* USB Clock Register [some SAM9 only] */ |
103 | #define AT91_PMC_USBS (0x1 << 0) /* USB OHCI Input clock selection */ | 127 | #define AT91_PMC_USBS (0x1 << 0) /* USB OHCI Input clock selection */ |
104 | #define AT91_PMC_USBS_PLLA (0 << 0) | 128 | #define AT91_PMC_USBS_PLLA (0 << 0) |
105 | #define AT91_PMC_USBS_UPLL (1 << 0) | 129 | #define AT91_PMC_USBS_UPLL (1 << 0) |
106 | #define AT91_PMC_OHCIUSBDIV (0xF << 8) /* Divider for USB OHCI Clock */ | 130 | #define AT91_PMC_OHCIUSBDIV (0xF << 8) /* Divider for USB OHCI Clock */ |
107 | 131 | ||
108 | #define AT91_PMC_PCKR(n) (AT91_PMC + 0x40 + ((n) * 4)) /* Programmable Clock 0-N Registers */ | 132 | #define AT91_PMC_SMD 0x3c /* Soft Modem Clock Register [some SAM9 only] */ |
133 | #define AT91_PMC_SMDS (0x1 << 0) /* SMD input clock selection */ | ||
134 | #define AT91_PMC_SMD_DIV (0x1f << 8) /* SMD input clock divider */ | ||
135 | #define AT91_PMC_SMDDIV(n) (((n) << 8) & AT91_PMC_SMD_DIV) | ||
136 | |||
137 | #define AT91_PMC_PCKR(n) (0x40 + ((n) * 4)) /* Programmable Clock 0-N Registers */ | ||
138 | #define AT91_PMC_ALT_PCKR_CSS (0x7 << 0) /* Programmable Clock Source Selection [alternate length] */ | ||
139 | #define AT91_PMC_CSS_MASTER (4 << 0) /* [some SAM9 only] */ | ||
109 | #define AT91_PMC_CSSMCK (0x1 << 8) /* CSS or Master Clock Selection */ | 140 | #define AT91_PMC_CSSMCK (0x1 << 8) /* CSS or Master Clock Selection */ |
110 | #define AT91_PMC_CSSMCK_CSS (0 << 8) | 141 | #define AT91_PMC_CSSMCK_CSS (0 << 8) |
111 | #define AT91_PMC_CSSMCK_MCK (1 << 8) | 142 | #define AT91_PMC_CSSMCK_MCK (1 << 8) |
112 | 143 | ||
113 | #define AT91_PMC_IER (AT91_PMC + 0x60) /* Interrupt Enable Register */ | 144 | #define AT91_PMC_IER 0x60 /* Interrupt Enable Register */ |
114 | #define AT91_PMC_IDR (AT91_PMC + 0x64) /* Interrupt Disable Register */ | 145 | #define AT91_PMC_IDR 0x64 /* Interrupt Disable Register */ |
115 | #define AT91_PMC_SR (AT91_PMC + 0x68) /* Status Register */ | 146 | #define AT91_PMC_SR 0x68 /* Status Register */ |
116 | #define AT91_PMC_MOSCS (1 << 0) /* MOSCS Flag */ | 147 | #define AT91_PMC_MOSCS (1 << 0) /* MOSCS Flag */ |
117 | #define AT91_PMC_LOCKA (1 << 1) /* PLLA Lock */ | 148 | #define AT91_PMC_LOCKA (1 << 1) /* PLLA Lock */ |
118 | #define AT91_PMC_LOCKB (1 << 2) /* PLLB Lock */ | 149 | #define AT91_PMC_LOCKB (1 << 2) /* PLLB Lock */ |
119 | #define AT91_PMC_MCKRDY (1 << 3) /* Master Clock */ | 150 | #define AT91_PMC_MCKRDY (1 << 3) /* Master Clock */ |
120 | #define AT91_PMC_LOCKU (1 << 6) /* UPLL Lock [some SAM9, AT91CAP9 only] */ | 151 | #define AT91_PMC_LOCKU (1 << 6) /* UPLL Lock [some SAM9] */ |
121 | #define AT91_PMC_OSCSEL (1 << 7) /* Slow Clock Oscillator [AT91CAP9 revC only] */ | ||
122 | #define AT91_PMC_PCK0RDY (1 << 8) /* Programmable Clock 0 */ | 152 | #define AT91_PMC_PCK0RDY (1 << 8) /* Programmable Clock 0 */ |
123 | #define AT91_PMC_PCK1RDY (1 << 9) /* Programmable Clock 1 */ | 153 | #define AT91_PMC_PCK1RDY (1 << 9) /* Programmable Clock 1 */ |
124 | #define AT91_PMC_PCK2RDY (1 << 10) /* Programmable Clock 2 */ | 154 | #define AT91_PMC_PCK2RDY (1 << 10) /* Programmable Clock 2 */ |
125 | #define AT91_PMC_PCK3RDY (1 << 11) /* Programmable Clock 3 */ | 155 | #define AT91_PMC_PCK3RDY (1 << 11) /* Programmable Clock 3 */ |
126 | #define AT91_PMC_IMR (AT91_PMC + 0x6c) /* Interrupt Mask Register */ | 156 | #define AT91_PMC_MOSCSELS (1 << 16) /* Main Oscillator Selection [some SAM9] */ |
157 | #define AT91_PMC_MOSCRCS (1 << 17) /* Main On-Chip RC [some SAM9] */ | ||
158 | #define AT91_PMC_CFDEV (1 << 18) /* Clock Failure Detector Event [some SAM9] */ | ||
159 | #define AT91_PMC_IMR 0x6c /* Interrupt Mask Register */ | ||
160 | |||
161 | #define AT91_PMC_PROT 0xe4 /* Write Protect Mode Register [some SAM9] */ | ||
162 | #define AT91_PMC_WPEN (0x1 << 0) /* Write Protect Enable */ | ||
163 | #define AT91_PMC_WPKEY (0xffffff << 8) /* Write Protect Key */ | ||
164 | #define AT91_PMC_PROTKEY (0x504d43 << 8) /* Activation Code */ | ||
127 | 165 | ||
128 | #define AT91_PMC_PROT (AT91_PMC + 0xe4) /* Protect Register [AT91CAP9 revC only] */ | 166 | #define AT91_PMC_WPSR 0xe8 /* Write Protect Status Register [some SAM9] */ |
129 | #define AT91_PMC_PROTKEY 0x504d4301 /* Activation Code */ | 167 | #define AT91_PMC_WPVS (0x1 << 0) /* Write Protect Violation Status */ |
168 | #define AT91_PMC_WPVSRC (0xffff << 8) /* Write Protect Violation Source */ | ||
130 | 169 | ||
131 | #define AT91_PMC_VER (AT91_PMC + 0xfc) /* PMC Module Version [AT91CAP9 only] */ | 170 | #define AT91_PMC_PCR 0x10c /* Peripheral Control Register [some SAM9] */ |
171 | #define AT91_PMC_PCR_PID (0x3f << 0) /* Peripheral ID */ | ||
172 | #define AT91_PMC_PCR_CMD (0x1 << 12) /* Command */ | ||
173 | #define AT91_PMC_PCR_DIV (0x3 << 16) /* Divisor Value */ | ||
174 | #define AT91_PMC_PCRDIV(n) (((n) << 16) & AT91_PMC_PCR_DIV) | ||
175 | #define AT91_PMC_PCR_EN (0x1 << 28) /* Enable */ | ||
132 | 176 | ||
133 | #endif | 177 | #endif |
diff --git a/arch/arm/mach-at91/include/mach/at91_ramc.h b/arch/arm/mach-at91/include/mach/at91_ramc.h new file mode 100644 index 000000000000..d8aeb278614e --- /dev/null +++ b/arch/arm/mach-at91/include/mach/at91_ramc.h | |||
@@ -0,0 +1,32 @@ | |||
1 | /* | ||
2 | * Header file for the Atmel RAM Controller | ||
3 | * | ||
4 | * Copyright (C) 2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | ||
5 | * | ||
6 | * Under GPLv2 only | ||
7 | */ | ||
8 | |||
9 | #ifndef __AT91_RAMC_H__ | ||
10 | #define __AT91_RAMC_H__ | ||
11 | |||
12 | #ifndef __ASSEMBLY__ | ||
13 | extern void __iomem *at91_ramc_base[]; | ||
14 | |||
15 | #define at91_ramc_read(id, field) \ | ||
16 | __raw_readl(at91_ramc_base[id] + field) | ||
17 | |||
18 | #define at91_ramc_write(id, field, value) \ | ||
19 | __raw_writel(value, at91_ramc_base[id] + field) | ||
20 | #else | ||
21 | .extern at91_ramc_base | ||
22 | #endif | ||
23 | |||
24 | #define AT91_MEMCTRL_MC 0 | ||
25 | #define AT91_MEMCTRL_SDRAMC 1 | ||
26 | #define AT91_MEMCTRL_DDRSDR 2 | ||
27 | |||
28 | #include <mach/at91rm9200_sdramc.h> | ||
29 | #include <mach/at91sam9_ddrsdr.h> | ||
30 | #include <mach/at91sam9_sdramc.h> | ||
31 | |||
32 | #endif /* __AT91_RAMC_H__ */ | ||
diff --git a/arch/arm/mach-at91/include/mach/at91_st.h b/arch/arm/mach-at91/include/mach/at91_st.h index 8847173e4101..969aac27109f 100644 --- a/arch/arm/mach-at91/include/mach/at91_st.h +++ b/arch/arm/mach-at91/include/mach/at91_st.h | |||
@@ -16,34 +16,46 @@ | |||
16 | #ifndef AT91_ST_H | 16 | #ifndef AT91_ST_H |
17 | #define AT91_ST_H | 17 | #define AT91_ST_H |
18 | 18 | ||
19 | #define AT91_ST_CR (AT91_ST + 0x00) /* Control Register */ | 19 | #ifndef __ASSEMBLY__ |
20 | extern void __iomem *at91_st_base; | ||
21 | |||
22 | #define at91_st_read(field) \ | ||
23 | __raw_readl(at91_st_base + field) | ||
24 | |||
25 | #define at91_st_write(field, value) \ | ||
26 | __raw_writel(value, at91_st_base + field); | ||
27 | #else | ||
28 | .extern at91_st_base | ||
29 | #endif | ||
30 | |||
31 | #define AT91_ST_CR 0x00 /* Control Register */ | ||
20 | #define AT91_ST_WDRST (1 << 0) /* Watchdog Timer Restart */ | 32 | #define AT91_ST_WDRST (1 << 0) /* Watchdog Timer Restart */ |
21 | 33 | ||
22 | #define AT91_ST_PIMR (AT91_ST + 0x04) /* Period Interval Mode Register */ | 34 | #define AT91_ST_PIMR 0x04 /* Period Interval Mode Register */ |
23 | #define AT91_ST_PIV (0xffff << 0) /* Period Interval Value */ | 35 | #define AT91_ST_PIV (0xffff << 0) /* Period Interval Value */ |
24 | 36 | ||
25 | #define AT91_ST_WDMR (AT91_ST + 0x08) /* Watchdog Mode Register */ | 37 | #define AT91_ST_WDMR 0x08 /* Watchdog Mode Register */ |
26 | #define AT91_ST_WDV (0xffff << 0) /* Watchdog Counter Value */ | 38 | #define AT91_ST_WDV (0xffff << 0) /* Watchdog Counter Value */ |
27 | #define AT91_ST_RSTEN (1 << 16) /* Reset Enable */ | 39 | #define AT91_ST_RSTEN (1 << 16) /* Reset Enable */ |
28 | #define AT91_ST_EXTEN (1 << 17) /* External Signal Assertion Enable */ | 40 | #define AT91_ST_EXTEN (1 << 17) /* External Signal Assertion Enable */ |
29 | 41 | ||
30 | #define AT91_ST_RTMR (AT91_ST + 0x0c) /* Real-time Mode Register */ | 42 | #define AT91_ST_RTMR 0x0c /* Real-time Mode Register */ |
31 | #define AT91_ST_RTPRES (0xffff << 0) /* Real-time Prescalar Value */ | 43 | #define AT91_ST_RTPRES (0xffff << 0) /* Real-time Prescalar Value */ |
32 | 44 | ||
33 | #define AT91_ST_SR (AT91_ST + 0x10) /* Status Register */ | 45 | #define AT91_ST_SR 0x10 /* Status Register */ |
34 | #define AT91_ST_PITS (1 << 0) /* Period Interval Timer Status */ | 46 | #define AT91_ST_PITS (1 << 0) /* Period Interval Timer Status */ |
35 | #define AT91_ST_WDOVF (1 << 1) /* Watchdog Overflow */ | 47 | #define AT91_ST_WDOVF (1 << 1) /* Watchdog Overflow */ |
36 | #define AT91_ST_RTTINC (1 << 2) /* Real-time Timer Increment */ | 48 | #define AT91_ST_RTTINC (1 << 2) /* Real-time Timer Increment */ |
37 | #define AT91_ST_ALMS (1 << 3) /* Alarm Status */ | 49 | #define AT91_ST_ALMS (1 << 3) /* Alarm Status */ |
38 | 50 | ||
39 | #define AT91_ST_IER (AT91_ST + 0x14) /* Interrupt Enable Register */ | 51 | #define AT91_ST_IER 0x14 /* Interrupt Enable Register */ |
40 | #define AT91_ST_IDR (AT91_ST + 0x18) /* Interrupt Disable Register */ | 52 | #define AT91_ST_IDR 0x18 /* Interrupt Disable Register */ |
41 | #define AT91_ST_IMR (AT91_ST + 0x1c) /* Interrupt Mask Register */ | 53 | #define AT91_ST_IMR 0x1c /* Interrupt Mask Register */ |
42 | 54 | ||
43 | #define AT91_ST_RTAR (AT91_ST + 0x20) /* Real-time Alarm Register */ | 55 | #define AT91_ST_RTAR 0x20 /* Real-time Alarm Register */ |
44 | #define AT91_ST_ALMV (0xfffff << 0) /* Alarm Value */ | 56 | #define AT91_ST_ALMV (0xfffff << 0) /* Alarm Value */ |
45 | 57 | ||
46 | #define AT91_ST_CRTR (AT91_ST + 0x24) /* Current Real-time Register */ | 58 | #define AT91_ST_CRTR 0x24 /* Current Real-time Register */ |
47 | #define AT91_ST_CRTV (0xfffff << 0) /* Current Real-Time Value */ | 59 | #define AT91_ST_CRTV (0xfffff << 0) /* Current Real-Time Value */ |
48 | 60 | ||
49 | #endif | 61 | #endif |
diff --git a/arch/arm/mach-at91/include/mach/at91cap9.h b/arch/arm/mach-at91/include/mach/at91cap9.h deleted file mode 100644 index 61d952902f2b..000000000000 --- a/arch/arm/mach-at91/include/mach/at91cap9.h +++ /dev/null | |||
@@ -1,122 +0,0 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-at91/include/mach/at91cap9.h | ||
3 | * | ||
4 | * Copyright (C) 2007 Stelian Pop <stelian.pop@leadtechdesign.com> | ||
5 | * Copyright (C) 2007 Lead Tech Design <www.leadtechdesign.com> | ||
6 | * Copyright (C) 2007 Atmel Corporation. | ||
7 | * | ||
8 | * Common definitions. | ||
9 | * Based on AT91CAP9 datasheet revision B (Preliminary). | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or modify | ||
12 | * it under the terms of the GNU General Public License as published by | ||
13 | * the Free Software Foundation; either version 2 of the License, or | ||
14 | * (at your option) any later version. | ||
15 | */ | ||
16 | |||
17 | #ifndef AT91CAP9_H | ||
18 | #define AT91CAP9_H | ||
19 | |||
20 | /* | ||
21 | * Peripheral identifiers/interrupts. | ||
22 | */ | ||
23 | #define AT91CAP9_ID_PIOABCD 2 /* Parallel IO Controller A, B, C and D */ | ||
24 | #define AT91CAP9_ID_MPB0 3 /* MP Block Peripheral 0 */ | ||
25 | #define AT91CAP9_ID_MPB1 4 /* MP Block Peripheral 1 */ | ||
26 | #define AT91CAP9_ID_MPB2 5 /* MP Block Peripheral 2 */ | ||
27 | #define AT91CAP9_ID_MPB3 6 /* MP Block Peripheral 3 */ | ||
28 | #define AT91CAP9_ID_MPB4 7 /* MP Block Peripheral 4 */ | ||
29 | #define AT91CAP9_ID_US0 8 /* USART 0 */ | ||
30 | #define AT91CAP9_ID_US1 9 /* USART 1 */ | ||
31 | #define AT91CAP9_ID_US2 10 /* USART 2 */ | ||
32 | #define AT91CAP9_ID_MCI0 11 /* Multimedia Card Interface 0 */ | ||
33 | #define AT91CAP9_ID_MCI1 12 /* Multimedia Card Interface 1 */ | ||
34 | #define AT91CAP9_ID_CAN 13 /* CAN */ | ||
35 | #define AT91CAP9_ID_TWI 14 /* Two-Wire Interface */ | ||
36 | #define AT91CAP9_ID_SPI0 15 /* Serial Peripheral Interface 0 */ | ||
37 | #define AT91CAP9_ID_SPI1 16 /* Serial Peripheral Interface 0 */ | ||
38 | #define AT91CAP9_ID_SSC0 17 /* Serial Synchronous Controller 0 */ | ||
39 | #define AT91CAP9_ID_SSC1 18 /* Serial Synchronous Controller 1 */ | ||
40 | #define AT91CAP9_ID_AC97C 19 /* AC97 Controller */ | ||
41 | #define AT91CAP9_ID_TCB 20 /* Timer Counter 0, 1 and 2 */ | ||
42 | #define AT91CAP9_ID_PWMC 21 /* Pulse Width Modulation Controller */ | ||
43 | #define AT91CAP9_ID_EMAC 22 /* Ethernet */ | ||
44 | #define AT91CAP9_ID_AESTDES 23 /* Advanced Encryption Standard, Triple DES */ | ||
45 | #define AT91CAP9_ID_ADC 24 /* Analog-to-Digital Converter */ | ||
46 | #define AT91CAP9_ID_ISI 25 /* Image Sensor Interface */ | ||
47 | #define AT91CAP9_ID_LCDC 26 /* LCD Controller */ | ||
48 | #define AT91CAP9_ID_DMA 27 /* DMA Controller */ | ||
49 | #define AT91CAP9_ID_UDPHS 28 /* USB High Speed Device Port */ | ||
50 | #define AT91CAP9_ID_UHP 29 /* USB Host Port */ | ||
51 | #define AT91CAP9_ID_IRQ0 30 /* Advanced Interrupt Controller (IRQ0) */ | ||
52 | #define AT91CAP9_ID_IRQ1 31 /* Advanced Interrupt Controller (IRQ1) */ | ||
53 | |||
54 | /* | ||
55 | * User Peripheral physical base addresses. | ||
56 | */ | ||
57 | #define AT91CAP9_BASE_UDPHS 0xfff78000 | ||
58 | #define AT91CAP9_BASE_TCB0 0xfff7c000 | ||
59 | #define AT91CAP9_BASE_TC0 0xfff7c000 | ||
60 | #define AT91CAP9_BASE_TC1 0xfff7c040 | ||
61 | #define AT91CAP9_BASE_TC2 0xfff7c080 | ||
62 | #define AT91CAP9_BASE_MCI0 0xfff80000 | ||
63 | #define AT91CAP9_BASE_MCI1 0xfff84000 | ||
64 | #define AT91CAP9_BASE_TWI 0xfff88000 | ||
65 | #define AT91CAP9_BASE_US0 0xfff8c000 | ||
66 | #define AT91CAP9_BASE_US1 0xfff90000 | ||
67 | #define AT91CAP9_BASE_US2 0xfff94000 | ||
68 | #define AT91CAP9_BASE_SSC0 0xfff98000 | ||
69 | #define AT91CAP9_BASE_SSC1 0xfff9c000 | ||
70 | #define AT91CAP9_BASE_AC97C 0xfffa0000 | ||
71 | #define AT91CAP9_BASE_SPI0 0xfffa4000 | ||
72 | #define AT91CAP9_BASE_SPI1 0xfffa8000 | ||
73 | #define AT91CAP9_BASE_CAN 0xfffac000 | ||
74 | #define AT91CAP9_BASE_PWMC 0xfffb8000 | ||
75 | #define AT91CAP9_BASE_EMAC 0xfffbc000 | ||
76 | #define AT91CAP9_BASE_ADC 0xfffc0000 | ||
77 | #define AT91CAP9_BASE_ISI 0xfffc4000 | ||
78 | |||
79 | /* | ||
80 | * System Peripherals (offset from AT91_BASE_SYS) | ||
81 | */ | ||
82 | #define AT91_BCRAMC (0xffffe400 - AT91_BASE_SYS) | ||
83 | #define AT91_DDRSDRC0 (0xffffe600 - AT91_BASE_SYS) | ||
84 | #define AT91_MATRIX (0xffffea00 - AT91_BASE_SYS) | ||
85 | #define AT91_PMC (0xfffffc00 - AT91_BASE_SYS) | ||
86 | #define AT91_GPBR (cpu_is_at91cap9_revB() ? \ | ||
87 | (0xfffffd50 - AT91_BASE_SYS) : \ | ||
88 | (0xfffffd60 - AT91_BASE_SYS)) | ||
89 | |||
90 | #define AT91CAP9_BASE_ECC 0xffffe200 | ||
91 | #define AT91CAP9_BASE_DMA 0xffffec00 | ||
92 | #define AT91CAP9_BASE_SMC 0xffffe800 | ||
93 | #define AT91CAP9_BASE_DBGU AT91_BASE_DBGU1 | ||
94 | #define AT91CAP9_BASE_PIOA 0xfffff200 | ||
95 | #define AT91CAP9_BASE_PIOB 0xfffff400 | ||
96 | #define AT91CAP9_BASE_PIOC 0xfffff600 | ||
97 | #define AT91CAP9_BASE_PIOD 0xfffff800 | ||
98 | #define AT91CAP9_BASE_RSTC 0xfffffd00 | ||
99 | #define AT91CAP9_BASE_SHDWC 0xfffffd10 | ||
100 | #define AT91CAP9_BASE_RTT 0xfffffd20 | ||
101 | #define AT91CAP9_BASE_PIT 0xfffffd30 | ||
102 | #define AT91CAP9_BASE_WDT 0xfffffd40 | ||
103 | |||
104 | #define AT91_USART0 AT91CAP9_BASE_US0 | ||
105 | #define AT91_USART1 AT91CAP9_BASE_US1 | ||
106 | #define AT91_USART2 AT91CAP9_BASE_US2 | ||
107 | |||
108 | |||
109 | /* | ||
110 | * Internal Memory. | ||
111 | */ | ||
112 | #define AT91CAP9_SRAM_BASE 0x00100000 /* Internal SRAM base address */ | ||
113 | #define AT91CAP9_SRAM_SIZE (32 * SZ_1K) /* Internal SRAM size (32Kb) */ | ||
114 | |||
115 | #define AT91CAP9_ROM_BASE 0x00400000 /* Internal ROM base address */ | ||
116 | #define AT91CAP9_ROM_SIZE (32 * SZ_1K) /* Internal ROM size (32Kb) */ | ||
117 | |||
118 | #define AT91CAP9_LCDC_BASE 0x00500000 /* LCD Controller */ | ||
119 | #define AT91CAP9_UDPHS_FIFO 0x00600000 /* USB High Speed Device Port */ | ||
120 | #define AT91CAP9_UHP_BASE 0x00700000 /* USB Host controller */ | ||
121 | |||
122 | #endif | ||
diff --git a/arch/arm/mach-at91/include/mach/at91cap9_matrix.h b/arch/arm/mach-at91/include/mach/at91cap9_matrix.h deleted file mode 100644 index 4b9d4aff4b4f..000000000000 --- a/arch/arm/mach-at91/include/mach/at91cap9_matrix.h +++ /dev/null | |||
@@ -1,137 +0,0 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-at91/include/mach/at91cap9_matrix.h | ||
3 | * | ||
4 | * Copyright (C) 2007 Stelian Pop <stelian.pop@leadtechdesign.com> | ||
5 | * Copyright (C) 2007 Lead Tech Design <www.leadtechdesign.com> | ||
6 | * Copyright (C) 2006 Atmel Corporation. | ||
7 | * | ||
8 | * Memory Controllers (MATRIX, EBI) - System peripherals registers. | ||
9 | * Based on AT91CAP9 datasheet revision B (Preliminary). | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or modify | ||
12 | * it under the terms of the GNU General Public License as published by | ||
13 | * the Free Software Foundation; either version 2 of the License, or | ||
14 | * (at your option) any later version. | ||
15 | */ | ||
16 | |||
17 | #ifndef AT91CAP9_MATRIX_H | ||
18 | #define AT91CAP9_MATRIX_H | ||
19 | |||
20 | #define AT91_MATRIX_MCFG0 (AT91_MATRIX + 0x00) /* Master Configuration Register 0 */ | ||
21 | #define AT91_MATRIX_MCFG1 (AT91_MATRIX + 0x04) /* Master Configuration Register 1 */ | ||
22 | #define AT91_MATRIX_MCFG2 (AT91_MATRIX + 0x08) /* Master Configuration Register 2 */ | ||
23 | #define AT91_MATRIX_MCFG3 (AT91_MATRIX + 0x0C) /* Master Configuration Register 3 */ | ||
24 | #define AT91_MATRIX_MCFG4 (AT91_MATRIX + 0x10) /* Master Configuration Register 4 */ | ||
25 | #define AT91_MATRIX_MCFG5 (AT91_MATRIX + 0x14) /* Master Configuration Register 5 */ | ||
26 | #define AT91_MATRIX_MCFG6 (AT91_MATRIX + 0x18) /* Master Configuration Register 6 */ | ||
27 | #define AT91_MATRIX_MCFG7 (AT91_MATRIX + 0x1C) /* Master Configuration Register 7 */ | ||
28 | #define AT91_MATRIX_MCFG8 (AT91_MATRIX + 0x20) /* Master Configuration Register 8 */ | ||
29 | #define AT91_MATRIX_MCFG9 (AT91_MATRIX + 0x24) /* Master Configuration Register 9 */ | ||
30 | #define AT91_MATRIX_MCFG10 (AT91_MATRIX + 0x28) /* Master Configuration Register 10 */ | ||
31 | #define AT91_MATRIX_MCFG11 (AT91_MATRIX + 0x2C) /* Master Configuration Register 11 */ | ||
32 | #define AT91_MATRIX_ULBT (7 << 0) /* Undefined Length Burst Type */ | ||
33 | #define AT91_MATRIX_ULBT_INFINITE (0 << 0) | ||
34 | #define AT91_MATRIX_ULBT_SINGLE (1 << 0) | ||
35 | #define AT91_MATRIX_ULBT_FOUR (2 << 0) | ||
36 | #define AT91_MATRIX_ULBT_EIGHT (3 << 0) | ||
37 | #define AT91_MATRIX_ULBT_SIXTEEN (4 << 0) | ||
38 | |||
39 | #define AT91_MATRIX_SCFG0 (AT91_MATRIX + 0x40) /* Slave Configuration Register 0 */ | ||
40 | #define AT91_MATRIX_SCFG1 (AT91_MATRIX + 0x44) /* Slave Configuration Register 1 */ | ||
41 | #define AT91_MATRIX_SCFG2 (AT91_MATRIX + 0x48) /* Slave Configuration Register 2 */ | ||
42 | #define AT91_MATRIX_SCFG3 (AT91_MATRIX + 0x4C) /* Slave Configuration Register 3 */ | ||
43 | #define AT91_MATRIX_SCFG4 (AT91_MATRIX + 0x50) /* Slave Configuration Register 4 */ | ||
44 | #define AT91_MATRIX_SCFG5 (AT91_MATRIX + 0x54) /* Slave Configuration Register 5 */ | ||
45 | #define AT91_MATRIX_SCFG6 (AT91_MATRIX + 0x58) /* Slave Configuration Register 6 */ | ||
46 | #define AT91_MATRIX_SCFG7 (AT91_MATRIX + 0x5C) /* Slave Configuration Register 7 */ | ||
47 | #define AT91_MATRIX_SCFG8 (AT91_MATRIX + 0x60) /* Slave Configuration Register 8 */ | ||
48 | #define AT91_MATRIX_SCFG9 (AT91_MATRIX + 0x64) /* Slave Configuration Register 9 */ | ||
49 | #define AT91_MATRIX_SLOT_CYCLE (0xff << 0) /* Maximum Number of Allowed Cycles for a Burst */ | ||
50 | #define AT91_MATRIX_DEFMSTR_TYPE (3 << 16) /* Default Master Type */ | ||
51 | #define AT91_MATRIX_DEFMSTR_TYPE_NONE (0 << 16) | ||
52 | #define AT91_MATRIX_DEFMSTR_TYPE_LAST (1 << 16) | ||
53 | #define AT91_MATRIX_DEFMSTR_TYPE_FIXED (2 << 16) | ||
54 | #define AT91_MATRIX_FIXED_DEFMSTR (0xf << 18) /* Fixed Index of Default Master */ | ||
55 | #define AT91_MATRIX_ARBT (3 << 24) /* Arbitration Type */ | ||
56 | #define AT91_MATRIX_ARBT_ROUND_ROBIN (0 << 24) | ||
57 | #define AT91_MATRIX_ARBT_FIXED_PRIORITY (1 << 24) | ||
58 | |||
59 | #define AT91_MATRIX_PRAS0 (AT91_MATRIX + 0x80) /* Priority Register A for Slave 0 */ | ||
60 | #define AT91_MATRIX_PRBS0 (AT91_MATRIX + 0x84) /* Priority Register B for Slave 0 */ | ||
61 | #define AT91_MATRIX_PRAS1 (AT91_MATRIX + 0x88) /* Priority Register A for Slave 1 */ | ||
62 | #define AT91_MATRIX_PRBS1 (AT91_MATRIX + 0x8C) /* Priority Register B for Slave 1 */ | ||
63 | #define AT91_MATRIX_PRAS2 (AT91_MATRIX + 0x90) /* Priority Register A for Slave 2 */ | ||
64 | #define AT91_MATRIX_PRBS2 (AT91_MATRIX + 0x94) /* Priority Register B for Slave 2 */ | ||
65 | #define AT91_MATRIX_PRAS3 (AT91_MATRIX + 0x98) /* Priority Register A for Slave 3 */ | ||
66 | #define AT91_MATRIX_PRBS3 (AT91_MATRIX + 0x9C) /* Priority Register B for Slave 3 */ | ||
67 | #define AT91_MATRIX_PRAS4 (AT91_MATRIX + 0xA0) /* Priority Register A for Slave 4 */ | ||
68 | #define AT91_MATRIX_PRBS4 (AT91_MATRIX + 0xA4) /* Priority Register B for Slave 4 */ | ||
69 | #define AT91_MATRIX_PRAS5 (AT91_MATRIX + 0xA8) /* Priority Register A for Slave 5 */ | ||
70 | #define AT91_MATRIX_PRBS5 (AT91_MATRIX + 0xAC) /* Priority Register B for Slave 5 */ | ||
71 | #define AT91_MATRIX_PRAS6 (AT91_MATRIX + 0xB0) /* Priority Register A for Slave 6 */ | ||
72 | #define AT91_MATRIX_PRBS6 (AT91_MATRIX + 0xB4) /* Priority Register B for Slave 6 */ | ||
73 | #define AT91_MATRIX_PRAS7 (AT91_MATRIX + 0xB8) /* Priority Register A for Slave 7 */ | ||
74 | #define AT91_MATRIX_PRBS7 (AT91_MATRIX + 0xBC) /* Priority Register B for Slave 7 */ | ||
75 | #define AT91_MATRIX_PRAS8 (AT91_MATRIX + 0xC0) /* Priority Register A for Slave 8 */ | ||
76 | #define AT91_MATRIX_PRBS8 (AT91_MATRIX + 0xC4) /* Priority Register B for Slave 8 */ | ||
77 | #define AT91_MATRIX_PRAS9 (AT91_MATRIX + 0xC8) /* Priority Register A for Slave 9 */ | ||
78 | #define AT91_MATRIX_PRBS9 (AT91_MATRIX + 0xCC) /* Priority Register B for Slave 9 */ | ||
79 | #define AT91_MATRIX_M0PR (3 << 0) /* Master 0 Priority */ | ||
80 | #define AT91_MATRIX_M1PR (3 << 4) /* Master 1 Priority */ | ||
81 | #define AT91_MATRIX_M2PR (3 << 8) /* Master 2 Priority */ | ||
82 | #define AT91_MATRIX_M3PR (3 << 12) /* Master 3 Priority */ | ||
83 | #define AT91_MATRIX_M4PR (3 << 16) /* Master 4 Priority */ | ||
84 | #define AT91_MATRIX_M5PR (3 << 20) /* Master 5 Priority */ | ||
85 | #define AT91_MATRIX_M6PR (3 << 24) /* Master 6 Priority */ | ||
86 | #define AT91_MATRIX_M7PR (3 << 28) /* Master 7 Priority */ | ||
87 | #define AT91_MATRIX_M8PR (3 << 0) /* Master 8 Priority (in Register B) */ | ||
88 | #define AT91_MATRIX_M9PR (3 << 4) /* Master 9 Priority (in Register B) */ | ||
89 | #define AT91_MATRIX_M10PR (3 << 8) /* Master 10 Priority (in Register B) */ | ||
90 | #define AT91_MATRIX_M11PR (3 << 12) /* Master 11 Priority (in Register B) */ | ||
91 | |||
92 | #define AT91_MATRIX_MRCR (AT91_MATRIX + 0x100) /* Master Remap Control Register */ | ||
93 | #define AT91_MATRIX_RCB0 (1 << 0) /* Remap Command for AHB Master 0 (ARM926EJ-S Instruction Master) */ | ||
94 | #define AT91_MATRIX_RCB1 (1 << 1) /* Remap Command for AHB Master 1 (ARM926EJ-S Data Master) */ | ||
95 | #define AT91_MATRIX_RCB2 (1 << 2) | ||
96 | #define AT91_MATRIX_RCB3 (1 << 3) | ||
97 | #define AT91_MATRIX_RCB4 (1 << 4) | ||
98 | #define AT91_MATRIX_RCB5 (1 << 5) | ||
99 | #define AT91_MATRIX_RCB6 (1 << 6) | ||
100 | #define AT91_MATRIX_RCB7 (1 << 7) | ||
101 | #define AT91_MATRIX_RCB8 (1 << 8) | ||
102 | #define AT91_MATRIX_RCB9 (1 << 9) | ||
103 | #define AT91_MATRIX_RCB10 (1 << 10) | ||
104 | #define AT91_MATRIX_RCB11 (1 << 11) | ||
105 | |||
106 | #define AT91_MPBS0_SFR (AT91_MATRIX + 0x114) /* MPBlock Slave 0 Special Function Register */ | ||
107 | #define AT91_MPBS1_SFR (AT91_MATRIX + 0x11C) /* MPBlock Slave 1 Special Function Register */ | ||
108 | |||
109 | #define AT91_MATRIX_UDPHS (AT91_MATRIX + 0x118) /* USBHS Special Function Register [AT91CAP9 only] */ | ||
110 | #define AT91_MATRIX_SELECT_UDPHS (0 << 31) /* select High Speed UDP */ | ||
111 | #define AT91_MATRIX_SELECT_UDP (1 << 31) /* select standard UDP */ | ||
112 | #define AT91_MATRIX_UDPHS_BYPASS_LOCK (1 << 30) /* bypass lock bit */ | ||
113 | |||
114 | #define AT91_MATRIX_EBICSA (AT91_MATRIX + 0x120) /* EBI Chip Select Assignment Register */ | ||
115 | #define AT91_MATRIX_EBI_CS1A (1 << 1) /* Chip Select 1 Assignment */ | ||
116 | #define AT91_MATRIX_EBI_CS1A_SMC (0 << 1) | ||
117 | #define AT91_MATRIX_EBI_CS1A_BCRAMC (1 << 1) | ||
118 | #define AT91_MATRIX_EBI_CS3A (1 << 3) /* Chip Select 3 Assignment */ | ||
119 | #define AT91_MATRIX_EBI_CS3A_SMC (0 << 3) | ||
120 | #define AT91_MATRIX_EBI_CS3A_SMC_SMARTMEDIA (1 << 3) | ||
121 | #define AT91_MATRIX_EBI_CS4A (1 << 4) /* Chip Select 4 Assignment */ | ||
122 | #define AT91_MATRIX_EBI_CS4A_SMC (0 << 4) | ||
123 | #define AT91_MATRIX_EBI_CS4A_SMC_CF1 (1 << 4) | ||
124 | #define AT91_MATRIX_EBI_CS5A (1 << 5) /* Chip Select 5 Assignment */ | ||
125 | #define AT91_MATRIX_EBI_CS5A_SMC (0 << 5) | ||
126 | #define AT91_MATRIX_EBI_CS5A_SMC_CF2 (1 << 5) | ||
127 | #define AT91_MATRIX_EBI_DBPUC (1 << 8) /* Data Bus Pull-up Configuration */ | ||
128 | #define AT91_MATRIX_EBI_DQSPDC (1 << 9) /* Data Qualifier Strobe Pull-Down Configuration */ | ||
129 | #define AT91_MATRIX_EBI_VDDIOMSEL (1 << 16) /* Memory voltage selection */ | ||
130 | #define AT91_MATRIX_EBI_VDDIOMSEL_1_8V (0 << 16) | ||
131 | #define AT91_MATRIX_EBI_VDDIOMSEL_3_3V (1 << 16) | ||
132 | |||
133 | #define AT91_MPBS2_SFR (AT91_MATRIX + 0x12C) /* MPBlock Slave 2 Special Function Register */ | ||
134 | #define AT91_MPBS3_SFR (AT91_MATRIX + 0x130) /* MPBlock Slave 3 Special Function Register */ | ||
135 | #define AT91_APB_SFR (AT91_MATRIX + 0x134) /* APB Bridge Special Function Register */ | ||
136 | |||
137 | #endif | ||
diff --git a/arch/arm/mach-at91/include/mach/at91rm9200.h b/arch/arm/mach-at91/include/mach/at91rm9200.h index bacb51141819..603e6aac2a4f 100644 --- a/arch/arm/mach-at91/include/mach/at91rm9200.h +++ b/arch/arm/mach-at91/include/mach/at91rm9200.h | |||
@@ -77,26 +77,22 @@ | |||
77 | 77 | ||
78 | 78 | ||
79 | /* | 79 | /* |
80 | * System Peripherals (offset from AT91_BASE_SYS) | 80 | * System Peripherals |
81 | */ | 81 | */ |
82 | #define AT91_PMC (0xfffffc00 - AT91_BASE_SYS) /* Power Management Controller */ | ||
83 | #define AT91_ST (0xfffffd00 - AT91_BASE_SYS) /* System Timer */ | ||
84 | #define AT91_MC (0xffffff00 - AT91_BASE_SYS) /* Memory Controllers */ | ||
85 | |||
86 | #define AT91RM9200_BASE_DBGU AT91_BASE_DBGU0 /* Debug Unit */ | 82 | #define AT91RM9200_BASE_DBGU AT91_BASE_DBGU0 /* Debug Unit */ |
87 | #define AT91RM9200_BASE_PIOA 0xfffff400 /* PIO Controller A */ | 83 | #define AT91RM9200_BASE_PIOA 0xfffff400 /* PIO Controller A */ |
88 | #define AT91RM9200_BASE_PIOB 0xfffff600 /* PIO Controller B */ | 84 | #define AT91RM9200_BASE_PIOB 0xfffff600 /* PIO Controller B */ |
89 | #define AT91RM9200_BASE_PIOC 0xfffff800 /* PIO Controller C */ | 85 | #define AT91RM9200_BASE_PIOC 0xfffff800 /* PIO Controller C */ |
90 | #define AT91RM9200_BASE_PIOD 0xfffffa00 /* PIO Controller D */ | 86 | #define AT91RM9200_BASE_PIOD 0xfffffa00 /* PIO Controller D */ |
87 | #define AT91RM9200_BASE_ST 0xfffffd00 /* System Timer */ | ||
91 | #define AT91RM9200_BASE_RTC 0xfffffe00 /* Real-Time Clock */ | 88 | #define AT91RM9200_BASE_RTC 0xfffffe00 /* Real-Time Clock */ |
89 | #define AT91RM9200_BASE_MC 0xffffff00 /* Memory Controllers */ | ||
92 | 90 | ||
93 | #define AT91_USART0 AT91RM9200_BASE_US0 | 91 | #define AT91_USART0 AT91RM9200_BASE_US0 |
94 | #define AT91_USART1 AT91RM9200_BASE_US1 | 92 | #define AT91_USART1 AT91RM9200_BASE_US1 |
95 | #define AT91_USART2 AT91RM9200_BASE_US2 | 93 | #define AT91_USART2 AT91RM9200_BASE_US2 |
96 | #define AT91_USART3 AT91RM9200_BASE_US3 | 94 | #define AT91_USART3 AT91RM9200_BASE_US3 |
97 | 95 | ||
98 | #define AT91_MATRIX 0 /* not supported */ | ||
99 | |||
100 | /* | 96 | /* |
101 | * Internal Memory. | 97 | * Internal Memory. |
102 | */ | 98 | */ |
diff --git a/arch/arm/mach-at91/include/mach/at91rm9200_mc.h b/arch/arm/mach-at91/include/mach/at91rm9200_mc.h index d34e4ed89349..aeaadfb452af 100644 --- a/arch/arm/mach-at91/include/mach/at91rm9200_mc.h +++ b/arch/arm/mach-at91/include/mach/at91rm9200_mc.h | |||
@@ -17,10 +17,10 @@ | |||
17 | #define AT91RM9200_MC_H | 17 | #define AT91RM9200_MC_H |
18 | 18 | ||
19 | /* Memory Controller */ | 19 | /* Memory Controller */ |
20 | #define AT91_MC_RCR (AT91_MC + 0x00) /* MC Remap Control Register */ | 20 | #define AT91_MC_RCR 0x00 /* MC Remap Control Register */ |
21 | #define AT91_MC_RCB (1 << 0) /* Remap Command Bit */ | 21 | #define AT91_MC_RCB (1 << 0) /* Remap Command Bit */ |
22 | 22 | ||
23 | #define AT91_MC_ASR (AT91_MC + 0x04) /* MC Abort Status Register */ | 23 | #define AT91_MC_ASR 0x04 /* MC Abort Status Register */ |
24 | #define AT91_MC_UNADD (1 << 0) /* Undefined Address Abort Status */ | 24 | #define AT91_MC_UNADD (1 << 0) /* Undefined Address Abort Status */ |
25 | #define AT91_MC_MISADD (1 << 1) /* Misaligned Address Abort Status */ | 25 | #define AT91_MC_MISADD (1 << 1) /* Misaligned Address Abort Status */ |
26 | #define AT91_MC_ABTSZ (3 << 8) /* Abort Size Status */ | 26 | #define AT91_MC_ABTSZ (3 << 8) /* Abort Size Status */ |
@@ -40,16 +40,16 @@ | |||
40 | #define AT91_MC_SVMST2 (1 << 26) /* Saved UHP Abort Source */ | 40 | #define AT91_MC_SVMST2 (1 << 26) /* Saved UHP Abort Source */ |
41 | #define AT91_MC_SVMST3 (1 << 27) /* Saved EMAC Abort Source */ | 41 | #define AT91_MC_SVMST3 (1 << 27) /* Saved EMAC Abort Source */ |
42 | 42 | ||
43 | #define AT91_MC_AASR (AT91_MC + 0x08) /* MC Abort Address Status Register */ | 43 | #define AT91_MC_AASR 0x08 /* MC Abort Address Status Register */ |
44 | 44 | ||
45 | #define AT91_MC_MPR (AT91_MC + 0x0c) /* MC Master Priority Register */ | 45 | #define AT91_MC_MPR 0x0c /* MC Master Priority Register */ |
46 | #define AT91_MPR_MSTP0 (7 << 0) /* ARM920T Priority */ | 46 | #define AT91_MPR_MSTP0 (7 << 0) /* ARM920T Priority */ |
47 | #define AT91_MPR_MSTP1 (7 << 4) /* PDC Priority */ | 47 | #define AT91_MPR_MSTP1 (7 << 4) /* PDC Priority */ |
48 | #define AT91_MPR_MSTP2 (7 << 8) /* UHP Priority */ | 48 | #define AT91_MPR_MSTP2 (7 << 8) /* UHP Priority */ |
49 | #define AT91_MPR_MSTP3 (7 << 12) /* EMAC Priority */ | 49 | #define AT91_MPR_MSTP3 (7 << 12) /* EMAC Priority */ |
50 | 50 | ||
51 | /* External Bus Interface (EBI) registers */ | 51 | /* External Bus Interface (EBI) registers */ |
52 | #define AT91_EBI_CSA (AT91_MC + 0x60) /* Chip Select Assignment Register */ | 52 | #define AT91_EBI_CSA 0x60 /* Chip Select Assignment Register */ |
53 | #define AT91_EBI_CS0A (1 << 0) /* Chip Select 0 Assignment */ | 53 | #define AT91_EBI_CS0A (1 << 0) /* Chip Select 0 Assignment */ |
54 | #define AT91_EBI_CS0A_SMC (0 << 0) | 54 | #define AT91_EBI_CS0A_SMC (0 << 0) |
55 | #define AT91_EBI_CS0A_BFC (1 << 0) | 55 | #define AT91_EBI_CS0A_BFC (1 << 0) |
@@ -66,7 +66,7 @@ | |||
66 | #define AT91_EBI_DBPUC (1 << 0) /* Data Bus Pull-Up Configuration */ | 66 | #define AT91_EBI_DBPUC (1 << 0) /* Data Bus Pull-Up Configuration */ |
67 | 67 | ||
68 | /* Static Memory Controller (SMC) registers */ | 68 | /* Static Memory Controller (SMC) registers */ |
69 | #define AT91_SMC_CSR(n) (AT91_MC + 0x70 + ((n) * 4))/* SMC Chip Select Register */ | 69 | #define AT91_SMC_CSR(n) (0x70 + ((n) * 4)) /* SMC Chip Select Register */ |
70 | #define AT91_SMC_NWS (0x7f << 0) /* Number of Wait States */ | 70 | #define AT91_SMC_NWS (0x7f << 0) /* Number of Wait States */ |
71 | #define AT91_SMC_NWS_(x) ((x) << 0) | 71 | #define AT91_SMC_NWS_(x) ((x) << 0) |
72 | #define AT91_SMC_WSEN (1 << 7) /* Wait State Enable */ | 72 | #define AT91_SMC_WSEN (1 << 7) /* Wait State Enable */ |
@@ -87,52 +87,8 @@ | |||
87 | #define AT91_SMC_RWHOLD (7 << 28) /* Read & Write Signal Hold Time */ | 87 | #define AT91_SMC_RWHOLD (7 << 28) /* Read & Write Signal Hold Time */ |
88 | #define AT91_SMC_RWHOLD_(x) ((x) << 28) | 88 | #define AT91_SMC_RWHOLD_(x) ((x) << 28) |
89 | 89 | ||
90 | /* SDRAM Controller registers */ | ||
91 | #define AT91_SDRAMC_MR (AT91_MC + 0x90) /* Mode Register */ | ||
92 | #define AT91_SDRAMC_MODE (0xf << 0) /* Command Mode */ | ||
93 | #define AT91_SDRAMC_MODE_NORMAL (0 << 0) | ||
94 | #define AT91_SDRAMC_MODE_NOP (1 << 0) | ||
95 | #define AT91_SDRAMC_MODE_PRECHARGE (2 << 0) | ||
96 | #define AT91_SDRAMC_MODE_LMR (3 << 0) | ||
97 | #define AT91_SDRAMC_MODE_REFRESH (4 << 0) | ||
98 | #define AT91_SDRAMC_DBW (1 << 4) /* Data Bus Width */ | ||
99 | #define AT91_SDRAMC_DBW_32 (0 << 4) | ||
100 | #define AT91_SDRAMC_DBW_16 (1 << 4) | ||
101 | |||
102 | #define AT91_SDRAMC_TR (AT91_MC + 0x94) /* Refresh Timer Register */ | ||
103 | #define AT91_SDRAMC_COUNT (0xfff << 0) /* Refresh Timer Count */ | ||
104 | |||
105 | #define AT91_SDRAMC_CR (AT91_MC + 0x98) /* Configuration Register */ | ||
106 | #define AT91_SDRAMC_NC (3 << 0) /* Number of Column Bits */ | ||
107 | #define AT91_SDRAMC_NC_8 (0 << 0) | ||
108 | #define AT91_SDRAMC_NC_9 (1 << 0) | ||
109 | #define AT91_SDRAMC_NC_10 (2 << 0) | ||
110 | #define AT91_SDRAMC_NC_11 (3 << 0) | ||
111 | #define AT91_SDRAMC_NR (3 << 2) /* Number of Row Bits */ | ||
112 | #define AT91_SDRAMC_NR_11 (0 << 2) | ||
113 | #define AT91_SDRAMC_NR_12 (1 << 2) | ||
114 | #define AT91_SDRAMC_NR_13 (2 << 2) | ||
115 | #define AT91_SDRAMC_NB (1 << 4) /* Number of Banks */ | ||
116 | #define AT91_SDRAMC_NB_2 (0 << 4) | ||
117 | #define AT91_SDRAMC_NB_4 (1 << 4) | ||
118 | #define AT91_SDRAMC_CAS (3 << 5) /* CAS Latency */ | ||
119 | #define AT91_SDRAMC_CAS_2 (2 << 5) | ||
120 | #define AT91_SDRAMC_TWR (0xf << 7) /* Write Recovery Delay */ | ||
121 | #define AT91_SDRAMC_TRC (0xf << 11) /* Row Cycle Delay */ | ||
122 | #define AT91_SDRAMC_TRP (0xf << 15) /* Row Precharge Delay */ | ||
123 | #define AT91_SDRAMC_TRCD (0xf << 19) /* Row to Column Delay */ | ||
124 | #define AT91_SDRAMC_TRAS (0xf << 23) /* Active to Precharge Delay */ | ||
125 | #define AT91_SDRAMC_TXSR (0xf << 27) /* Exit Self Refresh to Active Delay */ | ||
126 | |||
127 | #define AT91_SDRAMC_SRR (AT91_MC + 0x9c) /* Self Refresh Register */ | ||
128 | #define AT91_SDRAMC_LPR (AT91_MC + 0xa0) /* Low Power Register */ | ||
129 | #define AT91_SDRAMC_IER (AT91_MC + 0xa4) /* Interrupt Enable Register */ | ||
130 | #define AT91_SDRAMC_IDR (AT91_MC + 0xa8) /* Interrupt Disable Register */ | ||
131 | #define AT91_SDRAMC_IMR (AT91_MC + 0xac) /* Interrupt Mask Register */ | ||
132 | #define AT91_SDRAMC_ISR (AT91_MC + 0xb0) /* Interrupt Status Register */ | ||
133 | |||
134 | /* Burst Flash Controller register */ | 90 | /* Burst Flash Controller register */ |
135 | #define AT91_BFC_MR (AT91_MC + 0xc0) /* Mode Register */ | 91 | #define AT91_BFC_MR 0xc0 /* Mode Register */ |
136 | #define AT91_BFC_BFCOM (3 << 0) /* Burst Flash Controller Operating Mode */ | 92 | #define AT91_BFC_BFCOM (3 << 0) /* Burst Flash Controller Operating Mode */ |
137 | #define AT91_BFC_BFCOM_DISABLED (0 << 0) | 93 | #define AT91_BFC_BFCOM_DISABLED (0 << 0) |
138 | #define AT91_BFC_BFCOM_ASYNC (1 << 0) | 94 | #define AT91_BFC_BFCOM_ASYNC (1 << 0) |
diff --git a/arch/arm/mach-at91/include/mach/at91rm9200_sdramc.h b/arch/arm/mach-at91/include/mach/at91rm9200_sdramc.h new file mode 100644 index 000000000000..aa047f458f1b --- /dev/null +++ b/arch/arm/mach-at91/include/mach/at91rm9200_sdramc.h | |||
@@ -0,0 +1,63 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-at91/include/mach/at91rm9200_sdramc.h | ||
3 | * | ||
4 | * Copyright (C) 2005 Ivan Kokshaysky | ||
5 | * Copyright (C) SAN People | ||
6 | * | ||
7 | * Memory Controllers (SDRAMC only) - System peripherals registers. | ||
8 | * Based on AT91RM9200 datasheet revision E. | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify | ||
11 | * it under the terms of the GNU General Public License as published by | ||
12 | * the Free Software Foundation; either version 2 of the License, or | ||
13 | * (at your option) any later version. | ||
14 | */ | ||
15 | |||
16 | #ifndef AT91RM9200_SDRAMC_H | ||
17 | #define AT91RM9200_SDRAMC_H | ||
18 | |||
19 | /* SDRAM Controller registers */ | ||
20 | #define AT91RM9200_SDRAMC_MR 0x90 /* Mode Register */ | ||
21 | #define AT91RM9200_SDRAMC_MODE (0xf << 0) /* Command Mode */ | ||
22 | #define AT91RM9200_SDRAMC_MODE_NORMAL (0 << 0) | ||
23 | #define AT91RM9200_SDRAMC_MODE_NOP (1 << 0) | ||
24 | #define AT91RM9200_SDRAMC_MODE_PRECHARGE (2 << 0) | ||
25 | #define AT91RM9200_SDRAMC_MODE_LMR (3 << 0) | ||
26 | #define AT91RM9200_SDRAMC_MODE_REFRESH (4 << 0) | ||
27 | #define AT91RM9200_SDRAMC_DBW (1 << 4) /* Data Bus Width */ | ||
28 | #define AT91RM9200_SDRAMC_DBW_32 (0 << 4) | ||
29 | #define AT91RM9200_SDRAMC_DBW_16 (1 << 4) | ||
30 | |||
31 | #define AT91RM9200_SDRAMC_TR 0x94 /* Refresh Timer Register */ | ||
32 | #define AT91RM9200_SDRAMC_COUNT (0xfff << 0) /* Refresh Timer Count */ | ||
33 | |||
34 | #define AT91RM9200_SDRAMC_CR 0x98 /* Configuration Register */ | ||
35 | #define AT91RM9200_SDRAMC_NC (3 << 0) /* Number of Column Bits */ | ||
36 | #define AT91RM9200_SDRAMC_NC_8 (0 << 0) | ||
37 | #define AT91RM9200_SDRAMC_NC_9 (1 << 0) | ||
38 | #define AT91RM9200_SDRAMC_NC_10 (2 << 0) | ||
39 | #define AT91RM9200_SDRAMC_NC_11 (3 << 0) | ||
40 | #define AT91RM9200_SDRAMC_NR (3 << 2) /* Number of Row Bits */ | ||
41 | #define AT91RM9200_SDRAMC_NR_11 (0 << 2) | ||
42 | #define AT91RM9200_SDRAMC_NR_12 (1 << 2) | ||
43 | #define AT91RM9200_SDRAMC_NR_13 (2 << 2) | ||
44 | #define AT91RM9200_SDRAMC_NB (1 << 4) /* Number of Banks */ | ||
45 | #define AT91RM9200_SDRAMC_NB_2 (0 << 4) | ||
46 | #define AT91RM9200_SDRAMC_NB_4 (1 << 4) | ||
47 | #define AT91RM9200_SDRAMC_CAS (3 << 5) /* CAS Latency */ | ||
48 | #define AT91RM9200_SDRAMC_CAS_2 (2 << 5) | ||
49 | #define AT91RM9200_SDRAMC_TWR (0xf << 7) /* Write Recovery Delay */ | ||
50 | #define AT91RM9200_SDRAMC_TRC (0xf << 11) /* Row Cycle Delay */ | ||
51 | #define AT91RM9200_SDRAMC_TRP (0xf << 15) /* Row Precharge Delay */ | ||
52 | #define AT91RM9200_SDRAMC_TRCD (0xf << 19) /* Row to Column Delay */ | ||
53 | #define AT91RM9200_SDRAMC_TRAS (0xf << 23) /* Active to Precharge Delay */ | ||
54 | #define AT91RM9200_SDRAMC_TXSR (0xf << 27) /* Exit Self Refresh to Active Delay */ | ||
55 | |||
56 | #define AT91RM9200_SDRAMC_SRR 0x9c /* Self Refresh Register */ | ||
57 | #define AT91RM9200_SDRAMC_LPR 0xa0 /* Low Power Register */ | ||
58 | #define AT91RM9200_SDRAMC_IER 0xa4 /* Interrupt Enable Register */ | ||
59 | #define AT91RM9200_SDRAMC_IDR 0xa8 /* Interrupt Disable Register */ | ||
60 | #define AT91RM9200_SDRAMC_IMR 0xac /* Interrupt Mask Register */ | ||
61 | #define AT91RM9200_SDRAMC_ISR 0xb0 /* Interrupt Status Register */ | ||
62 | |||
63 | #endif | ||
diff --git a/arch/arm/mach-at91/include/mach/at91sam9260.h b/arch/arm/mach-at91/include/mach/at91sam9260.h index fa5ca278adeb..08ae9afd00fe 100644 --- a/arch/arm/mach-at91/include/mach/at91sam9260.h +++ b/arch/arm/mach-at91/include/mach/at91sam9260.h | |||
@@ -78,15 +78,12 @@ | |||
78 | #define AT91SAM9260_BASE_ADC 0xfffe0000 | 78 | #define AT91SAM9260_BASE_ADC 0xfffe0000 |
79 | 79 | ||
80 | /* | 80 | /* |
81 | * System Peripherals (offset from AT91_BASE_SYS) | 81 | * System Peripherals |
82 | */ | 82 | */ |
83 | #define AT91_SDRAMC0 (0xffffea00 - AT91_BASE_SYS) | ||
84 | #define AT91_MATRIX (0xffffee00 - AT91_BASE_SYS) | ||
85 | #define AT91_PMC (0xfffffc00 - AT91_BASE_SYS) | ||
86 | #define AT91_GPBR (0xfffffd50 - AT91_BASE_SYS) | ||
87 | |||
88 | #define AT91SAM9260_BASE_ECC 0xffffe800 | 83 | #define AT91SAM9260_BASE_ECC 0xffffe800 |
84 | #define AT91SAM9260_BASE_SDRAMC 0xffffea00 | ||
89 | #define AT91SAM9260_BASE_SMC 0xffffec00 | 85 | #define AT91SAM9260_BASE_SMC 0xffffec00 |
86 | #define AT91SAM9260_BASE_MATRIX 0xffffee00 | ||
90 | #define AT91SAM9260_BASE_DBGU AT91_BASE_DBGU0 | 87 | #define AT91SAM9260_BASE_DBGU AT91_BASE_DBGU0 |
91 | #define AT91SAM9260_BASE_PIOA 0xfffff400 | 88 | #define AT91SAM9260_BASE_PIOA 0xfffff400 |
92 | #define AT91SAM9260_BASE_PIOB 0xfffff600 | 89 | #define AT91SAM9260_BASE_PIOB 0xfffff600 |
@@ -96,6 +93,7 @@ | |||
96 | #define AT91SAM9260_BASE_RTT 0xfffffd20 | 93 | #define AT91SAM9260_BASE_RTT 0xfffffd20 |
97 | #define AT91SAM9260_BASE_PIT 0xfffffd30 | 94 | #define AT91SAM9260_BASE_PIT 0xfffffd30 |
98 | #define AT91SAM9260_BASE_WDT 0xfffffd40 | 95 | #define AT91SAM9260_BASE_WDT 0xfffffd40 |
96 | #define AT91SAM9260_BASE_GPBR 0xfffffd50 | ||
99 | 97 | ||
100 | #define AT91_USART0 AT91SAM9260_BASE_US0 | 98 | #define AT91_USART0 AT91SAM9260_BASE_US0 |
101 | #define AT91_USART1 AT91SAM9260_BASE_US1 | 99 | #define AT91_USART1 AT91SAM9260_BASE_US1 |
@@ -115,6 +113,8 @@ | |||
115 | #define AT91SAM9260_SRAM0_SIZE SZ_4K /* Internal SRAM 0 size (4Kb) */ | 113 | #define AT91SAM9260_SRAM0_SIZE SZ_4K /* Internal SRAM 0 size (4Kb) */ |
116 | #define AT91SAM9260_SRAM1_BASE 0x00300000 /* Internal SRAM 1 base address */ | 114 | #define AT91SAM9260_SRAM1_BASE 0x00300000 /* Internal SRAM 1 base address */ |
117 | #define AT91SAM9260_SRAM1_SIZE SZ_4K /* Internal SRAM 1 size (4Kb) */ | 115 | #define AT91SAM9260_SRAM1_SIZE SZ_4K /* Internal SRAM 1 size (4Kb) */ |
116 | #define AT91SAM9260_SRAM_BASE 0x002FF000 /* Internal SRAM base address */ | ||
117 | #define AT91SAM9260_SRAM_SIZE SZ_8K /* Internal SRAM size (8Kb) */ | ||
118 | 118 | ||
119 | #define AT91SAM9260_UHP_BASE 0x00500000 /* USB Host controller */ | 119 | #define AT91SAM9260_UHP_BASE 0x00500000 /* USB Host controller */ |
120 | 120 | ||
@@ -128,6 +128,8 @@ | |||
128 | #define AT91SAM9G20_SRAM0_SIZE SZ_16K /* Internal SRAM 0 size (16Kb) */ | 128 | #define AT91SAM9G20_SRAM0_SIZE SZ_16K /* Internal SRAM 0 size (16Kb) */ |
129 | #define AT91SAM9G20_SRAM1_BASE 0x00300000 /* Internal SRAM 1 base address */ | 129 | #define AT91SAM9G20_SRAM1_BASE 0x00300000 /* Internal SRAM 1 base address */ |
130 | #define AT91SAM9G20_SRAM1_SIZE SZ_16K /* Internal SRAM 1 size (16Kb) */ | 130 | #define AT91SAM9G20_SRAM1_SIZE SZ_16K /* Internal SRAM 1 size (16Kb) */ |
131 | #define AT91SAM9G20_SRAM_BASE 0x002FC000 /* Internal SRAM base address */ | ||
132 | #define AT91SAM9G20_SRAM_SIZE SZ_32K /* Internal SRAM size (32Kb) */ | ||
131 | 133 | ||
132 | #define AT91SAM9G20_UHP_BASE 0x00500000 /* USB Host controller */ | 134 | #define AT91SAM9G20_UHP_BASE 0x00500000 /* USB Host controller */ |
133 | 135 | ||
diff --git a/arch/arm/mach-at91/include/mach/at91sam9260_matrix.h b/arch/arm/mach-at91/include/mach/at91sam9260_matrix.h index 020f02ed921a..f459df420629 100644 --- a/arch/arm/mach-at91/include/mach/at91sam9260_matrix.h +++ b/arch/arm/mach-at91/include/mach/at91sam9260_matrix.h | |||
@@ -15,12 +15,12 @@ | |||
15 | #ifndef AT91SAM9260_MATRIX_H | 15 | #ifndef AT91SAM9260_MATRIX_H |
16 | #define AT91SAM9260_MATRIX_H | 16 | #define AT91SAM9260_MATRIX_H |
17 | 17 | ||
18 | #define AT91_MATRIX_MCFG0 (AT91_MATRIX + 0x00) /* Master Configuration Register 0 */ | 18 | #define AT91_MATRIX_MCFG0 0x00 /* Master Configuration Register 0 */ |
19 | #define AT91_MATRIX_MCFG1 (AT91_MATRIX + 0x04) /* Master Configuration Register 1 */ | 19 | #define AT91_MATRIX_MCFG1 0x04 /* Master Configuration Register 1 */ |
20 | #define AT91_MATRIX_MCFG2 (AT91_MATRIX + 0x08) /* Master Configuration Register 2 */ | 20 | #define AT91_MATRIX_MCFG2 0x08 /* Master Configuration Register 2 */ |
21 | #define AT91_MATRIX_MCFG3 (AT91_MATRIX + 0x0C) /* Master Configuration Register 3 */ | 21 | #define AT91_MATRIX_MCFG3 0x0C /* Master Configuration Register 3 */ |
22 | #define AT91_MATRIX_MCFG4 (AT91_MATRIX + 0x10) /* Master Configuration Register 4 */ | 22 | #define AT91_MATRIX_MCFG4 0x10 /* Master Configuration Register 4 */ |
23 | #define AT91_MATRIX_MCFG5 (AT91_MATRIX + 0x14) /* Master Configuration Register 5 */ | 23 | #define AT91_MATRIX_MCFG5 0x14 /* Master Configuration Register 5 */ |
24 | #define AT91_MATRIX_ULBT (7 << 0) /* Undefined Length Burst Type */ | 24 | #define AT91_MATRIX_ULBT (7 << 0) /* Undefined Length Burst Type */ |
25 | #define AT91_MATRIX_ULBT_INFINITE (0 << 0) | 25 | #define AT91_MATRIX_ULBT_INFINITE (0 << 0) |
26 | #define AT91_MATRIX_ULBT_SINGLE (1 << 0) | 26 | #define AT91_MATRIX_ULBT_SINGLE (1 << 0) |
@@ -28,11 +28,11 @@ | |||
28 | #define AT91_MATRIX_ULBT_EIGHT (3 << 0) | 28 | #define AT91_MATRIX_ULBT_EIGHT (3 << 0) |
29 | #define AT91_MATRIX_ULBT_SIXTEEN (4 << 0) | 29 | #define AT91_MATRIX_ULBT_SIXTEEN (4 << 0) |
30 | 30 | ||
31 | #define AT91_MATRIX_SCFG0 (AT91_MATRIX + 0x40) /* Slave Configuration Register 0 */ | 31 | #define AT91_MATRIX_SCFG0 0x40 /* Slave Configuration Register 0 */ |
32 | #define AT91_MATRIX_SCFG1 (AT91_MATRIX + 0x44) /* Slave Configuration Register 1 */ | 32 | #define AT91_MATRIX_SCFG1 0x44 /* Slave Configuration Register 1 */ |
33 | #define AT91_MATRIX_SCFG2 (AT91_MATRIX + 0x48) /* Slave Configuration Register 2 */ | 33 | #define AT91_MATRIX_SCFG2 0x48 /* Slave Configuration Register 2 */ |
34 | #define AT91_MATRIX_SCFG3 (AT91_MATRIX + 0x4C) /* Slave Configuration Register 3 */ | 34 | #define AT91_MATRIX_SCFG3 0x4C /* Slave Configuration Register 3 */ |
35 | #define AT91_MATRIX_SCFG4 (AT91_MATRIX + 0x50) /* Slave Configuration Register 4 */ | 35 | #define AT91_MATRIX_SCFG4 0x50 /* Slave Configuration Register 4 */ |
36 | #define AT91_MATRIX_SLOT_CYCLE (0xff << 0) /* Maximum Number of Allowed Cycles for a Burst */ | 36 | #define AT91_MATRIX_SLOT_CYCLE (0xff << 0) /* Maximum Number of Allowed Cycles for a Burst */ |
37 | #define AT91_MATRIX_DEFMSTR_TYPE (3 << 16) /* Default Master Type */ | 37 | #define AT91_MATRIX_DEFMSTR_TYPE (3 << 16) /* Default Master Type */ |
38 | #define AT91_MATRIX_DEFMSTR_TYPE_NONE (0 << 16) | 38 | #define AT91_MATRIX_DEFMSTR_TYPE_NONE (0 << 16) |
@@ -43,11 +43,11 @@ | |||
43 | #define AT91_MATRIX_ARBT_ROUND_ROBIN (0 << 24) | 43 | #define AT91_MATRIX_ARBT_ROUND_ROBIN (0 << 24) |
44 | #define AT91_MATRIX_ARBT_FIXED_PRIORITY (1 << 24) | 44 | #define AT91_MATRIX_ARBT_FIXED_PRIORITY (1 << 24) |
45 | 45 | ||
46 | #define AT91_MATRIX_PRAS0 (AT91_MATRIX + 0x80) /* Priority Register A for Slave 0 */ | 46 | #define AT91_MATRIX_PRAS0 0x80 /* Priority Register A for Slave 0 */ |
47 | #define AT91_MATRIX_PRAS1 (AT91_MATRIX + 0x88) /* Priority Register A for Slave 1 */ | 47 | #define AT91_MATRIX_PRAS1 0x88 /* Priority Register A for Slave 1 */ |
48 | #define AT91_MATRIX_PRAS2 (AT91_MATRIX + 0x90) /* Priority Register A for Slave 2 */ | 48 | #define AT91_MATRIX_PRAS2 0x90 /* Priority Register A for Slave 2 */ |
49 | #define AT91_MATRIX_PRAS3 (AT91_MATRIX + 0x98) /* Priority Register A for Slave 3 */ | 49 | #define AT91_MATRIX_PRAS3 0x98 /* Priority Register A for Slave 3 */ |
50 | #define AT91_MATRIX_PRAS4 (AT91_MATRIX + 0xA0) /* Priority Register A for Slave 4 */ | 50 | #define AT91_MATRIX_PRAS4 0xA0 /* Priority Register A for Slave 4 */ |
51 | #define AT91_MATRIX_M0PR (3 << 0) /* Master 0 Priority */ | 51 | #define AT91_MATRIX_M0PR (3 << 0) /* Master 0 Priority */ |
52 | #define AT91_MATRIX_M1PR (3 << 4) /* Master 1 Priority */ | 52 | #define AT91_MATRIX_M1PR (3 << 4) /* Master 1 Priority */ |
53 | #define AT91_MATRIX_M2PR (3 << 8) /* Master 2 Priority */ | 53 | #define AT91_MATRIX_M2PR (3 << 8) /* Master 2 Priority */ |
@@ -55,11 +55,11 @@ | |||
55 | #define AT91_MATRIX_M4PR (3 << 16) /* Master 4 Priority */ | 55 | #define AT91_MATRIX_M4PR (3 << 16) /* Master 4 Priority */ |
56 | #define AT91_MATRIX_M5PR (3 << 20) /* Master 5 Priority */ | 56 | #define AT91_MATRIX_M5PR (3 << 20) /* Master 5 Priority */ |
57 | 57 | ||
58 | #define AT91_MATRIX_MRCR (AT91_MATRIX + 0x100) /* Master Remap Control Register */ | 58 | #define AT91_MATRIX_MRCR 0x100 /* Master Remap Control Register */ |
59 | #define AT91_MATRIX_RCB0 (1 << 0) /* Remap Command for AHB Master 0 (ARM926EJ-S Instruction Master) */ | 59 | #define AT91_MATRIX_RCB0 (1 << 0) /* Remap Command for AHB Master 0 (ARM926EJ-S Instruction Master) */ |
60 | #define AT91_MATRIX_RCB1 (1 << 1) /* Remap Command for AHB Master 1 (ARM926EJ-S Data Master) */ | 60 | #define AT91_MATRIX_RCB1 (1 << 1) /* Remap Command for AHB Master 1 (ARM926EJ-S Data Master) */ |
61 | 61 | ||
62 | #define AT91_MATRIX_EBICSA (AT91_MATRIX + 0x11C) /* EBI Chip Select Assignment Register */ | 62 | #define AT91_MATRIX_EBICSA 0x11C /* EBI Chip Select Assignment Register */ |
63 | #define AT91_MATRIX_CS1A (1 << 1) /* Chip Select 1 Assignment */ | 63 | #define AT91_MATRIX_CS1A (1 << 1) /* Chip Select 1 Assignment */ |
64 | #define AT91_MATRIX_CS1A_SMC (0 << 1) | 64 | #define AT91_MATRIX_CS1A_SMC (0 << 1) |
65 | #define AT91_MATRIX_CS1A_SDRAMC (1 << 1) | 65 | #define AT91_MATRIX_CS1A_SDRAMC (1 << 1) |
diff --git a/arch/arm/mach-at91/include/mach/at91sam9261.h b/arch/arm/mach-at91/include/mach/at91sam9261.h index 7cde2d36570e..44fbdc12ee62 100644 --- a/arch/arm/mach-at91/include/mach/at91sam9261.h +++ b/arch/arm/mach-at91/include/mach/at91sam9261.h | |||
@@ -63,14 +63,11 @@ | |||
63 | 63 | ||
64 | 64 | ||
65 | /* | 65 | /* |
66 | * System Peripherals (offset from AT91_BASE_SYS) | 66 | * System Peripherals |
67 | */ | 67 | */ |
68 | #define AT91_SDRAMC0 (0xffffea00 - AT91_BASE_SYS) | ||
69 | #define AT91_MATRIX (0xffffee00 - AT91_BASE_SYS) | ||
70 | #define AT91_PMC (0xfffffc00 - AT91_BASE_SYS) | ||
71 | #define AT91_GPBR (0xfffffd50 - AT91_BASE_SYS) | ||
72 | |||
73 | #define AT91SAM9261_BASE_SMC 0xffffec00 | 68 | #define AT91SAM9261_BASE_SMC 0xffffec00 |
69 | #define AT91SAM9261_BASE_MATRIX 0xffffee00 | ||
70 | #define AT91SAM9261_BASE_SDRAMC 0xffffea00 | ||
74 | #define AT91SAM9261_BASE_DBGU AT91_BASE_DBGU0 | 71 | #define AT91SAM9261_BASE_DBGU AT91_BASE_DBGU0 |
75 | #define AT91SAM9261_BASE_PIOA 0xfffff400 | 72 | #define AT91SAM9261_BASE_PIOA 0xfffff400 |
76 | #define AT91SAM9261_BASE_PIOB 0xfffff600 | 73 | #define AT91SAM9261_BASE_PIOB 0xfffff600 |
@@ -80,6 +77,7 @@ | |||
80 | #define AT91SAM9261_BASE_RTT 0xfffffd20 | 77 | #define AT91SAM9261_BASE_RTT 0xfffffd20 |
81 | #define AT91SAM9261_BASE_PIT 0xfffffd30 | 78 | #define AT91SAM9261_BASE_PIT 0xfffffd30 |
82 | #define AT91SAM9261_BASE_WDT 0xfffffd40 | 79 | #define AT91SAM9261_BASE_WDT 0xfffffd40 |
80 | #define AT91SAM9261_BASE_GPBR 0xfffffd50 | ||
83 | 81 | ||
84 | #define AT91_USART0 AT91SAM9261_BASE_US0 | 82 | #define AT91_USART0 AT91SAM9261_BASE_US0 |
85 | #define AT91_USART1 AT91SAM9261_BASE_US1 | 83 | #define AT91_USART1 AT91SAM9261_BASE_US1 |
diff --git a/arch/arm/mach-at91/include/mach/at91sam9261_matrix.h b/arch/arm/mach-at91/include/mach/at91sam9261_matrix.h index 69c6501915d9..a50cdf8b8ca4 100644 --- a/arch/arm/mach-at91/include/mach/at91sam9261_matrix.h +++ b/arch/arm/mach-at91/include/mach/at91sam9261_matrix.h | |||
@@ -15,15 +15,15 @@ | |||
15 | #ifndef AT91SAM9261_MATRIX_H | 15 | #ifndef AT91SAM9261_MATRIX_H |
16 | #define AT91SAM9261_MATRIX_H | 16 | #define AT91SAM9261_MATRIX_H |
17 | 17 | ||
18 | #define AT91_MATRIX_MCFG (AT91_MATRIX + 0x00) /* Master Configuration Register */ | 18 | #define AT91_MATRIX_MCFG 0x00 /* Master Configuration Register */ |
19 | #define AT91_MATRIX_RCB0 (1 << 0) /* Remap Command for AHB Master 0 (ARM926EJ-S Instruction Master) */ | 19 | #define AT91_MATRIX_RCB0 (1 << 0) /* Remap Command for AHB Master 0 (ARM926EJ-S Instruction Master) */ |
20 | #define AT91_MATRIX_RCB1 (1 << 1) /* Remap Command for AHB Master 1 (ARM926EJ-S Data Master) */ | 20 | #define AT91_MATRIX_RCB1 (1 << 1) /* Remap Command for AHB Master 1 (ARM926EJ-S Data Master) */ |
21 | 21 | ||
22 | #define AT91_MATRIX_SCFG0 (AT91_MATRIX + 0x04) /* Slave Configuration Register 0 */ | 22 | #define AT91_MATRIX_SCFG0 0x04 /* Slave Configuration Register 0 */ |
23 | #define AT91_MATRIX_SCFG1 (AT91_MATRIX + 0x08) /* Slave Configuration Register 1 */ | 23 | #define AT91_MATRIX_SCFG1 0x08 /* Slave Configuration Register 1 */ |
24 | #define AT91_MATRIX_SCFG2 (AT91_MATRIX + 0x0C) /* Slave Configuration Register 2 */ | 24 | #define AT91_MATRIX_SCFG2 0x0C /* Slave Configuration Register 2 */ |
25 | #define AT91_MATRIX_SCFG3 (AT91_MATRIX + 0x10) /* Slave Configuration Register 3 */ | 25 | #define AT91_MATRIX_SCFG3 0x10 /* Slave Configuration Register 3 */ |
26 | #define AT91_MATRIX_SCFG4 (AT91_MATRIX + 0x14) /* Slave Configuration Register 4 */ | 26 | #define AT91_MATRIX_SCFG4 0x14 /* Slave Configuration Register 4 */ |
27 | #define AT91_MATRIX_SLOT_CYCLE (0xff << 0) /* Maximum Number of Allowed Cycles for a Burst */ | 27 | #define AT91_MATRIX_SLOT_CYCLE (0xff << 0) /* Maximum Number of Allowed Cycles for a Burst */ |
28 | #define AT91_MATRIX_DEFMSTR_TYPE (3 << 16) /* Default Master Type */ | 28 | #define AT91_MATRIX_DEFMSTR_TYPE (3 << 16) /* Default Master Type */ |
29 | #define AT91_MATRIX_DEFMSTR_TYPE_NONE (0 << 16) | 29 | #define AT91_MATRIX_DEFMSTR_TYPE_NONE (0 << 16) |
@@ -31,7 +31,7 @@ | |||
31 | #define AT91_MATRIX_DEFMSTR_TYPE_FIXED (2 << 16) | 31 | #define AT91_MATRIX_DEFMSTR_TYPE_FIXED (2 << 16) |
32 | #define AT91_MATRIX_FIXED_DEFMSTR (7 << 18) /* Fixed Index of Default Master */ | 32 | #define AT91_MATRIX_FIXED_DEFMSTR (7 << 18) /* Fixed Index of Default Master */ |
33 | 33 | ||
34 | #define AT91_MATRIX_TCR (AT91_MATRIX + 0x24) /* TCM Configuration Register */ | 34 | #define AT91_MATRIX_TCR 0x24 /* TCM Configuration Register */ |
35 | #define AT91_MATRIX_ITCM_SIZE (0xf << 0) /* Size of ITCM enabled memory block */ | 35 | #define AT91_MATRIX_ITCM_SIZE (0xf << 0) /* Size of ITCM enabled memory block */ |
36 | #define AT91_MATRIX_ITCM_0 (0 << 0) | 36 | #define AT91_MATRIX_ITCM_0 (0 << 0) |
37 | #define AT91_MATRIX_ITCM_16 (5 << 0) | 37 | #define AT91_MATRIX_ITCM_16 (5 << 0) |
@@ -43,7 +43,7 @@ | |||
43 | #define AT91_MATRIX_DTCM_32 (6 << 4) | 43 | #define AT91_MATRIX_DTCM_32 (6 << 4) |
44 | #define AT91_MATRIX_DTCM_64 (7 << 4) | 44 | #define AT91_MATRIX_DTCM_64 (7 << 4) |
45 | 45 | ||
46 | #define AT91_MATRIX_EBICSA (AT91_MATRIX + 0x30) /* EBI Chip Select Assignment Register */ | 46 | #define AT91_MATRIX_EBICSA 0x30 /* EBI Chip Select Assignment Register */ |
47 | #define AT91_MATRIX_CS1A (1 << 1) /* Chip Select 1 Assignment */ | 47 | #define AT91_MATRIX_CS1A (1 << 1) /* Chip Select 1 Assignment */ |
48 | #define AT91_MATRIX_CS1A_SMC (0 << 1) | 48 | #define AT91_MATRIX_CS1A_SMC (0 << 1) |
49 | #define AT91_MATRIX_CS1A_SDRAMC (1 << 1) | 49 | #define AT91_MATRIX_CS1A_SDRAMC (1 << 1) |
@@ -58,7 +58,7 @@ | |||
58 | #define AT91_MATRIX_CS5A_SMC_CF2 (1 << 5) | 58 | #define AT91_MATRIX_CS5A_SMC_CF2 (1 << 5) |
59 | #define AT91_MATRIX_DBPUC (1 << 8) /* Data Bus Pull-up Configuration */ | 59 | #define AT91_MATRIX_DBPUC (1 << 8) /* Data Bus Pull-up Configuration */ |
60 | 60 | ||
61 | #define AT91_MATRIX_USBPUCR (AT91_MATRIX + 0x34) /* USB Pad Pull-Up Control Register */ | 61 | #define AT91_MATRIX_USBPUCR 0x34 /* USB Pad Pull-Up Control Register */ |
62 | #define AT91_MATRIX_USBPUCR_PUON (1 << 30) /* USB Device PAD Pull-up Enable */ | 62 | #define AT91_MATRIX_USBPUCR_PUON (1 << 30) /* USB Device PAD Pull-up Enable */ |
63 | 63 | ||
64 | #endif | 64 | #endif |
diff --git a/arch/arm/mach-at91/include/mach/at91sam9263.h b/arch/arm/mach-at91/include/mach/at91sam9263.h index 5949abda962b..d96cbb2e03c4 100644 --- a/arch/arm/mach-at91/include/mach/at91sam9263.h +++ b/arch/arm/mach-at91/include/mach/at91sam9263.h | |||
@@ -72,18 +72,15 @@ | |||
72 | #define AT91SAM9263_BASE_2DGE 0xfffc8000 | 72 | #define AT91SAM9263_BASE_2DGE 0xfffc8000 |
73 | 73 | ||
74 | /* | 74 | /* |
75 | * System Peripherals (offset from AT91_BASE_SYS) | 75 | * System Peripherals |
76 | */ | 76 | */ |
77 | #define AT91_SDRAMC0 (0xffffe200 - AT91_BASE_SYS) | ||
78 | #define AT91_SDRAMC1 (0xffffe800 - AT91_BASE_SYS) | ||
79 | #define AT91_MATRIX (0xffffec00 - AT91_BASE_SYS) | ||
80 | #define AT91_PMC (0xfffffc00 - AT91_BASE_SYS) | ||
81 | #define AT91_GPBR (0xfffffd60 - AT91_BASE_SYS) | ||
82 | |||
83 | #define AT91SAM9263_BASE_ECC0 0xffffe000 | 77 | #define AT91SAM9263_BASE_ECC0 0xffffe000 |
78 | #define AT91SAM9263_BASE_SDRAMC0 0xffffe200 | ||
84 | #define AT91SAM9263_BASE_SMC0 0xffffe400 | 79 | #define AT91SAM9263_BASE_SMC0 0xffffe400 |
85 | #define AT91SAM9263_BASE_ECC1 0xffffe600 | 80 | #define AT91SAM9263_BASE_ECC1 0xffffe600 |
81 | #define AT91SAM9263_BASE_SDRAMC1 0xffffe800 | ||
86 | #define AT91SAM9263_BASE_SMC1 0xffffea00 | 82 | #define AT91SAM9263_BASE_SMC1 0xffffea00 |
83 | #define AT91SAM9263_BASE_MATRIX 0xffffec00 | ||
87 | #define AT91SAM9263_BASE_DBGU AT91_BASE_DBGU1 | 84 | #define AT91SAM9263_BASE_DBGU AT91_BASE_DBGU1 |
88 | #define AT91SAM9263_BASE_PIOA 0xfffff200 | 85 | #define AT91SAM9263_BASE_PIOA 0xfffff200 |
89 | #define AT91SAM9263_BASE_PIOB 0xfffff400 | 86 | #define AT91SAM9263_BASE_PIOB 0xfffff400 |
@@ -96,6 +93,7 @@ | |||
96 | #define AT91SAM9263_BASE_PIT 0xfffffd30 | 93 | #define AT91SAM9263_BASE_PIT 0xfffffd30 |
97 | #define AT91SAM9263_BASE_WDT 0xfffffd40 | 94 | #define AT91SAM9263_BASE_WDT 0xfffffd40 |
98 | #define AT91SAM9263_BASE_RTT1 0xfffffd50 | 95 | #define AT91SAM9263_BASE_RTT1 0xfffffd50 |
96 | #define AT91SAM9263_BASE_GPBR 0xfffffd60 | ||
99 | 97 | ||
100 | #define AT91_USART0 AT91SAM9263_BASE_US0 | 98 | #define AT91_USART0 AT91SAM9263_BASE_US0 |
101 | #define AT91_USART1 AT91SAM9263_BASE_US1 | 99 | #define AT91_USART1 AT91SAM9263_BASE_US1 |
diff --git a/arch/arm/mach-at91/include/mach/at91sam9263_matrix.h b/arch/arm/mach-at91/include/mach/at91sam9263_matrix.h index 9b3efd3eb2f3..ebb5fdb565e0 100644 --- a/arch/arm/mach-at91/include/mach/at91sam9263_matrix.h +++ b/arch/arm/mach-at91/include/mach/at91sam9263_matrix.h | |||
@@ -15,15 +15,15 @@ | |||
15 | #ifndef AT91SAM9263_MATRIX_H | 15 | #ifndef AT91SAM9263_MATRIX_H |
16 | #define AT91SAM9263_MATRIX_H | 16 | #define AT91SAM9263_MATRIX_H |
17 | 17 | ||
18 | #define AT91_MATRIX_MCFG0 (AT91_MATRIX + 0x00) /* Master Configuration Register 0 */ | 18 | #define AT91_MATRIX_MCFG0 0x00 /* Master Configuration Register 0 */ |
19 | #define AT91_MATRIX_MCFG1 (AT91_MATRIX + 0x04) /* Master Configuration Register 1 */ | 19 | #define AT91_MATRIX_MCFG1 0x04 /* Master Configuration Register 1 */ |
20 | #define AT91_MATRIX_MCFG2 (AT91_MATRIX + 0x08) /* Master Configuration Register 2 */ | 20 | #define AT91_MATRIX_MCFG2 0x08 /* Master Configuration Register 2 */ |
21 | #define AT91_MATRIX_MCFG3 (AT91_MATRIX + 0x0C) /* Master Configuration Register 3 */ | 21 | #define AT91_MATRIX_MCFG3 0x0C /* Master Configuration Register 3 */ |
22 | #define AT91_MATRIX_MCFG4 (AT91_MATRIX + 0x10) /* Master Configuration Register 4 */ | 22 | #define AT91_MATRIX_MCFG4 0x10 /* Master Configuration Register 4 */ |
23 | #define AT91_MATRIX_MCFG5 (AT91_MATRIX + 0x14) /* Master Configuration Register 5 */ | 23 | #define AT91_MATRIX_MCFG5 0x14 /* Master Configuration Register 5 */ |
24 | #define AT91_MATRIX_MCFG6 (AT91_MATRIX + 0x18) /* Master Configuration Register 6 */ | 24 | #define AT91_MATRIX_MCFG6 0x18 /* Master Configuration Register 6 */ |
25 | #define AT91_MATRIX_MCFG7 (AT91_MATRIX + 0x1C) /* Master Configuration Register 7 */ | 25 | #define AT91_MATRIX_MCFG7 0x1C /* Master Configuration Register 7 */ |
26 | #define AT91_MATRIX_MCFG8 (AT91_MATRIX + 0x20) /* Master Configuration Register 8 */ | 26 | #define AT91_MATRIX_MCFG8 0x20 /* Master Configuration Register 8 */ |
27 | #define AT91_MATRIX_ULBT (7 << 0) /* Undefined Length Burst Type */ | 27 | #define AT91_MATRIX_ULBT (7 << 0) /* Undefined Length Burst Type */ |
28 | #define AT91_MATRIX_ULBT_INFINITE (0 << 0) | 28 | #define AT91_MATRIX_ULBT_INFINITE (0 << 0) |
29 | #define AT91_MATRIX_ULBT_SINGLE (1 << 0) | 29 | #define AT91_MATRIX_ULBT_SINGLE (1 << 0) |
@@ -31,14 +31,14 @@ | |||
31 | #define AT91_MATRIX_ULBT_EIGHT (3 << 0) | 31 | #define AT91_MATRIX_ULBT_EIGHT (3 << 0) |
32 | #define AT91_MATRIX_ULBT_SIXTEEN (4 << 0) | 32 | #define AT91_MATRIX_ULBT_SIXTEEN (4 << 0) |
33 | 33 | ||
34 | #define AT91_MATRIX_SCFG0 (AT91_MATRIX + 0x40) /* Slave Configuration Register 0 */ | 34 | #define AT91_MATRIX_SCFG0 0x40 /* Slave Configuration Register 0 */ |
35 | #define AT91_MATRIX_SCFG1 (AT91_MATRIX + 0x44) /* Slave Configuration Register 1 */ | 35 | #define AT91_MATRIX_SCFG1 0x44 /* Slave Configuration Register 1 */ |
36 | #define AT91_MATRIX_SCFG2 (AT91_MATRIX + 0x48) /* Slave Configuration Register 2 */ | 36 | #define AT91_MATRIX_SCFG2 0x48 /* Slave Configuration Register 2 */ |
37 | #define AT91_MATRIX_SCFG3 (AT91_MATRIX + 0x4C) /* Slave Configuration Register 3 */ | 37 | #define AT91_MATRIX_SCFG3 0x4C /* Slave Configuration Register 3 */ |
38 | #define AT91_MATRIX_SCFG4 (AT91_MATRIX + 0x50) /* Slave Configuration Register 4 */ | 38 | #define AT91_MATRIX_SCFG4 0x50 /* Slave Configuration Register 4 */ |
39 | #define AT91_MATRIX_SCFG5 (AT91_MATRIX + 0x54) /* Slave Configuration Register 5 */ | 39 | #define AT91_MATRIX_SCFG5 0x54 /* Slave Configuration Register 5 */ |
40 | #define AT91_MATRIX_SCFG6 (AT91_MATRIX + 0x58) /* Slave Configuration Register 6 */ | 40 | #define AT91_MATRIX_SCFG6 0x58 /* Slave Configuration Register 6 */ |
41 | #define AT91_MATRIX_SCFG7 (AT91_MATRIX + 0x5C) /* Slave Configuration Register 7 */ | 41 | #define AT91_MATRIX_SCFG7 0x5C /* Slave Configuration Register 7 */ |
42 | #define AT91_MATRIX_SLOT_CYCLE (0xff << 0) /* Maximum Number of Allowed Cycles for a Burst */ | 42 | #define AT91_MATRIX_SLOT_CYCLE (0xff << 0) /* Maximum Number of Allowed Cycles for a Burst */ |
43 | #define AT91_MATRIX_DEFMSTR_TYPE (3 << 16) /* Default Master Type */ | 43 | #define AT91_MATRIX_DEFMSTR_TYPE (3 << 16) /* Default Master Type */ |
44 | #define AT91_MATRIX_DEFMSTR_TYPE_NONE (0 << 16) | 44 | #define AT91_MATRIX_DEFMSTR_TYPE_NONE (0 << 16) |
@@ -49,22 +49,22 @@ | |||
49 | #define AT91_MATRIX_ARBT_ROUND_ROBIN (0 << 24) | 49 | #define AT91_MATRIX_ARBT_ROUND_ROBIN (0 << 24) |
50 | #define AT91_MATRIX_ARBT_FIXED_PRIORITY (1 << 24) | 50 | #define AT91_MATRIX_ARBT_FIXED_PRIORITY (1 << 24) |
51 | 51 | ||
52 | #define AT91_MATRIX_PRAS0 (AT91_MATRIX + 0x80) /* Priority Register A for Slave 0 */ | 52 | #define AT91_MATRIX_PRAS0 0x80 /* Priority Register A for Slave 0 */ |
53 | #define AT91_MATRIX_PRBS0 (AT91_MATRIX + 0x84) /* Priority Register B for Slave 0 */ | 53 | #define AT91_MATRIX_PRBS0 0x84 /* Priority Register B for Slave 0 */ |
54 | #define AT91_MATRIX_PRAS1 (AT91_MATRIX + 0x88) /* Priority Register A for Slave 1 */ | 54 | #define AT91_MATRIX_PRAS1 0x88 /* Priority Register A for Slave 1 */ |
55 | #define AT91_MATRIX_PRBS1 (AT91_MATRIX + 0x8C) /* Priority Register B for Slave 1 */ | 55 | #define AT91_MATRIX_PRBS1 0x8C /* Priority Register B for Slave 1 */ |
56 | #define AT91_MATRIX_PRAS2 (AT91_MATRIX + 0x90) /* Priority Register A for Slave 2 */ | 56 | #define AT91_MATRIX_PRAS2 0x90 /* Priority Register A for Slave 2 */ |
57 | #define AT91_MATRIX_PRBS2 (AT91_MATRIX + 0x94) /* Priority Register B for Slave 2 */ | 57 | #define AT91_MATRIX_PRBS2 0x94 /* Priority Register B for Slave 2 */ |
58 | #define AT91_MATRIX_PRAS3 (AT91_MATRIX + 0x98) /* Priority Register A for Slave 3 */ | 58 | #define AT91_MATRIX_PRAS3 0x98 /* Priority Register A for Slave 3 */ |
59 | #define AT91_MATRIX_PRBS3 (AT91_MATRIX + 0x9C) /* Priority Register B for Slave 3 */ | 59 | #define AT91_MATRIX_PRBS3 0x9C /* Priority Register B for Slave 3 */ |
60 | #define AT91_MATRIX_PRAS4 (AT91_MATRIX + 0xA0) /* Priority Register A for Slave 4 */ | 60 | #define AT91_MATRIX_PRAS4 0xA0 /* Priority Register A for Slave 4 */ |
61 | #define AT91_MATRIX_PRBS4 (AT91_MATRIX + 0xA4) /* Priority Register B for Slave 4 */ | 61 | #define AT91_MATRIX_PRBS4 0xA4 /* Priority Register B for Slave 4 */ |
62 | #define AT91_MATRIX_PRAS5 (AT91_MATRIX + 0xA8) /* Priority Register A for Slave 5 */ | 62 | #define AT91_MATRIX_PRAS5 0xA8 /* Priority Register A for Slave 5 */ |
63 | #define AT91_MATRIX_PRBS5 (AT91_MATRIX + 0xAC) /* Priority Register B for Slave 5 */ | 63 | #define AT91_MATRIX_PRBS5 0xAC /* Priority Register B for Slave 5 */ |
64 | #define AT91_MATRIX_PRAS6 (AT91_MATRIX + 0xB0) /* Priority Register A for Slave 6 */ | 64 | #define AT91_MATRIX_PRAS6 0xB0 /* Priority Register A for Slave 6 */ |
65 | #define AT91_MATRIX_PRBS6 (AT91_MATRIX + 0xB4) /* Priority Register B for Slave 6 */ | 65 | #define AT91_MATRIX_PRBS6 0xB4 /* Priority Register B for Slave 6 */ |
66 | #define AT91_MATRIX_PRAS7 (AT91_MATRIX + 0xB8) /* Priority Register A for Slave 7 */ | 66 | #define AT91_MATRIX_PRAS7 0xB8 /* Priority Register A for Slave 7 */ |
67 | #define AT91_MATRIX_PRBS7 (AT91_MATRIX + 0xBC) /* Priority Register B for Slave 7 */ | 67 | #define AT91_MATRIX_PRBS7 0xBC /* Priority Register B for Slave 7 */ |
68 | #define AT91_MATRIX_M0PR (3 << 0) /* Master 0 Priority */ | 68 | #define AT91_MATRIX_M0PR (3 << 0) /* Master 0 Priority */ |
69 | #define AT91_MATRIX_M1PR (3 << 4) /* Master 1 Priority */ | 69 | #define AT91_MATRIX_M1PR (3 << 4) /* Master 1 Priority */ |
70 | #define AT91_MATRIX_M2PR (3 << 8) /* Master 2 Priority */ | 70 | #define AT91_MATRIX_M2PR (3 << 8) /* Master 2 Priority */ |
@@ -75,7 +75,7 @@ | |||
75 | #define AT91_MATRIX_M7PR (3 << 28) /* Master 7 Priority */ | 75 | #define AT91_MATRIX_M7PR (3 << 28) /* Master 7 Priority */ |
76 | #define AT91_MATRIX_M8PR (3 << 0) /* Master 8 Priority (in Register B) */ | 76 | #define AT91_MATRIX_M8PR (3 << 0) /* Master 8 Priority (in Register B) */ |
77 | 77 | ||
78 | #define AT91_MATRIX_MRCR (AT91_MATRIX + 0x100) /* Master Remap Control Register */ | 78 | #define AT91_MATRIX_MRCR 0x100 /* Master Remap Control Register */ |
79 | #define AT91_MATRIX_RCB0 (1 << 0) /* Remap Command for AHB Master 0 (ARM926EJ-S Instruction Master) */ | 79 | #define AT91_MATRIX_RCB0 (1 << 0) /* Remap Command for AHB Master 0 (ARM926EJ-S Instruction Master) */ |
80 | #define AT91_MATRIX_RCB1 (1 << 1) /* Remap Command for AHB Master 1 (ARM926EJ-S Data Master) */ | 80 | #define AT91_MATRIX_RCB1 (1 << 1) /* Remap Command for AHB Master 1 (ARM926EJ-S Data Master) */ |
81 | #define AT91_MATRIX_RCB2 (1 << 2) | 81 | #define AT91_MATRIX_RCB2 (1 << 2) |
@@ -86,7 +86,7 @@ | |||
86 | #define AT91_MATRIX_RCB7 (1 << 7) | 86 | #define AT91_MATRIX_RCB7 (1 << 7) |
87 | #define AT91_MATRIX_RCB8 (1 << 8) | 87 | #define AT91_MATRIX_RCB8 (1 << 8) |
88 | 88 | ||
89 | #define AT91_MATRIX_TCMR (AT91_MATRIX + 0x114) /* TCM Configuration Register */ | 89 | #define AT91_MATRIX_TCMR 0x114 /* TCM Configuration Register */ |
90 | #define AT91_MATRIX_ITCM_SIZE (0xf << 0) /* Size of ITCM enabled memory block */ | 90 | #define AT91_MATRIX_ITCM_SIZE (0xf << 0) /* Size of ITCM enabled memory block */ |
91 | #define AT91_MATRIX_ITCM_0 (0 << 0) | 91 | #define AT91_MATRIX_ITCM_0 (0 << 0) |
92 | #define AT91_MATRIX_ITCM_16 (5 << 0) | 92 | #define AT91_MATRIX_ITCM_16 (5 << 0) |
@@ -96,7 +96,7 @@ | |||
96 | #define AT91_MATRIX_DTCM_16 (5 << 4) | 96 | #define AT91_MATRIX_DTCM_16 (5 << 4) |
97 | #define AT91_MATRIX_DTCM_32 (6 << 4) | 97 | #define AT91_MATRIX_DTCM_32 (6 << 4) |
98 | 98 | ||
99 | #define AT91_MATRIX_EBI0CSA (AT91_MATRIX + 0x120) /* EBI0 Chip Select Assignment Register */ | 99 | #define AT91_MATRIX_EBI0CSA 0x120 /* EBI0 Chip Select Assignment Register */ |
100 | #define AT91_MATRIX_EBI0_CS1A (1 << 1) /* Chip Select 1 Assignment */ | 100 | #define AT91_MATRIX_EBI0_CS1A (1 << 1) /* Chip Select 1 Assignment */ |
101 | #define AT91_MATRIX_EBI0_CS1A_SMC (0 << 1) | 101 | #define AT91_MATRIX_EBI0_CS1A_SMC (0 << 1) |
102 | #define AT91_MATRIX_EBI0_CS1A_SDRAMC (1 << 1) | 102 | #define AT91_MATRIX_EBI0_CS1A_SDRAMC (1 << 1) |
@@ -114,7 +114,7 @@ | |||
114 | #define AT91_MATRIX_EBI0_VDDIOMSEL_1_8V (0 << 16) | 114 | #define AT91_MATRIX_EBI0_VDDIOMSEL_1_8V (0 << 16) |
115 | #define AT91_MATRIX_EBI0_VDDIOMSEL_3_3V (1 << 16) | 115 | #define AT91_MATRIX_EBI0_VDDIOMSEL_3_3V (1 << 16) |
116 | 116 | ||
117 | #define AT91_MATRIX_EBI1CSA (AT91_MATRIX + 0x124) /* EBI1 Chip Select Assignment Register */ | 117 | #define AT91_MATRIX_EBI1CSA 0x124 /* EBI1 Chip Select Assignment Register */ |
118 | #define AT91_MATRIX_EBI1_CS1A (1 << 1) /* Chip Select 1 Assignment */ | 118 | #define AT91_MATRIX_EBI1_CS1A (1 << 1) /* Chip Select 1 Assignment */ |
119 | #define AT91_MATRIX_EBI1_CS1A_SMC (0 << 1) | 119 | #define AT91_MATRIX_EBI1_CS1A_SMC (0 << 1) |
120 | #define AT91_MATRIX_EBI1_CS1A_SDRAMC (1 << 1) | 120 | #define AT91_MATRIX_EBI1_CS1A_SDRAMC (1 << 1) |
diff --git a/arch/arm/mach-at91/include/mach/at91sam9_ddrsdr.h b/arch/arm/mach-at91/include/mach/at91sam9_ddrsdr.h index e2f8da8ce5bc..0210797abf2e 100644 --- a/arch/arm/mach-at91/include/mach/at91sam9_ddrsdr.h +++ b/arch/arm/mach-at91/include/mach/at91sam9_ddrsdr.h | |||
@@ -59,7 +59,6 @@ | |||
59 | #define AT91_DDRSDRC_TRP (0xf << 16) /* Row precharge delay */ | 59 | #define AT91_DDRSDRC_TRP (0xf << 16) /* Row precharge delay */ |
60 | #define AT91_DDRSDRC_TRRD (0xf << 20) /* Active BankA to BankB */ | 60 | #define AT91_DDRSDRC_TRRD (0xf << 20) /* Active BankA to BankB */ |
61 | #define AT91_DDRSDRC_TWTR (0x7 << 24) /* Internal Write to Read delay */ | 61 | #define AT91_DDRSDRC_TWTR (0x7 << 24) /* Internal Write to Read delay */ |
62 | #define AT91CAP9_DDRSDRC_TWTR (1 << 24) /* Internal Write to Read delay */ | ||
63 | #define AT91_DDRSDRC_RED_WRRD (0x1 << 27) /* Reduce Write to Read Delay [SAM9 Only] */ | 62 | #define AT91_DDRSDRC_RED_WRRD (0x1 << 27) /* Reduce Write to Read Delay [SAM9 Only] */ |
64 | #define AT91_DDRSDRC_TMRD (0xf << 28) /* Load mode to active/refresh delay */ | 63 | #define AT91_DDRSDRC_TMRD (0xf << 28) /* Load mode to active/refresh delay */ |
65 | 64 | ||
@@ -76,7 +75,6 @@ | |||
76 | #define AT91_DDRSDRC_TRTP (0x7 << 12) /* Read to Precharge delay */ | 75 | #define AT91_DDRSDRC_TRTP (0x7 << 12) /* Read to Precharge delay */ |
77 | 76 | ||
78 | #define AT91_DDRSDRC_LPR 0x1C /* Low Power Register */ | 77 | #define AT91_DDRSDRC_LPR 0x1C /* Low Power Register */ |
79 | #define AT91CAP9_DDRSDRC_LPR 0x18 /* Low Power Register */ | ||
80 | #define AT91_DDRSDRC_LPCB (3 << 0) /* Low-power Configurations */ | 78 | #define AT91_DDRSDRC_LPCB (3 << 0) /* Low-power Configurations */ |
81 | #define AT91_DDRSDRC_LPCB_DISABLE 0 | 79 | #define AT91_DDRSDRC_LPCB_DISABLE 0 |
82 | #define AT91_DDRSDRC_LPCB_SELF_REFRESH 1 | 80 | #define AT91_DDRSDRC_LPCB_SELF_REFRESH 1 |
@@ -94,11 +92,9 @@ | |||
94 | #define AT91_DDRSDRC_UPD_MR (3 << 20) /* Update load mode register and extended mode register */ | 92 | #define AT91_DDRSDRC_UPD_MR (3 << 20) /* Update load mode register and extended mode register */ |
95 | 93 | ||
96 | #define AT91_DDRSDRC_MDR 0x20 /* Memory Device Register */ | 94 | #define AT91_DDRSDRC_MDR 0x20 /* Memory Device Register */ |
97 | #define AT91CAP9_DDRSDRC_MDR 0x1C /* Memory Device Register */ | ||
98 | #define AT91_DDRSDRC_MD (3 << 0) /* Memory Device Type */ | 95 | #define AT91_DDRSDRC_MD (3 << 0) /* Memory Device Type */ |
99 | #define AT91_DDRSDRC_MD_SDR 0 | 96 | #define AT91_DDRSDRC_MD_SDR 0 |
100 | #define AT91_DDRSDRC_MD_LOW_POWER_SDR 1 | 97 | #define AT91_DDRSDRC_MD_LOW_POWER_SDR 1 |
101 | #define AT91CAP9_DDRSDRC_MD_DDR 2 | ||
102 | #define AT91_DDRSDRC_MD_LOW_POWER_DDR 3 | 98 | #define AT91_DDRSDRC_MD_LOW_POWER_DDR 3 |
103 | #define AT91_DDRSDRC_MD_DDR2 6 /* [SAM9 Only] */ | 99 | #define AT91_DDRSDRC_MD_DDR2 6 /* [SAM9 Only] */ |
104 | #define AT91_DDRSDRC_DBW (1 << 4) /* Data Bus Width */ | 100 | #define AT91_DDRSDRC_DBW (1 << 4) /* Data Bus Width */ |
@@ -106,16 +102,10 @@ | |||
106 | #define AT91_DDRSDRC_DBW_16BITS (1 << 4) | 102 | #define AT91_DDRSDRC_DBW_16BITS (1 << 4) |
107 | 103 | ||
108 | #define AT91_DDRSDRC_DLL 0x24 /* DLL Information Register */ | 104 | #define AT91_DDRSDRC_DLL 0x24 /* DLL Information Register */ |
109 | #define AT91CAP9_DDRSDRC_DLL 0x20 /* DLL Information Register */ | ||
110 | #define AT91_DDRSDRC_MDINC (1 << 0) /* Master Delay increment */ | 105 | #define AT91_DDRSDRC_MDINC (1 << 0) /* Master Delay increment */ |
111 | #define AT91_DDRSDRC_MDDEC (1 << 1) /* Master Delay decrement */ | 106 | #define AT91_DDRSDRC_MDDEC (1 << 1) /* Master Delay decrement */ |
112 | #define AT91_DDRSDRC_MDOVF (1 << 2) /* Master Delay Overflow */ | 107 | #define AT91_DDRSDRC_MDOVF (1 << 2) /* Master Delay Overflow */ |
113 | #define AT91CAP9_DDRSDRC_SDCOVF (1 << 3) /* Slave Delay Correction Overflow */ | ||
114 | #define AT91CAP9_DDRSDRC_SDCUDF (1 << 4) /* Slave Delay Correction Underflow */ | ||
115 | #define AT91CAP9_DDRSDRC_SDERF (1 << 5) /* Slave Delay Correction error */ | ||
116 | #define AT91_DDRSDRC_MDVAL (0xff << 8) /* Master Delay value */ | 108 | #define AT91_DDRSDRC_MDVAL (0xff << 8) /* Master Delay value */ |
117 | #define AT91CAP9_DDRSDRC_SDVAL (0xff << 16) /* Slave Delay value */ | ||
118 | #define AT91CAP9_DDRSDRC_SDCVAL (0xff << 24) /* Slave Delay Correction value */ | ||
119 | 109 | ||
120 | #define AT91_DDRSDRC_HS 0x2C /* High Speed Register [SAM9 Only] */ | 110 | #define AT91_DDRSDRC_HS 0x2C /* High Speed Register [SAM9 Only] */ |
121 | #define AT91_DDRSDRC_DIS_ATCP_RD (1 << 2) /* Anticip read access is disabled */ | 111 | #define AT91_DDRSDRC_DIS_ATCP_RD (1 << 2) /* Anticip read access is disabled */ |
@@ -131,10 +121,4 @@ | |||
131 | #define AT91_DDRSDRC_WPVS (1 << 0) /* Write protect violation status */ | 121 | #define AT91_DDRSDRC_WPVS (1 << 0) /* Write protect violation status */ |
132 | #define AT91_DDRSDRC_WPVSRC (0xffff << 8) /* Write protect violation source */ | 122 | #define AT91_DDRSDRC_WPVSRC (0xffff << 8) /* Write protect violation source */ |
133 | 123 | ||
134 | /* Register access macros */ | ||
135 | #define at91_ramc_read(num, reg) \ | ||
136 | at91_sys_read(AT91_DDRSDRC##num + reg) | ||
137 | #define at91_ramc_write(num, reg, value) \ | ||
138 | at91_sys_write(AT91_DDRSDRC##num + reg, value) | ||
139 | |||
140 | #endif | 124 | #endif |
diff --git a/arch/arm/mach-at91/include/mach/at91sam9_sdramc.h b/arch/arm/mach-at91/include/mach/at91sam9_sdramc.h index 100f5a592926..3d085a9a7450 100644 --- a/arch/arm/mach-at91/include/mach/at91sam9_sdramc.h +++ b/arch/arm/mach-at91/include/mach/at91sam9_sdramc.h | |||
@@ -82,10 +82,4 @@ | |||
82 | #define AT91_SDRAMC_MD_SDRAM 0 | 82 | #define AT91_SDRAMC_MD_SDRAM 0 |
83 | #define AT91_SDRAMC_MD_LOW_POWER_SDRAM 1 | 83 | #define AT91_SDRAMC_MD_LOW_POWER_SDRAM 1 |
84 | 84 | ||
85 | /* Register access macros */ | ||
86 | #define at91_ramc_read(num, reg) \ | ||
87 | at91_sys_read(AT91_SDRAMC##num + reg) | ||
88 | #define at91_ramc_write(num, reg, value) \ | ||
89 | at91_sys_write(AT91_SDRAMC##num + reg, value) | ||
90 | |||
91 | #endif | 85 | #endif |
diff --git a/arch/arm/mach-at91/include/mach/at91sam9g45.h b/arch/arm/mach-at91/include/mach/at91sam9g45.h index dd9c95ea0862..d052abcff852 100644 --- a/arch/arm/mach-at91/include/mach/at91sam9g45.h +++ b/arch/arm/mach-at91/include/mach/at91sam9g45.h | |||
@@ -84,17 +84,14 @@ | |||
84 | #define AT91SAM9G45_BASE_TC5 0xfffd4080 | 84 | #define AT91SAM9G45_BASE_TC5 0xfffd4080 |
85 | 85 | ||
86 | /* | 86 | /* |
87 | * System Peripherals (offset from AT91_BASE_SYS) | 87 | * System Peripherals |
88 | */ | 88 | */ |
89 | #define AT91_DDRSDRC1 (0xffffe400 - AT91_BASE_SYS) | ||
90 | #define AT91_DDRSDRC0 (0xffffe600 - AT91_BASE_SYS) | ||
91 | #define AT91_MATRIX (0xffffea00 - AT91_BASE_SYS) | ||
92 | #define AT91_PMC (0xfffffc00 - AT91_BASE_SYS) | ||
93 | #define AT91_GPBR (0xfffffd60 - AT91_BASE_SYS) | ||
94 | |||
95 | #define AT91SAM9G45_BASE_ECC 0xffffe200 | 89 | #define AT91SAM9G45_BASE_ECC 0xffffe200 |
90 | #define AT91SAM9G45_BASE_DDRSDRC1 0xffffe400 | ||
91 | #define AT91SAM9G45_BASE_DDRSDRC0 0xffffe600 | ||
96 | #define AT91SAM9G45_BASE_DMA 0xffffec00 | 92 | #define AT91SAM9G45_BASE_DMA 0xffffec00 |
97 | #define AT91SAM9G45_BASE_SMC 0xffffe800 | 93 | #define AT91SAM9G45_BASE_SMC 0xffffe800 |
94 | #define AT91SAM9G45_BASE_MATRIX 0xffffea00 | ||
98 | #define AT91SAM9G45_BASE_DBGU AT91_BASE_DBGU1 | 95 | #define AT91SAM9G45_BASE_DBGU AT91_BASE_DBGU1 |
99 | #define AT91SAM9G45_BASE_PIOA 0xfffff200 | 96 | #define AT91SAM9G45_BASE_PIOA 0xfffff200 |
100 | #define AT91SAM9G45_BASE_PIOB 0xfffff400 | 97 | #define AT91SAM9G45_BASE_PIOB 0xfffff400 |
@@ -107,6 +104,7 @@ | |||
107 | #define AT91SAM9G45_BASE_PIT 0xfffffd30 | 104 | #define AT91SAM9G45_BASE_PIT 0xfffffd30 |
108 | #define AT91SAM9G45_BASE_WDT 0xfffffd40 | 105 | #define AT91SAM9G45_BASE_WDT 0xfffffd40 |
109 | #define AT91SAM9G45_BASE_RTC 0xfffffdb0 | 106 | #define AT91SAM9G45_BASE_RTC 0xfffffdb0 |
107 | #define AT91SAM9G45_BASE_GPBR 0xfffffd60 | ||
110 | 108 | ||
111 | #define AT91_USART0 AT91SAM9G45_BASE_US0 | 109 | #define AT91_USART0 AT91SAM9G45_BASE_US0 |
112 | #define AT91_USART1 AT91SAM9G45_BASE_US1 | 110 | #define AT91_USART1 AT91SAM9G45_BASE_US1 |
diff --git a/arch/arm/mach-at91/include/mach/at91sam9g45_matrix.h b/arch/arm/mach-at91/include/mach/at91sam9g45_matrix.h index c972d60e0aeb..b76e2ed2fbc2 100644 --- a/arch/arm/mach-at91/include/mach/at91sam9g45_matrix.h +++ b/arch/arm/mach-at91/include/mach/at91sam9g45_matrix.h | |||
@@ -15,18 +15,18 @@ | |||
15 | #ifndef AT91SAM9G45_MATRIX_H | 15 | #ifndef AT91SAM9G45_MATRIX_H |
16 | #define AT91SAM9G45_MATRIX_H | 16 | #define AT91SAM9G45_MATRIX_H |
17 | 17 | ||
18 | #define AT91_MATRIX_MCFG0 (AT91_MATRIX + 0x00) /* Master Configuration Register 0 */ | 18 | #define AT91_MATRIX_MCFG0 0x00 /* Master Configuration Register 0 */ |
19 | #define AT91_MATRIX_MCFG1 (AT91_MATRIX + 0x04) /* Master Configuration Register 1 */ | 19 | #define AT91_MATRIX_MCFG1 0x04 /* Master Configuration Register 1 */ |
20 | #define AT91_MATRIX_MCFG2 (AT91_MATRIX + 0x08) /* Master Configuration Register 2 */ | 20 | #define AT91_MATRIX_MCFG2 0x08 /* Master Configuration Register 2 */ |
21 | #define AT91_MATRIX_MCFG3 (AT91_MATRIX + 0x0C) /* Master Configuration Register 3 */ | 21 | #define AT91_MATRIX_MCFG3 0x0C /* Master Configuration Register 3 */ |
22 | #define AT91_MATRIX_MCFG4 (AT91_MATRIX + 0x10) /* Master Configuration Register 4 */ | 22 | #define AT91_MATRIX_MCFG4 0x10 /* Master Configuration Register 4 */ |
23 | #define AT91_MATRIX_MCFG5 (AT91_MATRIX + 0x14) /* Master Configuration Register 5 */ | 23 | #define AT91_MATRIX_MCFG5 0x14 /* Master Configuration Register 5 */ |
24 | #define AT91_MATRIX_MCFG6 (AT91_MATRIX + 0x18) /* Master Configuration Register 6 */ | 24 | #define AT91_MATRIX_MCFG6 0x18 /* Master Configuration Register 6 */ |
25 | #define AT91_MATRIX_MCFG7 (AT91_MATRIX + 0x1C) /* Master Configuration Register 7 */ | 25 | #define AT91_MATRIX_MCFG7 0x1C /* Master Configuration Register 7 */ |
26 | #define AT91_MATRIX_MCFG8 (AT91_MATRIX + 0x20) /* Master Configuration Register 8 */ | 26 | #define AT91_MATRIX_MCFG8 0x20 /* Master Configuration Register 8 */ |
27 | #define AT91_MATRIX_MCFG9 (AT91_MATRIX + 0x24) /* Master Configuration Register 9 */ | 27 | #define AT91_MATRIX_MCFG9 0x24 /* Master Configuration Register 9 */ |
28 | #define AT91_MATRIX_MCFG10 (AT91_MATRIX + 0x28) /* Master Configuration Register 10 */ | 28 | #define AT91_MATRIX_MCFG10 0x28 /* Master Configuration Register 10 */ |
29 | #define AT91_MATRIX_MCFG11 (AT91_MATRIX + 0x2C) /* Master Configuration Register 11 */ | 29 | #define AT91_MATRIX_MCFG11 0x2C /* Master Configuration Register 11 */ |
30 | #define AT91_MATRIX_ULBT (7 << 0) /* Undefined Length Burst Type */ | 30 | #define AT91_MATRIX_ULBT (7 << 0) /* Undefined Length Burst Type */ |
31 | #define AT91_MATRIX_ULBT_INFINITE (0 << 0) | 31 | #define AT91_MATRIX_ULBT_INFINITE (0 << 0) |
32 | #define AT91_MATRIX_ULBT_SINGLE (1 << 0) | 32 | #define AT91_MATRIX_ULBT_SINGLE (1 << 0) |
@@ -37,14 +37,14 @@ | |||
37 | #define AT91_MATRIX_ULBT_SIXTYFOUR (6 << 0) | 37 | #define AT91_MATRIX_ULBT_SIXTYFOUR (6 << 0) |
38 | #define AT91_MATRIX_ULBT_128 (7 << 0) | 38 | #define AT91_MATRIX_ULBT_128 (7 << 0) |
39 | 39 | ||
40 | #define AT91_MATRIX_SCFG0 (AT91_MATRIX + 0x40) /* Slave Configuration Register 0 */ | 40 | #define AT91_MATRIX_SCFG0 0x40 /* Slave Configuration Register 0 */ |
41 | #define AT91_MATRIX_SCFG1 (AT91_MATRIX + 0x44) /* Slave Configuration Register 1 */ | 41 | #define AT91_MATRIX_SCFG1 0x44 /* Slave Configuration Register 1 */ |
42 | #define AT91_MATRIX_SCFG2 (AT91_MATRIX + 0x48) /* Slave Configuration Register 2 */ | 42 | #define AT91_MATRIX_SCFG2 0x48 /* Slave Configuration Register 2 */ |
43 | #define AT91_MATRIX_SCFG3 (AT91_MATRIX + 0x4C) /* Slave Configuration Register 3 */ | 43 | #define AT91_MATRIX_SCFG3 0x4C /* Slave Configuration Register 3 */ |
44 | #define AT91_MATRIX_SCFG4 (AT91_MATRIX + 0x50) /* Slave Configuration Register 4 */ | 44 | #define AT91_MATRIX_SCFG4 0x50 /* Slave Configuration Register 4 */ |
45 | #define AT91_MATRIX_SCFG5 (AT91_MATRIX + 0x54) /* Slave Configuration Register 5 */ | 45 | #define AT91_MATRIX_SCFG5 0x54 /* Slave Configuration Register 5 */ |
46 | #define AT91_MATRIX_SCFG6 (AT91_MATRIX + 0x58) /* Slave Configuration Register 6 */ | 46 | #define AT91_MATRIX_SCFG6 0x58 /* Slave Configuration Register 6 */ |
47 | #define AT91_MATRIX_SCFG7 (AT91_MATRIX + 0x5C) /* Slave Configuration Register 7 */ | 47 | #define AT91_MATRIX_SCFG7 0x5C /* Slave Configuration Register 7 */ |
48 | #define AT91_MATRIX_SLOT_CYCLE (0x1ff << 0) /* Maximum Number of Allowed Cycles for a Burst */ | 48 | #define AT91_MATRIX_SLOT_CYCLE (0x1ff << 0) /* Maximum Number of Allowed Cycles for a Burst */ |
49 | #define AT91_MATRIX_DEFMSTR_TYPE (3 << 16) /* Default Master Type */ | 49 | #define AT91_MATRIX_DEFMSTR_TYPE (3 << 16) /* Default Master Type */ |
50 | #define AT91_MATRIX_DEFMSTR_TYPE_NONE (0 << 16) | 50 | #define AT91_MATRIX_DEFMSTR_TYPE_NONE (0 << 16) |
@@ -52,22 +52,22 @@ | |||
52 | #define AT91_MATRIX_DEFMSTR_TYPE_FIXED (2 << 16) | 52 | #define AT91_MATRIX_DEFMSTR_TYPE_FIXED (2 << 16) |
53 | #define AT91_MATRIX_FIXED_DEFMSTR (0xf << 18) /* Fixed Index of Default Master */ | 53 | #define AT91_MATRIX_FIXED_DEFMSTR (0xf << 18) /* Fixed Index of Default Master */ |
54 | 54 | ||
55 | #define AT91_MATRIX_PRAS0 (AT91_MATRIX + 0x80) /* Priority Register A for Slave 0 */ | 55 | #define AT91_MATRIX_PRAS0 0x80 /* Priority Register A for Slave 0 */ |
56 | #define AT91_MATRIX_PRBS0 (AT91_MATRIX + 0x84) /* Priority Register B for Slave 0 */ | 56 | #define AT91_MATRIX_PRBS0 0x84 /* Priority Register B for Slave 0 */ |
57 | #define AT91_MATRIX_PRAS1 (AT91_MATRIX + 0x88) /* Priority Register A for Slave 1 */ | 57 | #define AT91_MATRIX_PRAS1 0x88 /* Priority Register A for Slave 1 */ |
58 | #define AT91_MATRIX_PRBS1 (AT91_MATRIX + 0x8C) /* Priority Register B for Slave 1 */ | 58 | #define AT91_MATRIX_PRBS1 0x8C /* Priority Register B for Slave 1 */ |
59 | #define AT91_MATRIX_PRAS2 (AT91_MATRIX + 0x90) /* Priority Register A for Slave 2 */ | 59 | #define AT91_MATRIX_PRAS2 0x90 /* Priority Register A for Slave 2 */ |
60 | #define AT91_MATRIX_PRBS2 (AT91_MATRIX + 0x94) /* Priority Register B for Slave 2 */ | 60 | #define AT91_MATRIX_PRBS2 0x94 /* Priority Register B for Slave 2 */ |
61 | #define AT91_MATRIX_PRAS3 (AT91_MATRIX + 0x98) /* Priority Register A for Slave 3 */ | 61 | #define AT91_MATRIX_PRAS3 0x98 /* Priority Register A for Slave 3 */ |
62 | #define AT91_MATRIX_PRBS3 (AT91_MATRIX + 0x9C) /* Priority Register B for Slave 3 */ | 62 | #define AT91_MATRIX_PRBS3 0x9C /* Priority Register B for Slave 3 */ |
63 | #define AT91_MATRIX_PRAS4 (AT91_MATRIX + 0xA0) /* Priority Register A for Slave 4 */ | 63 | #define AT91_MATRIX_PRAS4 0xA0 /* Priority Register A for Slave 4 */ |
64 | #define AT91_MATRIX_PRBS4 (AT91_MATRIX + 0xA4) /* Priority Register B for Slave 4 */ | 64 | #define AT91_MATRIX_PRBS4 0xA4 /* Priority Register B for Slave 4 */ |
65 | #define AT91_MATRIX_PRAS5 (AT91_MATRIX + 0xA8) /* Priority Register A for Slave 5 */ | 65 | #define AT91_MATRIX_PRAS5 0xA8 /* Priority Register A for Slave 5 */ |
66 | #define AT91_MATRIX_PRBS5 (AT91_MATRIX + 0xAC) /* Priority Register B for Slave 5 */ | 66 | #define AT91_MATRIX_PRBS5 0xAC /* Priority Register B for Slave 5 */ |
67 | #define AT91_MATRIX_PRAS6 (AT91_MATRIX + 0xB0) /* Priority Register A for Slave 6 */ | 67 | #define AT91_MATRIX_PRAS6 0xB0 /* Priority Register A for Slave 6 */ |
68 | #define AT91_MATRIX_PRBS6 (AT91_MATRIX + 0xB4) /* Priority Register B for Slave 6 */ | 68 | #define AT91_MATRIX_PRBS6 0xB4 /* Priority Register B for Slave 6 */ |
69 | #define AT91_MATRIX_PRAS7 (AT91_MATRIX + 0xB8) /* Priority Register A for Slave 7 */ | 69 | #define AT91_MATRIX_PRAS7 0xB8 /* Priority Register A for Slave 7 */ |
70 | #define AT91_MATRIX_PRBS7 (AT91_MATRIX + 0xBC) /* Priority Register B for Slave 7 */ | 70 | #define AT91_MATRIX_PRBS7 0xBC /* Priority Register B for Slave 7 */ |
71 | #define AT91_MATRIX_M0PR (3 << 0) /* Master 0 Priority */ | 71 | #define AT91_MATRIX_M0PR (3 << 0) /* Master 0 Priority */ |
72 | #define AT91_MATRIX_M1PR (3 << 4) /* Master 1 Priority */ | 72 | #define AT91_MATRIX_M1PR (3 << 4) /* Master 1 Priority */ |
73 | #define AT91_MATRIX_M2PR (3 << 8) /* Master 2 Priority */ | 73 | #define AT91_MATRIX_M2PR (3 << 8) /* Master 2 Priority */ |
@@ -81,7 +81,7 @@ | |||
81 | #define AT91_MATRIX_M10PR (3 << 8) /* Master 10 Priority (in Register B) */ | 81 | #define AT91_MATRIX_M10PR (3 << 8) /* Master 10 Priority (in Register B) */ |
82 | #define AT91_MATRIX_M11PR (3 << 12) /* Master 11 Priority (in Register B) */ | 82 | #define AT91_MATRIX_M11PR (3 << 12) /* Master 11 Priority (in Register B) */ |
83 | 83 | ||
84 | #define AT91_MATRIX_MRCR (AT91_MATRIX + 0x100) /* Master Remap Control Register */ | 84 | #define AT91_MATRIX_MRCR 0x100 /* Master Remap Control Register */ |
85 | #define AT91_MATRIX_RCB0 (1 << 0) /* Remap Command for AHB Master 0 (ARM926EJ-S Instruction Master) */ | 85 | #define AT91_MATRIX_RCB0 (1 << 0) /* Remap Command for AHB Master 0 (ARM926EJ-S Instruction Master) */ |
86 | #define AT91_MATRIX_RCB1 (1 << 1) /* Remap Command for AHB Master 1 (ARM926EJ-S Data Master) */ | 86 | #define AT91_MATRIX_RCB1 (1 << 1) /* Remap Command for AHB Master 1 (ARM926EJ-S Data Master) */ |
87 | #define AT91_MATRIX_RCB2 (1 << 2) | 87 | #define AT91_MATRIX_RCB2 (1 << 2) |
@@ -95,7 +95,7 @@ | |||
95 | #define AT91_MATRIX_RCB10 (1 << 10) | 95 | #define AT91_MATRIX_RCB10 (1 << 10) |
96 | #define AT91_MATRIX_RCB11 (1 << 11) | 96 | #define AT91_MATRIX_RCB11 (1 << 11) |
97 | 97 | ||
98 | #define AT91_MATRIX_TCMR (AT91_MATRIX + 0x110) /* TCM Configuration Register */ | 98 | #define AT91_MATRIX_TCMR 0x110 /* TCM Configuration Register */ |
99 | #define AT91_MATRIX_ITCM_SIZE (0xf << 0) /* Size of ITCM enabled memory block */ | 99 | #define AT91_MATRIX_ITCM_SIZE (0xf << 0) /* Size of ITCM enabled memory block */ |
100 | #define AT91_MATRIX_ITCM_0 (0 << 0) | 100 | #define AT91_MATRIX_ITCM_0 (0 << 0) |
101 | #define AT91_MATRIX_ITCM_32 (6 << 0) | 101 | #define AT91_MATRIX_ITCM_32 (6 << 0) |
@@ -107,12 +107,12 @@ | |||
107 | #define AT91_MATRIX_TCM_NO_WS (0x0 << 11) | 107 | #define AT91_MATRIX_TCM_NO_WS (0x0 << 11) |
108 | #define AT91_MATRIX_TCM_ONE_WS (0x1 << 11) | 108 | #define AT91_MATRIX_TCM_ONE_WS (0x1 << 11) |
109 | 109 | ||
110 | #define AT91_MATRIX_VIDEO (AT91_MATRIX + 0x118) /* Video Mode Configuration Register */ | 110 | #define AT91_MATRIX_VIDEO 0x118 /* Video Mode Configuration Register */ |
111 | #define AT91C_VDEC_SEL (0x1 << 0) /* Video Mode Selection */ | 111 | #define AT91C_VDEC_SEL (0x1 << 0) /* Video Mode Selection */ |
112 | #define AT91C_VDEC_SEL_OFF (0 << 0) | 112 | #define AT91C_VDEC_SEL_OFF (0 << 0) |
113 | #define AT91C_VDEC_SEL_ON (1 << 0) | 113 | #define AT91C_VDEC_SEL_ON (1 << 0) |
114 | 114 | ||
115 | #define AT91_MATRIX_EBICSA (AT91_MATRIX + 0x128) /* EBI Chip Select Assignment Register */ | 115 | #define AT91_MATRIX_EBICSA 0x128 /* EBI Chip Select Assignment Register */ |
116 | #define AT91_MATRIX_EBI_CS1A (1 << 1) /* Chip Select 1 Assignment */ | 116 | #define AT91_MATRIX_EBI_CS1A (1 << 1) /* Chip Select 1 Assignment */ |
117 | #define AT91_MATRIX_EBI_CS1A_SMC (0 << 1) | 117 | #define AT91_MATRIX_EBI_CS1A_SMC (0 << 1) |
118 | #define AT91_MATRIX_EBI_CS1A_SDRAMC (1 << 1) | 118 | #define AT91_MATRIX_EBI_CS1A_SDRAMC (1 << 1) |
@@ -138,13 +138,13 @@ | |||
138 | #define AT91_MATRIX_EBI_DDR_IOSR_REDUCED (0 << 18) | 138 | #define AT91_MATRIX_EBI_DDR_IOSR_REDUCED (0 << 18) |
139 | #define AT91_MATRIX_EBI_DDR_IOSR_NORMAL (1 << 18) | 139 | #define AT91_MATRIX_EBI_DDR_IOSR_NORMAL (1 << 18) |
140 | 140 | ||
141 | #define AT91_MATRIX_WPMR (AT91_MATRIX + 0x1E4) /* Write Protect Mode Register */ | 141 | #define AT91_MATRIX_WPMR 0x1E4 /* Write Protect Mode Register */ |
142 | #define AT91_MATRIX_WPMR_WPEN (1 << 0) /* Write Protect ENable */ | 142 | #define AT91_MATRIX_WPMR_WPEN (1 << 0) /* Write Protect ENable */ |
143 | #define AT91_MATRIX_WPMR_WP_WPDIS (0 << 0) | 143 | #define AT91_MATRIX_WPMR_WP_WPDIS (0 << 0) |
144 | #define AT91_MATRIX_WPMR_WP_WPEN (1 << 0) | 144 | #define AT91_MATRIX_WPMR_WP_WPEN (1 << 0) |
145 | #define AT91_MATRIX_WPMR_WPKEY (0xFFFFFF << 8) /* Write Protect KEY */ | 145 | #define AT91_MATRIX_WPMR_WPKEY (0xFFFFFF << 8) /* Write Protect KEY */ |
146 | 146 | ||
147 | #define AT91_MATRIX_WPSR (AT91_MATRIX + 0x1E8) /* Write Protect Status Register */ | 147 | #define AT91_MATRIX_WPSR 0x1E8 /* Write Protect Status Register */ |
148 | #define AT91_MATRIX_WPSR_WPVS (1 << 0) /* Write Protect Violation Status */ | 148 | #define AT91_MATRIX_WPSR_WPVS (1 << 0) /* Write Protect Violation Status */ |
149 | #define AT91_MATRIX_WPSR_NO_WPV (0 << 0) | 149 | #define AT91_MATRIX_WPSR_NO_WPV (0 << 0) |
150 | #define AT91_MATRIX_WPSR_WPV (1 << 0) | 150 | #define AT91_MATRIX_WPSR_WPV (1 << 0) |
diff --git a/arch/arm/mach-at91/include/mach/at91sam9rl.h b/arch/arm/mach-at91/include/mach/at91sam9rl.h index d7bead7118da..e0073eb10144 100644 --- a/arch/arm/mach-at91/include/mach/at91sam9rl.h +++ b/arch/arm/mach-at91/include/mach/at91sam9rl.h | |||
@@ -69,15 +69,13 @@ | |||
69 | /* | 69 | /* |
70 | * System Peripherals (offset from AT91_BASE_SYS) | 70 | * System Peripherals (offset from AT91_BASE_SYS) |
71 | */ | 71 | */ |
72 | #define AT91_SDRAMC0 (0xffffea00 - AT91_BASE_SYS) | ||
73 | #define AT91_MATRIX (0xffffee00 - AT91_BASE_SYS) | ||
74 | #define AT91_PMC (0xfffffc00 - AT91_BASE_SYS) | ||
75 | #define AT91_SCKCR (0xfffffd50 - AT91_BASE_SYS) | 72 | #define AT91_SCKCR (0xfffffd50 - AT91_BASE_SYS) |
76 | #define AT91_GPBR (0xfffffd60 - AT91_BASE_SYS) | ||
77 | 73 | ||
78 | #define AT91SAM9RL_BASE_DMA 0xffffe600 | 74 | #define AT91SAM9RL_BASE_DMA 0xffffe600 |
79 | #define AT91SAM9RL_BASE_ECC 0xffffe800 | 75 | #define AT91SAM9RL_BASE_ECC 0xffffe800 |
76 | #define AT91SAM9RL_BASE_SDRAMC 0xffffea00 | ||
80 | #define AT91SAM9RL_BASE_SMC 0xffffec00 | 77 | #define AT91SAM9RL_BASE_SMC 0xffffec00 |
78 | #define AT91SAM9RL_BASE_MATRIX 0xffffee00 | ||
81 | #define AT91SAM9RL_BASE_DBGU AT91_BASE_DBGU0 | 79 | #define AT91SAM9RL_BASE_DBGU AT91_BASE_DBGU0 |
82 | #define AT91SAM9RL_BASE_PIOA 0xfffff400 | 80 | #define AT91SAM9RL_BASE_PIOA 0xfffff400 |
83 | #define AT91SAM9RL_BASE_PIOB 0xfffff600 | 81 | #define AT91SAM9RL_BASE_PIOB 0xfffff600 |
@@ -88,6 +86,7 @@ | |||
88 | #define AT91SAM9RL_BASE_RTT 0xfffffd20 | 86 | #define AT91SAM9RL_BASE_RTT 0xfffffd20 |
89 | #define AT91SAM9RL_BASE_PIT 0xfffffd30 | 87 | #define AT91SAM9RL_BASE_PIT 0xfffffd30 |
90 | #define AT91SAM9RL_BASE_WDT 0xfffffd40 | 88 | #define AT91SAM9RL_BASE_WDT 0xfffffd40 |
89 | #define AT91SAM9RL_BASE_GPBR 0xfffffd60 | ||
91 | #define AT91SAM9RL_BASE_RTC 0xfffffe00 | 90 | #define AT91SAM9RL_BASE_RTC 0xfffffe00 |
92 | 91 | ||
93 | #define AT91_USART0 AT91SAM9RL_BASE_US0 | 92 | #define AT91_USART0 AT91SAM9RL_BASE_US0 |
diff --git a/arch/arm/mach-at91/include/mach/at91sam9rl_matrix.h b/arch/arm/mach-at91/include/mach/at91sam9rl_matrix.h index 5f9149071fe5..6d160adadafc 100644 --- a/arch/arm/mach-at91/include/mach/at91sam9rl_matrix.h +++ b/arch/arm/mach-at91/include/mach/at91sam9rl_matrix.h | |||
@@ -14,12 +14,12 @@ | |||
14 | #ifndef AT91SAM9RL_MATRIX_H | 14 | #ifndef AT91SAM9RL_MATRIX_H |
15 | #define AT91SAM9RL_MATRIX_H | 15 | #define AT91SAM9RL_MATRIX_H |
16 | 16 | ||
17 | #define AT91_MATRIX_MCFG0 (AT91_MATRIX + 0x00) /* Master Configuration Register 0 */ | 17 | #define AT91_MATRIX_MCFG0 0x00 /* Master Configuration Register 0 */ |
18 | #define AT91_MATRIX_MCFG1 (AT91_MATRIX + 0x04) /* Master Configuration Register 1 */ | 18 | #define AT91_MATRIX_MCFG1 0x04 /* Master Configuration Register 1 */ |
19 | #define AT91_MATRIX_MCFG2 (AT91_MATRIX + 0x08) /* Master Configuration Register 2 */ | 19 | #define AT91_MATRIX_MCFG2 0x08 /* Master Configuration Register 2 */ |
20 | #define AT91_MATRIX_MCFG3 (AT91_MATRIX + 0x0C) /* Master Configuration Register 3 */ | 20 | #define AT91_MATRIX_MCFG3 0x0C /* Master Configuration Register 3 */ |
21 | #define AT91_MATRIX_MCFG4 (AT91_MATRIX + 0x10) /* Master Configuration Register 4 */ | 21 | #define AT91_MATRIX_MCFG4 0x10 /* Master Configuration Register 4 */ |
22 | #define AT91_MATRIX_MCFG5 (AT91_MATRIX + 0x14) /* Master Configuration Register 5 */ | 22 | #define AT91_MATRIX_MCFG5 0x14 /* Master Configuration Register 5 */ |
23 | #define AT91_MATRIX_ULBT (7 << 0) /* Undefined Length Burst Type */ | 23 | #define AT91_MATRIX_ULBT (7 << 0) /* Undefined Length Burst Type */ |
24 | #define AT91_MATRIX_ULBT_INFINITE (0 << 0) | 24 | #define AT91_MATRIX_ULBT_INFINITE (0 << 0) |
25 | #define AT91_MATRIX_ULBT_SINGLE (1 << 0) | 25 | #define AT91_MATRIX_ULBT_SINGLE (1 << 0) |
@@ -27,12 +27,12 @@ | |||
27 | #define AT91_MATRIX_ULBT_EIGHT (3 << 0) | 27 | #define AT91_MATRIX_ULBT_EIGHT (3 << 0) |
28 | #define AT91_MATRIX_ULBT_SIXTEEN (4 << 0) | 28 | #define AT91_MATRIX_ULBT_SIXTEEN (4 << 0) |
29 | 29 | ||
30 | #define AT91_MATRIX_SCFG0 (AT91_MATRIX + 0x40) /* Slave Configuration Register 0 */ | 30 | #define AT91_MATRIX_SCFG0 0x40 /* Slave Configuration Register 0 */ |
31 | #define AT91_MATRIX_SCFG1 (AT91_MATRIX + 0x44) /* Slave Configuration Register 1 */ | 31 | #define AT91_MATRIX_SCFG1 0x44 /* Slave Configuration Register 1 */ |
32 | #define AT91_MATRIX_SCFG2 (AT91_MATRIX + 0x48) /* Slave Configuration Register 2 */ | 32 | #define AT91_MATRIX_SCFG2 0x48 /* Slave Configuration Register 2 */ |
33 | #define AT91_MATRIX_SCFG3 (AT91_MATRIX + 0x4C) /* Slave Configuration Register 3 */ | 33 | #define AT91_MATRIX_SCFG3 0x4C /* Slave Configuration Register 3 */ |
34 | #define AT91_MATRIX_SCFG4 (AT91_MATRIX + 0x50) /* Slave Configuration Register 4 */ | 34 | #define AT91_MATRIX_SCFG4 0x50 /* Slave Configuration Register 4 */ |
35 | #define AT91_MATRIX_SCFG5 (AT91_MATRIX + 0x54) /* Slave Configuration Register 5 */ | 35 | #define AT91_MATRIX_SCFG5 0x54 /* Slave Configuration Register 5 */ |
36 | #define AT91_MATRIX_SLOT_CYCLE (0xff << 0) /* Maximum Number of Allowed Cycles for a Burst */ | 36 | #define AT91_MATRIX_SLOT_CYCLE (0xff << 0) /* Maximum Number of Allowed Cycles for a Burst */ |
37 | #define AT91_MATRIX_DEFMSTR_TYPE (3 << 16) /* Default Master Type */ | 37 | #define AT91_MATRIX_DEFMSTR_TYPE (3 << 16) /* Default Master Type */ |
38 | #define AT91_MATRIX_DEFMSTR_TYPE_NONE (0 << 16) | 38 | #define AT91_MATRIX_DEFMSTR_TYPE_NONE (0 << 16) |
@@ -43,12 +43,12 @@ | |||
43 | #define AT91_MATRIX_ARBT_ROUND_ROBIN (0 << 24) | 43 | #define AT91_MATRIX_ARBT_ROUND_ROBIN (0 << 24) |
44 | #define AT91_MATRIX_ARBT_FIXED_PRIORITY (1 << 24) | 44 | #define AT91_MATRIX_ARBT_FIXED_PRIORITY (1 << 24) |
45 | 45 | ||
46 | #define AT91_MATRIX_PRAS0 (AT91_MATRIX + 0x80) /* Priority Register A for Slave 0 */ | 46 | #define AT91_MATRIX_PRAS0 0x80 /* Priority Register A for Slave 0 */ |
47 | #define AT91_MATRIX_PRAS1 (AT91_MATRIX + 0x88) /* Priority Register A for Slave 1 */ | 47 | #define AT91_MATRIX_PRAS1 0x88 /* Priority Register A for Slave 1 */ |
48 | #define AT91_MATRIX_PRAS2 (AT91_MATRIX + 0x90) /* Priority Register A for Slave 2 */ | 48 | #define AT91_MATRIX_PRAS2 0x90 /* Priority Register A for Slave 2 */ |
49 | #define AT91_MATRIX_PRAS3 (AT91_MATRIX + 0x98) /* Priority Register A for Slave 3 */ | 49 | #define AT91_MATRIX_PRAS3 0x98 /* Priority Register A for Slave 3 */ |
50 | #define AT91_MATRIX_PRAS4 (AT91_MATRIX + 0xA0) /* Priority Register A for Slave 4 */ | 50 | #define AT91_MATRIX_PRAS4 0xA0 /* Priority Register A for Slave 4 */ |
51 | #define AT91_MATRIX_PRAS5 (AT91_MATRIX + 0xA8) /* Priority Register A for Slave 5 */ | 51 | #define AT91_MATRIX_PRAS5 0xA8 /* Priority Register A for Slave 5 */ |
52 | #define AT91_MATRIX_M0PR (3 << 0) /* Master 0 Priority */ | 52 | #define AT91_MATRIX_M0PR (3 << 0) /* Master 0 Priority */ |
53 | #define AT91_MATRIX_M1PR (3 << 4) /* Master 1 Priority */ | 53 | #define AT91_MATRIX_M1PR (3 << 4) /* Master 1 Priority */ |
54 | #define AT91_MATRIX_M2PR (3 << 8) /* Master 2 Priority */ | 54 | #define AT91_MATRIX_M2PR (3 << 8) /* Master 2 Priority */ |
@@ -56,7 +56,7 @@ | |||
56 | #define AT91_MATRIX_M4PR (3 << 16) /* Master 4 Priority */ | 56 | #define AT91_MATRIX_M4PR (3 << 16) /* Master 4 Priority */ |
57 | #define AT91_MATRIX_M5PR (3 << 20) /* Master 5 Priority */ | 57 | #define AT91_MATRIX_M5PR (3 << 20) /* Master 5 Priority */ |
58 | 58 | ||
59 | #define AT91_MATRIX_MRCR (AT91_MATRIX + 0x100) /* Master Remap Control Register */ | 59 | #define AT91_MATRIX_MRCR 0x100 /* Master Remap Control Register */ |
60 | #define AT91_MATRIX_RCB0 (1 << 0) /* Remap Command for AHB Master 0 (ARM926EJ-S Instruction Master) */ | 60 | #define AT91_MATRIX_RCB0 (1 << 0) /* Remap Command for AHB Master 0 (ARM926EJ-S Instruction Master) */ |
61 | #define AT91_MATRIX_RCB1 (1 << 1) /* Remap Command for AHB Master 1 (ARM926EJ-S Data Master) */ | 61 | #define AT91_MATRIX_RCB1 (1 << 1) /* Remap Command for AHB Master 1 (ARM926EJ-S Data Master) */ |
62 | #define AT91_MATRIX_RCB2 (1 << 2) | 62 | #define AT91_MATRIX_RCB2 (1 << 2) |
@@ -64,7 +64,7 @@ | |||
64 | #define AT91_MATRIX_RCB4 (1 << 4) | 64 | #define AT91_MATRIX_RCB4 (1 << 4) |
65 | #define AT91_MATRIX_RCB5 (1 << 5) | 65 | #define AT91_MATRIX_RCB5 (1 << 5) |
66 | 66 | ||
67 | #define AT91_MATRIX_TCMR (AT91_MATRIX + 0x114) /* TCM Configuration Register */ | 67 | #define AT91_MATRIX_TCMR 0x114 /* TCM Configuration Register */ |
68 | #define AT91_MATRIX_ITCM_SIZE (0xf << 0) /* Size of ITCM enabled memory block */ | 68 | #define AT91_MATRIX_ITCM_SIZE (0xf << 0) /* Size of ITCM enabled memory block */ |
69 | #define AT91_MATRIX_ITCM_0 (0 << 0) | 69 | #define AT91_MATRIX_ITCM_0 (0 << 0) |
70 | #define AT91_MATRIX_ITCM_16 (5 << 0) | 70 | #define AT91_MATRIX_ITCM_16 (5 << 0) |
@@ -74,7 +74,7 @@ | |||
74 | #define AT91_MATRIX_DTCM_16 (5 << 4) | 74 | #define AT91_MATRIX_DTCM_16 (5 << 4) |
75 | #define AT91_MATRIX_DTCM_32 (6 << 4) | 75 | #define AT91_MATRIX_DTCM_32 (6 << 4) |
76 | 76 | ||
77 | #define AT91_MATRIX_EBICSA (AT91_MATRIX + 0x120) /* EBI0 Chip Select Assignment Register */ | 77 | #define AT91_MATRIX_EBICSA 0x120 /* EBI0 Chip Select Assignment Register */ |
78 | #define AT91_MATRIX_CS1A (1 << 1) /* Chip Select 1 Assignment */ | 78 | #define AT91_MATRIX_CS1A (1 << 1) /* Chip Select 1 Assignment */ |
79 | #define AT91_MATRIX_CS1A_SMC (0 << 1) | 79 | #define AT91_MATRIX_CS1A_SMC (0 << 1) |
80 | #define AT91_MATRIX_CS1A_SDRAMC (1 << 1) | 80 | #define AT91_MATRIX_CS1A_SDRAMC (1 << 1) |
diff --git a/arch/arm/mach-at91/include/mach/at91sam9x5.h b/arch/arm/mach-at91/include/mach/at91sam9x5.h new file mode 100644 index 000000000000..a297a77d88e2 --- /dev/null +++ b/arch/arm/mach-at91/include/mach/at91sam9x5.h | |||
@@ -0,0 +1,79 @@ | |||
1 | /* | ||
2 | * Chip-specific header file for the AT91SAM9x5 family | ||
3 | * | ||
4 | * Copyright (C) 2009-2012 Atmel Corporation. | ||
5 | * | ||
6 | * Common definitions. | ||
7 | * Based on AT91SAM9x5 datasheet. | ||
8 | * | ||
9 | * Licensed under GPLv2 or later. | ||
10 | */ | ||
11 | |||
12 | #ifndef AT91SAM9X5_H | ||
13 | #define AT91SAM9X5_H | ||
14 | |||
15 | /* | ||
16 | * Peripheral identifiers/interrupts. | ||
17 | */ | ||
18 | #define AT91SAM9X5_ID_PIOAB 2 /* Parallel I/O Controller A and B */ | ||
19 | #define AT91SAM9X5_ID_PIOCD 3 /* Parallel I/O Controller C and D */ | ||
20 | #define AT91SAM9X5_ID_SMD 4 /* SMD Soft Modem (SMD) */ | ||
21 | #define AT91SAM9X5_ID_USART0 5 /* USART 0 */ | ||
22 | #define AT91SAM9X5_ID_USART1 6 /* USART 1 */ | ||
23 | #define AT91SAM9X5_ID_USART2 7 /* USART 2 */ | ||
24 | #define AT91SAM9X5_ID_USART3 8 /* USART 3 */ | ||
25 | #define AT91SAM9X5_ID_TWI0 9 /* Two-Wire Interface 0 */ | ||
26 | #define AT91SAM9X5_ID_TWI1 10 /* Two-Wire Interface 1 */ | ||
27 | #define AT91SAM9X5_ID_TWI2 11 /* Two-Wire Interface 2 */ | ||
28 | #define AT91SAM9X5_ID_MCI0 12 /* High Speed Multimedia Card Interface 0 */ | ||
29 | #define AT91SAM9X5_ID_SPI0 13 /* Serial Peripheral Interface 0 */ | ||
30 | #define AT91SAM9X5_ID_SPI1 14 /* Serial Peripheral Interface 1 */ | ||
31 | #define AT91SAM9X5_ID_UART0 15 /* UART 0 */ | ||
32 | #define AT91SAM9X5_ID_UART1 16 /* UART 1 */ | ||
33 | #define AT91SAM9X5_ID_TCB 17 /* Timer Counter 0, 1, 2, 3, 4 and 5 */ | ||
34 | #define AT91SAM9X5_ID_PWM 18 /* Pulse Width Modulation Controller */ | ||
35 | #define AT91SAM9X5_ID_ADC 19 /* ADC Controller */ | ||
36 | #define AT91SAM9X5_ID_DMA0 20 /* DMA Controller 0 */ | ||
37 | #define AT91SAM9X5_ID_DMA1 21 /* DMA Controller 1 */ | ||
38 | #define AT91SAM9X5_ID_UHPHS 22 /* USB Host High Speed */ | ||
39 | #define AT91SAM9X5_ID_UDPHS 23 /* USB Device High Speed */ | ||
40 | #define AT91SAM9X5_ID_EMAC0 24 /* Ethernet MAC0 */ | ||
41 | #define AT91SAM9X5_ID_LCDC 25 /* LCD Controller */ | ||
42 | #define AT91SAM9X5_ID_ISI 25 /* Image Sensor Interface */ | ||
43 | #define AT91SAM9X5_ID_MCI1 26 /* High Speed Multimedia Card Interface 1 */ | ||
44 | #define AT91SAM9X5_ID_EMAC1 27 /* Ethernet MAC1 */ | ||
45 | #define AT91SAM9X5_ID_SSC 28 /* Synchronous Serial Controller */ | ||
46 | #define AT91SAM9X5_ID_CAN0 29 /* CAN Controller 0 */ | ||
47 | #define AT91SAM9X5_ID_CAN1 30 /* CAN Controller 1 */ | ||
48 | #define AT91SAM9X5_ID_IRQ0 31 /* Advanced Interrupt Controller */ | ||
49 | |||
50 | /* | ||
51 | * User Peripheral physical base addresses. | ||
52 | */ | ||
53 | #define AT91SAM9X5_BASE_USART0 0xf801c000 | ||
54 | #define AT91SAM9X5_BASE_USART1 0xf8020000 | ||
55 | #define AT91SAM9X5_BASE_USART2 0xf8024000 | ||
56 | |||
57 | /* | ||
58 | * System Peripherals | ||
59 | */ | ||
60 | #define AT91SAM9X5_BASE_DDRSDRC0 0xffffe800 | ||
61 | |||
62 | /* | ||
63 | * Base addresses for early serial code (uncompress.h) | ||
64 | */ | ||
65 | #define AT91_DBGU AT91_BASE_DBGU0 | ||
66 | #define AT91_USART0 AT91SAM9X5_BASE_USART0 | ||
67 | #define AT91_USART1 AT91SAM9X5_BASE_USART1 | ||
68 | #define AT91_USART2 AT91SAM9X5_BASE_USART2 | ||
69 | |||
70 | /* | ||
71 | * Internal Memory. | ||
72 | */ | ||
73 | #define AT91SAM9X5_SRAM_BASE 0x00300000 /* Internal SRAM base address */ | ||
74 | #define AT91SAM9X5_SRAM_SIZE SZ_32K /* Internal SRAM size (32Kb) */ | ||
75 | |||
76 | #define AT91SAM9X5_ROM_BASE 0x00400000 /* Internal ROM base address */ | ||
77 | #define AT91SAM9X5_ROM_SIZE SZ_64K /* Internal ROM size (64Kb) */ | ||
78 | |||
79 | #endif | ||
diff --git a/arch/arm/mach-at91/include/mach/at91sam9x5_matrix.h b/arch/arm/mach-at91/include/mach/at91sam9x5_matrix.h new file mode 100644 index 000000000000..a606d3966470 --- /dev/null +++ b/arch/arm/mach-at91/include/mach/at91sam9x5_matrix.h | |||
@@ -0,0 +1,53 @@ | |||
1 | /* | ||
2 | * Matrix-centric header file for the AT91SAM9x5 family | ||
3 | * | ||
4 | * Copyright (C) 2009-2012 Atmel Corporation. | ||
5 | * | ||
6 | * Only EBI related registers. | ||
7 | * Write Protect register definitions may be useful. | ||
8 | * | ||
9 | * Licensed under GPLv2 or later. | ||
10 | */ | ||
11 | |||
12 | #ifndef AT91SAM9X5_MATRIX_H | ||
13 | #define AT91SAM9X5_MATRIX_H | ||
14 | |||
15 | #define AT91_MATRIX_EBICSA (AT91_MATRIX + 0x120) /* EBI Chip Select Assignment Register */ | ||
16 | #define AT91_MATRIX_EBI_CS1A (1 << 1) /* Chip Select 1 Assignment */ | ||
17 | #define AT91_MATRIX_EBI_CS1A_SMC (0 << 1) | ||
18 | #define AT91_MATRIX_EBI_CS1A_SDRAMC (1 << 1) | ||
19 | #define AT91_MATRIX_EBI_CS3A (1 << 3) /* Chip Select 3 Assignment */ | ||
20 | #define AT91_MATRIX_EBI_CS3A_SMC (0 << 3) | ||
21 | #define AT91_MATRIX_EBI_CS3A_SMC_NANDFLASH (1 << 3) | ||
22 | #define AT91_MATRIX_EBI_DBPUC (1 << 8) /* Data Bus Pull-up Configuration */ | ||
23 | #define AT91_MATRIX_EBI_DBPU_ON (0 << 8) | ||
24 | #define AT91_MATRIX_EBI_DBPU_OFF (1 << 8) | ||
25 | #define AT91_MATRIX_EBI_VDDIOMSEL (1 << 16) /* Memory voltage selection */ | ||
26 | #define AT91_MATRIX_EBI_VDDIOMSEL_1_8V (0 << 16) | ||
27 | #define AT91_MATRIX_EBI_VDDIOMSEL_3_3V (1 << 16) | ||
28 | #define AT91_MATRIX_EBI_EBI_IOSR (1 << 17) /* EBI I/O slew rate selection */ | ||
29 | #define AT91_MATRIX_EBI_EBI_IOSR_REDUCED (0 << 17) | ||
30 | #define AT91_MATRIX_EBI_EBI_IOSR_NORMAL (1 << 17) | ||
31 | #define AT91_MATRIX_EBI_DDR_IOSR (1 << 18) /* DDR2 dedicated port I/O slew rate selection */ | ||
32 | #define AT91_MATRIX_EBI_DDR_IOSR_REDUCED (0 << 18) | ||
33 | #define AT91_MATRIX_EBI_DDR_IOSR_NORMAL (1 << 18) | ||
34 | #define AT91_MATRIX_NFD0_SELECT (1 << 24) /* NAND Flash Data Bus Selection */ | ||
35 | #define AT91_MATRIX_NFD0_ON_D0 (0 << 24) | ||
36 | #define AT91_MATRIX_NFD0_ON_D16 (1 << 24) | ||
37 | #define AT91_MATRIX_DDR_MP_EN (1 << 25) /* DDR Multi-port Enable */ | ||
38 | #define AT91_MATRIX_MP_OFF (0 << 25) | ||
39 | #define AT91_MATRIX_MP_ON (1 << 25) | ||
40 | |||
41 | #define AT91_MATRIX_WPMR (AT91_MATRIX + 0x1E4) /* Write Protect Mode Register */ | ||
42 | #define AT91_MATRIX_WPMR_WPEN (1 << 0) /* Write Protect ENable */ | ||
43 | #define AT91_MATRIX_WPMR_WP_WPDIS (0 << 0) | ||
44 | #define AT91_MATRIX_WPMR_WP_WPEN (1 << 0) | ||
45 | #define AT91_MATRIX_WPMR_WPKEY (0xFFFFFF << 8) /* Write Protect KEY */ | ||
46 | |||
47 | #define AT91_MATRIX_WPSR (AT91_MATRIX + 0x1E8) /* Write Protect Status Register */ | ||
48 | #define AT91_MATRIX_WPSR_WPVS (1 << 0) /* Write Protect Violation Status */ | ||
49 | #define AT91_MATRIX_WPSR_NO_WPV (0 << 0) | ||
50 | #define AT91_MATRIX_WPSR_WPV (1 << 0) | ||
51 | #define AT91_MATRIX_WPSR_WPVSRC (0xFFFF << 8) /* Write Protect Violation Source */ | ||
52 | |||
53 | #endif | ||
diff --git a/arch/arm/mach-at91/include/mach/at91x40.h b/arch/arm/mach-at91/include/mach/at91x40.h index a57829f4fd18..90680217064e 100644 --- a/arch/arm/mach-at91/include/mach/at91x40.h +++ b/arch/arm/mach-at91/include/mach/at91x40.h | |||
@@ -28,18 +28,18 @@ | |||
28 | #define AT91X40_ID_IRQ2 18 /* External IRQ 2 */ | 28 | #define AT91X40_ID_IRQ2 18 /* External IRQ 2 */ |
29 | 29 | ||
30 | /* | 30 | /* |
31 | * System Peripherals (offset from AT91_BASE_SYS) | 31 | * System Peripherals |
32 | */ | 32 | */ |
33 | #define AT91_BASE_SYS 0xffc00000 | 33 | #define AT91_BASE_SYS 0xffc00000 |
34 | 34 | ||
35 | #define AT91_EBI (0xffe00000 - AT91_BASE_SYS) /* External Bus Interface */ | 35 | #define AT91_EBI 0xffe00000 /* External Bus Interface */ |
36 | #define AT91_SF (0xfff00000 - AT91_BASE_SYS) /* Special Function */ | 36 | #define AT91_SF 0xfff00000 /* Special Function */ |
37 | #define AT91_USART1 (0xfffcc000 - AT91_BASE_SYS) /* USART 1 */ | 37 | #define AT91_USART1 0xfffcc000 /* USART 1 */ |
38 | #define AT91_USART0 (0xfffd0000 - AT91_BASE_SYS) /* USART 0 */ | 38 | #define AT91_USART0 0xfffd0000 /* USART 0 */ |
39 | #define AT91_TC (0xfffe0000 - AT91_BASE_SYS) /* Timer Counter */ | 39 | #define AT91_TC 0xfffe0000 /* Timer Counter */ |
40 | #define AT91_PIOA (0xffff0000 - AT91_BASE_SYS) /* PIO Controller A */ | 40 | #define AT91_PIOA 0xffff0000 /* PIO Controller A */ |
41 | #define AT91_PS (0xffff4000 - AT91_BASE_SYS) /* Power Save */ | 41 | #define AT91_PS 0xffff4000 /* Power Save */ |
42 | #define AT91_WD (0xffff8000 - AT91_BASE_SYS) /* Watchdog Timer */ | 42 | #define AT91_WD 0xffff8000 /* Watchdog Timer */ |
43 | 43 | ||
44 | /* | 44 | /* |
45 | * The AT91x40 series doesn't have a debug unit like the other AT91 parts. | 45 | * The AT91x40 series doesn't have a debug unit like the other AT91 parts. |
diff --git a/arch/arm/mach-at91/include/mach/board.h b/arch/arm/mach-at91/include/mach/board.h index 3b33f07b1e11..dc8d6d4f17cf 100644 --- a/arch/arm/mach-at91/include/mach/board.h +++ b/arch/arm/mach-at91/include/mach/board.h | |||
@@ -107,6 +107,8 @@ struct atmel_nand_data { | |||
107 | u8 ale; /* address line number connected to ALE */ | 107 | u8 ale; /* address line number connected to ALE */ |
108 | u8 cle; /* address line number connected to CLE */ | 108 | u8 cle; /* address line number connected to CLE */ |
109 | u8 bus_width_16; /* buswidth is 16 bit */ | 109 | u8 bus_width_16; /* buswidth is 16 bit */ |
110 | u8 correction_cap; /* PMECC correction capability */ | ||
111 | u16 sector_size; /* Sector size for PMECC */ | ||
110 | struct mtd_partition *parts; | 112 | struct mtd_partition *parts; |
111 | unsigned int num_parts; | 113 | unsigned int num_parts; |
112 | }; | 114 | }; |
@@ -179,7 +181,9 @@ extern void __init at91_add_device_lcdc(struct atmel_lcdfb_info *data); | |||
179 | extern void __init at91_add_device_ac97(struct ac97c_platform_data *data); | 181 | extern void __init at91_add_device_ac97(struct ac97c_platform_data *data); |
180 | 182 | ||
181 | /* ISI */ | 183 | /* ISI */ |
182 | extern void __init at91_add_device_isi(void); | 184 | struct isi_platform_data; |
185 | extern void __init at91_add_device_isi(struct isi_platform_data *data, | ||
186 | bool use_pck_as_mck); | ||
183 | 187 | ||
184 | /* Touchscreen Controller */ | 188 | /* Touchscreen Controller */ |
185 | struct at91_tsadcc_data { | 189 | struct at91_tsadcc_data { |
diff --git a/arch/arm/mach-at91/include/mach/cpu.h b/arch/arm/mach-at91/include/mach/cpu.h index f6ce936dba2b..0118c3338552 100644 --- a/arch/arm/mach-at91/include/mach/cpu.h +++ b/arch/arm/mach-at91/include/mach/cpu.h | |||
@@ -25,7 +25,6 @@ | |||
25 | #define ARCH_ID_AT91SAM9G45MRL 0x819b05a2 /* aka 9G45-ES2 & non ES lots */ | 25 | #define ARCH_ID_AT91SAM9G45MRL 0x819b05a2 /* aka 9G45-ES2 & non ES lots */ |
26 | #define ARCH_ID_AT91SAM9G45ES 0x819b05a1 /* 9G45-ES (Engineering Sample) */ | 26 | #define ARCH_ID_AT91SAM9G45ES 0x819b05a1 /* 9G45-ES (Engineering Sample) */ |
27 | #define ARCH_ID_AT91SAM9X5 0x819a05a0 | 27 | #define ARCH_ID_AT91SAM9X5 0x819a05a0 |
28 | #define ARCH_ID_AT91CAP9 0x039A03A0 | ||
29 | 28 | ||
30 | #define ARCH_ID_AT91SAM9XE128 0x329973a0 | 29 | #define ARCH_ID_AT91SAM9XE128 0x329973a0 |
31 | #define ARCH_ID_AT91SAM9XE256 0x329a93a0 | 30 | #define ARCH_ID_AT91SAM9XE256 0x329a93a0 |
@@ -51,10 +50,6 @@ | |||
51 | #define ARCH_FAMILY_AT91SAM9 0x01900000 | 50 | #define ARCH_FAMILY_AT91SAM9 0x01900000 |
52 | #define ARCH_FAMILY_AT91SAM9XE 0x02900000 | 51 | #define ARCH_FAMILY_AT91SAM9XE 0x02900000 |
53 | 52 | ||
54 | /* PMC revision */ | ||
55 | #define ARCH_REVISION_CAP9_B 0x399 | ||
56 | #define ARCH_REVISION_CAP9_C 0x601 | ||
57 | |||
58 | /* RM9200 type */ | 53 | /* RM9200 type */ |
59 | #define ARCH_REVISON_9200_BGA (0 << 0) | 54 | #define ARCH_REVISON_9200_BGA (0 << 0) |
60 | #define ARCH_REVISON_9200_PQFP (1 << 0) | 55 | #define ARCH_REVISON_9200_PQFP (1 << 0) |
@@ -63,9 +58,6 @@ enum at91_soc_type { | |||
63 | /* 920T */ | 58 | /* 920T */ |
64 | AT91_SOC_RM9200, | 59 | AT91_SOC_RM9200, |
65 | 60 | ||
66 | /* CAP */ | ||
67 | AT91_SOC_CAP9, | ||
68 | |||
69 | /* SAM92xx */ | 61 | /* SAM92xx */ |
70 | AT91_SOC_SAM9260, AT91_SOC_SAM9261, AT91_SOC_SAM9263, | 62 | AT91_SOC_SAM9260, AT91_SOC_SAM9261, AT91_SOC_SAM9263, |
71 | 63 | ||
@@ -86,9 +78,6 @@ enum at91_soc_subtype { | |||
86 | /* RM9200 */ | 78 | /* RM9200 */ |
87 | AT91_SOC_RM9200_BGA, AT91_SOC_RM9200_PQFP, | 79 | AT91_SOC_RM9200_BGA, AT91_SOC_RM9200_PQFP, |
88 | 80 | ||
89 | /* CAP9 */ | ||
90 | AT91_SOC_CAP9_REV_B, AT91_SOC_CAP9_REV_C, | ||
91 | |||
92 | /* SAM9260 */ | 81 | /* SAM9260 */ |
93 | AT91_SOC_SAM9XE, | 82 | AT91_SOC_SAM9XE, |
94 | 83 | ||
@@ -195,16 +184,6 @@ static inline int at91_soc_is_detected(void) | |||
195 | #define cpu_is_at91sam9x25() (0) | 184 | #define cpu_is_at91sam9x25() (0) |
196 | #endif | 185 | #endif |
197 | 186 | ||
198 | #ifdef CONFIG_ARCH_AT91CAP9 | ||
199 | #define cpu_is_at91cap9() (at91_soc_initdata.type == AT91_SOC_CAP9) | ||
200 | #define cpu_is_at91cap9_revB() (at91_soc_initdata.subtype == AT91_SOC_CAP9_REV_B) | ||
201 | #define cpu_is_at91cap9_revC() (at91_soc_initdata.subtype == AT91_SOC_CAP9_REV_C) | ||
202 | #else | ||
203 | #define cpu_is_at91cap9() (0) | ||
204 | #define cpu_is_at91cap9_revB() (0) | ||
205 | #define cpu_is_at91cap9_revC() (0) | ||
206 | #endif | ||
207 | |||
208 | /* | 187 | /* |
209 | * Since this is ARM, we will never run on any AVR32 CPU. But these | 188 | * Since this is ARM, we will never run on any AVR32 CPU. But these |
210 | * definitions may reduce clutter in common drivers. | 189 | * definitions may reduce clutter in common drivers. |
diff --git a/arch/arm/mach-at91/include/mach/hardware.h b/arch/arm/mach-at91/include/mach/hardware.h index 2d0e4e998566..e9e29a6c3868 100644 --- a/arch/arm/mach-at91/include/mach/hardware.h +++ b/arch/arm/mach-at91/include/mach/hardware.h | |||
@@ -19,7 +19,7 @@ | |||
19 | /* DBGU base */ | 19 | /* DBGU base */ |
20 | /* rm9200, 9260/9g20, 9261/9g10, 9rl */ | 20 | /* rm9200, 9260/9g20, 9261/9g10, 9rl */ |
21 | #define AT91_BASE_DBGU0 0xfffff200 | 21 | #define AT91_BASE_DBGU0 0xfffff200 |
22 | /* 9263, 9g45, cap9 */ | 22 | /* 9263, 9g45 */ |
23 | #define AT91_BASE_DBGU1 0xffffee00 | 23 | #define AT91_BASE_DBGU1 0xffffee00 |
24 | 24 | ||
25 | #if defined(CONFIG_ARCH_AT91RM9200) | 25 | #if defined(CONFIG_ARCH_AT91RM9200) |
@@ -34,8 +34,8 @@ | |||
34 | #include <mach/at91sam9rl.h> | 34 | #include <mach/at91sam9rl.h> |
35 | #elif defined(CONFIG_ARCH_AT91SAM9G45) | 35 | #elif defined(CONFIG_ARCH_AT91SAM9G45) |
36 | #include <mach/at91sam9g45.h> | 36 | #include <mach/at91sam9g45.h> |
37 | #elif defined(CONFIG_ARCH_AT91CAP9) | 37 | #elif defined(CONFIG_ARCH_AT91SAM9X5) |
38 | #include <mach/at91cap9.h> | 38 | #include <mach/at91sam9x5.h> |
39 | #elif defined(CONFIG_ARCH_AT91X40) | 39 | #elif defined(CONFIG_ARCH_AT91X40) |
40 | #include <mach/at91x40.h> | 40 | #include <mach/at91x40.h> |
41 | #else | 41 | #else |
@@ -59,9 +59,10 @@ | |||
59 | 59 | ||
60 | /* | 60 | /* |
61 | * On all at91 have the Advanced Interrupt Controller starts at address | 61 | * On all at91 have the Advanced Interrupt Controller starts at address |
62 | * 0xfffff000 | 62 | * 0xfffff000 and the Power Management Controller starts at 0xfffffc00 |
63 | */ | 63 | */ |
64 | #define AT91_AIC 0xfffff000 | 64 | #define AT91_AIC 0xfffff000 |
65 | #define AT91_PMC 0xfffffc00 | ||
65 | 66 | ||
66 | /* | 67 | /* |
67 | * Peripheral identifiers/interrupts. | 68 | * Peripheral identifiers/interrupts. |
diff --git a/arch/arm/mach-at91/include/mach/io.h b/arch/arm/mach-at91/include/mach/io.h index 4ca09ef7ca29..4003001eca3d 100644 --- a/arch/arm/mach-at91/include/mach/io.h +++ b/arch/arm/mach-at91/include/mach/io.h | |||
@@ -28,22 +28,4 @@ | |||
28 | #define __io(a) __typesafe_io(a) | 28 | #define __io(a) __typesafe_io(a) |
29 | #define __mem_pci(a) (a) | 29 | #define __mem_pci(a) (a) |
30 | 30 | ||
31 | #ifndef __ASSEMBLY__ | ||
32 | |||
33 | static inline unsigned int at91_sys_read(unsigned int reg_offset) | ||
34 | { | ||
35 | void __iomem *addr = (void __iomem *)AT91_VA_BASE_SYS; | ||
36 | |||
37 | return __raw_readl(addr + reg_offset); | ||
38 | } | ||
39 | |||
40 | static inline void at91_sys_write(unsigned int reg_offset, unsigned long value) | ||
41 | { | ||
42 | void __iomem *addr = (void __iomem *)AT91_VA_BASE_SYS; | ||
43 | |||
44 | __raw_writel(value, addr + reg_offset); | ||
45 | } | ||
46 | |||
47 | #endif | ||
48 | |||
49 | #endif | 31 | #endif |
diff --git a/arch/arm/mach-at91/include/mach/system.h b/arch/arm/mach-at91/include/mach/system.h deleted file mode 100644 index cbd64f3bcecd..000000000000 --- a/arch/arm/mach-at91/include/mach/system.h +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-at91/include/mach/system.h | ||
3 | * | ||
4 | * Copyright (C) 2003 SAN People | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
19 | */ | ||
20 | |||
21 | #ifndef __ASM_ARCH_SYSTEM_H | ||
22 | #define __ASM_ARCH_SYSTEM_H | ||
23 | |||
24 | #include <mach/hardware.h> | ||
25 | #include <mach/at91_st.h> | ||
26 | #include <mach/at91_dbgu.h> | ||
27 | #include <mach/at91_pmc.h> | ||
28 | |||
29 | static inline void arch_idle(void) | ||
30 | { | ||
31 | /* | ||
32 | * Disable the processor clock. The processor will be automatically | ||
33 | * re-enabled by an interrupt or by a reset. | ||
34 | */ | ||
35 | #ifdef AT91_PS | ||
36 | at91_sys_write(AT91_PS_CR, AT91_PS_CR_CPU); | ||
37 | #else | ||
38 | at91_sys_write(AT91_PMC_SCDR, AT91_PMC_PCK); | ||
39 | #endif | ||
40 | #ifndef CONFIG_CPU_ARM920T | ||
41 | /* | ||
42 | * Set the processor (CP15) into 'Wait for Interrupt' mode. | ||
43 | * Post-RM9200 processors need this in conjunction with the above | ||
44 | * to save power when idle. | ||
45 | */ | ||
46 | cpu_do_idle(); | ||
47 | #endif | ||
48 | } | ||
49 | |||
50 | #endif | ||