aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBoris BREZILLON <boris.brezillon@free-electrons.com>2014-09-23 07:18:33 -0400
committerNicolas Ferre <nicolas.ferre@atmel.com>2014-11-13 10:08:01 -0500
commita98250217997f3b8d47d21ffaedd39b32d1798eb (patch)
treed683e5f1b550cec5b15a9c6360f1374ff4b21b7b
parent3969eb48ad7f3f3bef61f5474b7214e601fd2d75 (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.c2
-rw-r--r--arch/arm/mach-at91/at91sam9261.c2
-rw-r--r--arch/arm/mach-at91/at91sam9263.c4
-rw-r--r--arch/arm/mach-at91/at91sam9g45.c2
-rw-r--r--arch/arm/mach-at91/at91sam9rl.c2
-rw-r--r--arch/arm/mach-at91/clock.c2
-rw-r--r--arch/arm/mach-at91/clock.h1
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
214static struct clk_lookup usart_clocks_lookups[] = { 216static 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
232static struct clk_lookup usart_clocks_lookups[] = { 236static 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 */
118static struct clk clk32k = { 118struct 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 {
34extern int __init clk_register(struct clk *clk); 34extern int __init clk_register(struct clk *clk);
35extern struct clk mck; 35extern struct clk mck;
36extern struct clk utmi_clk; 36extern struct clk utmi_clk;
37extern struct clk clk32k;
37 38
38#define CLKDEV_CON_ID(_id, _clk) \ 39#define CLKDEV_CON_ID(_id, _clk) \
39 { \ 40 { \