* [PATCH v5 0/3] CPUFreq for sh73a0 / kzm9g, using cpufreq-cpu0 @ 2013-04-05 10:00 ` Guennadi Liakhovetski 0 siblings, 0 replies; 30+ messages in thread From: Guennadi Liakhovetski @ 2013-04-05 10:00 UTC (permalink / raw) To: linux-sh Cc: Magnus Damm, Simon Horman, linux-arm-kernel, Rafael J. Wysocki, cpufreq, Guennadi Liakhovetski v5: essentially identical to v4, one hunk has been moved from one patch over to another one, patch #1 no longer depends on a different patch- series, which will have to be updated. Cc: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> Guennadi Liakhovetski (3): ARM: shmobile: sh73a0: add support for adjusting CPU frequency ARM: shmobile: kzm9g-reference: add AS3711 and CPUFreq DT bindings ARM: shmobile: sh73a0: add CPUFreq support arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | 86 +++++++++++++++++++++++ arch/arm/mach-shmobile/Kconfig | 2 + arch/arm/mach-shmobile/clock-sh73a0.c | 95 +++++++++++++++++++++++++- arch/arm/mach-shmobile/setup-sh73a0.c | 5 ++ 4 files changed, 186 insertions(+), 2 deletions(-) -- 1.7.2.5 Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/ ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH v5 0/3] CPUFreq for sh73a0 / kzm9g, using cpufreq-cpu0 @ 2013-04-05 10:00 ` Guennadi Liakhovetski 0 siblings, 0 replies; 30+ messages in thread From: Guennadi Liakhovetski @ 2013-04-05 10:00 UTC (permalink / raw) To: linux-arm-kernel v5: essentially identical to v4, one hunk has been moved from one patch over to another one, patch #1 no longer depends on a different patch- series, which will have to be updated. Cc: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> Guennadi Liakhovetski (3): ARM: shmobile: sh73a0: add support for adjusting CPU frequency ARM: shmobile: kzm9g-reference: add AS3711 and CPUFreq DT bindings ARM: shmobile: sh73a0: add CPUFreq support arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | 86 +++++++++++++++++++++++ arch/arm/mach-shmobile/Kconfig | 2 + arch/arm/mach-shmobile/clock-sh73a0.c | 95 +++++++++++++++++++++++++- arch/arm/mach-shmobile/setup-sh73a0.c | 5 ++ 4 files changed, 186 insertions(+), 2 deletions(-) -- 1.7.2.5 Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/ ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH v5 0/3] CPUFreq for sh73a0 / kzm9g, using cpufreq-cpu0 @ 2013-04-05 10:00 ` Guennadi Liakhovetski 0 siblings, 0 replies; 30+ messages in thread From: Guennadi Liakhovetski @ 2013-04-05 10:00 UTC (permalink / raw) To: linux-arm-kernel v5: essentially identical to v4, one hunk has been moved from one patch over to another one, patch #1 no longer depends on a different patch- series, which will have to be updated. Cc: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> Guennadi Liakhovetski (3): ARM: shmobile: sh73a0: add support for adjusting CPU frequency ARM: shmobile: kzm9g-reference: add AS3711 and CPUFreq DT bindings ARM: shmobile: sh73a0: add CPUFreq support arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | 86 +++++++++++++++++++++++ arch/arm/mach-shmobile/Kconfig | 2 + arch/arm/mach-shmobile/clock-sh73a0.c | 95 +++++++++++++++++++++++++- arch/arm/mach-shmobile/setup-sh73a0.c | 5 ++ 4 files changed, 186 insertions(+), 2 deletions(-) -- 1.7.2.5 Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/ ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH v5 1/3] ARM: shmobile: sh73a0: add support for adjusting CPU frequency 2013-04-05 10:00 ` Guennadi Liakhovetski (?) @ 2013-04-05 10:00 ` Guennadi Liakhovetski -1 siblings, 0 replies; 30+ messages in thread From: Guennadi Liakhovetski @ 2013-04-05 10:00 UTC (permalink / raw) To: linux-sh Cc: Magnus Damm, Simon Horman, linux-arm-kernel, Rafael J. Wysocki, cpufreq, Guennadi Liakhovetski On SH73A0 the output of PLL0 is supplied to two dividers, feeding clock to the CPU core and SGX. Lower CPU frequencies allow the use of lower supply voltages and thus reduce power consumption. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> --- v5: not based on MSTP-waiting rework, it needs more work arch/arm/mach-shmobile/clock-sh73a0.c | 95 ++++++++++++++++++++++++++++++++- 1 files changed, 93 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-shmobile/clock-sh73a0.c b/arch/arm/mach-shmobile/clock-sh73a0.c index 784fbaa..acb9e09 100644 --- a/arch/arm/mach-shmobile/clock-sh73a0.c +++ b/arch/arm/mach-shmobile/clock-sh73a0.c @@ -228,6 +228,11 @@ enum { DIV4_I, DIV4_ZG, DIV4_M3, DIV4_B, DIV4_M1, DIV4_M2, static struct clk div4_clks[DIV4_NR] = { [DIV4_I] = DIV4(FRQCRA, 20, 0xdff, CLK_ENABLE_ON_INIT), + /* + * ZG clock is dividing PLL0 frequency to supply SGX. Make sure not to + * exceed maximum frequencies of 201.5MHz for VDD_DVFS=1.175 and + * 239.2MHz for VDD_DVFS=1.315V. + */ [DIV4_ZG] = SH_CLK_DIV4(&pll0_clk, FRQCRA, 16, 0xd7f, CLK_ENABLE_ON_INIT), [DIV4_M3] = DIV4(FRQCRA, 12, 0x1dff, CLK_ENABLE_ON_INIT), [DIV4_B] = DIV4(FRQCRA, 8, 0xdff, CLK_ENABLE_ON_INIT), @@ -252,6 +257,85 @@ static struct clk twd_clk = { .ops = &twd_clk_ops, }; +static int (*div4_set_rate)(struct clk *clk, unsigned long rate); +static unsigned long (*div4_recalc)(struct clk *clk); +static long (*div4_round_rate)(struct clk *clk, unsigned long rate); + +static int zclk_set_rate(struct clk *clk, unsigned long rate) +{ + int ret; + + if (!clk->parent || !__clk_get(clk->parent)) + return -ENODEV; + + if (readl(FRQCRB) & (1 << 31)) + return -EBUSY; + + if (rate == clk_get_rate(clk->parent)) { + /* 1:1 - switch off divider */ + __raw_writel(__raw_readl(FRQCRB) & ~(1 << 28), FRQCRB); + /* nullify the divider to prepare for the next time */ + ret = div4_set_rate(clk, rate / 2); + if (!ret) + ret = frqcr_kick(); + if (ret > 0) + ret = 0; + } else { + /* Enable the divider */ + __raw_writel(__raw_readl(FRQCRB) | (1 << 28), FRQCRB); + + ret = frqcr_kick(); + if (ret >= 0) + /* + * set the divider - call the DIV4 method, it will kick + * FRQCRB too + */ + ret = div4_set_rate(clk, rate); + if (ret < 0) + goto esetrate; + } + +esetrate: + __clk_put(clk->parent); + return ret; +} + +static long zclk_round_rate(struct clk *clk, unsigned long rate) +{ + unsigned long div_freq = div4_round_rate(clk, rate), + parent_freq = clk_get_rate(clk->parent); + + if (rate > div_freq && abs(parent_freq - rate) < rate - div_freq) + return parent_freq; + + return div_freq; +} + +static unsigned long zclk_recalc(struct clk *clk) +{ + /* + * Must recalculate frequencies in case PLL0 has been changed, even if + * the divisor is unused ATM! + */ + unsigned long div_freq = div4_recalc(clk); + + if (__raw_readl(FRQCRB) & (1 << 28)) + return div_freq; + + return clk_get_rate(clk->parent); +} + +static void zclk_extend(void) +{ + /* We extend the DIV4 clock with a 1:1 pass-through case */ + div4_set_rate = div4_clks[DIV4_Z].ops->set_rate; + div4_round_rate = div4_clks[DIV4_Z].ops->round_rate; + div4_recalc = div4_clks[DIV4_Z].ops->recalc; + div4_clks[DIV4_Z].ops->set_rate = zclk_set_rate; + div4_clks[DIV4_Z].ops->round_rate = zclk_round_rate; + div4_clks[DIV4_Z].ops->recalc = zclk_recalc; +} + enum { DIV6_VCK1, DIV6_VCK2, DIV6_VCK3, DIV6_ZB1, DIV6_FLCTL, DIV6_SDHI0, DIV6_SDHI1, DIV6_SDHI2, DIV6_FSIA, DIV6_FSIB, DIV6_SUB, @@ -450,7 +534,7 @@ static struct clk *late_main_clks[] = { }; enum { MSTP001, - MSTP129, MSTP128, MSTP127, MSTP126, MSTP125, MSTP118, MSTP116, MSTP100, + MSTP129, MSTP128, MSTP127, MSTP126, MSTP125, MSTP118, MSTP116, MSTP112, MSTP100, MSTP219, MSTP218, MSTP217, MSTP207, MSTP206, MSTP204, MSTP203, MSTP202, MSTP201, MSTP200, MSTP331, MSTP329, MSTP328, MSTP325, MSTP323, MSTP322, @@ -471,6 +555,7 @@ static struct clk mstp_clks[MSTP_NR] = { [MSTP125] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR1, 25, 0), /* TMU0 */ [MSTP118] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 18, 0), /* DSITX0 */ [MSTP116] = MSTP(&div4_clks[DIV4_HP], SMSTPCR1, 16, 0), /* IIC0 */ + [MSTP112] = MSTP(&div4_clks[DIV4_ZG], SMSTPCR1, 12, 0), /* SGX */ [MSTP100] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 0, 0), /* LCDC0 */ [MSTP219] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 19, 0), /* SCIFA7 */ [MSTP218] = MSTP(&div4_clks[DIV4_HP], SMSTPCR2, 18, 0), /* SY-DMAC */ @@ -513,6 +598,9 @@ static struct clk_lookup lookups[] = { CLKDEV_CON_ID("r_clk", &r_clk), CLKDEV_DEV_ID("smp_twd", &twd_clk), /* smp_twd */ + /* DIV4 clocks */ + CLKDEV_DEV_ID("cpufreq-cpu0", &div4_clks[DIV4_Z]), + /* DIV6 clocks */ CLKDEV_CON_ID("vck1_clk", &div6_clks[DIV6_VCK1]), CLKDEV_CON_ID("vck2_clk", &div6_clks[DIV6_VCK2]), @@ -604,8 +692,11 @@ void __init sh73a0_clock_init(void) for (k = 0; !ret && (k < ARRAY_SIZE(main_clks)); k++) ret = clk_register(main_clks[k]); - if (!ret) + if (!ret) { ret = sh_clk_div4_register(div4_clks, DIV4_NR, &div4_table); + if (!ret) + zclk_extend(); + } if (!ret) ret = sh_clk_div6_reparent_register(div6_clks, DIV6_NR); -- 1.7.2.5 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v5 1/3] ARM: shmobile: sh73a0: add support for adjusting CPU frequency @ 2013-04-05 10:00 ` Guennadi Liakhovetski 0 siblings, 0 replies; 30+ messages in thread From: Guennadi Liakhovetski @ 2013-04-05 10:00 UTC (permalink / raw) To: linux-arm-kernel On SH73A0 the output of PLL0 is supplied to two dividers, feeding clock to the CPU core and SGX. Lower CPU frequencies allow the use of lower supply voltages and thus reduce power consumption. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> --- v5: not based on MSTP-waiting rework, it needs more work arch/arm/mach-shmobile/clock-sh73a0.c | 95 ++++++++++++++++++++++++++++++++- 1 files changed, 93 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-shmobile/clock-sh73a0.c b/arch/arm/mach-shmobile/clock-sh73a0.c index 784fbaa..acb9e09 100644 --- a/arch/arm/mach-shmobile/clock-sh73a0.c +++ b/arch/arm/mach-shmobile/clock-sh73a0.c @@ -228,6 +228,11 @@ enum { DIV4_I, DIV4_ZG, DIV4_M3, DIV4_B, DIV4_M1, DIV4_M2, static struct clk div4_clks[DIV4_NR] = { [DIV4_I] = DIV4(FRQCRA, 20, 0xdff, CLK_ENABLE_ON_INIT), + /* + * ZG clock is dividing PLL0 frequency to supply SGX. Make sure not to + * exceed maximum frequencies of 201.5MHz for VDD_DVFS=1.175 and + * 239.2MHz for VDD_DVFS=1.315V. + */ [DIV4_ZG] = SH_CLK_DIV4(&pll0_clk, FRQCRA, 16, 0xd7f, CLK_ENABLE_ON_INIT), [DIV4_M3] = DIV4(FRQCRA, 12, 0x1dff, CLK_ENABLE_ON_INIT), [DIV4_B] = DIV4(FRQCRA, 8, 0xdff, CLK_ENABLE_ON_INIT), @@ -252,6 +257,85 @@ static struct clk twd_clk = { .ops = &twd_clk_ops, }; +static int (*div4_set_rate)(struct clk *clk, unsigned long rate); +static unsigned long (*div4_recalc)(struct clk *clk); +static long (*div4_round_rate)(struct clk *clk, unsigned long rate); + +static int zclk_set_rate(struct clk *clk, unsigned long rate) +{ + int ret; + + if (!clk->parent || !__clk_get(clk->parent)) + return -ENODEV; + + if (readl(FRQCRB) & (1 << 31)) + return -EBUSY; + + if (rate == clk_get_rate(clk->parent)) { + /* 1:1 - switch off divider */ + __raw_writel(__raw_readl(FRQCRB) & ~(1 << 28), FRQCRB); + /* nullify the divider to prepare for the next time */ + ret = div4_set_rate(clk, rate / 2); + if (!ret) + ret = frqcr_kick(); + if (ret > 0) + ret = 0; + } else { + /* Enable the divider */ + __raw_writel(__raw_readl(FRQCRB) | (1 << 28), FRQCRB); + + ret = frqcr_kick(); + if (ret >= 0) + /* + * set the divider - call the DIV4 method, it will kick + * FRQCRB too + */ + ret = div4_set_rate(clk, rate); + if (ret < 0) + goto esetrate; + } + +esetrate: + __clk_put(clk->parent); + return ret; +} + +static long zclk_round_rate(struct clk *clk, unsigned long rate) +{ + unsigned long div_freq = div4_round_rate(clk, rate), + parent_freq = clk_get_rate(clk->parent); + + if (rate > div_freq && abs(parent_freq - rate) < rate - div_freq) + return parent_freq; + + return div_freq; +} + +static unsigned long zclk_recalc(struct clk *clk) +{ + /* + * Must recalculate frequencies in case PLL0 has been changed, even if + * the divisor is unused ATM! + */ + unsigned long div_freq = div4_recalc(clk); + + if (__raw_readl(FRQCRB) & (1 << 28)) + return div_freq; + + return clk_get_rate(clk->parent); +} + +static void zclk_extend(void) +{ + /* We extend the DIV4 clock with a 1:1 pass-through case */ + div4_set_rate = div4_clks[DIV4_Z].ops->set_rate; + div4_round_rate = div4_clks[DIV4_Z].ops->round_rate; + div4_recalc = div4_clks[DIV4_Z].ops->recalc; + div4_clks[DIV4_Z].ops->set_rate = zclk_set_rate; + div4_clks[DIV4_Z].ops->round_rate = zclk_round_rate; + div4_clks[DIV4_Z].ops->recalc = zclk_recalc; +} + enum { DIV6_VCK1, DIV6_VCK2, DIV6_VCK3, DIV6_ZB1, DIV6_FLCTL, DIV6_SDHI0, DIV6_SDHI1, DIV6_SDHI2, DIV6_FSIA, DIV6_FSIB, DIV6_SUB, @@ -450,7 +534,7 @@ static struct clk *late_main_clks[] = { }; enum { MSTP001, - MSTP129, MSTP128, MSTP127, MSTP126, MSTP125, MSTP118, MSTP116, MSTP100, + MSTP129, MSTP128, MSTP127, MSTP126, MSTP125, MSTP118, MSTP116, MSTP112, MSTP100, MSTP219, MSTP218, MSTP217, MSTP207, MSTP206, MSTP204, MSTP203, MSTP202, MSTP201, MSTP200, MSTP331, MSTP329, MSTP328, MSTP325, MSTP323, MSTP322, @@ -471,6 +555,7 @@ static struct clk mstp_clks[MSTP_NR] = { [MSTP125] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR1, 25, 0), /* TMU0 */ [MSTP118] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 18, 0), /* DSITX0 */ [MSTP116] = MSTP(&div4_clks[DIV4_HP], SMSTPCR1, 16, 0), /* IIC0 */ + [MSTP112] = MSTP(&div4_clks[DIV4_ZG], SMSTPCR1, 12, 0), /* SGX */ [MSTP100] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 0, 0), /* LCDC0 */ [MSTP219] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 19, 0), /* SCIFA7 */ [MSTP218] = MSTP(&div4_clks[DIV4_HP], SMSTPCR2, 18, 0), /* SY-DMAC */ @@ -513,6 +598,9 @@ static struct clk_lookup lookups[] = { CLKDEV_CON_ID("r_clk", &r_clk), CLKDEV_DEV_ID("smp_twd", &twd_clk), /* smp_twd */ + /* DIV4 clocks */ + CLKDEV_DEV_ID("cpufreq-cpu0", &div4_clks[DIV4_Z]), + /* DIV6 clocks */ CLKDEV_CON_ID("vck1_clk", &div6_clks[DIV6_VCK1]), CLKDEV_CON_ID("vck2_clk", &div6_clks[DIV6_VCK2]), @@ -604,8 +692,11 @@ void __init sh73a0_clock_init(void) for (k = 0; !ret && (k < ARRAY_SIZE(main_clks)); k++) ret = clk_register(main_clks[k]); - if (!ret) + if (!ret) { ret = sh_clk_div4_register(div4_clks, DIV4_NR, &div4_table); + if (!ret) + zclk_extend(); + } if (!ret) ret = sh_clk_div6_reparent_register(div6_clks, DIV6_NR); -- 1.7.2.5 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v5 1/3] ARM: shmobile: sh73a0: add support for adjusting CPU frequency @ 2013-04-05 10:00 ` Guennadi Liakhovetski 0 siblings, 0 replies; 30+ messages in thread From: Guennadi Liakhovetski @ 2013-04-05 10:00 UTC (permalink / raw) To: linux-arm-kernel On SH73A0 the output of PLL0 is supplied to two dividers, feeding clock to the CPU core and SGX. Lower CPU frequencies allow the use of lower supply voltages and thus reduce power consumption. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> --- v5: not based on MSTP-waiting rework, it needs more work arch/arm/mach-shmobile/clock-sh73a0.c | 95 ++++++++++++++++++++++++++++++++- 1 files changed, 93 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-shmobile/clock-sh73a0.c b/arch/arm/mach-shmobile/clock-sh73a0.c index 784fbaa..acb9e09 100644 --- a/arch/arm/mach-shmobile/clock-sh73a0.c +++ b/arch/arm/mach-shmobile/clock-sh73a0.c @@ -228,6 +228,11 @@ enum { DIV4_I, DIV4_ZG, DIV4_M3, DIV4_B, DIV4_M1, DIV4_M2, static struct clk div4_clks[DIV4_NR] = { [DIV4_I] = DIV4(FRQCRA, 20, 0xdff, CLK_ENABLE_ON_INIT), + /* + * ZG clock is dividing PLL0 frequency to supply SGX. Make sure not to + * exceed maximum frequencies of 201.5MHz for VDD_DVFS=1.175 and + * 239.2MHz for VDD_DVFS=1.315V. + */ [DIV4_ZG] = SH_CLK_DIV4(&pll0_clk, FRQCRA, 16, 0xd7f, CLK_ENABLE_ON_INIT), [DIV4_M3] = DIV4(FRQCRA, 12, 0x1dff, CLK_ENABLE_ON_INIT), [DIV4_B] = DIV4(FRQCRA, 8, 0xdff, CLK_ENABLE_ON_INIT), @@ -252,6 +257,85 @@ static struct clk twd_clk = { .ops = &twd_clk_ops, }; +static int (*div4_set_rate)(struct clk *clk, unsigned long rate); +static unsigned long (*div4_recalc)(struct clk *clk); +static long (*div4_round_rate)(struct clk *clk, unsigned long rate); + +static int zclk_set_rate(struct clk *clk, unsigned long rate) +{ + int ret; + + if (!clk->parent || !__clk_get(clk->parent)) + return -ENODEV; + + if (readl(FRQCRB) & (1 << 31)) + return -EBUSY; + + if (rate = clk_get_rate(clk->parent)) { + /* 1:1 - switch off divider */ + __raw_writel(__raw_readl(FRQCRB) & ~(1 << 28), FRQCRB); + /* nullify the divider to prepare for the next time */ + ret = div4_set_rate(clk, rate / 2); + if (!ret) + ret = frqcr_kick(); + if (ret > 0) + ret = 0; + } else { + /* Enable the divider */ + __raw_writel(__raw_readl(FRQCRB) | (1 << 28), FRQCRB); + + ret = frqcr_kick(); + if (ret >= 0) + /* + * set the divider - call the DIV4 method, it will kick + * FRQCRB too + */ + ret = div4_set_rate(clk, rate); + if (ret < 0) + goto esetrate; + } + +esetrate: + __clk_put(clk->parent); + return ret; +} + +static long zclk_round_rate(struct clk *clk, unsigned long rate) +{ + unsigned long div_freq = div4_round_rate(clk, rate), + parent_freq = clk_get_rate(clk->parent); + + if (rate > div_freq && abs(parent_freq - rate) < rate - div_freq) + return parent_freq; + + return div_freq; +} + +static unsigned long zclk_recalc(struct clk *clk) +{ + /* + * Must recalculate frequencies in case PLL0 has been changed, even if + * the divisor is unused ATM! + */ + unsigned long div_freq = div4_recalc(clk); + + if (__raw_readl(FRQCRB) & (1 << 28)) + return div_freq; + + return clk_get_rate(clk->parent); +} + +static void zclk_extend(void) +{ + /* We extend the DIV4 clock with a 1:1 pass-through case */ + div4_set_rate = div4_clks[DIV4_Z].ops->set_rate; + div4_round_rate = div4_clks[DIV4_Z].ops->round_rate; + div4_recalc = div4_clks[DIV4_Z].ops->recalc; + div4_clks[DIV4_Z].ops->set_rate = zclk_set_rate; + div4_clks[DIV4_Z].ops->round_rate = zclk_round_rate; + div4_clks[DIV4_Z].ops->recalc = zclk_recalc; +} + enum { DIV6_VCK1, DIV6_VCK2, DIV6_VCK3, DIV6_ZB1, DIV6_FLCTL, DIV6_SDHI0, DIV6_SDHI1, DIV6_SDHI2, DIV6_FSIA, DIV6_FSIB, DIV6_SUB, @@ -450,7 +534,7 @@ static struct clk *late_main_clks[] = { }; enum { MSTP001, - MSTP129, MSTP128, MSTP127, MSTP126, MSTP125, MSTP118, MSTP116, MSTP100, + MSTP129, MSTP128, MSTP127, MSTP126, MSTP125, MSTP118, MSTP116, MSTP112, MSTP100, MSTP219, MSTP218, MSTP217, MSTP207, MSTP206, MSTP204, MSTP203, MSTP202, MSTP201, MSTP200, MSTP331, MSTP329, MSTP328, MSTP325, MSTP323, MSTP322, @@ -471,6 +555,7 @@ static struct clk mstp_clks[MSTP_NR] = { [MSTP125] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR1, 25, 0), /* TMU0 */ [MSTP118] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 18, 0), /* DSITX0 */ [MSTP116] = MSTP(&div4_clks[DIV4_HP], SMSTPCR1, 16, 0), /* IIC0 */ + [MSTP112] = MSTP(&div4_clks[DIV4_ZG], SMSTPCR1, 12, 0), /* SGX */ [MSTP100] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 0, 0), /* LCDC0 */ [MSTP219] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 19, 0), /* SCIFA7 */ [MSTP218] = MSTP(&div4_clks[DIV4_HP], SMSTPCR2, 18, 0), /* SY-DMAC */ @@ -513,6 +598,9 @@ static struct clk_lookup lookups[] = { CLKDEV_CON_ID("r_clk", &r_clk), CLKDEV_DEV_ID("smp_twd", &twd_clk), /* smp_twd */ + /* DIV4 clocks */ + CLKDEV_DEV_ID("cpufreq-cpu0", &div4_clks[DIV4_Z]), + /* DIV6 clocks */ CLKDEV_CON_ID("vck1_clk", &div6_clks[DIV6_VCK1]), CLKDEV_CON_ID("vck2_clk", &div6_clks[DIV6_VCK2]), @@ -604,8 +692,11 @@ void __init sh73a0_clock_init(void) for (k = 0; !ret && (k < ARRAY_SIZE(main_clks)); k++) ret = clk_register(main_clks[k]); - if (!ret) + if (!ret) { ret = sh_clk_div4_register(div4_clks, DIV4_NR, &div4_table); + if (!ret) + zclk_extend(); + } if (!ret) ret = sh_clk_div6_reparent_register(div6_clks, DIV6_NR); -- 1.7.2.5 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* Re: [PATCH v5 1/3] ARM: shmobile: sh73a0: add support for adjusting CPU frequency 2013-04-05 10:00 ` Guennadi Liakhovetski (?) @ 2013-04-18 13:52 ` Simon Horman -1 siblings, 0 replies; 30+ messages in thread From: Simon Horman @ 2013-04-18 13:52 UTC (permalink / raw) To: Guennadi Liakhovetski Cc: linux-sh, Magnus Damm, linux-arm-kernel, Rafael J. Wysocki, cpufreq, Guennadi Liakhovetski On Fri, Apr 05, 2013 at 12:00:36PM +0200, Guennadi Liakhovetski wrote: > On SH73A0 the output of PLL0 is supplied to two dividers, feeding clock to > the CPU core and SGX. Lower CPU frequencies allow the use of lower supply > voltages and thus reduce power consumption. > > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> > --- > > v5: not based on MSTP-waiting rework, it needs more work > > arch/arm/mach-shmobile/clock-sh73a0.c | 95 ++++++++++++++++++++++++++++++++- > 1 files changed, 93 insertions(+), 2 deletions(-) Thanks, queued-up for v3.11 in the soc-sh73a0 branch. ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH v5 1/3] ARM: shmobile: sh73a0: add support for adjusting CPU frequency @ 2013-04-18 13:52 ` Simon Horman 0 siblings, 0 replies; 30+ messages in thread From: Simon Horman @ 2013-04-18 13:52 UTC (permalink / raw) To: linux-arm-kernel On Fri, Apr 05, 2013 at 12:00:36PM +0200, Guennadi Liakhovetski wrote: > On SH73A0 the output of PLL0 is supplied to two dividers, feeding clock to > the CPU core and SGX. Lower CPU frequencies allow the use of lower supply > voltages and thus reduce power consumption. > > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> > --- > > v5: not based on MSTP-waiting rework, it needs more work > > arch/arm/mach-shmobile/clock-sh73a0.c | 95 ++++++++++++++++++++++++++++++++- > 1 files changed, 93 insertions(+), 2 deletions(-) Thanks, queued-up for v3.11 in the soc-sh73a0 branch. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v5 1/3] ARM: shmobile: sh73a0: add support for adjusting CPU frequency @ 2013-04-18 13:52 ` Simon Horman 0 siblings, 0 replies; 30+ messages in thread From: Simon Horman @ 2013-04-18 13:52 UTC (permalink / raw) To: linux-arm-kernel On Fri, Apr 05, 2013 at 12:00:36PM +0200, Guennadi Liakhovetski wrote: > On SH73A0 the output of PLL0 is supplied to two dividers, feeding clock to > the CPU core and SGX. Lower CPU frequencies allow the use of lower supply > voltages and thus reduce power consumption. > > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> > --- > > v5: not based on MSTP-waiting rework, it needs more work > > arch/arm/mach-shmobile/clock-sh73a0.c | 95 ++++++++++++++++++++++++++++++++- > 1 files changed, 93 insertions(+), 2 deletions(-) Thanks, queued-up for v3.11 in the soc-sh73a0 branch. ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH v5 2/3] ARM: shmobile: kzm9g-reference: add AS3711 and CPUFreq DT bindings 2013-04-05 10:00 ` Guennadi Liakhovetski (?) @ 2013-04-05 10:00 ` Guennadi Liakhovetski -1 siblings, 0 replies; 30+ messages in thread From: Guennadi Liakhovetski @ 2013-04-05 10:00 UTC (permalink / raw) To: linux-sh Cc: Magnus Damm, Simon Horman, linux-arm-kernel, Rafael J. Wysocki, cpufreq, Guennadi Liakhovetski This adds DT bindings for an AS3711 PMIC, used for supplying power to the CPU, some peripherals and the backlight, as well as extends the cpu0 DT node with OPPs and a reference to the PMIC to support the CPUFreq and CPU DVFS functions. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> --- v5: make the sd1 regulator immediately suitable for CPUFreq instead of postponing it to an incremental patch. arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | 86 ++++++++++++++++++++++++++ 1 files changed, 86 insertions(+), 0 deletions(-) diff --git a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts index 5972abb..b6f759e 100644 --- a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts +++ b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts @@ -18,6 +18,19 @@ model = "KZM-A9-GT"; compatible = "renesas,kzm9g-reference", "renesas,sh73a0"; + cpus { + cpu@0 { + cpu0-supply = <&vdd_dvfs>; + operating-points = < + /* kHz uV */ + 1196000 1315000 + 598000 1175000 + 398667 1065000 + >; + voltage-tolerance = <1>; /* 1% */ + }; + }; + chosen { bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200"; }; @@ -59,6 +72,79 @@ }; }; +&i2c0 { + as3711@40 { + compatible = "ams,as3711"; + reg = <0x40>; + + regulators { + vdd_dvfs: sd1 { + regulator-name = "1.315V CPU"; + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1350000>; + regulator-always-on; + regulator-boot-on; + }; + sd2 { + regulator-name = "1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + sd4 { + regulator-name = "1.215V"; + regulator-min-microvolt = <1215000>; + regulator-max-microvolt = <1235000>; + regulator-always-on; + regulator-boot-on; + }; + ldo2 { + regulator-name = "2.8V CPU"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-always-on; + regulator-boot-on; + }; + ldo3 { + regulator-name = "3.0V CPU"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + regulator-always-on; + regulator-boot-on; + }; + ldo4 { + regulator-name = "2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-always-on; + regulator-boot-on; + }; + ldo5 { + regulator-name = "2.8V #2"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-always-on; + regulator-boot-on; + }; + ldo7 { + regulator-name = "1.15V CPU"; + regulator-min-microvolt = <1150000>; + regulator-max-microvolt = <1150000>; + regulator-always-on; + regulator-boot-on; + }; + ldo8 { + regulator-name = "1.15V CPU #2"; + regulator-min-microvolt = <1150000>; + regulator-max-microvolt = <1150000>; + regulator-always-on; + regulator-boot-on; + }; + }; + }; +}; + &mmcif { bus-width = <8>; vmmc-supply = <®_1p8v>; -- 1.7.2.5 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v5 2/3] ARM: shmobile: kzm9g-reference: add AS3711 and CPUFreq DT bindings @ 2013-04-05 10:00 ` Guennadi Liakhovetski 0 siblings, 0 replies; 30+ messages in thread From: Guennadi Liakhovetski @ 2013-04-05 10:00 UTC (permalink / raw) To: linux-arm-kernel This adds DT bindings for an AS3711 PMIC, used for supplying power to the CPU, some peripherals and the backlight, as well as extends the cpu0 DT node with OPPs and a reference to the PMIC to support the CPUFreq and CPU DVFS functions. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> --- v5: make the sd1 regulator immediately suitable for CPUFreq instead of postponing it to an incremental patch. arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | 86 ++++++++++++++++++++++++++ 1 files changed, 86 insertions(+), 0 deletions(-) diff --git a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts index 5972abb..b6f759e 100644 --- a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts +++ b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts @@ -18,6 +18,19 @@ model = "KZM-A9-GT"; compatible = "renesas,kzm9g-reference", "renesas,sh73a0"; + cpus { + cpu at 0 { + cpu0-supply = <&vdd_dvfs>; + operating-points = < + /* kHz uV */ + 1196000 1315000 + 598000 1175000 + 398667 1065000 + >; + voltage-tolerance = <1>; /* 1% */ + }; + }; + chosen { bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200"; }; @@ -59,6 +72,79 @@ }; }; +&i2c0 { + as3711 at 40 { + compatible = "ams,as3711"; + reg = <0x40>; + + regulators { + vdd_dvfs: sd1 { + regulator-name = "1.315V CPU"; + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1350000>; + regulator-always-on; + regulator-boot-on; + }; + sd2 { + regulator-name = "1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + sd4 { + regulator-name = "1.215V"; + regulator-min-microvolt = <1215000>; + regulator-max-microvolt = <1235000>; + regulator-always-on; + regulator-boot-on; + }; + ldo2 { + regulator-name = "2.8V CPU"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-always-on; + regulator-boot-on; + }; + ldo3 { + regulator-name = "3.0V CPU"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + regulator-always-on; + regulator-boot-on; + }; + ldo4 { + regulator-name = "2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-always-on; + regulator-boot-on; + }; + ldo5 { + regulator-name = "2.8V #2"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-always-on; + regulator-boot-on; + }; + ldo7 { + regulator-name = "1.15V CPU"; + regulator-min-microvolt = <1150000>; + regulator-max-microvolt = <1150000>; + regulator-always-on; + regulator-boot-on; + }; + ldo8 { + regulator-name = "1.15V CPU #2"; + regulator-min-microvolt = <1150000>; + regulator-max-microvolt = <1150000>; + regulator-always-on; + regulator-boot-on; + }; + }; + }; +}; + &mmcif { bus-width = <8>; vmmc-supply = <®_1p8v>; -- 1.7.2.5 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v5 2/3] ARM: shmobile: kzm9g-reference: add AS3711 and CPUFreq DT bindings @ 2013-04-05 10:00 ` Guennadi Liakhovetski 0 siblings, 0 replies; 30+ messages in thread From: Guennadi Liakhovetski @ 2013-04-05 10:00 UTC (permalink / raw) To: linux-arm-kernel This adds DT bindings for an AS3711 PMIC, used for supplying power to the CPU, some peripherals and the backlight, as well as extends the cpu0 DT node with OPPs and a reference to the PMIC to support the CPUFreq and CPU DVFS functions. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> --- v5: make the sd1 regulator immediately suitable for CPUFreq instead of postponing it to an incremental patch. arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | 86 ++++++++++++++++++++++++++ 1 files changed, 86 insertions(+), 0 deletions(-) diff --git a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts index 5972abb..b6f759e 100644 --- a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts +++ b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts @@ -18,6 +18,19 @@ model = "KZM-A9-GT"; compatible = "renesas,kzm9g-reference", "renesas,sh73a0"; + cpus { + cpu@0 { + cpu0-supply = <&vdd_dvfs>; + operating-points = < + /* kHz uV */ + 1196000 1315000 + 598000 1175000 + 398667 1065000 + >; + voltage-tolerance = <1>; /* 1% */ + }; + }; + chosen { bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200"; }; @@ -59,6 +72,79 @@ }; }; +&i2c0 { + as3711@40 { + compatible = "ams,as3711"; + reg = <0x40>; + + regulators { + vdd_dvfs: sd1 { + regulator-name = "1.315V CPU"; + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1350000>; + regulator-always-on; + regulator-boot-on; + }; + sd2 { + regulator-name = "1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + sd4 { + regulator-name = "1.215V"; + regulator-min-microvolt = <1215000>; + regulator-max-microvolt = <1235000>; + regulator-always-on; + regulator-boot-on; + }; + ldo2 { + regulator-name = "2.8V CPU"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-always-on; + regulator-boot-on; + }; + ldo3 { + regulator-name = "3.0V CPU"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + regulator-always-on; + regulator-boot-on; + }; + ldo4 { + regulator-name = "2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-always-on; + regulator-boot-on; + }; + ldo5 { + regulator-name = "2.8V #2"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-always-on; + regulator-boot-on; + }; + ldo7 { + regulator-name = "1.15V CPU"; + regulator-min-microvolt = <1150000>; + regulator-max-microvolt = <1150000>; + regulator-always-on; + regulator-boot-on; + }; + ldo8 { + regulator-name = "1.15V CPU #2"; + regulator-min-microvolt = <1150000>; + regulator-max-microvolt = <1150000>; + regulator-always-on; + regulator-boot-on; + }; + }; + }; +}; + &mmcif { bus-width = <8>; vmmc-supply = <®_1p8v>; -- 1.7.2.5 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* Re: [PATCH v5 2/3] ARM: shmobile: kzm9g-reference: add AS3711 and CPUFreq DT bindings 2013-04-05 10:00 ` Guennadi Liakhovetski (?) @ 2013-04-18 13:51 ` Simon Horman -1 siblings, 0 replies; 30+ messages in thread From: Simon Horman @ 2013-04-18 13:51 UTC (permalink / raw) To: Guennadi Liakhovetski Cc: linux-sh, Magnus Damm, linux-arm-kernel, Rafael J. Wysocki, cpufreq, Guennadi Liakhovetski On Fri, Apr 05, 2013 at 12:00:37PM +0200, Guennadi Liakhovetski wrote: > This adds DT bindings for an AS3711 PMIC, used for supplying power to the > CPU, some peripherals and the backlight, as well as extends the cpu0 DT > node with OPPs and a reference to the PMIC to support the CPUFreq and > CPU DVFS functions. > > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> > --- > > v5: make the sd1 regulator immediately suitable for CPUFreq instead of > postponing it to an incremental patch. > > arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | 86 ++++++++++++++++++++++++++ > 1 files changed, 86 insertions(+), 0 deletions(-) Thanks, queued-up for v3.11 in the boards-kzm9g branch. ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH v5 2/3] ARM: shmobile: kzm9g-reference: add AS3711 and CPUFreq DT bindings @ 2013-04-18 13:51 ` Simon Horman 0 siblings, 0 replies; 30+ messages in thread From: Simon Horman @ 2013-04-18 13:51 UTC (permalink / raw) To: linux-arm-kernel On Fri, Apr 05, 2013 at 12:00:37PM +0200, Guennadi Liakhovetski wrote: > This adds DT bindings for an AS3711 PMIC, used for supplying power to the > CPU, some peripherals and the backlight, as well as extends the cpu0 DT > node with OPPs and a reference to the PMIC to support the CPUFreq and > CPU DVFS functions. > > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> > --- > > v5: make the sd1 regulator immediately suitable for CPUFreq instead of > postponing it to an incremental patch. > > arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | 86 ++++++++++++++++++++++++++ > 1 files changed, 86 insertions(+), 0 deletions(-) Thanks, queued-up for v3.11 in the boards-kzm9g branch. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v5 2/3] ARM: shmobile: kzm9g-reference: add AS3711 and CPUFreq DT bindings @ 2013-04-18 13:51 ` Simon Horman 0 siblings, 0 replies; 30+ messages in thread From: Simon Horman @ 2013-04-18 13:51 UTC (permalink / raw) To: linux-arm-kernel On Fri, Apr 05, 2013 at 12:00:37PM +0200, Guennadi Liakhovetski wrote: > This adds DT bindings for an AS3711 PMIC, used for supplying power to the > CPU, some peripherals and the backlight, as well as extends the cpu0 DT > node with OPPs and a reference to the PMIC to support the CPUFreq and > CPU DVFS functions. > > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> > --- > > v5: make the sd1 regulator immediately suitable for CPUFreq instead of > postponing it to an incremental patch. > > arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | 86 ++++++++++++++++++++++++++ > 1 files changed, 86 insertions(+), 0 deletions(-) Thanks, queued-up for v3.11 in the boards-kzm9g branch. ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH v5 3/3] ARM: shmobile: sh73a0: add CPUFreq support 2013-04-05 10:00 ` Guennadi Liakhovetski (?) @ 2013-04-05 10:00 ` Guennadi Liakhovetski -1 siblings, 0 replies; 30+ messages in thread From: Guennadi Liakhovetski @ 2013-04-05 10:00 UTC (permalink / raw) To: linux-sh Cc: Magnus Damm, Simon Horman, linux-arm-kernel, Rafael J. Wysocki, cpufreq, Guennadi Liakhovetski This patch enables the use of the generic cpufreq-cpu0 driver on sh73a0. Providing a regulator, a list of OPPs in DT, combined with a virtual cpufreq-cpu0 platform device and a clock, attached to it is everything, the cpufreq-cpu0 driver needs. The first sh73a0 platform, implementing such CPUFreq support is kzm9g-reference. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> --- v5: remove sh73a0-kzm9g-reference.dts hunk, it's now merged into patch 2/3 arch/arm/mach-shmobile/Kconfig | 2 ++ arch/arm/mach-shmobile/setup-sh73a0.c | 5 +++++ 2 files changed, 7 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 1a517e2..4ac5bf9 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig @@ -177,6 +177,8 @@ config MACH_KZM9G config MACH_KZM9G_REFERENCE bool "KZM-A9-GT board - Reference Device Tree Implementation" depends on ARCH_SH73A0 + select ARCH_HAS_CPUFREQ + select ARCH_HAS_OPP select ARCH_REQUIRE_GPIOLIB select REGULATOR_FIXED_VOLTAGE if REGULATOR select SND_SOC_AK4642 if SND_SIMPLE_CARD diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c index d10ded0..9a522f9 100644 --- a/arch/arm/mach-shmobile/setup-sh73a0.c +++ b/arch/arm/mach-shmobile/setup-sh73a0.c @@ -1003,6 +1003,8 @@ static const struct of_dev_auxdata sh73a0_auxdata_lookup[] __initconst = { void __init sh73a0_add_standard_devices_dt(void) { + struct platform_device_info devinfo = { .name = "cpufreq-cpu0", .id = -1, }; + /* clocks are setup late during boot in the case of DT */ sh73a0_clock_init(); @@ -1010,6 +1012,9 @@ void __init sh73a0_add_standard_devices_dt(void) ARRAY_SIZE(sh73a0_devices_dt)); of_platform_populate(NULL, of_default_bus_match_table, sh73a0_auxdata_lookup, NULL); + + /* Instantiate cpufreq-cpu0 */ + platform_device_register_full(&devinfo); } static const char *sh73a0_boards_compat_dt[] __initdata = { -- 1.7.2.5 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v5 3/3] ARM: shmobile: sh73a0: add CPUFreq support @ 2013-04-05 10:00 ` Guennadi Liakhovetski 0 siblings, 0 replies; 30+ messages in thread From: Guennadi Liakhovetski @ 2013-04-05 10:00 UTC (permalink / raw) To: linux-arm-kernel This patch enables the use of the generic cpufreq-cpu0 driver on sh73a0. Providing a regulator, a list of OPPs in DT, combined with a virtual cpufreq-cpu0 platform device and a clock, attached to it is everything, the cpufreq-cpu0 driver needs. The first sh73a0 platform, implementing such CPUFreq support is kzm9g-reference. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> --- v5: remove sh73a0-kzm9g-reference.dts hunk, it's now merged into patch 2/3 arch/arm/mach-shmobile/Kconfig | 2 ++ arch/arm/mach-shmobile/setup-sh73a0.c | 5 +++++ 2 files changed, 7 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 1a517e2..4ac5bf9 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig @@ -177,6 +177,8 @@ config MACH_KZM9G config MACH_KZM9G_REFERENCE bool "KZM-A9-GT board - Reference Device Tree Implementation" depends on ARCH_SH73A0 + select ARCH_HAS_CPUFREQ + select ARCH_HAS_OPP select ARCH_REQUIRE_GPIOLIB select REGULATOR_FIXED_VOLTAGE if REGULATOR select SND_SOC_AK4642 if SND_SIMPLE_CARD diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c index d10ded0..9a522f9 100644 --- a/arch/arm/mach-shmobile/setup-sh73a0.c +++ b/arch/arm/mach-shmobile/setup-sh73a0.c @@ -1003,6 +1003,8 @@ static const struct of_dev_auxdata sh73a0_auxdata_lookup[] __initconst = { void __init sh73a0_add_standard_devices_dt(void) { + struct platform_device_info devinfo = { .name = "cpufreq-cpu0", .id = -1, }; + /* clocks are setup late during boot in the case of DT */ sh73a0_clock_init(); @@ -1010,6 +1012,9 @@ void __init sh73a0_add_standard_devices_dt(void) ARRAY_SIZE(sh73a0_devices_dt)); of_platform_populate(NULL, of_default_bus_match_table, sh73a0_auxdata_lookup, NULL); + + /* Instantiate cpufreq-cpu0 */ + platform_device_register_full(&devinfo); } static const char *sh73a0_boards_compat_dt[] __initdata = { -- 1.7.2.5 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v5 3/3] ARM: shmobile: sh73a0: add CPUFreq support @ 2013-04-05 10:00 ` Guennadi Liakhovetski 0 siblings, 0 replies; 30+ messages in thread From: Guennadi Liakhovetski @ 2013-04-05 10:00 UTC (permalink / raw) To: linux-arm-kernel This patch enables the use of the generic cpufreq-cpu0 driver on sh73a0. Providing a regulator, a list of OPPs in DT, combined with a virtual cpufreq-cpu0 platform device and a clock, attached to it is everything, the cpufreq-cpu0 driver needs. The first sh73a0 platform, implementing such CPUFreq support is kzm9g-reference. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> --- v5: remove sh73a0-kzm9g-reference.dts hunk, it's now merged into patch 2/3 arch/arm/mach-shmobile/Kconfig | 2 ++ arch/arm/mach-shmobile/setup-sh73a0.c | 5 +++++ 2 files changed, 7 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 1a517e2..4ac5bf9 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig @@ -177,6 +177,8 @@ config MACH_KZM9G config MACH_KZM9G_REFERENCE bool "KZM-A9-GT board - Reference Device Tree Implementation" depends on ARCH_SH73A0 + select ARCH_HAS_CPUFREQ + select ARCH_HAS_OPP select ARCH_REQUIRE_GPIOLIB select REGULATOR_FIXED_VOLTAGE if REGULATOR select SND_SOC_AK4642 if SND_SIMPLE_CARD diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c index d10ded0..9a522f9 100644 --- a/arch/arm/mach-shmobile/setup-sh73a0.c +++ b/arch/arm/mach-shmobile/setup-sh73a0.c @@ -1003,6 +1003,8 @@ static const struct of_dev_auxdata sh73a0_auxdata_lookup[] __initconst = { void __init sh73a0_add_standard_devices_dt(void) { + struct platform_device_info devinfo = { .name = "cpufreq-cpu0", .id = -1, }; + /* clocks are setup late during boot in the case of DT */ sh73a0_clock_init(); @@ -1010,6 +1012,9 @@ void __init sh73a0_add_standard_devices_dt(void) ARRAY_SIZE(sh73a0_devices_dt)); of_platform_populate(NULL, of_default_bus_match_table, sh73a0_auxdata_lookup, NULL); + + /* Instantiate cpufreq-cpu0 */ + platform_device_register_full(&devinfo); } static const char *sh73a0_boards_compat_dt[] __initdata = { -- 1.7.2.5 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* Re: [PATCH v5 3/3] ARM: shmobile: sh73a0: add CPUFreq support 2013-04-05 10:00 ` Guennadi Liakhovetski (?) @ 2013-04-05 16:07 ` Sergei Shtylyov -1 siblings, 0 replies; 30+ messages in thread From: Sergei Shtylyov @ 2013-04-05 16:07 UTC (permalink / raw) To: Guennadi Liakhovetski Cc: linux-sh, Guennadi Liakhovetski, Magnus Damm, cpufreq, Rafael J. Wysocki, Simon Horman, linux-arm-kernel On 05-04-2013 14:00, Guennadi Liakhovetski wrote: > This patch enables the use of the generic cpufreq-cpu0 driver on sh73a0. > Providing a regulator, a list of OPPs in DT, combined with a virtual > cpufreq-cpu0 platform device and a clock, attached to it is everything, > the cpufreq-cpu0 driver needs. The first sh73a0 platform, implementing > such CPUFreq support is kzm9g-reference. > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> > --- > v5: remove sh73a0-kzm9g-reference.dts hunk, it's now merged into patch 2/3 > arch/arm/mach-shmobile/Kconfig | 2 ++ > arch/arm/mach-shmobile/setup-sh73a0.c | 5 +++++ > 2 files changed, 7 insertions(+), 0 deletions(-) > diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig > index 1a517e2..4ac5bf9 100644 > --- a/arch/arm/mach-shmobile/Kconfig > +++ b/arch/arm/mach-shmobile/Kconfig [...] > diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c > index d10ded0..9a522f9 100644 > --- a/arch/arm/mach-shmobile/setup-sh73a0.c > +++ b/arch/arm/mach-shmobile/setup-sh73a0.c > @@ -1003,6 +1003,8 @@ static const struct of_dev_auxdata sh73a0_auxdata_lookup[] __initconst = { > > void __init sh73a0_add_standard_devices_dt(void) > { > + struct platform_device_info devinfo = { .name = "cpufreq-cpu0", .id = -1, }; With NULL .parent? Shouldn't it be 'platform_bus'? WBR, Sergei ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH v5 3/3] ARM: shmobile: sh73a0: add CPUFreq support @ 2013-04-05 16:07 ` Sergei Shtylyov 0 siblings, 0 replies; 30+ messages in thread From: Sergei Shtylyov @ 2013-04-05 16:07 UTC (permalink / raw) To: linux-arm-kernel On 05-04-2013 14:00, Guennadi Liakhovetski wrote: > This patch enables the use of the generic cpufreq-cpu0 driver on sh73a0. > Providing a regulator, a list of OPPs in DT, combined with a virtual > cpufreq-cpu0 platform device and a clock, attached to it is everything, > the cpufreq-cpu0 driver needs. The first sh73a0 platform, implementing > such CPUFreq support is kzm9g-reference. > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> > --- > v5: remove sh73a0-kzm9g-reference.dts hunk, it's now merged into patch 2/3 > arch/arm/mach-shmobile/Kconfig | 2 ++ > arch/arm/mach-shmobile/setup-sh73a0.c | 5 +++++ > 2 files changed, 7 insertions(+), 0 deletions(-) > diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig > index 1a517e2..4ac5bf9 100644 > --- a/arch/arm/mach-shmobile/Kconfig > +++ b/arch/arm/mach-shmobile/Kconfig [...] > diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c > index d10ded0..9a522f9 100644 > --- a/arch/arm/mach-shmobile/setup-sh73a0.c > +++ b/arch/arm/mach-shmobile/setup-sh73a0.c > @@ -1003,6 +1003,8 @@ static const struct of_dev_auxdata sh73a0_auxdata_lookup[] __initconst = { > > void __init sh73a0_add_standard_devices_dt(void) > { > + struct platform_device_info devinfo = { .name = "cpufreq-cpu0", .id = -1, }; With NULL .parent? Shouldn't it be 'platform_bus'? WBR, Sergei ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v5 3/3] ARM: shmobile: sh73a0: add CPUFreq support @ 2013-04-05 16:07 ` Sergei Shtylyov 0 siblings, 0 replies; 30+ messages in thread From: Sergei Shtylyov @ 2013-04-05 16:07 UTC (permalink / raw) To: linux-arm-kernel On 05-04-2013 14:00, Guennadi Liakhovetski wrote: > This patch enables the use of the generic cpufreq-cpu0 driver on sh73a0. > Providing a regulator, a list of OPPs in DT, combined with a virtual > cpufreq-cpu0 platform device and a clock, attached to it is everything, > the cpufreq-cpu0 driver needs. The first sh73a0 platform, implementing > such CPUFreq support is kzm9g-reference. > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> > --- > v5: remove sh73a0-kzm9g-reference.dts hunk, it's now merged into patch 2/3 > arch/arm/mach-shmobile/Kconfig | 2 ++ > arch/arm/mach-shmobile/setup-sh73a0.c | 5 +++++ > 2 files changed, 7 insertions(+), 0 deletions(-) > diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig > index 1a517e2..4ac5bf9 100644 > --- a/arch/arm/mach-shmobile/Kconfig > +++ b/arch/arm/mach-shmobile/Kconfig [...] > diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c > index d10ded0..9a522f9 100644 > --- a/arch/arm/mach-shmobile/setup-sh73a0.c > +++ b/arch/arm/mach-shmobile/setup-sh73a0.c > @@ -1003,6 +1003,8 @@ static const struct of_dev_auxdata sh73a0_auxdata_lookup[] __initconst = { > > void __init sh73a0_add_standard_devices_dt(void) > { > + struct platform_device_info devinfo = { .name = "cpufreq-cpu0", .id = -1, }; With NULL .parent? Shouldn't it be 'platform_bus'? WBR, Sergei ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v5 3/3] ARM: shmobile: sh73a0: add CPUFreq support 2013-04-05 16:07 ` Sergei Shtylyov (?) @ 2013-04-05 18:04 ` Guennadi Liakhovetski -1 siblings, 0 replies; 30+ messages in thread From: Guennadi Liakhovetski @ 2013-04-05 18:04 UTC (permalink / raw) To: Sergei Shtylyov Cc: linux-sh, Guennadi Liakhovetski, Magnus Damm, cpufreq, Rafael J. Wysocki, Simon Horman, linux-arm-kernel Hi Sergei On Fri, 5 Apr 2013, Sergei Shtylyov wrote: > On 05-04-2013 14:00, Guennadi Liakhovetski wrote: > > > This patch enables the use of the generic cpufreq-cpu0 driver on sh73a0. > > Providing a regulator, a list of OPPs in DT, combined with a virtual > > cpufreq-cpu0 platform device and a clock, attached to it is everything, > > the cpufreq-cpu0 driver needs. The first sh73a0 platform, implementing > > such CPUFreq support is kzm9g-reference. > > > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> > > --- > > > v5: remove sh73a0-kzm9g-reference.dts hunk, it's now merged into patch 2/3 > > > arch/arm/mach-shmobile/Kconfig | 2 ++ > > arch/arm/mach-shmobile/setup-sh73a0.c | 5 +++++ > > 2 files changed, 7 insertions(+), 0 deletions(-) > > > diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig > > index 1a517e2..4ac5bf9 100644 > > --- a/arch/arm/mach-shmobile/Kconfig > > +++ b/arch/arm/mach-shmobile/Kconfig > [...] > > diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c > > b/arch/arm/mach-shmobile/setup-sh73a0.c > > index d10ded0..9a522f9 100644 > > --- a/arch/arm/mach-shmobile/setup-sh73a0.c > > +++ b/arch/arm/mach-shmobile/setup-sh73a0.c > > @@ -1003,6 +1003,8 @@ static const struct of_dev_auxdata > > sh73a0_auxdata_lookup[] __initconst = { > > > > void __init sh73a0_add_standard_devices_dt(void) > > { > > + struct platform_device_info devinfo = { .name = "cpufreq-cpu0", .id = > > -1, }; > > With NULL .parent? Shouldn't it be 'platform_bus'? Look at platform_device_add(): if (!pdev->dev.parent) pdev->dev.parent = &platform_bus; Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/ ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH v5 3/3] ARM: shmobile: sh73a0: add CPUFreq support @ 2013-04-05 18:04 ` Guennadi Liakhovetski 0 siblings, 0 replies; 30+ messages in thread From: Guennadi Liakhovetski @ 2013-04-05 18:04 UTC (permalink / raw) To: linux-arm-kernel Hi Sergei On Fri, 5 Apr 2013, Sergei Shtylyov wrote: > On 05-04-2013 14:00, Guennadi Liakhovetski wrote: > > > This patch enables the use of the generic cpufreq-cpu0 driver on sh73a0. > > Providing a regulator, a list of OPPs in DT, combined with a virtual > > cpufreq-cpu0 platform device and a clock, attached to it is everything, > > the cpufreq-cpu0 driver needs. The first sh73a0 platform, implementing > > such CPUFreq support is kzm9g-reference. > > > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> > > --- > > > v5: remove sh73a0-kzm9g-reference.dts hunk, it's now merged into patch 2/3 > > > arch/arm/mach-shmobile/Kconfig | 2 ++ > > arch/arm/mach-shmobile/setup-sh73a0.c | 5 +++++ > > 2 files changed, 7 insertions(+), 0 deletions(-) > > > diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig > > index 1a517e2..4ac5bf9 100644 > > --- a/arch/arm/mach-shmobile/Kconfig > > +++ b/arch/arm/mach-shmobile/Kconfig > [...] > > diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c > > b/arch/arm/mach-shmobile/setup-sh73a0.c > > index d10ded0..9a522f9 100644 > > --- a/arch/arm/mach-shmobile/setup-sh73a0.c > > +++ b/arch/arm/mach-shmobile/setup-sh73a0.c > > @@ -1003,6 +1003,8 @@ static const struct of_dev_auxdata > > sh73a0_auxdata_lookup[] __initconst = { > > > > void __init sh73a0_add_standard_devices_dt(void) > > { > > + struct platform_device_info devinfo = { .name = "cpufreq-cpu0", .id = > > -1, }; > > With NULL .parent? Shouldn't it be 'platform_bus'? Look at platform_device_add(): if (!pdev->dev.parent) pdev->dev.parent = &platform_bus; Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/ ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v5 3/3] ARM: shmobile: sh73a0: add CPUFreq support @ 2013-04-05 18:04 ` Guennadi Liakhovetski 0 siblings, 0 replies; 30+ messages in thread From: Guennadi Liakhovetski @ 2013-04-05 18:04 UTC (permalink / raw) To: linux-arm-kernel Hi Sergei On Fri, 5 Apr 2013, Sergei Shtylyov wrote: > On 05-04-2013 14:00, Guennadi Liakhovetski wrote: > > > This patch enables the use of the generic cpufreq-cpu0 driver on sh73a0. > > Providing a regulator, a list of OPPs in DT, combined with a virtual > > cpufreq-cpu0 platform device and a clock, attached to it is everything, > > the cpufreq-cpu0 driver needs. The first sh73a0 platform, implementing > > such CPUFreq support is kzm9g-reference. > > > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> > > --- > > > v5: remove sh73a0-kzm9g-reference.dts hunk, it's now merged into patch 2/3 > > > arch/arm/mach-shmobile/Kconfig | 2 ++ > > arch/arm/mach-shmobile/setup-sh73a0.c | 5 +++++ > > 2 files changed, 7 insertions(+), 0 deletions(-) > > > diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig > > index 1a517e2..4ac5bf9 100644 > > --- a/arch/arm/mach-shmobile/Kconfig > > +++ b/arch/arm/mach-shmobile/Kconfig > [...] > > diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c > > b/arch/arm/mach-shmobile/setup-sh73a0.c > > index d10ded0..9a522f9 100644 > > --- a/arch/arm/mach-shmobile/setup-sh73a0.c > > +++ b/arch/arm/mach-shmobile/setup-sh73a0.c > > @@ -1003,6 +1003,8 @@ static const struct of_dev_auxdata > > sh73a0_auxdata_lookup[] __initconst = { > > > > void __init sh73a0_add_standard_devices_dt(void) > > { > > + struct platform_device_info devinfo = { .name = "cpufreq-cpu0", .id > > -1, }; > > With NULL .parent? Shouldn't it be 'platform_bus'? Look at platform_device_add(): if (!pdev->dev.parent) pdev->dev.parent = &platform_bus; Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/ ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v5 3/3] ARM: shmobile: sh73a0: add CPUFreq support 2013-04-05 18:04 ` Guennadi Liakhovetski (?) @ 2013-04-05 18:16 ` Sergei Shtylyov -1 siblings, 0 replies; 30+ messages in thread From: Sergei Shtylyov @ 2013-04-05 18:16 UTC (permalink / raw) To: Guennadi Liakhovetski Cc: linux-sh, Guennadi Liakhovetski, Magnus Damm, cpufreq, Rafael J. Wysocki, Simon Horman, linux-arm-kernel On 04/05/2013 10:04 PM, Guennadi Liakhovetski wrote: >>> This patch enables the use of the generic cpufreq-cpu0 driver on sh73a0. >>> Providing a regulator, a list of OPPs in DT, combined with a virtual >>> cpufreq-cpu0 platform device and a clock, attached to it is everything, >>> the cpufreq-cpu0 driver needs. The first sh73a0 platform, implementing >>> such CPUFreq support is kzm9g-reference. >>> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> >>> --- >>> v5: remove sh73a0-kzm9g-reference.dts hunk, it's now merged into patch 2/3 >>> arch/arm/mach-shmobile/Kconfig | 2 ++ >>> arch/arm/mach-shmobile/setup-sh73a0.c | 5 +++++ >>> 2 files changed, 7 insertions(+), 0 deletions(-) >>> diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig >>> index 1a517e2..4ac5bf9 100644 >>> --- a/arch/arm/mach-shmobile/Kconfig >>> +++ b/arch/arm/mach-shmobile/Kconfig >> [...] >>> diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c >>> b/arch/arm/mach-shmobile/setup-sh73a0.c >>> index d10ded0..9a522f9 100644 >>> --- a/arch/arm/mach-shmobile/setup-sh73a0.c >>> +++ b/arch/arm/mach-shmobile/setup-sh73a0.c >>> @@ -1003,6 +1003,8 @@ static const struct of_dev_auxdata >>> sh73a0_auxdata_lookup[] __initconst = { >>> >>> void __init sh73a0_add_standard_devices_dt(void) >>> { >>> + struct platform_device_info devinfo = { .name = "cpufreq-cpu0", .id = >>> -1, }; >> With NULL .parent? Shouldn't it be 'platform_bus'? > Look at platform_device_add(): > > if (!pdev->dev.parent) > pdev->dev.parent = &platform_bus; Ah, thanks for pointing that out -- I didn't follow the call chain. I could have passed NULL to platform_device_register_resndata() too then... Well, now it's too late, and it doesn't matter much anyway. WBR, Sergei ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH v5 3/3] ARM: shmobile: sh73a0: add CPUFreq support @ 2013-04-05 18:16 ` Sergei Shtylyov 0 siblings, 0 replies; 30+ messages in thread From: Sergei Shtylyov @ 2013-04-05 18:16 UTC (permalink / raw) To: linux-arm-kernel On 04/05/2013 10:04 PM, Guennadi Liakhovetski wrote: >>> This patch enables the use of the generic cpufreq-cpu0 driver on sh73a0. >>> Providing a regulator, a list of OPPs in DT, combined with a virtual >>> cpufreq-cpu0 platform device and a clock, attached to it is everything, >>> the cpufreq-cpu0 driver needs. The first sh73a0 platform, implementing >>> such CPUFreq support is kzm9g-reference. >>> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> >>> --- >>> v5: remove sh73a0-kzm9g-reference.dts hunk, it's now merged into patch 2/3 >>> arch/arm/mach-shmobile/Kconfig | 2 ++ >>> arch/arm/mach-shmobile/setup-sh73a0.c | 5 +++++ >>> 2 files changed, 7 insertions(+), 0 deletions(-) >>> diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig >>> index 1a517e2..4ac5bf9 100644 >>> --- a/arch/arm/mach-shmobile/Kconfig >>> +++ b/arch/arm/mach-shmobile/Kconfig >> [...] >>> diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c >>> b/arch/arm/mach-shmobile/setup-sh73a0.c >>> index d10ded0..9a522f9 100644 >>> --- a/arch/arm/mach-shmobile/setup-sh73a0.c >>> +++ b/arch/arm/mach-shmobile/setup-sh73a0.c >>> @@ -1003,6 +1003,8 @@ static const struct of_dev_auxdata >>> sh73a0_auxdata_lookup[] __initconst = { >>> >>> void __init sh73a0_add_standard_devices_dt(void) >>> { >>> + struct platform_device_info devinfo = { .name = "cpufreq-cpu0", .id = >>> -1, }; >> With NULL .parent? Shouldn't it be 'platform_bus'? > Look at platform_device_add(): > > if (!pdev->dev.parent) > pdev->dev.parent = &platform_bus; Ah, thanks for pointing that out -- I didn't follow the call chain. I could have passed NULL to platform_device_register_resndata() too then... Well, now it's too late, and it doesn't matter much anyway. WBR, Sergei ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v5 3/3] ARM: shmobile: sh73a0: add CPUFreq support @ 2013-04-05 18:16 ` Sergei Shtylyov 0 siblings, 0 replies; 30+ messages in thread From: Sergei Shtylyov @ 2013-04-05 18:16 UTC (permalink / raw) To: linux-arm-kernel On 04/05/2013 10:04 PM, Guennadi Liakhovetski wrote: >>> This patch enables the use of the generic cpufreq-cpu0 driver on sh73a0. >>> Providing a regulator, a list of OPPs in DT, combined with a virtual >>> cpufreq-cpu0 platform device and a clock, attached to it is everything, >>> the cpufreq-cpu0 driver needs. The first sh73a0 platform, implementing >>> such CPUFreq support is kzm9g-reference. >>> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> >>> --- >>> v5: remove sh73a0-kzm9g-reference.dts hunk, it's now merged into patch 2/3 >>> arch/arm/mach-shmobile/Kconfig | 2 ++ >>> arch/arm/mach-shmobile/setup-sh73a0.c | 5 +++++ >>> 2 files changed, 7 insertions(+), 0 deletions(-) >>> diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig >>> index 1a517e2..4ac5bf9 100644 >>> --- a/arch/arm/mach-shmobile/Kconfig >>> +++ b/arch/arm/mach-shmobile/Kconfig >> [...] >>> diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c >>> b/arch/arm/mach-shmobile/setup-sh73a0.c >>> index d10ded0..9a522f9 100644 >>> --- a/arch/arm/mach-shmobile/setup-sh73a0.c >>> +++ b/arch/arm/mach-shmobile/setup-sh73a0.c >>> @@ -1003,6 +1003,8 @@ static const struct of_dev_auxdata >>> sh73a0_auxdata_lookup[] __initconst = { >>> >>> void __init sh73a0_add_standard_devices_dt(void) >>> { >>> + struct platform_device_info devinfo = { .name = "cpufreq-cpu0", .id >>> -1, }; >> With NULL .parent? Shouldn't it be 'platform_bus'? > Look at platform_device_add(): > > if (!pdev->dev.parent) > pdev->dev.parent = &platform_bus; Ah, thanks for pointing that out -- I didn't follow the call chain. I could have passed NULL to platform_device_register_resndata() too then... Well, now it's too late, and it doesn't matter much anyway. WBR, Sergei ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v5 3/3] ARM: shmobile: sh73a0: add CPUFreq support 2013-04-05 10:00 ` Guennadi Liakhovetski (?) @ 2013-04-18 13:52 ` Simon Horman -1 siblings, 0 replies; 30+ messages in thread From: Simon Horman @ 2013-04-18 13:52 UTC (permalink / raw) To: Guennadi Liakhovetski Cc: linux-sh, Magnus Damm, linux-arm-kernel, Rafael J. Wysocki, cpufreq, Guennadi Liakhovetski On Fri, Apr 05, 2013 at 12:00:38PM +0200, Guennadi Liakhovetski wrote: > This patch enables the use of the generic cpufreq-cpu0 driver on sh73a0. > Providing a regulator, a list of OPPs in DT, combined with a virtual > cpufreq-cpu0 platform device and a clock, attached to it is everything, > the cpufreq-cpu0 driver needs. The first sh73a0 platform, implementing > such CPUFreq support is kzm9g-reference. > > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> > --- > > v5: remove sh73a0-kzm9g-reference.dts hunk, it's now merged into patch 2/3 > > arch/arm/mach-shmobile/Kconfig | 2 ++ > arch/arm/mach-shmobile/setup-sh73a0.c | 5 +++++ > 2 files changed, 7 insertions(+), 0 deletions(-) Thanks, queued-up for v3.11 in the soc-sh73a0 branch. ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH v5 3/3] ARM: shmobile: sh73a0: add CPUFreq support @ 2013-04-18 13:52 ` Simon Horman 0 siblings, 0 replies; 30+ messages in thread From: Simon Horman @ 2013-04-18 13:52 UTC (permalink / raw) To: linux-arm-kernel On Fri, Apr 05, 2013 at 12:00:38PM +0200, Guennadi Liakhovetski wrote: > This patch enables the use of the generic cpufreq-cpu0 driver on sh73a0. > Providing a regulator, a list of OPPs in DT, combined with a virtual > cpufreq-cpu0 platform device and a clock, attached to it is everything, > the cpufreq-cpu0 driver needs. The first sh73a0 platform, implementing > such CPUFreq support is kzm9g-reference. > > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> > --- > > v5: remove sh73a0-kzm9g-reference.dts hunk, it's now merged into patch 2/3 > > arch/arm/mach-shmobile/Kconfig | 2 ++ > arch/arm/mach-shmobile/setup-sh73a0.c | 5 +++++ > 2 files changed, 7 insertions(+), 0 deletions(-) Thanks, queued-up for v3.11 in the soc-sh73a0 branch. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v5 3/3] ARM: shmobile: sh73a0: add CPUFreq support @ 2013-04-18 13:52 ` Simon Horman 0 siblings, 0 replies; 30+ messages in thread From: Simon Horman @ 2013-04-18 13:52 UTC (permalink / raw) To: linux-arm-kernel On Fri, Apr 05, 2013 at 12:00:38PM +0200, Guennadi Liakhovetski wrote: > This patch enables the use of the generic cpufreq-cpu0 driver on sh73a0. > Providing a regulator, a list of OPPs in DT, combined with a virtual > cpufreq-cpu0 platform device and a clock, attached to it is everything, > the cpufreq-cpu0 driver needs. The first sh73a0 platform, implementing > such CPUFreq support is kzm9g-reference. > > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com> > --- > > v5: remove sh73a0-kzm9g-reference.dts hunk, it's now merged into patch 2/3 > > arch/arm/mach-shmobile/Kconfig | 2 ++ > arch/arm/mach-shmobile/setup-sh73a0.c | 5 +++++ > 2 files changed, 7 insertions(+), 0 deletions(-) Thanks, queued-up for v3.11 in the soc-sh73a0 branch. ^ permalink raw reply [flat|nested] 30+ messages in thread
end of thread, other threads:[~2013-04-18 13:52 UTC | newest] Thread overview: 30+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-04-05 10:00 [PATCH v5 0/3] CPUFreq for sh73a0 / kzm9g, using cpufreq-cpu0 Guennadi Liakhovetski 2013-04-05 10:00 ` Guennadi Liakhovetski 2013-04-05 10:00 ` Guennadi Liakhovetski 2013-04-05 10:00 ` [PATCH v5 1/3] ARM: shmobile: sh73a0: add support for adjusting CPU frequency Guennadi Liakhovetski 2013-04-05 10:00 ` Guennadi Liakhovetski 2013-04-05 10:00 ` Guennadi Liakhovetski 2013-04-18 13:52 ` Simon Horman 2013-04-18 13:52 ` Simon Horman 2013-04-18 13:52 ` Simon Horman 2013-04-05 10:00 ` [PATCH v5 2/3] ARM: shmobile: kzm9g-reference: add AS3711 and CPUFreq DT bindings Guennadi Liakhovetski 2013-04-05 10:00 ` Guennadi Liakhovetski 2013-04-05 10:00 ` Guennadi Liakhovetski 2013-04-18 13:51 ` Simon Horman 2013-04-18 13:51 ` Simon Horman 2013-04-18 13:51 ` Simon Horman 2013-04-05 10:00 ` [PATCH v5 3/3] ARM: shmobile: sh73a0: add CPUFreq support Guennadi Liakhovetski 2013-04-05 10:00 ` Guennadi Liakhovetski 2013-04-05 10:00 ` Guennadi Liakhovetski 2013-04-05 16:07 ` Sergei Shtylyov 2013-04-05 16:07 ` Sergei Shtylyov 2013-04-05 16:07 ` Sergei Shtylyov 2013-04-05 18:04 ` Guennadi Liakhovetski 2013-04-05 18:04 ` Guennadi Liakhovetski 2013-04-05 18:04 ` Guennadi Liakhovetski 2013-04-05 18:16 ` Sergei Shtylyov 2013-04-05 18:16 ` Sergei Shtylyov 2013-04-05 18:16 ` Sergei Shtylyov 2013-04-18 13:52 ` Simon Horman 2013-04-18 13:52 ` Simon Horman 2013-04-18 13:52 ` Simon Horman
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.