Message ID | 20230123071312.3297210-1-johannes.schneider@leica-geosystems.com |
---|---|
Headers | show |
Series | pmic on imx8mm | expand |
Hi Joannes, please see my comments below. On 23-01-23, Johannes Schneider wrote: > Move the PMIC configuration out of imx8mm-evk.dtsi into a separate > file; to accommodate devicetrees for the rev-b EVK, which comes with a > different PMIC. > > Signed-off-by: Johannes Schneider <johannes.schneider@leica-geosystems.com> > --- > .../boot/dts/freescale/imx8mm-ddr4-evk.dts | 1 + > .../dts/freescale/imx8mm-evk-rohm-pmic.dtsi | 118 ++++++++++++++++++ > arch/arm64/boot/dts/freescale/imx8mm-evk.dts | 1 + > arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi | 112 ----------------- > 4 files changed, 120 insertions(+), 112 deletions(-) > create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-evk-rohm-pmic.dtsi > > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dts b/arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dts > index 6c079c0a3a48..f39182ce65b4 100644 > --- a/arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dts > +++ b/arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dts > @@ -6,6 +6,7 @@ > /dts-v1/; > > #include "imx8mm-evk.dtsi" > +#include "imx8mm-evk-rohm-pmic.dtsi" After working with your previous version of this series I'm more convinced that we should not go that way. Instead keep the pmic node as it is (untouched) and delete it within the imx8mm-evkb.dts. Because your approach introduce phandle refs which are resolved by another dtsi. This should be avoided if we can avoid this since IMHO a dts(i) should always be self-contained. Regards, Marco > / { > model = "FSL i.MX8MM DDR4 EVK with CYW43455 WIFI/BT board"; > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-evk-rohm-pmic.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-evk-rohm-pmic.dtsi > new file mode 100644 > index 000000000000..0b056996a27b > --- /dev/null > +++ b/arch/arm64/boot/dts/freescale/imx8mm-evk-rohm-pmic.dtsi > @@ -0,0 +1,118 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright 2020 NXP > + */ > + > +&i2c1 { > + pmic@4b { > + compatible = "rohm,bd71847"; > + reg = <0x4b>; > + pinctrl-names = "default"; > + 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"; > + > + regulators { > + buck1_reg: BUCK1 { > + regulator-name = "buck1"; > + regulator-min-microvolt = <700000>; > + regulator-max-microvolt = <1300000>; > + regulator-boot-on; > + regulator-always-on; > + regulator-ramp-delay = <1250>; > + }; > + > + buck2_reg: BUCK2 { > + regulator-name = "buck2"; > + regulator-min-microvolt = <700000>; > + regulator-max-microvolt = <1300000>; > + regulator-boot-on; > + regulator-always-on; > + regulator-ramp-delay = <1250>; > + rohm,dvs-run-voltage = <1000000>; > + rohm,dvs-idle-voltage = <900000>; > + }; > + > + buck3_reg: BUCK3 { > + // BUCK5 in datasheet > + regulator-name = "buck3"; > + regulator-min-microvolt = <700000>; > + regulator-max-microvolt = <1350000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + buck4_reg: BUCK4 { > + // BUCK6 in datasheet > + regulator-name = "buck4"; > + regulator-min-microvolt = <3000000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + buck5_reg: BUCK5 { > + // BUCK7 in datasheet > + regulator-name = "buck5"; > + regulator-min-microvolt = <1605000>; > + regulator-max-microvolt = <1995000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + buck6_reg: BUCK6 { > + // BUCK8 in datasheet > + regulator-name = "buck6"; > + regulator-min-microvolt = <800000>; > + regulator-max-microvolt = <1400000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + ldo1_reg: LDO1 { > + regulator-name = "ldo1"; > + regulator-min-microvolt = <1600000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + ldo2_reg: LDO2 { > + regulator-name = "ldo2"; > + regulator-min-microvolt = <800000>; > + regulator-max-microvolt = <900000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + ldo3_reg: LDO3 { > + regulator-name = "ldo3"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + ldo4_reg: LDO4 { > + regulator-name = "ldo4"; > + regulator-min-microvolt = <900000>; > + regulator-max-microvolt = <1800000>; > + 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; > + }; > + }; > + }; > +}; > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-evk.dts b/arch/arm64/boot/dts/freescale/imx8mm-evk.dts > index a2b24d4d4e3e..d2b6d7de7e53 100644 > --- a/arch/arm64/boot/dts/freescale/imx8mm-evk.dts > +++ b/arch/arm64/boot/dts/freescale/imx8mm-evk.dts > @@ -7,6 +7,7 @@ > > #include <dt-bindings/usb/pd.h> > #include "imx8mm-evk.dtsi" > +#include "imx8mm-evk-rohm-pmic.dtsi" > > / { > model = "FSL i.MX8MM EVK board"; > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi > index 7d6317d95b13..21d0614af44c 100644 > --- a/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi > +++ b/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi > @@ -182,118 +182,6 @@ &i2c1 { > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_i2c1>; > status = "okay"; > - > - pmic@4b { > - compatible = "rohm,bd71847"; > - reg = <0x4b>; > - pinctrl-names = "default"; > - 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"; > - > - regulators { > - buck1_reg: BUCK1 { > - regulator-name = "buck1"; > - regulator-min-microvolt = <700000>; > - regulator-max-microvolt = <1300000>; > - regulator-boot-on; > - regulator-always-on; > - regulator-ramp-delay = <1250>; > - }; > - > - buck2_reg: BUCK2 { > - regulator-name = "buck2"; > - regulator-min-microvolt = <700000>; > - regulator-max-microvolt = <1300000>; > - regulator-boot-on; > - regulator-always-on; > - regulator-ramp-delay = <1250>; > - rohm,dvs-run-voltage = <1000000>; > - rohm,dvs-idle-voltage = <900000>; > - }; > - > - buck3_reg: BUCK3 { > - // BUCK5 in datasheet > - regulator-name = "buck3"; > - regulator-min-microvolt = <700000>; > - regulator-max-microvolt = <1350000>; > - regulator-boot-on; > - regulator-always-on; > - }; > - > - buck4_reg: BUCK4 { > - // BUCK6 in datasheet > - regulator-name = "buck4"; > - regulator-min-microvolt = <3000000>; > - regulator-max-microvolt = <3300000>; > - regulator-boot-on; > - regulator-always-on; > - }; > - > - buck5_reg: BUCK5 { > - // BUCK7 in datasheet > - regulator-name = "buck5"; > - regulator-min-microvolt = <1605000>; > - regulator-max-microvolt = <1995000>; > - regulator-boot-on; > - regulator-always-on; > - }; > - > - buck6_reg: BUCK6 { > - // BUCK8 in datasheet > - regulator-name = "buck6"; > - regulator-min-microvolt = <800000>; > - regulator-max-microvolt = <1400000>; > - regulator-boot-on; > - regulator-always-on; > - }; > - > - ldo1_reg: LDO1 { > - regulator-name = "ldo1"; > - regulator-min-microvolt = <1600000>; > - regulator-max-microvolt = <3300000>; > - regulator-boot-on; > - regulator-always-on; > - }; > - > - ldo2_reg: LDO2 { > - regulator-name = "ldo2"; > - regulator-min-microvolt = <800000>; > - regulator-max-microvolt = <900000>; > - regulator-boot-on; > - regulator-always-on; > - }; > - > - ldo3_reg: LDO3 { > - regulator-name = "ldo3"; > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <3300000>; > - regulator-boot-on; > - regulator-always-on; > - }; > - > - ldo4_reg: LDO4 { > - regulator-name = "ldo4"; > - regulator-min-microvolt = <900000>; > - regulator-max-microvolt = <1800000>; > - 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; > - }; > - }; > - }; > }; > > &i2c2 { > -- > 2.25.1 > > >
Hi Johannes, On 23-01-23, Johannes Schneider wrote: > Add devicetree for the EVKB, which comes with LPDDR4 and a different > PMIC. > > Signed-off-by: Johannes Schneider <johannes.schneider@leica-geosystems.com> > --- > arch/arm64/boot/dts/freescale/Makefile | 1 + > arch/arm64/boot/dts/freescale/imx8mm-evkb.dts | 116 ++++++++++++++++++ > 2 files changed, 117 insertions(+) > create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-evkb.dts > > diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile > index 3ea9edc87909..3bccc4d10928 100644 > --- a/arch/arm64/boot/dts/freescale/Makefile > +++ b/arch/arm64/boot/dts/freescale/Makefile > @@ -55,6 +55,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-data-modul-edm-sbc.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mm-ddr4-evk.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mm-emcon-avari.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mm-evk.dtb > +dtb-$(CONFIG_ARCH_MXC) += imx8mm-evkb.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mm-icore-mx8mm-ctouch2.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mm-icore-mx8mm-edimm2.2.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mm-kontron-bl.dtb > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-evkb.dts b/arch/arm64/boot/dts/freescale/imx8mm-evkb.dts > new file mode 100644 > index 000000000000..b2d724ad43b2 > --- /dev/null > +++ b/arch/arm64/boot/dts/freescale/imx8mm-evkb.dts > @@ -0,0 +1,116 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright 2019-2020 NXP > + */ > + > +/dts-v1/; > + > +#include "imx8mm-evk.dtsi" > + > +/ { > + model = "FSL i.MX8MM EVKB"; // with LPDDR4 and PCA9450 PMIC > + compatible = "fsl,imx8mm-evkb", "fsl,imx8mm"; > +}; > + > +&i2c1 { > + pmic: pmic@25 { > + compatible = "nxp,pca9450a"; > + reg = <0x25>; > + pinctrl-0 = <&pinctrl_pmic>; > + pinctrl-names = "default"; > + interrupt-parent = <&gpio1>; > + interrupts = <3 IRQ_TYPE_LEVEL_LOW>; > + > + regulators { > + buck1_reg: BUCK1 { > + regulator-name = "BUCK1"; > + regulator-min-microvolt = <600000>; > + regulator-max-microvolt = <2187500>; please check the voltages for all regulators. You need to set the board constrains here and not the regulator/PMIC ones. Regards, Marco > + regulator-boot-on; > + regulator-always-on; > + regulator-ramp-delay = <3125>; > + nxp,dvs-run-voltage = <820000>; > + nxp,dvs-standby-voltage = <800000>; > + }; > + > + buck2_reg: BUCK2 { > + regulator-name = "BUCK2"; > + regulator-min-microvolt = <600000>; > + regulator-max-microvolt = <2187500>; > + regulator-boot-on; > + regulator-always-on; > + regulator-ramp-delay = <3125>; > + }; > + > + buck3_reg: BUCK3 { > + regulator-name = "BUCK3"; > + regulator-min-microvolt = <600000>; > + regulator-max-microvolt = <2187500>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + buck4_reg: BUCK4 { > + regulator-name = "BUCK4"; > + regulator-min-microvolt = <600000>; > + regulator-max-microvolt = <3400000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + buck5_reg: BUCK5 { > + regulator-name = "BUCK5"; > + regulator-min-microvolt = <600000>; > + regulator-max-microvolt = <3400000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + buck6_reg: BUCK6 { > + regulator-name = "BUCK6"; > + regulator-min-microvolt = <600000>; > + regulator-max-microvolt = <3400000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + ldo1_reg: LDO1 { > + regulator-name = "LDO1"; > + regulator-min-microvolt = <1600000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + ldo2_reg: LDO2 { > + regulator-name = "LDO2"; > + regulator-min-microvolt = <800000>; > + regulator-max-microvolt = <1150000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + ldo3_reg: LDO3 { > + regulator-name = "LDO3"; > + regulator-min-microvolt = <800000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + ldo4_reg: LDO4 { > + regulator-name = "LDO4"; > + regulator-min-microvolt = <800000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + ldo5_reg: LDO5 { > + regulator-name = "LDO5"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <3300000>; > + }; > + }; > + }; > +}; > -- > 2.25.1 > > >