| From 9335e7d7f5827af9446ac83c09eef75942d2cc90 Mon Sep 17 00:00:00 2001 |
| From: Magnus Damm <damm@opensource.se> |
| Date: Tue, 22 Nov 2011 15:44:58 +0900 |
| Subject: ARM: mach-shmobile: Kota2 TPU LED platform data |
| |
| This patch updates the Kota2 board support code to |
| use the recently merged TPU LED driver whenever |
| possible. |
| |
| The sh73a0 SoC has 5 TPU hardware blocks each with |
| 4 timer channels which in theory allows a total of |
| 20 LEDs to be controlled by "leds-renesas-tpu" |
| driver instances. The Kota2 board has 4 LEDs connected |
| to GPIO pins that also come with TPU pin functions, so |
| this patch ties up these 4 LEDS and leaves the remaining |
| 3 LEDS for the GPIO based LED driver. |
| |
| Signed-off-by: Magnus Damm <damm@opensource.se> |
| Signed-off-by: Paul Mundt <lethal@linux-sh.org> |
| (cherry picked from commit 33661c9e2062865acde9d421c971f1c142cf99ca) |
| |
| Conflicts: |
| |
| arch/arm/mach-shmobile/board-kota2.c |
| |
| Signed-off-by: Simon Horman <horms@verge.net.au> |
| --- |
| arch/arm/mach-shmobile/clock-sh73a0.c | 16 ++++++++++++++++ |
| 1 file changed, 16 insertions(+) |
| |
| diff --git a/arch/arm/mach-shmobile/clock-sh73a0.c b/arch/arm/mach-shmobile/clock-sh73a0.c |
| index 44a923d..7df1f11 100644 |
| --- a/arch/arm/mach-shmobile/clock-sh73a0.c |
| +++ b/arch/arm/mach-shmobile/clock-sh73a0.c |
| @@ -113,6 +113,12 @@ static struct clk main_clk = { |
| .ops = &main_clk_ops, |
| }; |
| |
| +/* Divide Main clock by two */ |
| +static struct clk main_div2_clk = { |
| + .ops = &div2_clk_ops, |
| + .parent = &main_clk, |
| +}; |
| + |
| /* PLL0, PLL1, PLL2, PLL3 */ |
| static unsigned long pll_recalc(struct clk *clk) |
| { |
| @@ -181,6 +187,7 @@ static struct clk *main_clks[] = { |
| &extal1_div2_clk, |
| &extal2_div2_clk, |
| &main_clk, |
| + &main_div2_clk, |
| &pll0_clk, |
| &pll1_clk, |
| &pll2_clk, |
| @@ -268,6 +275,7 @@ enum { MSTP001, |
| MSTP207, MSTP206, MSTP204, MSTP203, MSTP202, MSTP201, MSTP200, |
| MSTP331, MSTP329, MSTP325, MSTP323, MSTP318, |
| MSTP314, MSTP313, MSTP312, MSTP311, |
| + MSTP303, MSTP302, MSTP301, MSTP300, |
| MSTP411, MSTP410, MSTP403, |
| MSTP_NR }; |
| |
| @@ -301,6 +309,10 @@ static struct clk mstp_clks[MSTP_NR] = { |
| [MSTP313] = MSTP(&div6_clks[DIV6_SDHI1], SMSTPCR3, 13, 0), /* SDHI1 */ |
| [MSTP312] = MSTP(&div4_clks[DIV4_HP], SMSTPCR3, 12, 0), /* MMCIF0 */ |
| [MSTP311] = MSTP(&div6_clks[DIV6_SDHI2], SMSTPCR3, 11, 0), /* SDHI2 */ |
| + [MSTP303] = MSTP(&main_div2_clk, SMSTPCR3, 3, 0), /* TPU1 */ |
| + [MSTP302] = MSTP(&main_div2_clk, SMSTPCR3, 2, 0), /* TPU2 */ |
| + [MSTP301] = MSTP(&main_div2_clk, SMSTPCR3, 1, 0), /* TPU3 */ |
| + [MSTP300] = MSTP(&main_div2_clk, SMSTPCR3, 0, 0), /* TPU4 */ |
| [MSTP411] = MSTP(&div4_clks[DIV4_HP], SMSTPCR4, 11, 0), /* IIC3 */ |
| [MSTP410] = MSTP(&div4_clks[DIV4_HP], SMSTPCR4, 10, 0), /* IIC4 */ |
| [MSTP403] = MSTP(&r_clk, SMSTPCR4, 3, 0), /* KEYSC */ |
| @@ -350,6 +362,10 @@ static struct clk_lookup lookups[] = { |
| CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP313]), /* SDHI1 */ |
| CLKDEV_DEV_ID("sh_mmcif.0", &mstp_clks[MSTP312]), /* MMCIF0 */ |
| CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP311]), /* SDHI2 */ |
| + CLKDEV_DEV_ID("leds-renesas-tpu.12", &mstp_clks[MSTP303]), /* TPU1 */ |
| + CLKDEV_DEV_ID("leds-renesas-tpu.21", &mstp_clks[MSTP302]), /* TPU2 */ |
| + CLKDEV_DEV_ID("leds-renesas-tpu.30", &mstp_clks[MSTP301]), /* TPU3 */ |
| + CLKDEV_DEV_ID("leds-renesas-tpu.41", &mstp_clks[MSTP300]), /* TPU4 */ |
| CLKDEV_DEV_ID("i2c-sh_mobile.3", &mstp_clks[MSTP411]), /* I2C3 */ |
| CLKDEV_DEV_ID("i2c-sh_mobile.4", &mstp_clks[MSTP410]), /* I2C4 */ |
| CLKDEV_DEV_ID("sh_keysc.0", &mstp_clks[MSTP403]), /* KEYSC */ |
| -- |
| 1.7.10.2.565.gbd578b5 |
| |