diff mbox series

ARM: dts: imx8mm-evk: Fix wrong PMIC device for new EVK board

Message ID 1673933677-99962-1-git-send-email-ye.li@nxp.com
State Superseded
Delegated to: Stefano Babic
Headers show
Series ARM: dts: imx8mm-evk: Fix wrong PMIC device for new EVK board | expand

Commit Message

Ye Li Jan. 17, 2023, 5:34 a.m. UTC
In commit 48ddafd (imx8mm_evk: Switch to new imx8mm evk board),
the iMX8MM EVK support was updated to new EVK board which is
using PCA9450A PMIC.
But the commit 24a7a3c (imx8mm: synchronise device tree with linux)
changed DTS node back to legacy PMIC which is not aligned with
SPL codes and defconfig, then cause SPL boot failure.

Signed-off-by: Ye Li <ye.li@nxp.com>
---
 arch/arm/dts/imx8mm-evk-u-boot.dtsi |   4 +-
 arch/arm/dts/imx8mm-evk.dtsi        | 127 +++++++++++++++++++-----------------
 2 files changed, 68 insertions(+), 63 deletions(-)

Comments

Marcel Ziswiler Jan. 17, 2023, 9:16 a.m. UTC | #1
Hi Ye Li

On Tue, 2023-01-17 at 13:34 +0800, Ye Li wrote:
> In commit 48ddafd (imx8mm_evk: Switch to new imx8mm evk board),
> the iMX8MM EVK support was updated to new EVK board which is
> using PCA9450A PMIC.
> But the commit 24a7a3c (imx8mm: synchronise device tree with linux)
> changed DTS node back to legacy PMIC which is not aligned with
> SPL codes and defconfig, then cause SPL boot failure.

Please note that I even mentioned this back in the day [1], however, neither NXP nor anybody else reacted in
any way.

The correct way would be, of course, to update this in Linux and subsequently re-syncing with U-Boot. Do you at
least plan to properly update this on the Linux side as well?

Thanks!

[1] https://patchwork.ozlabs.org/project/uboot/cover/20220721132748.1052244-1-marcel@ziswiler.com/

[snip]

Cheers

Marcel
Ye Li Jan. 18, 2023, 9:41 a.m. UTC | #2
Hi Marcel,

On Tue, 2023-01-17 at 09:16 +0000, Marcel Ziswiler wrote:
> Caution: EXT Email
> 
> Hi Ye Li
> 
> On Tue, 2023-01-17 at 13:34 +0800, Ye Li wrote:
> > 
> > In commit 48ddafd (imx8mm_evk: Switch to new imx8mm evk board),
> > the iMX8MM EVK support was updated to new EVK board which is
> > using PCA9450A PMIC.
> > But the commit 24a7a3c (imx8mm: synchronise device tree with linux)
> > changed DTS node back to legacy PMIC which is not aligned with
> > SPL codes and defconfig, then cause SPL boot failure.
> Please note that I even mentioned this back in the day [1], however,
> neither NXP nor anybody else reacted in
> any way.
> 
> The correct way would be, of course, to update this in Linux and
> subsequently re-syncing with U-Boot. Do you at
> least plan to properly update this on the Linux side as well?
> 
Yes, we will upstream this to kernel. I also notice another break on
8ULP EVK which causes no any log. Fix has sent out.

Best regards,
Ye Li  

> Thanks!
> 
> [1] https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2
> Fpatchwork.ozlabs.org%2Fproject%2Fuboot%2Fcover%2F20220721132748.1052
> 244-1-
> marcel%40ziswiler.com%2F&data=05%7C01%7Cye.li%40nxp.com%7Cd979241c65a
> d4161f80a08daf86b833f%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C63
> 8095437885252506%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoi
> V2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=y1w4PE3%
> 2BKoJ%2Beskp%2Bjx54BYq5bLI6SjlUPwTXWUnEB4%3D&reserved=0
> 
> [snip]
> 
> Cheers
> 
> Marcel
diff mbox series

Patch

diff --git a/arch/arm/dts/imx8mm-evk-u-boot.dtsi b/arch/arm/dts/imx8mm-evk-u-boot.dtsi
index d82428f..951017b 100644
--- a/arch/arm/dts/imx8mm-evk-u-boot.dtsi
+++ b/arch/arm/dts/imx8mm-evk-u-boot.dtsi
@@ -121,11 +121,11 @@ 
 	u-boot,dm-spl;
 };
 
-&{/soc@0/bus@30800000/i2c@30a20000/pmic@4b} {
+&{/soc@0/bus@30800000/i2c@30a20000/pca9450@25} {
 	u-boot,dm-spl;
 };
 
-&{/soc@0/bus@30800000/i2c@30a20000/pmic@4b/regulators} {
+&{/soc@0/bus@30800000/i2c@30a20000/pca9450@25/regulators} {
 	u-boot,dm-spl;
 };
 
diff --git a/arch/arm/dts/imx8mm-evk.dtsi b/arch/arm/dts/imx8mm-evk.dtsi
index 7d6317d..766e29a 100644
--- a/arch/arm/dts/imx8mm-evk.dtsi
+++ b/arch/arm/dts/imx8mm-evk.dtsi
@@ -183,115 +183,120 @@ 
 	pinctrl-0 = <&pinctrl_i2c1>;
 	status = "okay";
 
-	pmic@4b {
-		compatible = "rohm,bd71847";
-		reg = <0x4b>;
-		pinctrl-names = "default";
+	pmic: pca9450@25 {
+		reg = <0x25>;
+		compatible = "nxp,pca9450a";
+		/* PMIC PCA9450 PMIC_nINT GPIO1_IO3 */
 		pinctrl-0 = <&pinctrl_pmic>;
-		interrupt-parent = <&gpio1>;
-		interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
-		rohm,reset-snvs-powered;
-
-		#clock-cells = <0>;
-		clocks = <&osc_32k 0>;
-		clock-output-names = "clk-32k-out";
+		gpio_intr = <&gpio1 3 GPIO_ACTIVE_LOW>;
 
 		regulators {
-			buck1_reg: BUCK1 {
-				regulator-name = "buck1";
-				regulator-min-microvolt = <700000>;
-				regulator-max-microvolt = <1300000>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			pca9450,pmic-buck2-uses-i2c-dvs;
+			/* Run/Standby voltage */
+			pca9450,pmic-buck2-dvs-voltage = <950000>, <850000>;
+
+			buck1_reg: regulator@0 {
+				reg = <0>;
+				regulator-compatible = "buck1";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <2187500>;
 				regulator-boot-on;
 				regulator-always-on;
-				regulator-ramp-delay = <1250>;
+				regulator-ramp-delay = <3125>;
 			};
 
-			buck2_reg: BUCK2 {
-				regulator-name = "buck2";
-				regulator-min-microvolt = <700000>;
-				regulator-max-microvolt = <1300000>;
+			buck2_reg: regulator@1 {
+				reg = <1>;
+				regulator-compatible = "buck2";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <2187500>;
 				regulator-boot-on;
 				regulator-always-on;
-				regulator-ramp-delay = <1250>;
-				rohm,dvs-run-voltage = <1000000>;
-				rohm,dvs-idle-voltage = <900000>;
+				regulator-ramp-delay = <3125>;
 			};
 
-			buck3_reg: BUCK3 {
-				// BUCK5 in datasheet
-				regulator-name = "buck3";
-				regulator-min-microvolt = <700000>;
-				regulator-max-microvolt = <1350000>;
+			buck3_reg: regulator@2 {
+				reg = <2>;
+				regulator-compatible = "buck3";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <2187500>;
 				regulator-boot-on;
 				regulator-always-on;
 			};
 
-			buck4_reg: BUCK4 {
-				// BUCK6 in datasheet
-				regulator-name = "buck4";
-				regulator-min-microvolt = <3000000>;
-				regulator-max-microvolt = <3300000>;
+			buck4_reg: regulator@3 {
+				reg = <3>;
+				regulator-compatible = "buck4";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <3400000>;
 				regulator-boot-on;
 				regulator-always-on;
 			};
 
-			buck5_reg: BUCK5 {
-				// BUCK7 in datasheet
-				regulator-name = "buck5";
-				regulator-min-microvolt = <1605000>;
-				regulator-max-microvolt = <1995000>;
+			buck5_reg: regulator@4 {
+				reg = <4>;
+				regulator-compatible = "buck5";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <3400000>;
 				regulator-boot-on;
 				regulator-always-on;
 			};
 
-			buck6_reg: BUCK6 {
-				// BUCK8 in datasheet
-				regulator-name = "buck6";
-				regulator-min-microvolt = <800000>;
-				regulator-max-microvolt = <1400000>;
+			buck6_reg: regulator@5 {
+				reg = <5>;
+				regulator-compatible = "buck6";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <3400000>;
 				regulator-boot-on;
 				regulator-always-on;
 			};
 
-			ldo1_reg: LDO1 {
-				regulator-name = "ldo1";
+			ldo1_reg: regulator@6 {
+				reg = <6>;
+				regulator-compatible = "ldo1";
 				regulator-min-microvolt = <1600000>;
 				regulator-max-microvolt = <3300000>;
 				regulator-boot-on;
 				regulator-always-on;
 			};
 
-			ldo2_reg: LDO2 {
-				regulator-name = "ldo2";
+			ldo2_reg: regulator@7 {
+				reg = <7>;
+				regulator-compatible = "ldo2";
 				regulator-min-microvolt = <800000>;
-				regulator-max-microvolt = <900000>;
+				regulator-max-microvolt = <1150000>;
 				regulator-boot-on;
 				regulator-always-on;
 			};
 
-			ldo3_reg: LDO3 {
-				regulator-name = "ldo3";
-				regulator-min-microvolt = <1800000>;
+			ldo3_reg: regulator@8 {
+				reg = <8>;
+				regulator-compatible = "ldo3";
+				regulator-min-microvolt = <800000>;
 				regulator-max-microvolt = <3300000>;
 				regulator-boot-on;
 				regulator-always-on;
 			};
 
-			ldo4_reg: LDO4 {
-				regulator-name = "ldo4";
-				regulator-min-microvolt = <900000>;
-				regulator-max-microvolt = <1800000>;
+			ldo4_reg: regulator@9 {
+				reg = <9>;
+				regulator-compatible = "ldo4";
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <3300000>;
 				regulator-boot-on;
 				regulator-always-on;
 			};
 
-			ldo6_reg: LDO6 {
-				regulator-name = "ldo6";
-				regulator-min-microvolt = <900000>;
-				regulator-max-microvolt = <1800000>;
-				regulator-boot-on;
-				regulator-always-on;
+			ldo5_reg: regulator@10 {
+				reg = <10>;
+				regulator-compatible = "ldo5";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
 			};
+
 		};
 	};
 };