diff options
Diffstat (limited to 'arch/arm/mach-dove')
-rw-r--r-- | arch/arm/mach-dove/common.c | 39 | ||||
-rw-r--r-- | arch/arm/mach-dove/dove-db-setup.c | 1 |
2 files changed, 25 insertions, 15 deletions
diff --git a/arch/arm/mach-dove/common.c b/arch/arm/mach-dove/common.c index 42ab1e7c4ecc..9493076fc594 100644 --- a/arch/arm/mach-dove/common.c +++ b/arch/arm/mach-dove/common.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <linux/platform_device.h> | 14 | #include <linux/platform_device.h> |
15 | #include <linux/pci.h> | 15 | #include <linux/pci.h> |
16 | #include <linux/clk.h> | 16 | #include <linux/clk-provider.h> |
17 | #include <linux/ata_platform.h> | 17 | #include <linux/ata_platform.h> |
18 | #include <linux/gpio.h> | 18 | #include <linux/gpio.h> |
19 | #include <asm/page.h> | 19 | #include <asm/page.h> |
@@ -68,6 +68,19 @@ void __init dove_map_io(void) | |||
68 | } | 68 | } |
69 | 69 | ||
70 | /***************************************************************************** | 70 | /***************************************************************************** |
71 | * CLK tree | ||
72 | ****************************************************************************/ | ||
73 | static struct clk *tclk; | ||
74 | |||
75 | static void __init clk_init(void) | ||
76 | { | ||
77 | tclk = clk_register_fixed_rate(NULL, "tclk", NULL, CLK_IS_ROOT, | ||
78 | get_tclk()); | ||
79 | |||
80 | orion_clkdev_init(tclk); | ||
81 | } | ||
82 | |||
83 | /***************************************************************************** | ||
71 | * EHCI0 | 84 | * EHCI0 |
72 | ****************************************************************************/ | 85 | ****************************************************************************/ |
73 | void __init dove_ehci0_init(void) | 86 | void __init dove_ehci0_init(void) |
@@ -89,8 +102,7 @@ void __init dove_ehci1_init(void) | |||
89 | void __init dove_ge00_init(struct mv643xx_eth_platform_data *eth_data) | 102 | void __init dove_ge00_init(struct mv643xx_eth_platform_data *eth_data) |
90 | { | 103 | { |
91 | orion_ge00_init(eth_data, | 104 | orion_ge00_init(eth_data, |
92 | DOVE_GE00_PHYS_BASE, IRQ_DOVE_GE00_SUM, | 105 | DOVE_GE00_PHYS_BASE, IRQ_DOVE_GE00_SUM, 0); |
93 | 0, get_tclk()); | ||
94 | } | 106 | } |
95 | 107 | ||
96 | /***************************************************************************** | 108 | /***************************************************************************** |
@@ -116,7 +128,7 @@ void __init dove_sata_init(struct mv_sata_platform_data *sata_data) | |||
116 | void __init dove_uart0_init(void) | 128 | void __init dove_uart0_init(void) |
117 | { | 129 | { |
118 | orion_uart0_init(DOVE_UART0_VIRT_BASE, DOVE_UART0_PHYS_BASE, | 130 | orion_uart0_init(DOVE_UART0_VIRT_BASE, DOVE_UART0_PHYS_BASE, |
119 | IRQ_DOVE_UART_0, get_tclk()); | 131 | IRQ_DOVE_UART_0, tclk); |
120 | } | 132 | } |
121 | 133 | ||
122 | /***************************************************************************** | 134 | /***************************************************************************** |
@@ -125,7 +137,7 @@ void __init dove_uart0_init(void) | |||
125 | void __init dove_uart1_init(void) | 137 | void __init dove_uart1_init(void) |
126 | { | 138 | { |
127 | orion_uart1_init(DOVE_UART1_VIRT_BASE, DOVE_UART1_PHYS_BASE, | 139 | orion_uart1_init(DOVE_UART1_VIRT_BASE, DOVE_UART1_PHYS_BASE, |
128 | IRQ_DOVE_UART_1, get_tclk()); | 140 | IRQ_DOVE_UART_1, tclk); |
129 | } | 141 | } |
130 | 142 | ||
131 | /***************************************************************************** | 143 | /***************************************************************************** |
@@ -134,7 +146,7 @@ void __init dove_uart1_init(void) | |||
134 | void __init dove_uart2_init(void) | 146 | void __init dove_uart2_init(void) |
135 | { | 147 | { |
136 | orion_uart2_init(DOVE_UART2_VIRT_BASE, DOVE_UART2_PHYS_BASE, | 148 | orion_uart2_init(DOVE_UART2_VIRT_BASE, DOVE_UART2_PHYS_BASE, |
137 | IRQ_DOVE_UART_2, get_tclk()); | 149 | IRQ_DOVE_UART_2, tclk); |
138 | } | 150 | } |
139 | 151 | ||
140 | /***************************************************************************** | 152 | /***************************************************************************** |
@@ -143,7 +155,7 @@ void __init dove_uart2_init(void) | |||
143 | void __init dove_uart3_init(void) | 155 | void __init dove_uart3_init(void) |
144 | { | 156 | { |
145 | orion_uart3_init(DOVE_UART3_VIRT_BASE, DOVE_UART3_PHYS_BASE, | 157 | orion_uart3_init(DOVE_UART3_VIRT_BASE, DOVE_UART3_PHYS_BASE, |
146 | IRQ_DOVE_UART_3, get_tclk()); | 158 | IRQ_DOVE_UART_3, tclk); |
147 | } | 159 | } |
148 | 160 | ||
149 | /***************************************************************************** | 161 | /***************************************************************************** |
@@ -151,12 +163,12 @@ void __init dove_uart3_init(void) | |||
151 | ****************************************************************************/ | 163 | ****************************************************************************/ |
152 | void __init dove_spi0_init(void) | 164 | void __init dove_spi0_init(void) |
153 | { | 165 | { |
154 | orion_spi_init(DOVE_SPI0_PHYS_BASE, get_tclk()); | 166 | orion_spi_init(DOVE_SPI0_PHYS_BASE); |
155 | } | 167 | } |
156 | 168 | ||
157 | void __init dove_spi1_init(void) | 169 | void __init dove_spi1_init(void) |
158 | { | 170 | { |
159 | orion_spi_1_init(DOVE_SPI1_PHYS_BASE, get_tclk()); | 171 | orion_spi_1_init(DOVE_SPI1_PHYS_BASE); |
160 | } | 172 | } |
161 | 173 | ||
162 | /***************************************************************************** | 174 | /***************************************************************************** |
@@ -272,18 +284,17 @@ void __init dove_sdio1_init(void) | |||
272 | 284 | ||
273 | void __init dove_init(void) | 285 | void __init dove_init(void) |
274 | { | 286 | { |
275 | int tclk; | ||
276 | |||
277 | tclk = get_tclk(); | ||
278 | |||
279 | printk(KERN_INFO "Dove 88AP510 SoC, "); | 287 | printk(KERN_INFO "Dove 88AP510 SoC, "); |
280 | printk(KERN_INFO "TCLK = %dMHz\n", (tclk + 499999) / 1000000); | 288 | printk(KERN_INFO "TCLK = %dMHz\n", (get_tclk() + 499999) / 1000000); |
281 | 289 | ||
282 | #ifdef CONFIG_CACHE_TAUROS2 | 290 | #ifdef CONFIG_CACHE_TAUROS2 |
283 | tauros2_init(); | 291 | tauros2_init(); |
284 | #endif | 292 | #endif |
285 | dove_setup_cpu_mbus(); | 293 | dove_setup_cpu_mbus(); |
286 | 294 | ||
295 | /* Setup root of clk tree */ | ||
296 | clk_init(); | ||
297 | |||
287 | /* internal devices that every board has */ | 298 | /* internal devices that every board has */ |
288 | dove_rtc_init(); | 299 | dove_rtc_init(); |
289 | dove_xor0_init(); | 300 | dove_xor0_init(); |
diff --git a/arch/arm/mach-dove/dove-db-setup.c b/arch/arm/mach-dove/dove-db-setup.c index ea77ae430b2d..bc2867f11346 100644 --- a/arch/arm/mach-dove/dove-db-setup.c +++ b/arch/arm/mach-dove/dove-db-setup.c | |||
@@ -20,7 +20,6 @@ | |||
20 | #include <linux/i2c.h> | 20 | #include <linux/i2c.h> |
21 | #include <linux/pci.h> | 21 | #include <linux/pci.h> |
22 | #include <linux/spi/spi.h> | 22 | #include <linux/spi/spi.h> |
23 | #include <linux/spi/orion_spi.h> | ||
24 | #include <linux/spi/flash.h> | 23 | #include <linux/spi/flash.h> |
25 | #include <linux/gpio.h> | 24 | #include <linux/gpio.h> |
26 | #include <asm/mach-types.h> | 25 | #include <asm/mach-types.h> |