* [PATCH 1/2] ARM: dts: imx6ul: add 696MHz operating point @ 2018-01-02 17:07 Anson Huang 2018-01-02 15:03 ` Fabio Estevam 2018-01-02 17:07 ` [PATCH 2/2] cpufreq: imx6q: add 696MHz operating point for i.mx6ul Anson Huang 0 siblings, 2 replies; 13+ messages in thread From: Anson Huang @ 2018-01-02 17:07 UTC (permalink / raw) To: linux-arm-kernel, devicetree, linux-pm, linux-kernel Cc: shawnguo, kernel, fabio.estevam, robh+dt, mark.rutland, linux, rjw, viresh.kumar, ping.bai, aisheng.dong Add 696MHz operating point according to datasheet (Rev. 0, 12/2015). Signed-off-by: Anson Huang <Anson.Huang@nxp.com> --- arch/arm/boot/dts/imx6ul.dtsi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index e0b4a46..86b3251 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -68,12 +68,14 @@ clock-latency = <61036>; /* two CLK32 periods */ operating-points = < /* kHz uV */ + 696000 1275000 528000 1175000 396000 1025000 198000 950000 >; fsl,soc-operating-points = < /* KHz uV */ + 696000 1275000 528000 1175000 396000 1175000 198000 1175000 -- 1.9.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] ARM: dts: imx6ul: add 696MHz operating point 2018-01-02 17:07 [PATCH 1/2] ARM: dts: imx6ul: add 696MHz operating point Anson Huang @ 2018-01-02 15:03 ` Fabio Estevam [not found] ` <E5B0DB53-D0E5-430B-BBCC-EF3899C70DAE@nxp.com> 2018-01-02 17:07 ` [PATCH 2/2] cpufreq: imx6q: add 696MHz operating point for i.mx6ul Anson Huang 1 sibling, 1 reply; 13+ messages in thread From: Fabio Estevam @ 2018-01-02 15:03 UTC (permalink / raw) To: Anson Huang Cc: moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-pm, linux-kernel, Mark Rutland, Dong Aisheng, Ping Bai, viresh kumar, rjw, Russell King - ARM Linux, Rob Herring, Sascha Hauer, Fabio Estevam, Shawn Guo Hi Anson, On Tue, Jan 2, 2018 at 3:07 PM, Anson Huang <Anson.Huang@nxp.com> wrote: > Add 696MHz operating point according to datasheet > (Rev. 0, 12/2015). There is a newer version from 05/2017: https://www.nxp.com/docs/en/data-sheet/IMX6ULAEC.pdf > > Signed-off-by: Anson Huang <Anson.Huang@nxp.com> > --- > arch/arm/boot/dts/imx6ul.dtsi | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi > index e0b4a46..86b3251 100644 > --- a/arch/arm/boot/dts/imx6ul.dtsi > +++ b/arch/arm/boot/dts/imx6ul.dtsi > @@ -68,12 +68,14 @@ > clock-latency = <61036>; /* two CLK32 periods */ > operating-points = < > /* kHz uV */ > + 696000 1275000 > 528000 1175000 > 396000 1025000 > 198000 950000 > >; > fsl,soc-operating-points = < > /* KHz uV */ > + 696000 1275000 Why 1.275V? According to the datasheet, the minimum value for VDD_SOC_CAP is 1.15V for all frequencies. Adding 25mV of margin leads to 1.175V. ^ permalink raw reply [flat|nested] 13+ messages in thread
[parent not found: <E5B0DB53-D0E5-430B-BBCC-EF3899C70DAE@nxp.com>]
* Re: [PATCH 1/2] ARM: dts: imx6ul: add 696MHz operating point [not found] ` <E5B0DB53-D0E5-430B-BBCC-EF3899C70DAE@nxp.com> @ 2018-01-02 15:32 ` Fabio Estevam 2018-01-03 2:09 ` Anson Huang 0 siblings, 1 reply; 13+ messages in thread From: Fabio Estevam @ 2018-01-02 15:32 UTC (permalink / raw) To: Anson Huang Cc: moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-pm@vger.kernel.org, linux-kernel, Mark Rutland, A.s. Dong, Jacky Bai, viresh kumar, rjw@rjwysocki.net, Russell King - ARM Linux, Rob Herring, Sascha Hauer, Fabio Estevam, Shawn Guo On Tue, Jan 2, 2018 at 1:12 PM, Anson Huang <anson.huang@nxp.com> wrote: > There is a comment in VDD_ARM, VDD_SOC must NOT lower than VDD_ARM. > > Output voltage must be set to the following rules: > • VDD_ARM_CAP <= VDD_SOC_CAP > • VDD_SOC_CAP - VDD_ARM_CAP < 330 mV Thanks for the clarifcation. Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [PATCH 1/2] ARM: dts: imx6ul: add 696MHz operating point 2018-01-02 15:32 ` Fabio Estevam @ 2018-01-03 2:09 ` Anson Huang 0 siblings, 0 replies; 13+ messages in thread From: Anson Huang @ 2018-01-03 2:09 UTC (permalink / raw) To: Fabio Estevam Cc: linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel, Mark Rutland, A.s. Dong, Jacky Bai, viresh kumar, rjw@rjwysocki.net, Russell King - ARM Linux, Rob Herring, Sascha Hauer, Fabio Estevam, Shawn Guo Post this discussion mail to kernel mail list, since last mail is rejected due to incorrect format, sorry for confusion. Best Regards! Anson Huang > -----Original Message----- > From: Fabio Estevam [mailto:festevam@gmail.com] > Sent: 2018-01-02 11:32 PM > To: Anson Huang <anson.huang@nxp.com> > Cc: moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE <linux- > arm-kernel@lists.infradead.org>; open list:OPEN FIRMWARE AND FLATTENED > DEVICE TREE BINDINGS <devicetree@vger.kernel.org>; linux- > pm@vger.kernel.org; linux-kernel <linux-kernel@vger.kernel.org>; Mark > Rutland <mark.rutland@arm.com>; A.s. Dong <aisheng.dong@nxp.com>; Jacky > Bai <ping.bai@nxp.com>; viresh kumar <viresh.kumar@linaro.org>; > rjw@rjwysocki.net; Russell King - ARM Linux <linux@armlinux.org.uk>; Rob > Herring <robh+dt@kernel.org>; Sascha Hauer <kernel@pengutronix.de>; > Fabio Estevam <fabio.estevam@nxp.com>; Shawn Guo > <shawnguo@kernel.org> > Subject: Re: [PATCH 1/2] ARM: dts: imx6ul: add 696MHz operating point > > On Tue, Jan 2, 2018 at 1:12 PM, Anson Huang <anson.huang@nxp.com> wrote: > > > There is a comment in VDD_ARM, VDD_SOC must NOT lower than VDD_ARM. > > > > Output voltage must be set to the following rules: > > • VDD_ARM_CAP <= VDD_SOC_CAP > > • VDD_SOC_CAP - VDD_ARM_CAP < 330 mV > > Thanks for the clarifcation. > > Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 2/2] cpufreq: imx6q: add 696MHz operating point for i.mx6ul 2018-01-02 17:07 [PATCH 1/2] ARM: dts: imx6ul: add 696MHz operating point Anson Huang 2018-01-02 15:03 ` Fabio Estevam @ 2018-01-02 17:07 ` Anson Huang 2018-01-02 14:37 ` Fabio Estevam 2018-01-05 12:21 ` Rafael J. Wysocki 1 sibling, 2 replies; 13+ messages in thread From: Anson Huang @ 2018-01-02 17:07 UTC (permalink / raw) To: linux-arm-kernel, devicetree, linux-pm, linux-kernel Cc: shawnguo, kernel, fabio.estevam, robh+dt, mark.rutland, linux, rjw, viresh.kumar, ping.bai, aisheng.dong Add 696MHz operating point for i.MX6UL, only for those parts with speed grading fuse set to 2b'10 supports 696MHz operating point, so, speed grading check is also added for i.MX6UL in this patch, the clock tree for each operating point are as below: 696MHz: pll1 696000000 pll1_bypass 696000000 pll1_sys 696000000 pll1_sw 696000000 arm 696000000 528MHz: pll2 528000000 pll2_bypass 528000000 pll2_bus 528000000 ca7_secondary_sel 528000000 step 528000000 pll1_sw 528000000 arm 528000000 396MHz: pll2_pfd2_396m 396000000 ca7_secondary_sel 396000000 step 396000000 pll1_sw 396000000 arm 396000000 198MHz: pll2_pfd2_396m 396000000 ca7_secondary_sel 396000000 step 396000000 pll1_sw 396000000 arm 198000000 Signed-off-by: Anson Huang <Anson.Huang@nxp.com> --- drivers/cpufreq/imx6q-cpufreq.c | 46 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/drivers/cpufreq/imx6q-cpufreq.c b/drivers/cpufreq/imx6q-cpufreq.c index d9b2c2d..cbda0cc 100644 --- a/drivers/cpufreq/imx6q-cpufreq.c +++ b/drivers/cpufreq/imx6q-cpufreq.c @@ -120,6 +120,10 @@ static int imx6q_set_target(struct cpufreq_policy *policy, unsigned int index) clk_set_parent(secondary_sel_clk, pll2_pfd2_396m_clk); clk_set_parent(step_clk, secondary_sel_clk); clk_set_parent(pll1_sw_clk, step_clk); + if (freq_hz > clk_get_rate(pll2_bus_clk)) { + clk_set_rate(pll1_sys_clk, new_freq * 1000); + clk_set_parent(pll1_sw_clk, pll1_sys_clk); + } } else { clk_set_parent(step_clk, pll2_pfd2_396m_clk); clk_set_parent(pll1_sw_clk, step_clk); @@ -244,6 +248,43 @@ static void imx6q_opp_check_speed_grading(struct device *dev) of_node_put(np); } +#define OCOTP_CFG3_6UL_SPEED_696MHZ 0x2 + +static void imx6ul_opp_check_speed_grading(struct device *dev) +{ + struct device_node *np; + void __iomem *base; + u32 val; + + np = of_find_compatible_node(NULL, NULL, "fsl,imx6ul-ocotp"); + if (!np) + return; + + base = of_iomap(np, 0); + if (!base) { + dev_err(dev, "failed to map ocotp\n"); + goto put_node; + } + + /* + * Speed GRADING[1:0] defines the max speed of ARM: + * 2b'00: Reserved; + * 2b'01: 528000000Hz; + * 2b'10: 696000000Hz; + * 2b'11: Reserved; + * We need to set the max speed of ARM according to fuse map. + */ + val = readl_relaxed(base + OCOTP_CFG3); + val >>= OCOTP_CFG3_SPEED_SHIFT; + val &= 0x3; + if (val != OCOTP_CFG3_6UL_SPEED_696MHZ) + if (dev_pm_opp_disable(dev, 696000000)) + dev_warn(dev, "failed to disable 696MHz OPP\n"); + iounmap(base); +put_node: + of_node_put(np); +} + static int imx6q_cpufreq_probe(struct platform_device *pdev) { struct device_node *np; @@ -311,7 +352,10 @@ static int imx6q_cpufreq_probe(struct platform_device *pdev) goto put_reg; } - imx6q_opp_check_speed_grading(cpu_dev); + if (of_machine_is_compatible("fsl,imx6ul")) + imx6ul_opp_check_speed_grading(cpu_dev); + else + imx6q_opp_check_speed_grading(cpu_dev); /* Because we have added the OPPs here, we must free them */ free_opp = true; -- 1.9.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] cpufreq: imx6q: add 696MHz operating point for i.mx6ul 2018-01-02 17:07 ` [PATCH 2/2] cpufreq: imx6q: add 696MHz operating point for i.mx6ul Anson Huang @ 2018-01-02 14:37 ` Fabio Estevam [not found] ` <A2F3BA8B-361A-4809-83FE-4067CD868D5B@nxp.com> 2018-01-05 12:21 ` Rafael J. Wysocki 1 sibling, 1 reply; 13+ messages in thread From: Fabio Estevam @ 2018-01-02 14:37 UTC (permalink / raw) To: Anson Huang Cc: moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-pm, linux-kernel, Mark Rutland, Dong Aisheng, Ping Bai, viresh kumar, rjw, Russell King - ARM Linux, Rob Herring, Sascha Hauer, Fabio Estevam, Shawn Guo Hi Anson, On Tue, Jan 2, 2018 at 3:07 PM, Anson Huang <Anson.Huang@nxp.com> wrote: > diff --git a/drivers/cpufreq/imx6q-cpufreq.c b/drivers/cpufreq/imx6q-cpufreq.c > index d9b2c2d..cbda0cc 100644 > --- a/drivers/cpufreq/imx6q-cpufreq.c > +++ b/drivers/cpufreq/imx6q-cpufreq.c > @@ -120,6 +120,10 @@ static int imx6q_set_target(struct cpufreq_policy *policy, unsigned int index) > clk_set_parent(secondary_sel_clk, pll2_pfd2_396m_clk); > clk_set_parent(step_clk, secondary_sel_clk); > clk_set_parent(pll1_sw_clk, step_clk); > + if (freq_hz > clk_get_rate(pll2_bus_clk)) { > + clk_set_rate(pll1_sys_clk, new_freq * 1000); > + clk_set_parent(pll1_sw_clk, pll1_sys_clk); > + } This change should be part of a different patch. Thanks ^ permalink raw reply [flat|nested] 13+ messages in thread
[parent not found: <A2F3BA8B-361A-4809-83FE-4067CD868D5B@nxp.com>]
* Re: [PATCH 2/2] cpufreq: imx6q: add 696MHz operating point for i.mx6ul [not found] ` <A2F3BA8B-361A-4809-83FE-4067CD868D5B@nxp.com> @ 2018-01-02 15:13 ` Fabio Estevam [not found] ` <6FFDB281-8293-4D2C-891F-B376B52EFECF@nxp.com> 0 siblings, 1 reply; 13+ messages in thread From: Fabio Estevam @ 2018-01-02 15:13 UTC (permalink / raw) To: Anson Huang Cc: moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-pm@vger.kernel.org, linux-kernel, Mark Rutland, A.s. Dong, Jacky Bai, viresh kumar, rjw@rjwysocki.net, Russell King - ARM Linux, Rob Herring, Sascha Hauer, Fabio Estevam, Shawn Guo Hi Anson, On Tue, Jan 2, 2018 at 1:05 PM, Anson Huang <anson.huang@nxp.com> wrote: > This change is to support 696MHz operating point, both the speed grading > check and pll rate change are necessary for 696MHz support, do you think > they should be in different patch? I thought this could also change the behaviour for mx6q/dl/qp. Are the others SoCs safe with this change? ^ permalink raw reply [flat|nested] 13+ messages in thread
[parent not found: <6FFDB281-8293-4D2C-891F-B376B52EFECF@nxp.com>]
* Re: [PATCH 2/2] cpufreq: imx6q: add 696MHz operating point for i.mx6ul [not found] ` <6FFDB281-8293-4D2C-891F-B376B52EFECF@nxp.com> @ 2018-01-02 15:33 ` Fabio Estevam 2018-01-03 2:10 ` Anson Huang 0 siblings, 1 reply; 13+ messages in thread From: Fabio Estevam @ 2018-01-02 15:33 UTC (permalink / raw) To: Anson Huang Cc: moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-pm@vger.kernel.org, linux-kernel, Mark Rutland, A.s. Dong, Jacky Bai, viresh kumar, rjw@rjwysocki.net, Russell King - ARM Linux, Rob Herring, Sascha Hauer, Fabio Estevam, Shawn Guo On Tue, Jan 2, 2018 at 1:17 PM, Anson Huang <anson.huang@nxp.com> wrote: > This change is only valid for mx6ul and mx6ull, other SoCs like 6q/dl/qp are > NOT impacted. Thanks for the clarification: Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [PATCH 2/2] cpufreq: imx6q: add 696MHz operating point for i.mx6ul 2018-01-02 15:33 ` Fabio Estevam @ 2018-01-03 2:10 ` Anson Huang 0 siblings, 0 replies; 13+ messages in thread From: Anson Huang @ 2018-01-03 2:10 UTC (permalink / raw) To: Fabio Estevam Cc: linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel, Mark Rutland, A.s. Dong, Jacky Bai, viresh kumar, rjw@rjwysocki.net, Russell King - ARM Linux, Rob Herring, Sascha Hauer, Fabio Estevam, Shawn Guo Post the discussion mail to arm kernel mail list, since last mail is rejected due to incorrect format, sorry for the confusion. Best Regards! Anson Huang > -----Original Message----- > From: Fabio Estevam [mailto:festevam@gmail.com] > Sent: 2018-01-02 11:33 PM > To: Anson Huang <anson.huang@nxp.com> > Cc: moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE <linux- > arm-kernel@lists.infradead.org>; open list:OPEN FIRMWARE AND FLATTENED > DEVICE TREE BINDINGS <devicetree@vger.kernel.org>; linux- > pm@vger.kernel.org; linux-kernel <linux-kernel@vger.kernel.org>; Mark > Rutland <mark.rutland@arm.com>; A.s. Dong <aisheng.dong@nxp.com>; Jacky > Bai <ping.bai@nxp.com>; viresh kumar <viresh.kumar@linaro.org>; > rjw@rjwysocki.net; Russell King - ARM Linux <linux@armlinux.org.uk>; Rob > Herring <robh+dt@kernel.org>; Sascha Hauer <kernel@pengutronix.de>; > Fabio Estevam <fabio.estevam@nxp.com>; Shawn Guo > <shawnguo@kernel.org> > Subject: Re: [PATCH 2/2] cpufreq: imx6q: add 696MHz operating point for > i.mx6ul > > On Tue, Jan 2, 2018 at 1:17 PM, Anson Huang <anson.huang@nxp.com> wrote: > > > This change is only valid for mx6ul and mx6ull, other SoCs like > > 6q/dl/qp are NOT impacted. > > Thanks for the clarification: > > Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] cpufreq: imx6q: add 696MHz operating point for i.mx6ul 2018-01-02 17:07 ` [PATCH 2/2] cpufreq: imx6q: add 696MHz operating point for i.mx6ul Anson Huang 2018-01-02 14:37 ` Fabio Estevam @ 2018-01-05 12:21 ` Rafael J. Wysocki 2018-01-06 3:05 ` Anson Huang 1 sibling, 1 reply; 13+ messages in thread From: Rafael J. Wysocki @ 2018-01-05 12:21 UTC (permalink / raw) To: Anson Huang Cc: linux-arm-kernel, devicetree@vger.kernel.org, Linux PM, Linux Kernel Mailing List, Shawn Guo, Sascha Hauer, Fabio Estevam, Rob Herring, Mark Rutland, Russell King - ARM Linux, Rafael J. Wysocki, Viresh Kumar, Ping Bai, aisheng.dong On Tue, Jan 2, 2018 at 6:07 PM, Anson Huang <Anson.Huang@nxp.com> wrote: > Add 696MHz operating point for i.MX6UL, only for those > parts with speed grading fuse set to 2b'10 supports > 696MHz operating point, so, speed grading check is also > added for i.MX6UL in this patch, the clock tree for each > operating point are as below: > > 696MHz: > pll1 696000000 > pll1_bypass 696000000 > pll1_sys 696000000 > pll1_sw 696000000 > arm 696000000 > 528MHz: > pll2 528000000 > pll2_bypass 528000000 > pll2_bus 528000000 > ca7_secondary_sel 528000000 > step 528000000 > pll1_sw 528000000 > arm 528000000 > 396MHz: > pll2_pfd2_396m 396000000 > ca7_secondary_sel 396000000 > step 396000000 > pll1_sw 396000000 > arm 396000000 > 198MHz: > pll2_pfd2_396m 396000000 > ca7_secondary_sel 396000000 > step 396000000 > pll1_sw 396000000 > arm 198000000 > > Signed-off-by: Anson Huang <Anson.Huang@nxp.com> This doesn't apply for me and in a nontrivial way. What kernel is it against? > --- > drivers/cpufreq/imx6q-cpufreq.c | 46 ++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 45 insertions(+), 1 deletion(-) > > diff --git a/drivers/cpufreq/imx6q-cpufreq.c b/drivers/cpufreq/imx6q-cpufreq.c > index d9b2c2d..cbda0cc 100644 > --- a/drivers/cpufreq/imx6q-cpufreq.c > +++ b/drivers/cpufreq/imx6q-cpufreq.c > @@ -120,6 +120,10 @@ static int imx6q_set_target(struct cpufreq_policy *policy, unsigned int index) > clk_set_parent(secondary_sel_clk, pll2_pfd2_396m_clk); > clk_set_parent(step_clk, secondary_sel_clk); > clk_set_parent(pll1_sw_clk, step_clk); > + if (freq_hz > clk_get_rate(pll2_bus_clk)) { > + clk_set_rate(pll1_sys_clk, new_freq * 1000); > + clk_set_parent(pll1_sw_clk, pll1_sys_clk); > + } > } else { > clk_set_parent(step_clk, pll2_pfd2_396m_clk); > clk_set_parent(pll1_sw_clk, step_clk); > @@ -244,6 +248,43 @@ static void imx6q_opp_check_speed_grading(struct device *dev) > of_node_put(np); > } > > +#define OCOTP_CFG3_6UL_SPEED_696MHZ 0x2 > + > +static void imx6ul_opp_check_speed_grading(struct device *dev) > +{ > + struct device_node *np; > + void __iomem *base; > + u32 val; > + > + np = of_find_compatible_node(NULL, NULL, "fsl,imx6ul-ocotp"); > + if (!np) > + return; > + > + base = of_iomap(np, 0); > + if (!base) { > + dev_err(dev, "failed to map ocotp\n"); > + goto put_node; > + } > + > + /* > + * Speed GRADING[1:0] defines the max speed of ARM: > + * 2b'00: Reserved; > + * 2b'01: 528000000Hz; > + * 2b'10: 696000000Hz; > + * 2b'11: Reserved; > + * We need to set the max speed of ARM according to fuse map. > + */ > + val = readl_relaxed(base + OCOTP_CFG3); > + val >>= OCOTP_CFG3_SPEED_SHIFT; > + val &= 0x3; > + if (val != OCOTP_CFG3_6UL_SPEED_696MHZ) > + if (dev_pm_opp_disable(dev, 696000000)) > + dev_warn(dev, "failed to disable 696MHz OPP\n"); > + iounmap(base); > +put_node: > + of_node_put(np); > +} > + > static int imx6q_cpufreq_probe(struct platform_device *pdev) > { > struct device_node *np; > @@ -311,7 +352,10 @@ static int imx6q_cpufreq_probe(struct platform_device *pdev) > goto put_reg; > } > > - imx6q_opp_check_speed_grading(cpu_dev); > + if (of_machine_is_compatible("fsl,imx6ul")) > + imx6ul_opp_check_speed_grading(cpu_dev); > + else > + imx6q_opp_check_speed_grading(cpu_dev); > > /* Because we have added the OPPs here, we must free them */ > free_opp = true; > -- > 1.9.1 > ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [PATCH 2/2] cpufreq: imx6q: add 696MHz operating point for i.mx6ul 2018-01-05 12:21 ` Rafael J. Wysocki @ 2018-01-06 3:05 ` Anson Huang 2018-01-07 23:34 ` Rafael J. Wysocki 0 siblings, 1 reply; 13+ messages in thread From: Anson Huang @ 2018-01-06 3:05 UTC (permalink / raw) To: Rafael J. Wysocki Cc: linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Linux PM, Linux Kernel Mailing List, Shawn Guo, Sascha Hauer, Fabio Estevam, Rob Herring, Mark Rutland, Russell King - ARM Linux, Rafael J. Wysocki, Viresh Kumar, Jacky Bai, A.s. Dong Hi, Rafael Best Regards! Anson Huang > -----Original Message----- > From: rjwysocki@gmail.com [mailto:rjwysocki@gmail.com] On Behalf Of Rafael > J. Wysocki > Sent: 2018-01-05 8:21 PM > To: Anson Huang <anson.huang@nxp.com> > Cc: linux-arm-kernel@lists.infradead.org; devicetree@vger.kernel.org; Linux > PM <linux-pm@vger.kernel.org>; Linux Kernel Mailing List <linux- > kernel@vger.kernel.org>; Shawn Guo <shawnguo@kernel.org>; Sascha Hauer > <kernel@pengutronix.de>; Fabio Estevam <fabio.estevam@nxp.com>; Rob > Herring <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; > Russell King - ARM Linux <linux@armlinux.org.uk>; Rafael J. Wysocki > <rjw@rjwysocki.net>; Viresh Kumar <viresh.kumar@linaro.org>; Jacky Bai > <ping.bai@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > Subject: Re: [PATCH 2/2] cpufreq: imx6q: add 696MHz operating point for > i.mx6ul > > On Tue, Jan 2, 2018 at 6:07 PM, Anson Huang <Anson.Huang@nxp.com> wrote: > > Add 696MHz operating point for i.MX6UL, only for those parts with > > speed grading fuse set to 2b'10 supports 696MHz operating point, so, > > speed grading check is also added for i.MX6UL in this patch, the clock > > tree for each operating point are as below: > > > > 696MHz: > > pll1 696000000 > > pll1_bypass 696000000 > > pll1_sys 696000000 > > pll1_sw 696000000 > > arm 696000000 > > 528MHz: > > pll2 528000000 > > pll2_bypass 528000000 > > pll2_bus 528000000 > > ca7_secondary_sel 528000000 > > step 528000000 > > pll1_sw 528000000 > > arm 528000000 > > 396MHz: > > pll2_pfd2_396m 396000000 > > ca7_secondary_sel 396000000 > > step 396000000 > > pll1_sw 396000000 > > arm 396000000 > > 198MHz: > > pll2_pfd2_396m 396000000 > > ca7_secondary_sel 396000000 > > step 396000000 > > pll1_sw 396000000 > > arm 198000000 > > > > Signed-off-by: Anson Huang <Anson.Huang@nxp.com> > > This doesn't apply for me and in a nontrivial way. > > What kernel is it against? I did it based on linux-next, it should be on linux-next-pm branch, I redo the patch set V2 based on linux-next-pm, also redo the test, sorry for the inconvenience. Anson. > > > --- > > drivers/cpufreq/imx6q-cpufreq.c | 46 > > ++++++++++++++++++++++++++++++++++++++++- > > 1 file changed, 45 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/cpufreq/imx6q-cpufreq.c > > b/drivers/cpufreq/imx6q-cpufreq.c index d9b2c2d..cbda0cc 100644 > > --- a/drivers/cpufreq/imx6q-cpufreq.c > > +++ b/drivers/cpufreq/imx6q-cpufreq.c > > @@ -120,6 +120,10 @@ static int imx6q_set_target(struct cpufreq_policy > *policy, unsigned int index) > > clk_set_parent(secondary_sel_clk, pll2_pfd2_396m_clk); > > clk_set_parent(step_clk, secondary_sel_clk); > > clk_set_parent(pll1_sw_clk, step_clk); > > + if (freq_hz > clk_get_rate(pll2_bus_clk)) { > > + clk_set_rate(pll1_sys_clk, new_freq * 1000); > > + clk_set_parent(pll1_sw_clk, pll1_sys_clk); > > + } > > } else { > > clk_set_parent(step_clk, pll2_pfd2_396m_clk); > > clk_set_parent(pll1_sw_clk, step_clk); @@ -244,6 > > +248,43 @@ static void imx6q_opp_check_speed_grading(struct device *dev) > > of_node_put(np); > > } > > > > +#define OCOTP_CFG3_6UL_SPEED_696MHZ 0x2 > > + > > +static void imx6ul_opp_check_speed_grading(struct device *dev) { > > + struct device_node *np; > > + void __iomem *base; > > + u32 val; > > + > > + np = of_find_compatible_node(NULL, NULL, "fsl,imx6ul-ocotp"); > > + if (!np) > > + return; > > + > > + base = of_iomap(np, 0); > > + if (!base) { > > + dev_err(dev, "failed to map ocotp\n"); > > + goto put_node; > > + } > > + > > + /* > > + * Speed GRADING[1:0] defines the max speed of ARM: > > + * 2b'00: Reserved; > > + * 2b'01: 528000000Hz; > > + * 2b'10: 696000000Hz; > > + * 2b'11: Reserved; > > + * We need to set the max speed of ARM according to fuse map. > > + */ > > + val = readl_relaxed(base + OCOTP_CFG3); > > + val >>= OCOTP_CFG3_SPEED_SHIFT; > > + val &= 0x3; > > + if (val != OCOTP_CFG3_6UL_SPEED_696MHZ) > > + if (dev_pm_opp_disable(dev, 696000000)) > > + dev_warn(dev, "failed to disable 696MHz OPP\n"); > > + iounmap(base); > > +put_node: > > + of_node_put(np); > > +} > > + > > static int imx6q_cpufreq_probe(struct platform_device *pdev) { > > struct device_node *np; > > @@ -311,7 +352,10 @@ static int imx6q_cpufreq_probe(struct > platform_device *pdev) > > goto put_reg; > > } > > > > - imx6q_opp_check_speed_grading(cpu_dev); > > + if (of_machine_is_compatible("fsl,imx6ul")) > > + imx6ul_opp_check_speed_grading(cpu_dev); > > + else > > + imx6q_opp_check_speed_grading(cpu_dev); > > > > /* Because we have added the OPPs here, we must free them */ > > free_opp = true; > > -- > > 1.9.1 > > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] cpufreq: imx6q: add 696MHz operating point for i.mx6ul 2018-01-06 3:05 ` Anson Huang @ 2018-01-07 23:34 ` Rafael J. Wysocki 2018-01-08 1:56 ` Anson Huang 0 siblings, 1 reply; 13+ messages in thread From: Rafael J. Wysocki @ 2018-01-07 23:34 UTC (permalink / raw) To: Anson Huang Cc: Rafael J. Wysocki, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Linux PM, Linux Kernel Mailing List, Shawn Guo, Sascha Hauer, Fabio Estevam, Rob Herring, Mark Rutland, Russell King - ARM Linux, Viresh Kumar, Jacky Bai, A.s. Dong On Saturday, January 6, 2018 4:05:41 AM CET Anson Huang wrote: > Hi, Rafael > > Best Regards! > Anson Huang > > > > -----Original Message----- > > From: rjwysocki@gmail.com [mailto:rjwysocki@gmail.com] On Behalf Of Rafael > > J. Wysocki > > Sent: 2018-01-05 8:21 PM > > To: Anson Huang <anson.huang@nxp.com> > > Cc: linux-arm-kernel@lists.infradead.org; devicetree@vger.kernel.org; Linux > > PM <linux-pm@vger.kernel.org>; Linux Kernel Mailing List <linux- > > kernel@vger.kernel.org>; Shawn Guo <shawnguo@kernel.org>; Sascha Hauer > > <kernel@pengutronix.de>; Fabio Estevam <fabio.estevam@nxp.com>; Rob > > Herring <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; > > Russell King - ARM Linux <linux@armlinux.org.uk>; Rafael J. Wysocki > > <rjw@rjwysocki.net>; Viresh Kumar <viresh.kumar@linaro.org>; Jacky Bai > > <ping.bai@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > > Subject: Re: [PATCH 2/2] cpufreq: imx6q: add 696MHz operating point for > > i.mx6ul > > > > On Tue, Jan 2, 2018 at 6:07 PM, Anson Huang <Anson.Huang@nxp.com> wrote: > > > Add 696MHz operating point for i.MX6UL, only for those parts with > > > speed grading fuse set to 2b'10 supports 696MHz operating point, so, > > > speed grading check is also added for i.MX6UL in this patch, the clock > > > tree for each operating point are as below: > > > > > > 696MHz: > > > pll1 696000000 > > > pll1_bypass 696000000 > > > pll1_sys 696000000 > > > pll1_sw 696000000 > > > arm 696000000 > > > 528MHz: > > > pll2 528000000 > > > pll2_bypass 528000000 > > > pll2_bus 528000000 > > > ca7_secondary_sel 528000000 > > > step 528000000 > > > pll1_sw 528000000 > > > arm 528000000 > > > 396MHz: > > > pll2_pfd2_396m 396000000 > > > ca7_secondary_sel 396000000 > > > step 396000000 > > > pll1_sw 396000000 > > > arm 396000000 > > > 198MHz: > > > pll2_pfd2_396m 396000000 > > > ca7_secondary_sel 396000000 > > > step 396000000 > > > pll1_sw 396000000 > > > arm 198000000 > > > > > > Signed-off-by: Anson Huang <Anson.Huang@nxp.com> > > > > This doesn't apply for me and in a nontrivial way. > > > > What kernel is it against? > > I did it based on linux-next, it should be on linux-next-pm branch, I redo > the patch set V2 based on linux-next-pm, also redo the test, > sorry for the inconvenience. But you didn't add the Reviewed-by: tags from Fabio to them. Was that on purpose or by mistake? Thanks, Rafael ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [PATCH 2/2] cpufreq: imx6q: add 696MHz operating point for i.mx6ul 2018-01-07 23:34 ` Rafael J. Wysocki @ 2018-01-08 1:56 ` Anson Huang 0 siblings, 0 replies; 13+ messages in thread From: Anson Huang @ 2018-01-08 1:56 UTC (permalink / raw) To: Rafael J. Wysocki Cc: Rafael J. Wysocki, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Linux PM, Linux Kernel Mailing List, Shawn Guo, Sascha Hauer, Fabio Estevam, Rob Herring, Mark Rutland, Russell King - ARM Linux, Viresh Kumar, Jacky Bai, A.s. Dong Best Regards! Anson Huang > -----Original Message----- > From: Rafael J. Wysocki [mailto:rjw@rjwysocki.net] > Sent: 2018-01-08 7:34 AM > To: Anson Huang <anson.huang@nxp.com> > Cc: Rafael J. Wysocki <rafael@kernel.org>; linux-arm- > kernel@lists.infradead.org; devicetree@vger.kernel.org; Linux PM <linux- > pm@vger.kernel.org>; Linux Kernel Mailing List <linux- > kernel@vger.kernel.org>; Shawn Guo <shawnguo@kernel.org>; Sascha Hauer > <kernel@pengutronix.de>; Fabio Estevam <fabio.estevam@nxp.com>; Rob > Herring <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; > Russell King - ARM Linux <linux@armlinux.org.uk>; Viresh Kumar > <viresh.kumar@linaro.org>; Jacky Bai <ping.bai@nxp.com>; A.s. Dong > <aisheng.dong@nxp.com> > Subject: Re: [PATCH 2/2] cpufreq: imx6q: add 696MHz operating point for > i.mx6ul > > On Saturday, January 6, 2018 4:05:41 AM CET Anson Huang wrote: > > Hi, Rafael > > > > Best Regards! > > Anson Huang > > > > > > > -----Original Message----- > > > From: rjwysocki@gmail.com [mailto:rjwysocki@gmail.com] On Behalf Of > > > Rafael J. Wysocki > > > Sent: 2018-01-05 8:21 PM > > > To: Anson Huang <anson.huang@nxp.com> > > > Cc: linux-arm-kernel@lists.infradead.org; > > > devicetree@vger.kernel.org; Linux PM <linux-pm@vger.kernel.org>; > > > Linux Kernel Mailing List <linux- kernel@vger.kernel.org>; Shawn Guo > > > <shawnguo@kernel.org>; Sascha Hauer <kernel@pengutronix.de>; Fabio > > > Estevam <fabio.estevam@nxp.com>; Rob Herring <robh+dt@kernel.org>; > > > Mark Rutland <mark.rutland@arm.com>; Russell King - ARM Linux > > > <linux@armlinux.org.uk>; Rafael J. Wysocki <rjw@rjwysocki.net>; > > > Viresh Kumar <viresh.kumar@linaro.org>; Jacky Bai > > > <ping.bai@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > > > Subject: Re: [PATCH 2/2] cpufreq: imx6q: add 696MHz operating point > > > for i.mx6ul > > > > > > On Tue, Jan 2, 2018 at 6:07 PM, Anson Huang <Anson.Huang@nxp.com> > wrote: > > > > Add 696MHz operating point for i.MX6UL, only for those parts with > > > > speed grading fuse set to 2b'10 supports 696MHz operating point, > > > > so, speed grading check is also added for i.MX6UL in this patch, > > > > the clock tree for each operating point are as below: > > > > > > > > 696MHz: > > > > pll1 696000000 > > > > pll1_bypass 696000000 > > > > pll1_sys 696000000 > > > > pll1_sw 696000000 > > > > arm 696000000 > > > > 528MHz: > > > > pll2 528000000 > > > > pll2_bypass 528000000 > > > > pll2_bus 528000000 > > > > ca7_secondary_sel 528000000 > > > > step 528000000 > > > > pll1_sw 528000000 > > > > arm 528000000 > > > > 396MHz: > > > > pll2_pfd2_396m 396000000 > > > > ca7_secondary_sel 396000000 > > > > step 396000000 > > > > pll1_sw 396000000 > > > > arm 396000000 > > > > 198MHz: > > > > pll2_pfd2_396m 396000000 > > > > ca7_secondary_sel 396000000 > > > > step 396000000 > > > > pll1_sw 396000000 > > > > arm 198000000 > > > > > > > > Signed-off-by: Anson Huang <Anson.Huang@nxp.com> > > > > > > This doesn't apply for me and in a nontrivial way. > > > > > > What kernel is it against? > > > > I did it based on linux-next, it should be on linux-next-pm branch, I > > redo the patch set V2 based on linux-next-pm, also redo the test, > > sorry for the inconvenience. > > But you didn't add the Reviewed-by: tags from Fabio to them. > > Was that on purpose or by mistake? > > Thanks, > Rafael It was my mistake, I thought it will be added by maintainer, I will add them and set a V3 patch set. Thanks. Anson. ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2018-01-08 1:57 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-02 17:07 [PATCH 1/2] ARM: dts: imx6ul: add 696MHz operating point Anson Huang
2018-01-02 15:03 ` Fabio Estevam
[not found] ` <E5B0DB53-D0E5-430B-BBCC-EF3899C70DAE@nxp.com>
2018-01-02 15:32 ` Fabio Estevam
2018-01-03 2:09 ` Anson Huang
2018-01-02 17:07 ` [PATCH 2/2] cpufreq: imx6q: add 696MHz operating point for i.mx6ul Anson Huang
2018-01-02 14:37 ` Fabio Estevam
[not found] ` <A2F3BA8B-361A-4809-83FE-4067CD868D5B@nxp.com>
2018-01-02 15:13 ` Fabio Estevam
[not found] ` <6FFDB281-8293-4D2C-891F-B376B52EFECF@nxp.com>
2018-01-02 15:33 ` Fabio Estevam
2018-01-03 2:10 ` Anson Huang
2018-01-05 12:21 ` Rafael J. Wysocki
2018-01-06 3:05 ` Anson Huang
2018-01-07 23:34 ` Rafael J. Wysocki
2018-01-08 1:56 ` Anson Huang
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).