[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250106-imx8m-clk-v2-1-6aaeadac65fe@pengutronix.de>
Date: Mon, 06 Jan 2025 15:21:42 +0100
From: Ahmad Fatoum <a.fatoum@...gutronix.de>
To: Abel Vesa <abelvesa@...nel.org>, Peng Fan <peng.fan@....com>,
Michael Turquette <mturquette@...libre.com>,
Stephen Boyd <sboyd@...nel.org>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Shawn Guo <shawnguo@...nel.org>,
Sascha Hauer <s.hauer@...gutronix.de>,
Pengutronix Kernel Team <kernel@...gutronix.de>,
Fabio Estevam <festevam@...il.com>, Abel Vesa <abel.vesa@...aro.org>,
Marek Vasut <marex@...x.de>
Cc: linux-clk@...r.kernel.org, imx@...ts.linux.dev,
devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org, Conor Dooley <conor.dooley@...rochip.com>,
Ahmad Fatoum <a.fatoum@...gutronix.de>
Subject: [PATCH v2 1/6] dt-bindings: clock: imx8m: document
nominal/overdrive properties
The imx8m-clock.yaml binding covers the clock controller inside all
of the i.MX8M Q/M/N/P SoCs. All of them have in common that they
support two operating modes: nominal and overdrive mode.
While the overdrive mode allows for higher frequencies for many IPs,
the nominal mode needs a lower SoC voltage, thereby reducing
heat generation and power usage.
As increasing clock rates beyond the maximum permitted by the supplied
SoC voltage can lead to difficult to debug issues, device tree consumers
would benefit from knowing what mode is active to enforce the clock rate
limits that come with it.
To facilitate this, extend the clock controller bindings with two mutually
exclusive optional properties. Allowing for absence of both properties is
needed, because there is no default suitable for all boards:
For i.MX8M Mini and Nano, the kernel SoC DTSIs has assigned-clock-rates
that are all achievable in nominal mode. For i.MX8MP, there are some
rates only validated for overdrive mode.
But even for the i.MX8M Mini/Nano boards, we don't know what rates they
may configure at runtime, so it has not been possible so far to infer from
just the device tree what the mode is.
Acked-by: Conor Dooley <conor.dooley@...rochip.com>
Signed-off-by: Ahmad Fatoum <a.fatoum@...gutronix.de>
---
Documentation/devicetree/bindings/clock/imx8m-clock.yaml | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/Documentation/devicetree/bindings/clock/imx8m-clock.yaml b/Documentation/devicetree/bindings/clock/imx8m-clock.yaml
index c643d4a814786a1fc7e559140fe58911990f71bb..a6ae5257ef531f3fa8506d515d202f5b7842c4fa 100644
--- a/Documentation/devicetree/bindings/clock/imx8m-clock.yaml
+++ b/Documentation/devicetree/bindings/clock/imx8m-clock.yaml
@@ -43,6 +43,14 @@ properties:
ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx8m-clock.h
for the full list of i.MX8M clock IDs.
+ fsl,nominal-mode:
+ description: Set if SoC is operated in nominal mode
+ $ref: /schemas/types.yaml#/definitions/flag
+
+ fsl,overdrive-mode:
+ description: Set if SoC is operated in overdrive mode
+ $ref: /schemas/types.yaml#/definitions/flag
+
required:
- compatible
- reg
@@ -95,6 +103,12 @@ allOf:
- const: clk_ext2
- const: clk_ext3
- const: clk_ext4
+ - if:
+ required:
+ - fsl,overdrive-mode
+ then:
+ properties:
+ fsl,nominal-mode: false
additionalProperties: false
--
2.39.5
Powered by blists - more mailing lists