diff options
author | Boris BREZILLON <boris.brezillon@free-electrons.com> | 2014-09-23 07:18:33 -0400 |
---|---|---|
committer | Nicolas Ferre <nicolas.ferre@atmel.com> | 2014-11-13 10:08:01 -0500 |
commit | a98250217997f3b8d47d21ffaedd39b32d1798eb (patch) | |
tree | d683e5f1b550cec5b15a9c6360f1374ff4b21b7b | |
parent | 3969eb48ad7f3f3bef61f5474b7214e601fd2d75 (diff) |
ARM: at91: add clk_lookup entry for RTT devices
First export the clk32k clk.
Then add clk_lookup entries for RTT devices so that rtc-at91sam9 driver
can retrieve and manipulate the slow clk.
Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Acked-by: Johan Hovold <johan@kernel.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
-rw-r--r-- | arch/arm/mach-at91/at91sam9260.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91sam9261.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91sam9263.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91sam9g45.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91sam9rl.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-at91/clock.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-at91/clock.h | 1 |
7 files changed, 14 insertions, 1 deletions
diff --git a/arch/arm/mach-at91/at91sam9260.c b/arch/arm/mach-at91/at91sam9260.c index aab1f969a7c3..990b82fdd409 100644 --- a/arch/arm/mach-at91/at91sam9260.c +++ b/arch/arm/mach-at91/at91sam9260.c | |||
@@ -217,6 +217,7 @@ static struct clk_lookup periph_clocks_lookups[] = { | |||
217 | CLKDEV_CON_DEV_ID("pclk", "fffbc000.ssc", &ssc_clk), | 217 | CLKDEV_CON_DEV_ID("pclk", "fffbc000.ssc", &ssc_clk), |
218 | CLKDEV_CON_DEV_ID(NULL, "i2c-at91sam9260.0", &twi_clk), | 218 | CLKDEV_CON_DEV_ID(NULL, "i2c-at91sam9260.0", &twi_clk), |
219 | CLKDEV_CON_DEV_ID(NULL, "i2c-at91sam9g20.0", &twi_clk), | 219 | CLKDEV_CON_DEV_ID(NULL, "i2c-at91sam9g20.0", &twi_clk), |
220 | CLKDEV_CON_DEV_ID(NULL, "rtc-at91sam9.0", &clk32k), | ||
220 | /* more usart lookup table for DT entries */ | 221 | /* more usart lookup table for DT entries */ |
221 | CLKDEV_CON_DEV_ID("usart", "fffff200.serial", &mck), | 222 | CLKDEV_CON_DEV_ID("usart", "fffff200.serial", &mck), |
222 | CLKDEV_CON_DEV_ID("usart", "fffb0000.serial", &usart0_clk), | 223 | CLKDEV_CON_DEV_ID("usart", "fffb0000.serial", &usart0_clk), |
@@ -237,6 +238,7 @@ static struct clk_lookup periph_clocks_lookups[] = { | |||
237 | CLKDEV_CON_DEV_ID("mci_clk", "fffa8000.mmc", &mmc_clk), | 238 | CLKDEV_CON_DEV_ID("mci_clk", "fffa8000.mmc", &mmc_clk), |
238 | CLKDEV_CON_DEV_ID("spi_clk", "fffc8000.spi", &spi0_clk), | 239 | CLKDEV_CON_DEV_ID("spi_clk", "fffc8000.spi", &spi0_clk), |
239 | CLKDEV_CON_DEV_ID("spi_clk", "fffcc000.spi", &spi1_clk), | 240 | CLKDEV_CON_DEV_ID("spi_clk", "fffcc000.spi", &spi1_clk), |
241 | CLKDEV_CON_DEV_ID(NULL, "fffffd20.rtc", &clk32k), | ||
240 | /* fake hclk clock */ | 242 | /* fake hclk clock */ |
241 | CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), | 243 | CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), |
242 | CLKDEV_CON_ID("pioA", &pioA_clk), | 244 | CLKDEV_CON_ID("pioA", &pioA_clk), |
diff --git a/arch/arm/mach-at91/at91sam9261.c b/arch/arm/mach-at91/at91sam9261.c index a8bd35963332..a23b3cfbc6af 100644 --- a/arch/arm/mach-at91/at91sam9261.c +++ b/arch/arm/mach-at91/at91sam9261.c | |||
@@ -192,6 +192,7 @@ static struct clk_lookup periph_clocks_lookups[] = { | |||
192 | CLKDEV_CON_ID("pioA", &pioA_clk), | 192 | CLKDEV_CON_ID("pioA", &pioA_clk), |
193 | CLKDEV_CON_ID("pioB", &pioB_clk), | 193 | CLKDEV_CON_ID("pioB", &pioB_clk), |
194 | CLKDEV_CON_ID("pioC", &pioC_clk), | 194 | CLKDEV_CON_ID("pioC", &pioC_clk), |
195 | CLKDEV_CON_DEV_ID(NULL, "rtc-at91sam9.0", &clk32k), | ||
195 | /* more lookup table for DT entries */ | 196 | /* more lookup table for DT entries */ |
196 | CLKDEV_CON_DEV_ID("usart", "fffff200.serial", &mck), | 197 | CLKDEV_CON_DEV_ID("usart", "fffff200.serial", &mck), |
197 | CLKDEV_CON_DEV_ID("usart", "fffb0000.serial", &usart0_clk), | 198 | CLKDEV_CON_DEV_ID("usart", "fffb0000.serial", &usart0_clk), |
@@ -209,6 +210,7 @@ static struct clk_lookup periph_clocks_lookups[] = { | |||
209 | CLKDEV_CON_DEV_ID(NULL, "fffff400.gpio", &pioA_clk), | 210 | CLKDEV_CON_DEV_ID(NULL, "fffff400.gpio", &pioA_clk), |
210 | CLKDEV_CON_DEV_ID(NULL, "fffff600.gpio", &pioB_clk), | 211 | CLKDEV_CON_DEV_ID(NULL, "fffff600.gpio", &pioB_clk), |
211 | CLKDEV_CON_DEV_ID(NULL, "fffff800.gpio", &pioC_clk), | 212 | CLKDEV_CON_DEV_ID(NULL, "fffff800.gpio", &pioC_clk), |
213 | CLKDEV_CON_DEV_ID(NULL, "fffffd20.rtc", &clk32k), | ||
212 | }; | 214 | }; |
213 | 215 | ||
214 | static struct clk_lookup usart_clocks_lookups[] = { | 216 | static struct clk_lookup usart_clocks_lookups[] = { |
diff --git a/arch/arm/mach-at91/at91sam9263.c b/arch/arm/mach-at91/at91sam9263.c index fbff228cc63e..1082fd488263 100644 --- a/arch/arm/mach-at91/at91sam9263.c +++ b/arch/arm/mach-at91/at91sam9263.c | |||
@@ -201,6 +201,8 @@ static struct clk_lookup periph_clocks_lookups[] = { | |||
201 | CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tcb_clk), | 201 | CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tcb_clk), |
202 | CLKDEV_CON_DEV_ID(NULL, "i2c-at91sam9260.0", &twi_clk), | 202 | CLKDEV_CON_DEV_ID(NULL, "i2c-at91sam9260.0", &twi_clk), |
203 | CLKDEV_CON_DEV_ID(NULL, "at91sam9rl-pwm", &pwm_clk), | 203 | CLKDEV_CON_DEV_ID(NULL, "at91sam9rl-pwm", &pwm_clk), |
204 | CLKDEV_CON_DEV_ID(NULL, "rtc-at91sam9.0", &clk32k), | ||
205 | CLKDEV_CON_DEV_ID(NULL, "rtc-at91sam9.1", &clk32k), | ||
204 | /* fake hclk clock */ | 206 | /* fake hclk clock */ |
205 | CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), | 207 | CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), |
206 | CLKDEV_CON_ID("pioA", &pioA_clk), | 208 | CLKDEV_CON_ID("pioA", &pioA_clk), |
@@ -227,6 +229,8 @@ static struct clk_lookup periph_clocks_lookups[] = { | |||
227 | CLKDEV_CON_DEV_ID(NULL, "fffff800.gpio", &pioCDE_clk), | 229 | CLKDEV_CON_DEV_ID(NULL, "fffff800.gpio", &pioCDE_clk), |
228 | CLKDEV_CON_DEV_ID(NULL, "fffffa00.gpio", &pioCDE_clk), | 230 | CLKDEV_CON_DEV_ID(NULL, "fffffa00.gpio", &pioCDE_clk), |
229 | CLKDEV_CON_DEV_ID(NULL, "fffb8000.pwm", &pwm_clk), | 231 | CLKDEV_CON_DEV_ID(NULL, "fffb8000.pwm", &pwm_clk), |
232 | CLKDEV_CON_DEV_ID(NULL, "fffffd20.rtc", &clk32k), | ||
233 | CLKDEV_CON_DEV_ID(NULL, "fffffd50.rtc", &clk32k), | ||
230 | }; | 234 | }; |
231 | 235 | ||
232 | static struct clk_lookup usart_clocks_lookups[] = { | 236 | static struct clk_lookup usart_clocks_lookups[] = { |
diff --git a/arch/arm/mach-at91/at91sam9g45.c b/arch/arm/mach-at91/at91sam9g45.c index 405427ec05f8..9c4c4cebfdf1 100644 --- a/arch/arm/mach-at91/at91sam9g45.c +++ b/arch/arm/mach-at91/at91sam9g45.c | |||
@@ -254,6 +254,7 @@ static struct clk_lookup periph_clocks_lookups[] = { | |||
254 | CLKDEV_CON_DEV_ID(NULL, "atmel_tdes", &aestdessha_clk), | 254 | CLKDEV_CON_DEV_ID(NULL, "atmel_tdes", &aestdessha_clk), |
255 | CLKDEV_CON_DEV_ID(NULL, "atmel_aes", &aestdessha_clk), | 255 | CLKDEV_CON_DEV_ID(NULL, "atmel_aes", &aestdessha_clk), |
256 | CLKDEV_CON_DEV_ID(NULL, "at91sam9rl-pwm", &pwm_clk), | 256 | CLKDEV_CON_DEV_ID(NULL, "at91sam9rl-pwm", &pwm_clk), |
257 | CLKDEV_CON_DEV_ID(NULL, "rtc-at91sam9.0", &clk32k), | ||
257 | /* more usart lookup table for DT entries */ | 258 | /* more usart lookup table for DT entries */ |
258 | CLKDEV_CON_DEV_ID("usart", "ffffee00.serial", &mck), | 259 | CLKDEV_CON_DEV_ID("usart", "ffffee00.serial", &mck), |
259 | CLKDEV_CON_DEV_ID("usart", "fff8c000.serial", &usart0_clk), | 260 | CLKDEV_CON_DEV_ID("usart", "fff8c000.serial", &usart0_clk), |
@@ -280,6 +281,7 @@ static struct clk_lookup periph_clocks_lookups[] = { | |||
280 | CLKDEV_CON_DEV_ID(NULL, "fffff600.gpio", &pioC_clk), | 281 | CLKDEV_CON_DEV_ID(NULL, "fffff600.gpio", &pioC_clk), |
281 | CLKDEV_CON_DEV_ID(NULL, "fffff800.gpio", &pioDE_clk), | 282 | CLKDEV_CON_DEV_ID(NULL, "fffff800.gpio", &pioDE_clk), |
282 | CLKDEV_CON_DEV_ID(NULL, "fffffa00.gpio", &pioDE_clk), | 283 | CLKDEV_CON_DEV_ID(NULL, "fffffa00.gpio", &pioDE_clk), |
284 | CLKDEV_CON_DEV_ID(NULL, "fffffd20.rtc", &clk32k), | ||
283 | 285 | ||
284 | CLKDEV_CON_ID("pioA", &pioA_clk), | 286 | CLKDEV_CON_ID("pioA", &pioA_clk), |
285 | CLKDEV_CON_ID("pioB", &pioB_clk), | 287 | CLKDEV_CON_ID("pioB", &pioB_clk), |
diff --git a/arch/arm/mach-at91/at91sam9rl.c b/arch/arm/mach-at91/at91sam9rl.c index f553e4ea034b..40c815c62742 100644 --- a/arch/arm/mach-at91/at91sam9rl.c +++ b/arch/arm/mach-at91/at91sam9rl.c | |||
@@ -205,6 +205,7 @@ static struct clk_lookup periph_clocks_lookups[] = { | |||
205 | CLKDEV_CON_ID("pioB", &pioB_clk), | 205 | CLKDEV_CON_ID("pioB", &pioB_clk), |
206 | CLKDEV_CON_ID("pioC", &pioC_clk), | 206 | CLKDEV_CON_ID("pioC", &pioC_clk), |
207 | CLKDEV_CON_ID("pioD", &pioD_clk), | 207 | CLKDEV_CON_ID("pioD", &pioD_clk), |
208 | CLKDEV_CON_DEV_ID(NULL, "rtc-at91sam9.0", &clk32k), | ||
208 | /* more lookup table for DT entries */ | 209 | /* more lookup table for DT entries */ |
209 | CLKDEV_CON_DEV_ID("usart", "fffff200.serial", &mck), | 210 | CLKDEV_CON_DEV_ID("usart", "fffff200.serial", &mck), |
210 | CLKDEV_CON_DEV_ID("usart", "fffb0000.serial", &usart0_clk), | 211 | CLKDEV_CON_DEV_ID("usart", "fffb0000.serial", &usart0_clk), |
@@ -223,6 +224,7 @@ static struct clk_lookup periph_clocks_lookups[] = { | |||
223 | CLKDEV_CON_DEV_ID(NULL, "fffff600.gpio", &pioB_clk), | 224 | CLKDEV_CON_DEV_ID(NULL, "fffff600.gpio", &pioB_clk), |
224 | CLKDEV_CON_DEV_ID(NULL, "fffff800.gpio", &pioC_clk), | 225 | CLKDEV_CON_DEV_ID(NULL, "fffff800.gpio", &pioC_clk), |
225 | CLKDEV_CON_DEV_ID(NULL, "fffffa00.gpio", &pioD_clk), | 226 | CLKDEV_CON_DEV_ID(NULL, "fffffa00.gpio", &pioD_clk), |
227 | CLKDEV_CON_DEV_ID(NULL, "fffffd20.rtc", &clk32k), | ||
226 | CLKDEV_CON_ID("adc_clk", &tsc_clk), | 228 | CLKDEV_CON_ID("adc_clk", &tsc_clk), |
227 | }; | 229 | }; |
228 | 230 | ||
diff --git a/arch/arm/mach-at91/clock.c b/arch/arm/mach-at91/clock.c index d66f102c352a..f569e4826848 100644 --- a/arch/arm/mach-at91/clock.c +++ b/arch/arm/mach-at91/clock.c | |||
@@ -115,7 +115,7 @@ static u32 at91_pllb_usb_init; | |||
115 | * 48 MHz (unless no USB function clocks are needed). The main clock and | 115 | * 48 MHz (unless no USB function clocks are needed). The main clock and |
116 | * both PLLs are turned off to run in "slow clock mode" (system suspend). | 116 | * both PLLs are turned off to run in "slow clock mode" (system suspend). |
117 | */ | 117 | */ |
118 | static struct clk clk32k = { | 118 | struct clk clk32k = { |
119 | .name = "clk32k", | 119 | .name = "clk32k", |
120 | .rate_hz = AT91_SLOW_CLOCK, | 120 | .rate_hz = AT91_SLOW_CLOCK, |
121 | .users = 1, /* always on */ | 121 | .users = 1, /* always on */ |
diff --git a/arch/arm/mach-at91/clock.h b/arch/arm/mach-at91/clock.h index a98a39bbd883..6eb825abbdde 100644 --- a/arch/arm/mach-at91/clock.h +++ b/arch/arm/mach-at91/clock.h | |||
@@ -34,6 +34,7 @@ struct clk { | |||
34 | extern int __init clk_register(struct clk *clk); | 34 | extern int __init clk_register(struct clk *clk); |
35 | extern struct clk mck; | 35 | extern struct clk mck; |
36 | extern struct clk utmi_clk; | 36 | extern struct clk utmi_clk; |
37 | extern struct clk clk32k; | ||
37 | 38 | ||
38 | #define CLKDEV_CON_ID(_id, _clk) \ | 39 | #define CLKDEV_CON_ID(_id, _clk) \ |
39 | { \ | 40 | { \ |