On Mon, Jan 06, 2025 at 03:21:42PM +0100, Ahmad Fatoum wrote: > 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@xxxxxxxxxxxxx> > Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> > --- > 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 > + why need two flags? suppose "not set fsl,overdrive-mode" is equal to fsl,nominal-mode Frank > 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 >