aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>2013-06-27 05:47:56 -0400
committerSimon Horman <horms+renesas@verge.net.au>2013-07-17 01:25:37 -0400
commit1e453df90047f052cdce2041a572830c8eb32084 (patch)
tree858b0763f3c5d377271338f8ea483f36938f9158
parenta040f22d2c2e82347f978b52e7402a7387e5dee5 (diff)
ARM: shmobile: r8a73a4: add clocks for I2C controllers
r8a73a4 SoCs have numerous I2C controllers, of which 9 are compatible with the i2c-sh_mobile.c driver. This patch adds clock definitions for them. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
-rw-r--r--arch/arm/mach-shmobile/clock-r8a73a4.c25
1 files changed, 23 insertions, 2 deletions
diff --git a/arch/arm/mach-shmobile/clock-r8a73a4.c b/arch/arm/mach-shmobile/clock-r8a73a4.c
index 27ff58c8e078..f831b3bbbb07 100644
--- a/arch/arm/mach-shmobile/clock-r8a73a4.c
+++ b/arch/arm/mach-shmobile/clock-r8a73a4.c
@@ -30,6 +30,7 @@
30 30
31#define SMSTPCR2 0xe6150138 31#define SMSTPCR2 0xe6150138
32#define SMSTPCR3 0xe615013c 32#define SMSTPCR3 0xe615013c
33#define SMSTPCR4 0xe6150140
33#define SMSTPCR5 0xe6150144 34#define SMSTPCR5 0xe6150144
34 35
35#define FRQCRA 0xE6150000 36#define FRQCRA 0xE6150000
@@ -504,8 +505,10 @@ static struct clk div6_clks[DIV6_NR] = {
504/* MSTP */ 505/* MSTP */
505enum { 506enum {
506 MSTP217, MSTP216, MSTP207, MSTP206, MSTP204, MSTP203, 507 MSTP217, MSTP216, MSTP207, MSTP206, MSTP204, MSTP203,
507 MSTP315, MSTP314, MSTP313, MSTP312, MSTP305, 508 MSTP323, MSTP318, MSTP317, MSTP316,
508 MSTP522, 509 MSTP315, MSTP314, MSTP313, MSTP312, MSTP305, MSTP300,
510 MSTP411, MSTP410, MSTP409,
511 MSTP522, MSTP515,
509 MSTP_NR 512 MSTP_NR
510}; 513};
511 514
@@ -516,12 +519,21 @@ static struct clk mstp_clks[MSTP_NR] = {
516 [MSTP207] = SH_CLK_MSTP32(&div6_clks[DIV6_MP], SMSTPCR2, 7, 0), /* SCIFB1 */ 519 [MSTP207] = SH_CLK_MSTP32(&div6_clks[DIV6_MP], SMSTPCR2, 7, 0), /* SCIFB1 */
517 [MSTP216] = SH_CLK_MSTP32(&div6_clks[DIV6_MP], SMSTPCR2, 16, 0), /* SCIFB2 */ 520 [MSTP216] = SH_CLK_MSTP32(&div6_clks[DIV6_MP], SMSTPCR2, 16, 0), /* SCIFB2 */
518 [MSTP217] = SH_CLK_MSTP32(&div6_clks[DIV6_MP], SMSTPCR2, 17, 0), /* SCIFB3 */ 521 [MSTP217] = SH_CLK_MSTP32(&div6_clks[DIV6_MP], SMSTPCR2, 17, 0), /* SCIFB3 */
522 [MSTP300] = SH_CLK_MSTP32(&div4_clks[DIV4_HP], SMSTPCR3, 0, 0), /* IIC2 */
519 [MSTP305] = SH_CLK_MSTP32(&div6_clks[DIV6_MMC1],SMSTPCR3, 5, 0), /* MMCIF1 */ 523 [MSTP305] = SH_CLK_MSTP32(&div6_clks[DIV6_MMC1],SMSTPCR3, 5, 0), /* MMCIF1 */
520 [MSTP312] = SH_CLK_MSTP32(&div6_clks[DIV6_SDHI2],SMSTPCR3, 12, 0), /* SDHI2 */ 524 [MSTP312] = SH_CLK_MSTP32(&div6_clks[DIV6_SDHI2],SMSTPCR3, 12, 0), /* SDHI2 */
521 [MSTP313] = SH_CLK_MSTP32(&div6_clks[DIV6_SDHI1],SMSTPCR3, 13, 0), /* SDHI1 */ 525 [MSTP313] = SH_CLK_MSTP32(&div6_clks[DIV6_SDHI1],SMSTPCR3, 13, 0), /* SDHI1 */
522 [MSTP314] = SH_CLK_MSTP32(&div6_clks[DIV6_SDHI0],SMSTPCR3, 14, 0), /* SDHI0 */ 526 [MSTP314] = SH_CLK_MSTP32(&div6_clks[DIV6_SDHI0],SMSTPCR3, 14, 0), /* SDHI0 */
523 [MSTP315] = SH_CLK_MSTP32(&div6_clks[DIV6_MMC0],SMSTPCR3, 15, 0), /* MMCIF0 */ 527 [MSTP315] = SH_CLK_MSTP32(&div6_clks[DIV6_MMC0],SMSTPCR3, 15, 0), /* MMCIF0 */
528 [MSTP316] = SH_CLK_MSTP32(&div4_clks[DIV4_HP], SMSTPCR3, 16, 0), /* IIC6 */
529 [MSTP317] = SH_CLK_MSTP32(&div4_clks[DIV4_HP], SMSTPCR3, 17, 0), /* IIC7 */
530 [MSTP318] = SH_CLK_MSTP32(&div4_clks[DIV4_HP], SMSTPCR3, 18, 0), /* IIC0 */
531 [MSTP323] = SH_CLK_MSTP32(&div4_clks[DIV4_HP], SMSTPCR3, 23, 0), /* IIC1 */
532 [MSTP409] = SH_CLK_MSTP32(&main_div2_clk, SMSTPCR4, 9, 0), /* IIC5 */
533 [MSTP410] = SH_CLK_MSTP32(&div4_clks[DIV4_HP], SMSTPCR4, 10, 0), /* IIC4 */
534 [MSTP411] = SH_CLK_MSTP32(&div4_clks[DIV4_HP], SMSTPCR4, 11, 0), /* IIC3 */
524 [MSTP522] = SH_CLK_MSTP32(&extal2_clk, SMSTPCR5, 22, 0), /* Thermal */ 535 [MSTP522] = SH_CLK_MSTP32(&extal2_clk, SMSTPCR5, 22, 0), /* Thermal */
536 [MSTP515] = SH_CLK_MSTP32(&div4_clks[DIV4_HP], SMSTPCR5, 15, 0), /* IIC8 */
525}; 537};
526 538
527static struct clk_lookup lookups[] = { 539static struct clk_lookup lookups[] = {
@@ -566,6 +578,7 @@ static struct clk_lookup lookups[] = {
566 CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP216]), 578 CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP216]),
567 CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP217]), 579 CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP217]),
568 CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]), 580 CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]),
581 CLKDEV_DEV_ID("e6520000.i2c", &mstp_clks[MSTP300]),
569 CLKDEV_DEV_ID("sh_mmcif.1", &mstp_clks[MSTP305]), 582 CLKDEV_DEV_ID("sh_mmcif.1", &mstp_clks[MSTP305]),
570 CLKDEV_DEV_ID("ee220000.mmcif", &mstp_clks[MSTP305]), 583 CLKDEV_DEV_ID("ee220000.mmcif", &mstp_clks[MSTP305]),
571 CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP312]), 584 CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP312]),
@@ -576,6 +589,14 @@ static struct clk_lookup lookups[] = {
576 CLKDEV_DEV_ID("ee100000.sdhi", &mstp_clks[MSTP314]), 589 CLKDEV_DEV_ID("ee100000.sdhi", &mstp_clks[MSTP314]),
577 CLKDEV_DEV_ID("sh_mmcif.0", &mstp_clks[MSTP315]), 590 CLKDEV_DEV_ID("sh_mmcif.0", &mstp_clks[MSTP315]),
578 CLKDEV_DEV_ID("ee200000.mmcif", &mstp_clks[MSTP315]), 591 CLKDEV_DEV_ID("ee200000.mmcif", &mstp_clks[MSTP315]),
592 CLKDEV_DEV_ID("e6550000.i2c", &mstp_clks[MSTP316]),
593 CLKDEV_DEV_ID("e6560000.i2c", &mstp_clks[MSTP317]),
594 CLKDEV_DEV_ID("e6500000.i2c", &mstp_clks[MSTP318]),
595 CLKDEV_DEV_ID("e6510000.i2c", &mstp_clks[MSTP323]),
596 CLKDEV_DEV_ID("e60b0000.i2c", &mstp_clks[MSTP409]),
597 CLKDEV_DEV_ID("e6540000.i2c", &mstp_clks[MSTP410]),
598 CLKDEV_DEV_ID("e6530000.i2c", &mstp_clks[MSTP411]),
599 CLKDEV_DEV_ID("e6570000.i2c", &mstp_clks[MSTP515]),
579 600
580 /* for DT */ 601 /* for DT */
581 CLKDEV_DEV_ID("e61f0000.thermal", &mstp_clks[MSTP522]), 602 CLKDEV_DEV_ID("e61f0000.thermal", &mstp_clks[MSTP522]),