aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-spear3xx/include/mach/generic.h
diff options
context:
space:
mode:
authorViresh Kumar <viresh.kumar@st.com>2012-03-22 14:47:43 -0400
committerArnd Bergmann <arnd@arndb.de>2012-04-22 16:41:35 -0400
commitc5fa4fdcdbe5f52c3e36892cc81f9378339b00ce (patch)
tree1dbdf4cb9a33637210f69c692aecb57d09c2dfb1 /arch/arm/mach-spear3xx/include/mach/generic.h
parent5fb00f965eeac548015bcd45414cccbe53b13d3f (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.h29
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 */
34extern struct amba_device spear3xx_gpio_device;
35extern struct amba_device spear3xx_uart_device;
36extern struct sys_timer spear3xx_timer; 34extern struct sys_timer spear3xx_timer;
35extern struct pl022_ssp_controller pl022_plat_data;
37 36
38/* Add spear3xx family function declarations here */ 37/* Add spear3xx family function declarations here */
39void __init spear3xx_clk_init(void);
40void __init spear_setup_timer(void); 38void __init spear_setup_timer(void);
41void __init spear3xx_map_io(void); 39void __init spear3xx_map_io(void);
42void __init spear3xx_init_irq(void); 40void __init spear3xx_dt_init_irq(void);
43void __init spear3xx_init(void);
44 41
45void spear_restart(char, const char *); 42void 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 */
103extern struct amba_device spear300_gpio1_device;
104
105/* pad mux modes */ 99/* pad mux modes */
106extern struct pmx_mode spear300_nand_mode; 100extern struct pmx_mode spear300_nand_mode;
107extern struct pmx_mode spear300_nor_mode; 101extern struct pmx_mode spear300_nor_mode;
@@ -133,16 +127,13 @@ extern struct pmx_dev spear300_pmx_telecom_sdhci_4bit;
133extern struct pmx_dev spear300_pmx_telecom_sdhci_8bit; 127extern struct pmx_dev spear300_pmx_telecom_sdhci_8bit;
134extern struct pmx_dev spear300_pmx_gpio1; 128extern struct pmx_dev spear300_pmx_gpio1;
135 129
136/* Add spear300 machine function declarations here */ 130/* Add spear300 machine declarations here */
137void __init spear300_init(struct pmx_mode *pmx_mode, struct pmx_dev **pmx_devs, 131void __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 */
147extern struct pmx_dev spear310_pmx_emi_cs_0_1_4_5; 138extern struct pmx_dev spear310_pmx_emi_cs_0_1_4_5;
148extern struct pmx_dev spear310_pmx_emi_cs_2_3; 139extern struct pmx_dev spear310_pmx_emi_cs_2_3;
@@ -153,16 +144,13 @@ extern struct pmx_dev spear310_pmx_fsmc;
153extern struct pmx_dev spear310_pmx_rs485_0_1; 144extern struct pmx_dev spear310_pmx_rs485_0_1;
154extern struct pmx_dev spear310_pmx_tdm0; 145extern struct pmx_dev spear310_pmx_tdm0;
155 146
156/* Add spear310 machine function declarations here */ 147/* Add spear310 machine declarations here */
157void __init spear310_init(struct pmx_mode *pmx_mode, struct pmx_dev **pmx_devs, 148void __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 */
167extern struct pmx_mode spear320_auto_net_smii_mode; 155extern struct pmx_mode spear320_auto_net_smii_mode;
168extern struct pmx_mode spear320_auto_net_mii_mode; 156extern struct pmx_mode spear320_auto_net_mii_mode;
@@ -193,9 +181,8 @@ extern struct pmx_dev spear320_pmx_smii0;
193extern struct pmx_dev spear320_pmx_smii1; 181extern struct pmx_dev spear320_pmx_smii1;
194extern struct pmx_dev spear320_pmx_i2c1; 182extern struct pmx_dev spear320_pmx_i2c1;
195 183
196/* Add spear320 machine function declarations here */ 184/* Add spear320 machine declarations here */
197void __init spear320_init(struct pmx_mode *pmx_mode, struct pmx_dev **pmx_devs, 185void __init spear320_clk_init(void);
198 u8 pmx_dev_count);
199 186
200#endif /* CONFIG_MACH_SPEAR320 */ 187#endif /* CONFIG_MACH_SPEAR320 */
201 188