[PATCH 0/6] arm64: dts: freescale: imx8mp-skov: switch to nominal drive mode

Ahmad Fatoum posted 6 patches 12 months ago
There is a newer version of this series
.../devicetree/bindings/clock/imx8m-clock.yaml     |  14 ++
arch/arm64/boot/dts/freescale/imx8mp-nominal.dtsi  |  64 +++++++++
.../arm64/boot/dts/freescale/imx8mp-skov-reva.dtsi |   5 +-
.../freescale/imx8mp-skov-revb-mi1010ait-1cp1.dts  |  19 +--
drivers/clk/imx/clk-imx8mp.c                       | 147 +++++++++++++++++++++
5 files changed, 233 insertions(+), 16 deletions(-)
[PATCH 0/6] arm64: dts: freescale: imx8mp-skov: switch to nominal drive mode
Posted by Ahmad Fatoum 12 months ago
Unlike the i.MX8MM and i.MX8MN SoCs added earlier, the imx8mp.dtsi
configures some clocks at frequencies that are only validated for
overdrive mode, i.e., when VDD_SOC is 950 mV.

For the Skov i.MX8MP board, we want to run the SoC at the lower voltage of
850 mV though to reduce heat generation and power usage. For this to work,
clock rates need to adhere to the limits of the nominal drive mode.

This is done by this series: A new imx8mp-nominal.dtsi reconfigures
the imx8mp.dtsi clock tree to be compatible with nominal mode, an adaptation
to the Linux clock driver makes it sanity check the actual clock rates against
the SoC operating mode's constraints and finally the Skov DT makes use
of it.

Actual configuration of the VDD_SOC rail continues to happen prior to Linux
as well as PLL configuration that needs to happen earlier than the kernel
running. See the corresponding barebox patch series[1] for details.
Note that the barebox series didn't yet include VDD_SOC reconfiguration
to 850mV, that would follow once the kernel changes have been merged.

[1]: https://lore.kernel.org/barebox/20240503103717.1370636-1-a.fatoum@pengutronix.de/

---
Ahmad Fatoum (6):
      dt-bindings: clock: imx8m: document nominal/overdrive properties
      arm64: dts: imx8mp: Add optional nominal drive mode DTSI
      arm64: dts: imx8mp: add fsl,nominal-mode property into nominal.dtsi
      arm64: dts: freescale: imx8mp-skov: fix LDB clock rate configuration
      arm64: dts: freescale: imx8mp-skov: operate SoC in nominal mode
      clk: imx8mp: inform CCF of maximum frequency of clocks

 .../devicetree/bindings/clock/imx8m-clock.yaml     |  14 ++
 arch/arm64/boot/dts/freescale/imx8mp-nominal.dtsi  |  64 +++++++++
 .../arm64/boot/dts/freescale/imx8mp-skov-reva.dtsi |   5 +-
 .../freescale/imx8mp-skov-revb-mi1010ait-1cp1.dts  |  19 +--
 drivers/clk/imx/clk-imx8mp.c                       | 147 +++++++++++++++++++++
 5 files changed, 233 insertions(+), 16 deletions(-)
---
base-commit: 78d4f34e2115b517bcbfe7ec0d018bbbb6f9b0b8
change-id: 20241217-imx8m-clk-9467763dfcd8

Best regards,
-- 
Ahmad Fatoum <a.fatoum@pengutronix.de>
Re: [PATCH 0/6] arm64: dts: freescale: imx8mp-skov: switch to nominal drive mode
Posted by Peng Fan 12 months ago
On Thu, Dec 19, 2024 at 08:27:31AM +0100, Ahmad Fatoum wrote:
>Unlike the i.MX8MM and i.MX8MN SoCs added earlier, the imx8mp.dtsi
>configures some clocks at frequencies that are only validated for
>overdrive mode, i.e., when VDD_SOC is 950 mV.
>
>For the Skov i.MX8MP board, we want to run the SoC at the lower voltage of
>850 mV though to reduce heat generation and power usage. For this to work,
>clock rates need to adhere to the limits of the nominal drive mode.
>
>This is done by this series: A new imx8mp-nominal.dtsi reconfigures
>the imx8mp.dtsi clock tree to be compatible with nominal mode, an adaptation
>to the Linux clock driver makes it sanity check the actual clock rates against
>the SoC operating mode's constraints and finally the Skov DT makes use
>of it.
>
>Actual configuration of the VDD_SOC rail continues to happen prior to Linux
>as well as PLL configuration that needs to happen earlier than the kernel
>running. See the corresponding barebox patch series[1] for details.
>Note that the barebox series didn't yet include VDD_SOC reconfiguration
>to 850mV, that would follow once the kernel changes have been merged.

Good to see this. I had same plan to support i.MX9.

I see you introduce a new property, how about using a boot pararmeter,
saying "mode=nominal" or "mode=overdrive". Then drivers could
act accordingly.

Regards,
Peng

>
>[1]: https://lore.kernel.org/barebox/20240503103717.1370636-1-a.fatoum@pengutronix.de/
>
>---
>Ahmad Fatoum (6):
>      dt-bindings: clock: imx8m: document nominal/overdrive properties
>      arm64: dts: imx8mp: Add optional nominal drive mode DTSI
>      arm64: dts: imx8mp: add fsl,nominal-mode property into nominal.dtsi
>      arm64: dts: freescale: imx8mp-skov: fix LDB clock rate configuration
>      arm64: dts: freescale: imx8mp-skov: operate SoC in nominal mode
>      clk: imx8mp: inform CCF of maximum frequency of clocks
>
> .../devicetree/bindings/clock/imx8m-clock.yaml     |  14 ++
> arch/arm64/boot/dts/freescale/imx8mp-nominal.dtsi  |  64 +++++++++
> .../arm64/boot/dts/freescale/imx8mp-skov-reva.dtsi |   5 +-
> .../freescale/imx8mp-skov-revb-mi1010ait-1cp1.dts  |  19 +--
> drivers/clk/imx/clk-imx8mp.c                       | 147 +++++++++++++++++++++
> 5 files changed, 233 insertions(+), 16 deletions(-)
>---
>base-commit: 78d4f34e2115b517bcbfe7ec0d018bbbb6f9b0b8
>change-id: 20241217-imx8m-clk-9467763dfcd8
>
>Best regards,
>-- 
>Ahmad Fatoum <a.fatoum@pengutronix.de>
>
Re: [PATCH 0/6] arm64: dts: freescale: imx8mp-skov: switch to nominal drive mode
Posted by Ahmad Fatoum 12 months ago
Hello Peng,

On 20.12.24 07:16, Peng Fan wrote:
> On Thu, Dec 19, 2024 at 08:27:31AM +0100, Ahmad Fatoum wrote:
>> Unlike the i.MX8MM and i.MX8MN SoCs added earlier, the imx8mp.dtsi
>> configures some clocks at frequencies that are only validated for
>> overdrive mode, i.e., when VDD_SOC is 950 mV.
>>
>> For the Skov i.MX8MP board, we want to run the SoC at the lower voltage of
>> 850 mV though to reduce heat generation and power usage. For this to work,
>> clock rates need to adhere to the limits of the nominal drive mode.
>>
>> This is done by this series: A new imx8mp-nominal.dtsi reconfigures
>> the imx8mp.dtsi clock tree to be compatible with nominal mode, an adaptation
>> to the Linux clock driver makes it sanity check the actual clock rates against
>> the SoC operating mode's constraints and finally the Skov DT makes use
>> of it.
>>
>> Actual configuration of the VDD_SOC rail continues to happen prior to Linux
>> as well as PLL configuration that needs to happen earlier than the kernel
>> running. See the corresponding barebox patch series[1] for details.
>> Note that the barebox series didn't yet include VDD_SOC reconfiguration
>> to 850mV, that would follow once the kernel changes have been merged.
> 
> Good to see this. I had same plan to support i.MX9.
> 
> I see you introduce a new property, how about using a boot pararmeter,
> saying "mode=nominal" or "mode=overdrive". Then drivers could
> act accordingly.

I assume you would place that parameter in drivers/soc/imx/soc-imx8m.c?

That's certainly possible as well, but I think for such a hardware property,
the device tree is the natural place.

Thanks,
Ahmad

> 
> Regards,
> Peng
> 
>>
>> [1]: https://lore.kernel.org/barebox/20240503103717.1370636-1-a.fatoum@pengutronix.de/
>>
>> ---
>> Ahmad Fatoum (6):
>>      dt-bindings: clock: imx8m: document nominal/overdrive properties
>>      arm64: dts: imx8mp: Add optional nominal drive mode DTSI
>>      arm64: dts: imx8mp: add fsl,nominal-mode property into nominal.dtsi
>>      arm64: dts: freescale: imx8mp-skov: fix LDB clock rate configuration
>>      arm64: dts: freescale: imx8mp-skov: operate SoC in nominal mode
>>      clk: imx8mp: inform CCF of maximum frequency of clocks
>>
>> .../devicetree/bindings/clock/imx8m-clock.yaml     |  14 ++
>> arch/arm64/boot/dts/freescale/imx8mp-nominal.dtsi  |  64 +++++++++
>> .../arm64/boot/dts/freescale/imx8mp-skov-reva.dtsi |   5 +-
>> .../freescale/imx8mp-skov-revb-mi1010ait-1cp1.dts  |  19 +--
>> drivers/clk/imx/clk-imx8mp.c                       | 147 +++++++++++++++++++++
>> 5 files changed, 233 insertions(+), 16 deletions(-)
>> ---
>> base-commit: 78d4f34e2115b517bcbfe7ec0d018bbbb6f9b0b8
>> change-id: 20241217-imx8m-clk-9467763dfcd8
>>
>> Best regards,
>> -- 
>> Ahmad Fatoum <a.fatoum@pengutronix.de>
>>
> 


-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |