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@xxxxxxxxxxxxxx/ >> >> --- >> 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@xxxxxxxxxxxxxx> >> > -- 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 |