.../devicetree/bindings/clock/imx8m-clock.yaml | 8 ++ 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 | 151 +++++++++++++++++++++ 5 files changed, 231 insertions(+), 16 deletions(-)
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/
---
Changes in v4:
- remove unnecessary oneOf in dt-bindings schema (Frank)
- rebase on top of DT clock rate change v6.14-rc3
- Link to v3: https://lore.kernel.org/r/20250113-imx8m-clk-v3-0-0d6e9bdeaa4e@pengutronix.de
Changes in v3:
- change boolean mode properties to string property, so it's possible to
override in overlays (Frank).
- Dropped Conor's Ack again due to aforementioned binding change.
- make struct imx8mp_clock_constraints::clkid unsigned (Stephen)
- Remove comma after sentinel member (Stephen)
- Link to v2: https://lore.kernel.org/r/20250106-imx8m-clk-v2-0-6aaeadac65fe@pengutronix.de
Changes in v2:
- Explain in Patch 1/6 why two properties are added instead of one
(Conor)
- Collect Conor's Acked-by
- Collect Peng's Reviewed-by
- Link to v1: https://lore.kernel.org/r/20241219-imx8m-clk-v1-0-cfaffa087da6@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: configure LDB clock automatically
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 | 8 ++
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 | 151 +++++++++++++++++++++
5 files changed, 231 insertions(+), 16 deletions(-)
---
base-commit: 0ad2507d5d93f39619fc42372c347d6006b64319
change-id: 20241217-imx8m-clk-9467763dfcd8
Best regards,
--
Ahmad Fatoum <a.fatoum@pengutronix.de>
On Tue, Feb 18, 2025 at 07:26:40PM +0100, Ahmad Fatoum wrote: > 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: configure LDB clock automatically > arm64: dts: freescale: imx8mp-skov: operate SoC in nominal mode Applied 4 DTS changes, thanks! > clk: imx8mp: inform CCF of maximum frequency of clocks
On Tue, 18 Feb 2025 19:26:40 +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.
>
> [...]
Applied, thanks!
[1/6] dt-bindings: clock: imx8m: document nominal/overdrive properties
commit: d5992f1af1550a9e11e42cfa2ca1ad2a1b7fd7f3
[2/6] arm64: dts: imx8mp: Add optional nominal drive mode DTSI
(no commit info)
[3/6] arm64: dts: imx8mp: add fsl,nominal-mode property into nominal.dtsi
(no commit info)
[4/6] arm64: dts: freescale: imx8mp-skov: configure LDB clock automatically
(no commit info)
[5/6] arm64: dts: freescale: imx8mp-skov: operate SoC in nominal mode
(no commit info)
[6/6] clk: imx8mp: inform CCF of maximum frequency of clocks
commit: 06a61b5cb6a8638fa8823cd09b17233b29696fa2
Best regards,
--
Abel Vesa <abel.vesa@linaro.org>
On 25-03-03 19:31:02, Abel Vesa wrote: > > On Tue, 18 Feb 2025 19:26:40 +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. > > > > [...] > > Applied, thanks! > > [1/6] dt-bindings: clock: imx8m: document nominal/overdrive properties > commit: d5992f1af1550a9e11e42cfa2ca1ad2a1b7fd7f3 > [2/6] arm64: dts: imx8mp: Add optional nominal drive mode DTSI > (no commit info) > [3/6] arm64: dts: imx8mp: add fsl,nominal-mode property into nominal.dtsi > (no commit info) > [4/6] arm64: dts: freescale: imx8mp-skov: configure LDB clock automatically > (no commit info) > [5/6] arm64: dts: freescale: imx8mp-skov: operate SoC in nominal mode > (no commit info) > [6/6] clk: imx8mp: inform CCF of maximum frequency of clocks > commit: 06a61b5cb6a8638fa8823cd09b17233b29696fa2 Applied only patches 1 and 6. My b4 setup messed up. Sorry. > > Best regards, > -- > Abel Vesa <abel.vesa@linaro.org> >
Hello Abel, Hello Shawn, On 03.03.25 18:32, Abel Vesa wrote: > On 25-03-03 19:31:02, Abel Vesa wrote: >> >> On Tue, 18 Feb 2025 19:26:40 +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. >>> >>> [...] >> >> Applied, thanks! >> >> [1/6] dt-bindings: clock: imx8m: document nominal/overdrive properties >> commit: d5992f1af1550a9e11e42cfa2ca1ad2a1b7fd7f3 >> [2/6] arm64: dts: imx8mp: Add optional nominal drive mode DTSI >> (no commit info) >> [3/6] arm64: dts: imx8mp: add fsl,nominal-mode property into nominal.dtsi >> (no commit info) >> [4/6] arm64: dts: freescale: imx8mp-skov: configure LDB clock automatically >> (no commit info) >> [5/6] arm64: dts: freescale: imx8mp-skov: operate SoC in nominal mode >> (no commit info) >> [6/6] clk: imx8mp: inform CCF of maximum frequency of clocks >> commit: 06a61b5cb6a8638fa8823cd09b17233b29696fa2 > > Applied only patches 1 and 6. > > My b4 setup messed up. Sorry. Thanks for applying, Abel! @Shawn, could the remainder of the patches go through your tree? Thanks! Ahmad > >> >> Best regards, >> -- >> Abel Vesa <abel.vesa@linaro.org> >> > -- 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 |
© 2016 - 2025 Red Hat, Inc.