Message ID | 20230130172553.2738182-2-johannes.schneider@leica-geosystems.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | pmic on imx8mm | expand |
On Mon, Jan 30, 2023 at 06:25:52PM +0100, Johannes Schneider wrote: > Add devicetree for the EVKB, which comes with LPDDR4 and a different > PMIC. > > The regulator min/max values are taken from the evk's schematic: > 8MMINILPD4-CPU SPF-31399_C2.pdf > > Signed-off-by: Johannes Schneider <johannes.schneider@leica-geosystems.com> Applied both, thanks!
On Mon, Jan 30, 2023 at 06:25:52PM +0100, Johannes Schneider wrote: > Add devicetree for the EVKB, which comes with LPDDR4 and a different > PMIC. > > The regulator min/max values are taken from the evk's schematic: > 8MMINILPD4-CPU SPF-31399_C2.pdf > > Signed-off-by: Johannes Schneider <johannes.schneider@leica-geosystems.com> The patch doesn't compile at all (see below), so I took a closer look and decided to drop the series. > --- > arch/arm64/boot/dts/freescale/Makefile | 1 + > arch/arm64/boot/dts/freescale/imx8mm-evkb.dts | 134 ++++++++++++++++++ > 2 files changed, 135 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 I prefer to name it imx8mm-evk-revb.dtb or imx8mm-evk-b.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..2c3947d68982 > --- /dev/null > +++ b/arch/arm64/boot/dts/freescale/imx8mm-evkb.dts > @@ -0,0 +1,134 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright 2019-2022 NXP > + */ > + > +/dts-v1/; > + > +#include "imx8mm-evk.dtsi" > + > +/ { > + model = "FSL i.MX8MM EVKB"; // with LPDDR4 and PCA9450 PMIC "FSL i.MX8MM EVK Revision B" imx8mm-evk board has LPDDR4 too, so LPDDR4 is not a difference. It seems PMIC is the only difference between imx8mm-evk and imx8mm-evk-b. In that case, we may want to include "imx8mm-evk.dts" rather than "imx8mm-evk.dtsi". Otherwise, things like flexspi and usdhc3 get lost. Also /* ... */ style of comment is recommended. > + compatible = "fsl,imx8mm-evkb", "fsl,imx8mm"; "fsl,imx8mm-evk-revb" or "fsl,imx8mm-evk-b" > +}; > + > +&i2c1 { > + /* > + * replace "rohm,bd71847" pmic found on previous evks > + * with "nxp,pca9450a" > + */ > + /delete-node/ pmic@4b Missing semicolon causes DTC error. /delete-node/ pmic@4b; Shawn > + > + 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 { > + // VDD_SOC_0V8 > + buck1_reg: BUCK1 { > + regulator-name = "BUCK1"; > + regulator-min-microvolt = <780000>; > + regulator-max-microvolt = <900000>; > + regulator-boot-on; > + regulator-always-on; > + regulator-ramp-delay = <1250>; > + }; > + > + // VDD_ARM_0V9 > + buck2_reg: BUCK2 { > + regulator-name = "BUCK2"; > + regulator-min-microvolt = <805000>; > + regulator-max-microvolt = <1050000>; > + regulator-boot-on; > + regulator-always-on; > + regulator-ramp-delay = <1250>; > + nxp,dvs-standby-voltage = <850000>; > + }; > + > + // VDD_DRAM&PU_0V9 (BUCK5 in datasheet) > + buck3_reg: BUCK3 { > + regulator-name = "BUCK3"; > + regulator-min-microvolt = <805000>; > + regulator-max-microvolt = <1000000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + // VDD_3V3/NVCC_3V3 (BUCK6 in datasheet) > + buck4_reg: BUCK4 { > + regulator-name = "BUCK4"; > + regulator-min-microvolt = <3000000>; > + regulator-max-microvolt = <3600000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + // VDD_1V8/NVCC_1V8 (BUCK7 in datasheet) > + buck5_reg: BUCK5 { > + regulator-name = "BUCK5"; > + regulator-min-microvolt = <1650000>; > + regulator-max-microvolt = <1950000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + // NVCC_DRAM_1V1 (BUCK8 in datasheet) > + buck6_reg: BUCK6 { > + regulator-name = "BUCK6"; > + regulator-min-microvolt = <1060000>; > + regulator-max-microvolt = <1140000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + // NVCC_SNVS_1V8 > + ldo1_reg: LDO1 { > + regulator-name = "LDO1"; > + regulator-min-microvolt = <1620000>; > + regulator-max-microvolt = <19800000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + // VDD_SNVS_0V8 > + ldo2_reg: LDO2 { > + regulator-name = "LDO2"; > + regulator-min-microvolt = <760000>; > + regulator-max-microvolt = <900000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + // VDDA_1V8 > + ldo3_reg: LDO3 { > + regulator-name = "LDO3"; > + regulator-min-microvolt = <1710000>; > + regulator-max-microvolt = <1890000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + // VDD_PHY_0V9 > + ldo4_reg: LDO4 { > + regulator-name = "LDO4"; > + regulator-min-microvolt = <855000>; > + regulator-max-microvolt = <1000000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + // VDD_PHY_1V2 (LDO6 in datasheet) > + ldo5_reg: LDO5 { > + regulator-name = "LDO5"; > + regulator-min-microvolt = <1140000>; > + regulator-max-microvolt = <1260000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + }; > + }; > +}; > -- > 2.25.1 >
Hi Shawn, On 23-03-07, Shawn Guo wrote: > On Mon, Jan 30, 2023 at 06:25:52PM +0100, Johannes Schneider wrote: > > Add devicetree for the EVKB, which comes with LPDDR4 and a different > > PMIC. > > > > The regulator min/max values are taken from the evk's schematic: > > 8MMINILPD4-CPU SPF-31399_C2.pdf > > > > Signed-off-by: Johannes Schneider <johannes.schneider@leica-geosystems.com> > > The patch doesn't compile at all (see below), so I took a closer look > and decided to drop the series. > > > --- > > arch/arm64/boot/dts/freescale/Makefile | 1 + > > arch/arm64/boot/dts/freescale/imx8mm-evkb.dts | 134 ++++++++++++++++++ > > 2 files changed, 135 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 > > I prefer to name it imx8mm-evk-revb.dtb or imx8mm-evk-b.dtb. Unfortunately it's not revision B, it is evkb. The 'first' evk has plenty revisions. I think the most recent for the imx8mm-evk is C5. For the imx8mm-evkb the most recent revision is A4. Even this is not 100 percent correct since the EVK consist of a SoM and a baseboard. The baseboard isn't changed for the EVKB but the SoM. The new SoM schematics name the new SoM 8MMINILPD4-CPU2. But in the end you can't buy it separately: - https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/evaluation-kit-for-the-i-mx-8m-mini-applications-processor:8MMINILPD4-EVK > > 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..2c3947d68982 > > --- /dev/null > > +++ b/arch/arm64/boot/dts/freescale/imx8mm-evkb.dts > > @@ -0,0 +1,134 @@ > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > > +/* > > + * Copyright 2019-2022 NXP > > + */ > > + > > +/dts-v1/; > > + > > +#include "imx8mm-evk.dtsi" > > + > > +/ { > > + model = "FSL i.MX8MM EVKB"; // with LPDDR4 and PCA9450 PMIC > > "FSL i.MX8MM EVK Revision B" Please see my above explanation, it's not revision b. > > imx8mm-evk board has LPDDR4 too, so LPDDR4 is not a difference. It > seems PMIC is the only difference between imx8mm-evk and imx8mm-evk-b. > In that case, we may want to include "imx8mm-evk.dts" rather than > "imx8mm-evk.dtsi". Otherwise, things like flexspi and usdhc3 get lost. Your're right. Regards, Marco > Also /* ... */ style of comment is recommended. > > > + compatible = "fsl,imx8mm-evkb", "fsl,imx8mm"; > > "fsl,imx8mm-evk-revb" or "fsl,imx8mm-evk-b" > > > +}; > > + > > +&i2c1 { > > + /* > > + * replace "rohm,bd71847" pmic found on previous evks > > + * with "nxp,pca9450a" > > + */ > > + /delete-node/ pmic@4b > > Missing semicolon causes DTC error. > > /delete-node/ pmic@4b; > > Shawn > > > + > > + 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 { > > + // VDD_SOC_0V8 > > + buck1_reg: BUCK1 { > > + regulator-name = "BUCK1"; > > + regulator-min-microvolt = <780000>; > > + regulator-max-microvolt = <900000>; > > + regulator-boot-on; > > + regulator-always-on; > > + regulator-ramp-delay = <1250>; > > + }; > > + > > + // VDD_ARM_0V9 > > + buck2_reg: BUCK2 { > > + regulator-name = "BUCK2"; > > + regulator-min-microvolt = <805000>; > > + regulator-max-microvolt = <1050000>; > > + regulator-boot-on; > > + regulator-always-on; > > + regulator-ramp-delay = <1250>; > > + nxp,dvs-standby-voltage = <850000>; > > + }; > > + > > + // VDD_DRAM&PU_0V9 (BUCK5 in datasheet) > > + buck3_reg: BUCK3 { > > + regulator-name = "BUCK3"; > > + regulator-min-microvolt = <805000>; > > + regulator-max-microvolt = <1000000>; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + > > + // VDD_3V3/NVCC_3V3 (BUCK6 in datasheet) > > + buck4_reg: BUCK4 { > > + regulator-name = "BUCK4"; > > + regulator-min-microvolt = <3000000>; > > + regulator-max-microvolt = <3600000>; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + > > + // VDD_1V8/NVCC_1V8 (BUCK7 in datasheet) > > + buck5_reg: BUCK5 { > > + regulator-name = "BUCK5"; > > + regulator-min-microvolt = <1650000>; > > + regulator-max-microvolt = <1950000>; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + > > + // NVCC_DRAM_1V1 (BUCK8 in datasheet) > > + buck6_reg: BUCK6 { > > + regulator-name = "BUCK6"; > > + regulator-min-microvolt = <1060000>; > > + regulator-max-microvolt = <1140000>; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + > > + // NVCC_SNVS_1V8 > > + ldo1_reg: LDO1 { > > + regulator-name = "LDO1"; > > + regulator-min-microvolt = <1620000>; > > + regulator-max-microvolt = <19800000>; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + > > + // VDD_SNVS_0V8 > > + ldo2_reg: LDO2 { > > + regulator-name = "LDO2"; > > + regulator-min-microvolt = <760000>; > > + regulator-max-microvolt = <900000>; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + > > + // VDDA_1V8 > > + ldo3_reg: LDO3 { > > + regulator-name = "LDO3"; > > + regulator-min-microvolt = <1710000>; > > + regulator-max-microvolt = <1890000>; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + > > + // VDD_PHY_0V9 > > + ldo4_reg: LDO4 { > > + regulator-name = "LDO4"; > > + regulator-min-microvolt = <855000>; > > + regulator-max-microvolt = <1000000>; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + > > + // VDD_PHY_1V2 (LDO6 in datasheet) > > + ldo5_reg: LDO5 { > > + regulator-name = "LDO5"; > > + regulator-min-microvolt = <1140000>; > > + regulator-max-microvolt = <1260000>; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + }; > > + }; > > +}; > > -- > > 2.25.1 > > > >
Hi @nxp > On 23-03-07, Shawn Guo wrote: > > On Mon, Jan 30, 2023 at 06:25:52PM +0100, Johannes Schneider wrote: > > > Add devicetree for the EVKB, which comes with LPDDR4 and a different > > > PMIC. > > > > > > The regulator min/max values are taken from the evk's schematic: > > > 8MMINILPD4-CPU SPF-31399_C2.pdf > > > > > > Signed-off-by: Johannes Schneider <johannes.schneider@leica-geosystems.com> > > > > The patch doesn't compile at all (see below), so I took a closer look > > and decided to drop the series. > > > > > --- > > > arch/arm64/boot/dts/freescale/Makefile | 1 + > > > arch/arm64/boot/dts/freescale/imx8mm-evkb.dts | 134 ++++++++++++++++++ > > > 2 files changed, 135 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 > > > > I prefer to name it imx8mm-evk-revb.dtb or imx8mm-evk-b.dtb. > > Unfortunately it's not revision B, it is evkb. The 'first' evk has > plenty revisions. I think the most recent for the imx8mm-evk is C5. For > the imx8mm-evkb the most recent revision is A4. Even this is not 100 > percent correct since the EVK consist of a SoM and a baseboard. The > baseboard isn't changed for the EVKB but the SoM. The new SoM schematics > name the new SoM 8MMINILPD4-CPU2. But in the end you can't buy it > separately: > - https://eur02.safelinks.protection.outlook.com/?url=https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/evaluation-kit-for-the-i-mx-8m-mini-applications-processor:8MMINILPD4-EVK&data=05|01||6a71dc88704d425a3a5708db1ef34ef5|1b16ab3eb8f64fe39f3e2db7fe549f6a|0|0|638137802577253621|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=SmuEFl4RTEshtHKz/ZMhPF8kfdjqobRuJB/X66OYgNQ=&reserved=0 looking at authors in the git-log of arch/arm64/boot/dts/freescale/imx8mm-evk.dts -> +=email.to @NXP: how are you telling the different EVK versions apart internally? by a year/timestamp, revision, name, features, ...? maybe we could apply that "naming convention" for the devictree files and compatible strings here as well? since we only know of the obvious change: the different pmic compared to the previous version this difference is/was the sole motivation for this new devicetree, since bootloaders (like barebox) depend on the correct one beeing used during board initialization > > > 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..2c3947d68982 > > > --- /dev/null > > > +++ b/arch/arm64/boot/dts/freescale/imx8mm-evkb.dts > > > @@ -0,0 +1,134 @@ > > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > > > +/* > > > + * Copyright 2019-2022 NXP > > > + */ > > > + > > > +/dts-v1/; > > > + > > > +#include "imx8mm-evk.dtsi" > > > + > > > +/ { > > > + model = "FSL i.MX8MM EVKB"; // with LPDDR4 and PCA9450 PMIC > > > > "FSL i.MX8MM EVK Revision B" > > Please see my above explanation, it's not revision b. > > > > imx8mm-evk board has LPDDR4 too, so LPDDR4 is not a difference. It > > seems PMIC is the only difference between imx8mm-evk and imx8mm-evk-b. > > In that case, we may want to include "imx8mm-evk.dts" rather than > > "imx8mm-evk.dtsi". Otherwise, things like flexspi and usdhc3 get lost. > > Your're right. > > Regards, > Marco > > > Also /* ... */ style of comment is recommended. > > > > > + compatible = "fsl,imx8mm-evkb", "fsl,imx8mm"; > > > > "fsl,imx8mm-evk-revb" or "fsl,imx8mm-evk-b" > > > > > +}; > > > + > > > +&i2c1 { > > > + /* > > > + * replace "rohm,bd71847" pmic found on previous evks > > > + * with "nxp,pca9450a" > > > + */ > > > + /delete-node/ pmic@4b > > > > Missing semicolon causes DTC error. > > > > /delete-node/ pmic@4b; > > > > Shawn > > > > > + > > > + 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 { > > > + // VDD_SOC_0V8 > > > + buck1_reg: BUCK1 { > > > + regulator-name = "BUCK1"; > > > + regulator-min-microvolt = <780000>; > > > + regulator-max-microvolt = <900000>; > > > + regulator-boot-on; > > > + regulator-always-on; > > > + regulator-ramp-delay = <1250>; > > > + }; > > > + > > > + // VDD_ARM_0V9 > > > + buck2_reg: BUCK2 { > > > + regulator-name = "BUCK2"; > > > + regulator-min-microvolt = <805000>; > > > + regulator-max-microvolt = <1050000>; > > > + regulator-boot-on; > > > + regulator-always-on; > > > + regulator-ramp-delay = <1250>; > > > + nxp,dvs-standby-voltage = <850000>; > > > + }; > > > + > > > + // VDD_DRAM&PU_0V9 (BUCK5 in datasheet) > > > + buck3_reg: BUCK3 { > > > + regulator-name = "BUCK3"; > > > + regulator-min-microvolt = <805000>; > > > + regulator-max-microvolt = <1000000>; > > > + regulator-boot-on; > > > + regulator-always-on; > > > + }; > > > + > > > + // VDD_3V3/NVCC_3V3 (BUCK6 in datasheet) > > > + buck4_reg: BUCK4 { > > > + regulator-name = "BUCK4"; > > > + regulator-min-microvolt = <3000000>; > > > + regulator-max-microvolt = <3600000>; > > > + regulator-boot-on; > > > + regulator-always-on; > > > + }; > > > + > > > + // VDD_1V8/NVCC_1V8 (BUCK7 in datasheet) > > > + buck5_reg: BUCK5 { > > > + regulator-name = "BUCK5"; > > > + regulator-min-microvolt = <1650000>; > > > + regulator-max-microvolt = <1950000>; > > > + regulator-boot-on; > > > + regulator-always-on; > > > + }; > > > + > > > + // NVCC_DRAM_1V1 (BUCK8 in datasheet) > > > + buck6_reg: BUCK6 { > > > + regulator-name = "BUCK6"; > > > + regulator-min-microvolt = <1060000>; > > > + regulator-max-microvolt = <1140000>; > > > + regulator-boot-on; > > > + regulator-always-on; > > > + }; > > > + > > > + // NVCC_SNVS_1V8 > > > + ldo1_reg: LDO1 { > > > + regulator-name = "LDO1"; > > > + regulator-min-microvolt = <1620000>; > > > + regulator-max-microvolt = <19800000>; > > > + regulator-boot-on; > > > + regulator-always-on; > > > + }; > > > + > > > + // VDD_SNVS_0V8 > > > + ldo2_reg: LDO2 { > > > + regulator-name = "LDO2"; > > > + regulator-min-microvolt = <760000>; > > > + regulator-max-microvolt = <900000>; > > > + regulator-boot-on; > > > + regulator-always-on; > > > + }; > > > + > > > + // VDDA_1V8 > > > + ldo3_reg: LDO3 { > > > + regulator-name = "LDO3"; > > > + regulator-min-microvolt = <1710000>; > > > + regulator-max-microvolt = <1890000>; > > > + regulator-boot-on; > > > + regulator-always-on; > > > + }; > > > + > > > + // VDD_PHY_0V9 > > > + ldo4_reg: LDO4 { > > > + regulator-name = "LDO4"; > > > + regulator-min-microvolt = <855000>; > > > + regulator-max-microvolt = <1000000>; > > > + regulator-boot-on; > > > + regulator-always-on; > > > + }; > > > + > > > + // VDD_PHY_1V2 (LDO6 in datasheet) > > > + ldo5_reg: LDO5 { > > > + regulator-name = "LDO5"; > > > + regulator-min-microvolt = <1140000>; > > > + regulator-max-microvolt = <1260000>; > > > + regulator-boot-on; > > > + regulator-always-on; > > > + }; > > > + }; > > > + }; > > > +}; > > > -- > > > 2.25.1 > > > > > > > > gruß Johannes
On Tue, Mar 07, 2023 at 09:57:47AM +0100, Marco Felsch wrote: > Hi Shawn, > > On 23-03-07, Shawn Guo wrote: > > On Mon, Jan 30, 2023 at 06:25:52PM +0100, Johannes Schneider wrote: > > > Add devicetree for the EVKB, which comes with LPDDR4 and a different > > > PMIC. > > > > > > The regulator min/max values are taken from the evk's schematic: > > > 8MMINILPD4-CPU SPF-31399_C2.pdf > > > > > > Signed-off-by: Johannes Schneider <johannes.schneider@leica-geosystems.com> > > > > The patch doesn't compile at all (see below), so I took a closer look > > and decided to drop the series. > > > > > --- > > > arch/arm64/boot/dts/freescale/Makefile | 1 + > > > arch/arm64/boot/dts/freescale/imx8mm-evkb.dts | 134 ++++++++++++++++++ > > > 2 files changed, 135 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 > > > > I prefer to name it imx8mm-evk-revb.dtb or imx8mm-evk-b.dtb. > > Unfortunately it's not revision B, it is evkb. The 'first' evk has > plenty revisions. I think the most recent for the imx8mm-evk is C5. For > the imx8mm-evkb the most recent revision is A4. Even this is not 100 > percent correct since the EVK consist of a SoM and a baseboard. The > baseboard isn't changed for the EVKB but the SoM. The new SoM schematics > name the new SoM 8MMINILPD4-CPU2. But in the end you can't buy it > separately: > - https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/evaluation-kit-for-the-i-mx-8m-mini-applications-processor:8MMINILPD4-EVK Ok, thanks for the information, Marco! Shawn
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..2c3947d68982 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8mm-evkb.dts @@ -0,0 +1,134 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright 2019-2022 NXP + */ + +/dts-v1/; + +#include "imx8mm-evk.dtsi" + +/ { + model = "FSL i.MX8MM EVKB"; // with LPDDR4 and PCA9450 PMIC + compatible = "fsl,imx8mm-evkb", "fsl,imx8mm"; +}; + +&i2c1 { + /* + * replace "rohm,bd71847" pmic found on previous evks + * with "nxp,pca9450a" + */ + /delete-node/ pmic@4b + + 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 { + // VDD_SOC_0V8 + buck1_reg: BUCK1 { + regulator-name = "BUCK1"; + regulator-min-microvolt = <780000>; + regulator-max-microvolt = <900000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <1250>; + }; + + // VDD_ARM_0V9 + buck2_reg: BUCK2 { + regulator-name = "BUCK2"; + regulator-min-microvolt = <805000>; + regulator-max-microvolt = <1050000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <1250>; + nxp,dvs-standby-voltage = <850000>; + }; + + // VDD_DRAM&PU_0V9 (BUCK5 in datasheet) + buck3_reg: BUCK3 { + regulator-name = "BUCK3"; + regulator-min-microvolt = <805000>; + regulator-max-microvolt = <1000000>; + regulator-boot-on; + regulator-always-on; + }; + + // VDD_3V3/NVCC_3V3 (BUCK6 in datasheet) + buck4_reg: BUCK4 { + regulator-name = "BUCK4"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3600000>; + regulator-boot-on; + regulator-always-on; + }; + + // VDD_1V8/NVCC_1V8 (BUCK7 in datasheet) + buck5_reg: BUCK5 { + regulator-name = "BUCK5"; + regulator-min-microvolt = <1650000>; + regulator-max-microvolt = <1950000>; + regulator-boot-on; + regulator-always-on; + }; + + // NVCC_DRAM_1V1 (BUCK8 in datasheet) + buck6_reg: BUCK6 { + regulator-name = "BUCK6"; + regulator-min-microvolt = <1060000>; + regulator-max-microvolt = <1140000>; + regulator-boot-on; + regulator-always-on; + }; + + // NVCC_SNVS_1V8 + ldo1_reg: LDO1 { + regulator-name = "LDO1"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <19800000>; + regulator-boot-on; + regulator-always-on; + }; + + // VDD_SNVS_0V8 + ldo2_reg: LDO2 { + regulator-name = "LDO2"; + regulator-min-microvolt = <760000>; + regulator-max-microvolt = <900000>; + regulator-boot-on; + regulator-always-on; + }; + + // VDDA_1V8 + ldo3_reg: LDO3 { + regulator-name = "LDO3"; + regulator-min-microvolt = <1710000>; + regulator-max-microvolt = <1890000>; + regulator-boot-on; + regulator-always-on; + }; + + // VDD_PHY_0V9 + ldo4_reg: LDO4 { + regulator-name = "LDO4"; + regulator-min-microvolt = <855000>; + regulator-max-microvolt = <1000000>; + regulator-boot-on; + regulator-always-on; + }; + + // VDD_PHY_1V2 (LDO6 in datasheet) + ldo5_reg: LDO5 { + regulator-name = "LDO5"; + regulator-min-microvolt = <1140000>; + regulator-max-microvolt = <1260000>; + regulator-boot-on; + regulator-always-on; + }; + }; + }; +};
Add devicetree for the EVKB, which comes with LPDDR4 and a different PMIC. The regulator min/max values are taken from the evk's schematic: 8MMINILPD4-CPU SPF-31399_C2.pdf 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 | 134 ++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-evkb.dts