[PATCH 3/4] arm64: dts: imx8mp-kontron: Fix boot order for PMIC and RTC

Frieder Schrempf posted 4 patches 1 month, 1 week ago
There is a newer version of this series
[PATCH 3/4] arm64: dts: imx8mp-kontron: Fix boot order for PMIC and RTC
Posted by Frieder Schrempf 1 month, 1 week ago
From: Annette Kobou <annette.kobou@kontron.de>

The PMIC provides a level-shifter for the I2C lines to the RTC.
As the level shifter needs to be enabled before the RTC can be
accessed, we need to make sure that the PMIC driver is probed
first.

As the PMIC also provides the supply voltage for the RTC through
the 3.3V regulator, we can simply express this in the DT to
create the required dependency.

This fixes sporadic boot hangs that occurred when the RTC was
accessed before the level-shifter was enabled.

Fixes: 946ab10e3f40f ("arm64: dts: Add support for Kontron OSM-S i.MX8MP SoM and BL carrier board")
Signed-off-by: Annette Kobou <annette.kobou@kontron.de>
Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
---
 arch/arm64/boot/dts/freescale/imx8mp-kontron-osm-s.dtsi | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8mp-kontron-osm-s.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-kontron-osm-s.dtsi
index b97bfeb1c30f8..bc1a261bb000e 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-kontron-osm-s.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp-kontron-osm-s.dtsi
@@ -330,6 +330,12 @@ rv3028: rtc@52 {
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_rtc>;
 		interrupts-extended = <&gpio3 24 IRQ_TYPE_LEVEL_LOW>;
+		/*
+		 * While specifying the vdd-supply is normally not strictly necessary,
+		 * here it also makes sure that the PMIC driver enables the level-
+		 * shifter for the RTC before the RTC is probed.
+		 */
+		vdd-supply = <&reg_vdd_3v3>;
 	};
 };
 
-- 
2.52.0
Re: [PATCH 3/4] arm64: dts: imx8mp-kontron: Fix boot order for PMIC and RTC
Posted by Frank Li 1 month, 1 week ago
On Wed, Feb 18, 2026 at 02:25:07PM +0100, Frieder Schrempf wrote:
> From: Annette Kobou <annette.kobou@kontron.de>
>
> The PMIC provides a level-shifter for the I2C lines to the RTC.
> As the level shifter needs to be enabled before the RTC can be
> accessed, we need to make sure that the PMIC driver is probed
> first.
>
> As the PMIC also provides the supply voltage for the RTC through
> the 3.3V regulator, we can simply express this in the DT to
> create the required dependency.
>
> This fixes sporadic boot hangs that occurred when the RTC was
> accessed before the level-shifter was enabled.
>
> Fixes: 946ab10e3f40f ("arm64: dts: Add support for Kontron OSM-S i.MX8MP SoM and BL carrier board")
> Signed-off-by: Annette Kobou <annette.kobou@kontron.de>
> Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
> ---
>  arch/arm64/boot/dts/freescale/imx8mp-kontron-osm-s.dtsi | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-kontron-osm-s.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-kontron-osm-s.dtsi
> index b97bfeb1c30f8..bc1a261bb000e 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mp-kontron-osm-s.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mp-kontron-osm-s.dtsi
> @@ -330,6 +330,12 @@ rv3028: rtc@52 {
>  		pinctrl-names = "default";
>  		pinctrl-0 = <&pinctrl_rtc>;
>  		interrupts-extended = <&gpio3 24 IRQ_TYPE_LEVEL_LOW>;
> +		/*
> +		 * While specifying the vdd-supply is normally not strictly necessary,
> +		 * here it also makes sure that the PMIC driver enables the level-
> +		 * shifter for the RTC before the RTC is probed.
> +		 */
> +		vdd-supply = <&reg_vdd_3v3>;

Dose reg_vdd_3v3 controller by gpio, or actually it is level shifter?

Frank
>  	};
>  };
>
> --
> 2.52.0
>
Re: [PATCH 3/4] arm64: dts: imx8mp-kontron: Fix boot order for PMIC and RTC
Posted by Frieder Schrempf 1 month, 1 week ago
On 18.02.26 18:01, Frank Li wrote:
> On Wed, Feb 18, 2026 at 02:25:07PM +0100, Frieder Schrempf wrote:
>> From: Annette Kobou <annette.kobou@kontron.de>
>>
>> The PMIC provides a level-shifter for the I2C lines to the RTC.
>> As the level shifter needs to be enabled before the RTC can be
>> accessed, we need to make sure that the PMIC driver is probed
>> first.
>>
>> As the PMIC also provides the supply voltage for the RTC through
>> the 3.3V regulator, we can simply express this in the DT to
>> create the required dependency.
>>
>> This fixes sporadic boot hangs that occurred when the RTC was
>> accessed before the level-shifter was enabled.
>>
>> Fixes: 946ab10e3f40f ("arm64: dts: Add support for Kontron OSM-S i.MX8MP SoM and BL carrier board")
>> Signed-off-by: Annette Kobou <annette.kobou@kontron.de>
>> Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
>> ---
>>  arch/arm64/boot/dts/freescale/imx8mp-kontron-osm-s.dtsi | 6 ++++++
>>  1 file changed, 6 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-kontron-osm-s.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-kontron-osm-s.dtsi
>> index b97bfeb1c30f8..bc1a261bb000e 100644
>> --- a/arch/arm64/boot/dts/freescale/imx8mp-kontron-osm-s.dtsi
>> +++ b/arch/arm64/boot/dts/freescale/imx8mp-kontron-osm-s.dtsi
>> @@ -330,6 +330,12 @@ rv3028: rtc@52 {
>>  		pinctrl-names = "default";
>>  		pinctrl-0 = <&pinctrl_rtc>;
>>  		interrupts-extended = <&gpio3 24 IRQ_TYPE_LEVEL_LOW>;
>> +		/*
>> +		 * While specifying the vdd-supply is normally not strictly necessary,
>> +		 * here it also makes sure that the PMIC driver enables the level-
>> +		 * shifter for the RTC before the RTC is probed.
>> +		 */
>> +		vdd-supply = <&reg_vdd_3v3>;
> 
> Dose reg_vdd_3v3 controller by gpio, or actually it is level shifter?

As I explained in the commit message, reg_vdd_3v3 is a regulator
provided by the PCA9450 PMIC that feeds the RTC.

At the same time the PCA9450 PMIC also provides a level-shifter that is
used to bring the I2C data lines to the correct level for the RTC.