diff options
author | Viresh Kumar <viresh.kumar@st.com> | 2012-03-22 14:47:43 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2012-04-22 16:41:35 -0400 |
commit | c5fa4fdcdbe5f52c3e36892cc81f9378339b00ce (patch) | |
tree | 1dbdf4cb9a33637210f69c692aecb57d09c2dfb1 /arch/arm/mach-spear3xx/include/mach/generic.h | |
parent | 5fb00f965eeac548015bcd45414cccbe53b13d3f (diff) |
ARM: SPEAr3xx: Add device-tree support to SPEAr3xx architecture
This patch adds a generic target for SPEAr3xx machines that can be configured
via the device-tree. Currently the following devices are supported via the
devicetree:
- VIC interrupts
- PL011 UART
- PL061 GPIO
- PL110 CLCD
- SP805 WDT
- Synopsys DW I2C
- Synopsys DW ethernet
- ST FSMC-NAND
- ST SPEAR-SMI
- ST SPEAR-KEYBOARD
- ST SPEAR-RTC
- ARASAN SDHCI-SPEAR
- SPEAR-EHCI
- SPEAR-OHCI
Other peripheral devices will follow in later patches.
This also removes IO_ADDRESS macro and creates 16 MB static mappings instead of
4K for individual peripherals. This is done to have efficient TLB lookup for any
I/O windows that are located closely together. ioremap() on this range will
return this mapping only instead of creating another.
Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
Diffstat (limited to 'arch/arm/mach-spear3xx/include/mach/generic.h')
-rw-r--r-- | arch/arm/mach-spear3xx/include/mach/generic.h | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/arch/arm/mach-spear3xx/include/mach/generic.h b/arch/arm/mach-spear3xx/include/mach/generic.h index 14276e5a98d2..84ee2bbf1338 100644 --- a/arch/arm/mach-spear3xx/include/mach/generic.h +++ b/arch/arm/mach-spear3xx/include/mach/generic.h | |||
@@ -31,16 +31,13 @@ | |||
31 | #define SPEAR_GPT0_CHAN1_IRQ SPEAR3XX_IRQ_CPU_GPT1_2 | 31 | #define SPEAR_GPT0_CHAN1_IRQ SPEAR3XX_IRQ_CPU_GPT1_2 |
32 | 32 | ||
33 | /* Add spear3xx family device structure declarations here */ | 33 | /* Add spear3xx family device structure declarations here */ |
34 | extern struct amba_device spear3xx_gpio_device; | ||
35 | extern struct amba_device spear3xx_uart_device; | ||
36 | extern struct sys_timer spear3xx_timer; | 34 | extern struct sys_timer spear3xx_timer; |
35 | extern struct pl022_ssp_controller pl022_plat_data; | ||
37 | 36 | ||
38 | /* Add spear3xx family function declarations here */ | 37 | /* Add spear3xx family function declarations here */ |
39 | void __init spear3xx_clk_init(void); | ||
40 | void __init spear_setup_timer(void); | 38 | void __init spear_setup_timer(void); |
41 | void __init spear3xx_map_io(void); | 39 | void __init spear3xx_map_io(void); |
42 | void __init spear3xx_init_irq(void); | 40 | void __init spear3xx_dt_init_irq(void); |
43 | void __init spear3xx_init(void); | ||
44 | 41 | ||
45 | void spear_restart(char, const char *); | 42 | void spear_restart(char, const char *); |
46 | 43 | ||
@@ -99,9 +96,6 @@ extern struct pmx_dev spear3xx_pmx_plgpio_45_46_49_50; | |||
99 | 96 | ||
100 | /* spear300 declarations */ | 97 | /* spear300 declarations */ |
101 | #ifdef CONFIG_MACH_SPEAR300 | 98 | #ifdef CONFIG_MACH_SPEAR300 |
102 | /* Add spear300 machine device structure declarations here */ | ||
103 | extern struct amba_device spear300_gpio1_device; | ||
104 | |||
105 | /* pad mux modes */ | 99 | /* pad mux modes */ |
106 | extern struct pmx_mode spear300_nand_mode; | 100 | extern struct pmx_mode spear300_nand_mode; |
107 | extern struct pmx_mode spear300_nor_mode; | 101 | extern struct pmx_mode spear300_nor_mode; |
@@ -133,16 +127,13 @@ extern struct pmx_dev spear300_pmx_telecom_sdhci_4bit; | |||
133 | extern struct pmx_dev spear300_pmx_telecom_sdhci_8bit; | 127 | extern struct pmx_dev spear300_pmx_telecom_sdhci_8bit; |
134 | extern struct pmx_dev spear300_pmx_gpio1; | 128 | extern struct pmx_dev spear300_pmx_gpio1; |
135 | 129 | ||
136 | /* Add spear300 machine function declarations here */ | 130 | /* Add spear300 machine declarations here */ |
137 | void __init spear300_init(struct pmx_mode *pmx_mode, struct pmx_dev **pmx_devs, | 131 | void __init spear300_clk_init(void); |
138 | u8 pmx_dev_count); | ||
139 | 132 | ||
140 | #endif /* CONFIG_MACH_SPEAR300 */ | 133 | #endif /* CONFIG_MACH_SPEAR300 */ |
141 | 134 | ||
142 | /* spear310 declarations */ | 135 | /* spear310 declarations */ |
143 | #ifdef CONFIG_MACH_SPEAR310 | 136 | #ifdef CONFIG_MACH_SPEAR310 |
144 | /* Add spear310 machine device structure declarations here */ | ||
145 | |||
146 | /* pad mux devices */ | 137 | /* pad mux devices */ |
147 | extern struct pmx_dev spear310_pmx_emi_cs_0_1_4_5; | 138 | extern struct pmx_dev spear310_pmx_emi_cs_0_1_4_5; |
148 | extern struct pmx_dev spear310_pmx_emi_cs_2_3; | 139 | extern struct pmx_dev spear310_pmx_emi_cs_2_3; |
@@ -153,16 +144,13 @@ extern struct pmx_dev spear310_pmx_fsmc; | |||
153 | extern struct pmx_dev spear310_pmx_rs485_0_1; | 144 | extern struct pmx_dev spear310_pmx_rs485_0_1; |
154 | extern struct pmx_dev spear310_pmx_tdm0; | 145 | extern struct pmx_dev spear310_pmx_tdm0; |
155 | 146 | ||
156 | /* Add spear310 machine function declarations here */ | 147 | /* Add spear310 machine declarations here */ |
157 | void __init spear310_init(struct pmx_mode *pmx_mode, struct pmx_dev **pmx_devs, | 148 | void __init spear310_clk_init(void); |
158 | u8 pmx_dev_count); | ||
159 | 149 | ||
160 | #endif /* CONFIG_MACH_SPEAR310 */ | 150 | #endif /* CONFIG_MACH_SPEAR310 */ |
161 | 151 | ||
162 | /* spear320 declarations */ | 152 | /* spear320 declarations */ |
163 | #ifdef CONFIG_MACH_SPEAR320 | 153 | #ifdef CONFIG_MACH_SPEAR320 |
164 | /* Add spear320 machine device structure declarations here */ | ||
165 | |||
166 | /* pad mux modes */ | 154 | /* pad mux modes */ |
167 | extern struct pmx_mode spear320_auto_net_smii_mode; | 155 | extern struct pmx_mode spear320_auto_net_smii_mode; |
168 | extern struct pmx_mode spear320_auto_net_mii_mode; | 156 | extern struct pmx_mode spear320_auto_net_mii_mode; |
@@ -193,9 +181,8 @@ extern struct pmx_dev spear320_pmx_smii0; | |||
193 | extern struct pmx_dev spear320_pmx_smii1; | 181 | extern struct pmx_dev spear320_pmx_smii1; |
194 | extern struct pmx_dev spear320_pmx_i2c1; | 182 | extern struct pmx_dev spear320_pmx_i2c1; |
195 | 183 | ||
196 | /* Add spear320 machine function declarations here */ | 184 | /* Add spear320 machine declarations here */ |
197 | void __init spear320_init(struct pmx_mode *pmx_mode, struct pmx_dev **pmx_devs, | 185 | void __init spear320_clk_init(void); |
198 | u8 pmx_dev_count); | ||
199 | 186 | ||
200 | #endif /* CONFIG_MACH_SPEAR320 */ | 187 | #endif /* CONFIG_MACH_SPEAR320 */ |
201 | 188 | ||