2023-06-01 19:48:10

by Tim Harvey

[permalink] [raw]
Subject: [PATCH] arm64: dts: imx8mp-venice-gw74xx: update to revB PCB

Update the imx8mp-venice-gw74xx for revB:
- add CAN1
- add TIS-TPM on SPI2
- add FAN controller
- fix PMIC I2C bus (revA PMIC I2C was non-functional so no need for
backward compatible option)
- M2 socket GPIO's moved

Signed-off-by: Tim Harvey <[email protected]>
---
.../dts/freescale/imx8mp-venice-gw74xx.dts | 261 +++++++++++-------
1 file changed, 159 insertions(+), 102 deletions(-)

diff --git a/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts b/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts
index eb51d648359b..0e389ec5c2d4 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts
@@ -125,12 +125,22 @@ reg_usb2_vbus: regulator-usb2 {
regulator-max-microvolt = <5000000>;
};

+ reg_can1_stby: regulator-can1-stby {
+ compatible = "regulator-fixed";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_reg_can1>;
+ regulator-name = "can1_stby";
+ gpio = <&gpio3 19 GPIO_ACTIVE_LOW>;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
reg_can2_stby: regulator-can2-stby {
compatible = "regulator-fixed";
pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_reg_can>;
+ pinctrl-0 = <&pinctrl_reg_can2>;
regulator-name = "can2_stby";
- gpio = <&gpio3 19 GPIO_ACTIVE_LOW>;
+ gpio = <&gpio5 5 GPIO_ACTIVE_LOW>;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
@@ -164,6 +174,21 @@ &A53_3 {
cpu-supply = <&reg_arm>;
};

+&ecspi1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_spi1>;
+ cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
+ status = "okay";
+
+ tpm@0 {
+ compatible = "tcg,tpm_tis-spi";
+ #address-cells = <0x1>;
+ #size-cells = <0x1>;
+ reg = <0x0>;
+ spi-max-frequency = <36000000>;
+ };
+};
+
/* off-board header */
&ecspi2 {
pinctrl-names = "default";
@@ -204,6 +229,13 @@ fixed-link {
};
};

+&flexcan1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_flexcan1>;
+ xceiver-supply = <&reg_can1_stby>;
+ status = "okay";
+};
+
&flexcan2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexcan2>;
@@ -214,38 +246,38 @@ &flexcan2 {
&gpio1 {
gpio-line-names =
"", "", "", "", "", "", "", "",
- "", "", "dio0", "", "dio1", "", "", "",
+ "", "dio0", "", "dio1", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "";
};

&gpio2 {
gpio-line-names =
- "", "", "", "", "", "", "", "",
- "", "", "", "", "", "", "pcie3_wdis#", "",
+ "", "", "", "", "", "", "m2_pin20", "",
+ "", "", "", "", "", "pcie1_wdis#", "pcie3_wdis#", "",
"", "", "pcie2_wdis#", "", "", "", "", "",
"", "", "", "", "", "", "", "";
};

&gpio3 {
gpio-line-names =
- "m2_gdis#", "", "", "", "", "", "", "m2_rst#",
+ "", "", "", "", "", "", "m2_rst", "",
+ "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
- "m2_off#", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "";
};

&gpio4 {
gpio-line-names =
+ "", "", "m2_off#", "", "", "", "", "",
"", "", "", "", "", "", "", "",
- "", "", "", "", "", "", "", "",
- "", "", "", "", "m2_wdis#", "", "", "",
- "", "", "", "", "", "", "", "uart_rs485";
+ "", "", "m2_wdis#", "", "", "", "", "",
+ "", "", "", "", "", "", "", "rs485_en";
};

&gpio5 {
gpio-line-names =
- "uart_half", "uart_term", "", "", "", "", "", "",
+ "rs485_hd", "rs485_term", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "";
@@ -286,6 +318,12 @@ channel@8 {
label = "vdd_bat";
};

+ channel@16 {
+ gw,mode = <4>;
+ reg = <0x16>;
+ label = "fan_tach";
+ };
+
channel@82 {
gw,mode = <2>;
reg = <0x82>;
@@ -358,6 +396,11 @@ channel@a2 {
gw,voltage-divider-ohms = <10000 10000>;
};
};
+
+ fan-controller@0 {
+ compatible = "gw,gsc-fan";
+ reg = <0x0a>;
+ };
};

gpio: gpio@23 {
@@ -369,85 +412,6 @@ gpio: gpio@23 {
interrupts = <4>;
};

- pmic@25 {
- compatible = "nxp,pca9450c";
- reg = <0x25>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_pmic>;
- interrupt-parent = <&gpio3>;
- interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
-
- regulators {
- BUCK1 {
- regulator-name = "BUCK1";
- regulator-min-microvolt = <720000>;
- regulator-max-microvolt = <1000000>;
- regulator-boot-on;
- regulator-always-on;
- regulator-ramp-delay = <3125>;
- };
-
- reg_arm: BUCK2 {
- regulator-name = "BUCK2";
- regulator-min-microvolt = <720000>;
- regulator-max-microvolt = <1025000>;
- regulator-boot-on;
- regulator-always-on;
- regulator-ramp-delay = <3125>;
- nxp,dvs-run-voltage = <950000>;
- nxp,dvs-standby-voltage = <850000>;
- };
-
- BUCK4 {
- regulator-name = "BUCK4";
- regulator-min-microvolt = <3000000>;
- regulator-max-microvolt = <3600000>;
- regulator-boot-on;
- regulator-always-on;
- };
-
- BUCK5 {
- regulator-name = "BUCK5";
- regulator-min-microvolt = <1650000>;
- regulator-max-microvolt = <1950000>;
- regulator-boot-on;
- regulator-always-on;
- };
-
- BUCK6 {
- regulator-name = "BUCK6";
- regulator-min-microvolt = <1045000>;
- regulator-max-microvolt = <1155000>;
- regulator-boot-on;
- regulator-always-on;
- };
-
- LDO1 {
- regulator-name = "LDO1";
- regulator-min-microvolt = <1650000>;
- regulator-max-microvolt = <1950000>;
- regulator-boot-on;
- regulator-always-on;
- };
-
- LDO3 {
- regulator-name = "LDO3";
- regulator-min-microvolt = <1710000>;
- regulator-max-microvolt = <1890000>;
- regulator-boot-on;
- regulator-always-on;
- };
-
- LDO5 {
- regulator-name = "LDO5";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <3300000>;
- regulator-boot-on;
- regulator-always-on;
- };
- };
- };
-
eeprom@50 {
compatible = "atmel,24c02";
reg = <0x50>;
@@ -559,7 +523,6 @@ fixed-link {
};
};

-/* off-board header */
&i2c3 {
clock-frequency = <400000>;
pinctrl-names = "default", "gpio";
@@ -568,6 +531,85 @@ &i2c3 {
scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "okay";
+
+ pmic@25 {
+ compatible = "nxp,pca9450c";
+ reg = <0x25>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_pmic>;
+ interrupt-parent = <&gpio3>;
+ interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
+
+ regulators {
+ BUCK1 {
+ regulator-name = "BUCK1";
+ regulator-min-microvolt = <720000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-boot-on;
+ regulator-always-on;
+ regulator-ramp-delay = <3125>;
+ };
+
+ reg_arm: BUCK2 {
+ regulator-name = "BUCK2";
+ regulator-min-microvolt = <720000>;
+ regulator-max-microvolt = <1025000>;
+ regulator-boot-on;
+ regulator-always-on;
+ regulator-ramp-delay = <3125>;
+ nxp,dvs-run-voltage = <950000>;
+ nxp,dvs-standby-voltage = <850000>;
+ };
+
+ BUCK4 {
+ regulator-name = "BUCK4";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3600000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ BUCK5 {
+ regulator-name = "BUCK5";
+ regulator-min-microvolt = <1650000>;
+ regulator-max-microvolt = <1950000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ BUCK6 {
+ regulator-name = "BUCK6";
+ regulator-min-microvolt = <1045000>;
+ regulator-max-microvolt = <1155000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ LDO1 {
+ regulator-name = "LDO1";
+ regulator-min-microvolt = <1650000>;
+ regulator-max-microvolt = <1950000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ LDO3 {
+ regulator-name = "LDO3";
+ regulator-min-microvolt = <1710000>;
+ regulator-max-microvolt = <1890000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ LDO5 {
+ regulator-name = "LDO5";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+ };
+ };
};

/* off-board header */
@@ -726,12 +768,14 @@ pinctrl_hog: hoggrp {
fsl,pins = <
MX8MP_IOMUXC_GPIO1_IO09__GPIO1_IO09 0x40000040 /* DIO0 */
MX8MP_IOMUXC_GPIO1_IO11__GPIO1_IO11 0x40000040 /* DIO1 */
- MX8MP_IOMUXC_NAND_DQS__GPIO3_IO14 0x40000040 /* M2SKT_OFF# */
- MX8MP_IOMUXC_SD2_DATA3__GPIO2_IO18 0x40000150 /* PCIE2_WDIS# */
+ MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02 0x40000040 /* M2SKT_OFF# */
+ MX8MP_IOMUXC_SAI1_TXD6__GPIO4_IO18 0x40000150 /* M2SKT_WDIS# */
+ MX8MP_IOMUXC_SD1_DATA4__GPIO2_IO06 0x40000040 /* M2SKT_PIN20 */
+ MX8MP_IOMUXC_SD1_STROBE__GPIO2_IO11 0x40000040 /* M2SKT_PIN22 */
+ MX8MP_IOMUXC_SD2_CLK__GPIO2_IO13 0x40000150 /* PCIE1_WDIS# */
MX8MP_IOMUXC_SD2_CMD__GPIO2_IO14 0x40000150 /* PCIE3_WDIS# */
+ MX8MP_IOMUXC_SD2_DATA3__GPIO2_IO18 0x40000150 /* PCIE2_WDIS# */
MX8MP_IOMUXC_NAND_DATA00__GPIO3_IO06 0x40000040 /* M2SKT_RST# */
- MX8MP_IOMUXC_SAI1_TXD6__GPIO4_IO18 0x40000150 /* M2SKT_WDIS# */
- MX8MP_IOMUXC_NAND_ALE__GPIO3_IO00 0x40000150 /* M2SKT_GDIS# */
MX8MP_IOMUXC_SAI3_TXD__GPIO5_IO01 0x40000104 /* UART_TERM */
MX8MP_IOMUXC_SAI3_TXFS__GPIO4_IO31 0x40000104 /* UART_RS485 */
MX8MP_IOMUXC_SAI3_TXC__GPIO5_IO00 0x40000104 /* UART_HALF */
@@ -784,6 +828,13 @@ MX8MP_IOMUXC_SAI1_RXC__ENET1_1588_EVENT0_OUT 0x140
>;
};

+ pinctrl_flexcan1: flexcan1grp {
+ fsl,pins = <
+ MX8MP_IOMUXC_SPDIF_RX__CAN1_RX 0x154
+ MX8MP_IOMUXC_SPDIF_TX__CAN1_TX 0x154
+ >;
+ };
+
pinctrl_flexcan2: flexcan2grp {
fsl,pins = <
MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX 0x154
@@ -869,7 +920,7 @@ MX8MP_IOMUXC_SD2_DATA1__GPIO2_IO16 0x10

pinctrl_pcie0: pciegrp {
fsl,pins = <
- MX8MP_IOMUXC_SD2_DATA2__GPIO2_IO17 0x110
+ MX8MP_IOMUXC_SD2_DATA2__GPIO2_IO17 0x106
>;
};

@@ -885,12 +936,18 @@ MX8MP_IOMUXC_GPIO1_IO12__GPIO1_IO12 0x140
>;
};

- pinctrl_reg_can: regcangrp {
+ pinctrl_reg_can1: regcan1grp {
fsl,pins = <
MX8MP_IOMUXC_SAI5_RXFS__GPIO3_IO19 0x154
>;
};

+ pinctrl_reg_can2: regcan2grp {
+ fsl,pins = <
+ MX8MP_IOMUXC_SPDIF_EXT_CLK__GPIO5_IO05 0x154
+ >;
+ };
+
pinctrl_reg_usb2: regusb2grp {
fsl,pins = <
MX8MP_IOMUXC_GPIO1_IO06__GPIO1_IO06 0x140
@@ -903,12 +960,12 @@ MX8MP_IOMUXC_NAND_DATA03__GPIO3_IO09 0x110
>;
};

- pinctrl_sai2: sai2grp {
+ pinctrl_spi1: spi1grp {
fsl,pins = <
- MX8MP_IOMUXC_SAI2_TXFS__AUDIOMIX_SAI2_TX_SYNC 0xd6
- MX8MP_IOMUXC_SAI2_TXD0__AUDIOMIX_SAI2_TX_DATA00 0xd6
- MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_SAI2_TX_BCLK 0xd6
- MX8MP_IOMUXC_SAI2_MCLK__AUDIOMIX_SAI2_MCLK 0xd6
+ MX8MP_IOMUXC_ECSPI1_SCLK__ECSPI1_SCLK 0x82
+ MX8MP_IOMUXC_ECSPI1_MOSI__ECSPI1_MOSI 0x82
+ MX8MP_IOMUXC_ECSPI1_MISO__ECSPI1_MISO 0x82
+ MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09 0x140
>;
};

--
2.25.1



2023-06-05 00:54:16

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: imx8mp-venice-gw74xx: update to revB PCB

On Thu, Jun 01, 2023 at 12:31:12PM -0700, Tim Harvey wrote:
> Update the imx8mp-venice-gw74xx for revB:
> - add CAN1
> - add TIS-TPM on SPI2
> - add FAN controller
> - fix PMIC I2C bus (revA PMIC I2C was non-functional so no need for
> backward compatible option)
> - M2 socket GPIO's moved
>
> Signed-off-by: Tim Harvey <[email protected]>
> ---
> .../dts/freescale/imx8mp-venice-gw74xx.dts | 261 +++++++++++-------
> 1 file changed, 159 insertions(+), 102 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts b/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts
> index eb51d648359b..0e389ec5c2d4 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts
> +++ b/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts
> @@ -125,12 +125,22 @@ reg_usb2_vbus: regulator-usb2 {
> regulator-max-microvolt = <5000000>;
> };
>
> + reg_can1_stby: regulator-can1-stby {
> + compatible = "regulator-fixed";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_reg_can1>;
> + regulator-name = "can1_stby";
> + gpio = <&gpio3 19 GPIO_ACTIVE_LOW>;
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + };
> +
> reg_can2_stby: regulator-can2-stby {
> compatible = "regulator-fixed";
> pinctrl-names = "default";
> - pinctrl-0 = <&pinctrl_reg_can>;
> + pinctrl-0 = <&pinctrl_reg_can2>;
> regulator-name = "can2_stby";
> - gpio = <&gpio3 19 GPIO_ACTIVE_LOW>;
> + gpio = <&gpio5 5 GPIO_ACTIVE_LOW>;
> regulator-min-microvolt = <3300000>;
> regulator-max-microvolt = <3300000>;
> };
> @@ -164,6 +174,21 @@ &A53_3 {
> cpu-supply = <&reg_arm>;
> };
>
> +&ecspi1 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_spi1>;
> + cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
> + status = "okay";
> +
> + tpm@0 {
> + compatible = "tcg,tpm_tis-spi";
> + #address-cells = <0x1>;
> + #size-cells = <0x1>;
> + reg = <0x0>;
> + spi-max-frequency = <36000000>;
> + };
> +};
> +
> /* off-board header */
> &ecspi2 {
> pinctrl-names = "default";
> @@ -204,6 +229,13 @@ fixed-link {
> };
> };
>
> +&flexcan1 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_flexcan1>;
> + xceiver-supply = <&reg_can1_stby>;
> + status = "okay";
> +};
> +
> &flexcan2 {
> pinctrl-names = "default";
> pinctrl-0 = <&pinctrl_flexcan2>;
> @@ -214,38 +246,38 @@ &flexcan2 {
> &gpio1 {
> gpio-line-names =
> "", "", "", "", "", "", "", "",
> - "", "", "dio0", "", "dio1", "", "", "",
> + "", "dio0", "", "dio1", "", "", "", "",
> "", "", "", "", "", "", "", "",
> "", "", "", "", "", "", "", "";
> };
>
> &gpio2 {
> gpio-line-names =
> - "", "", "", "", "", "", "", "",
> - "", "", "", "", "", "", "pcie3_wdis#", "",
> + "", "", "", "", "", "", "m2_pin20", "",
> + "", "", "", "", "", "pcie1_wdis#", "pcie3_wdis#", "",
> "", "", "pcie2_wdis#", "", "", "", "", "",
> "", "", "", "", "", "", "", "";
> };
>
> &gpio3 {
> gpio-line-names =
> - "m2_gdis#", "", "", "", "", "", "", "m2_rst#",
> + "", "", "", "", "", "", "m2_rst", "",
> + "", "", "", "", "", "", "", "",
> "", "", "", "", "", "", "", "",
> - "m2_off#", "", "", "", "", "", "", "",
> "", "", "", "", "", "", "", "";
> };
>
> &gpio4 {
> gpio-line-names =
> + "", "", "m2_off#", "", "", "", "", "",
> "", "", "", "", "", "", "", "",
> - "", "", "", "", "", "", "", "",
> - "", "", "", "", "m2_wdis#", "", "", "",
> - "", "", "", "", "", "", "", "uart_rs485";
> + "", "", "m2_wdis#", "", "", "", "", "",
> + "", "", "", "", "", "", "", "rs485_en";
> };
>
> &gpio5 {
> gpio-line-names =
> - "uart_half", "uart_term", "", "", "", "", "", "",
> + "rs485_hd", "rs485_term", "", "", "", "", "", "",
> "", "", "", "", "", "", "", "",
> "", "", "", "", "", "", "", "",
> "", "", "", "", "", "", "", "";
> @@ -286,6 +318,12 @@ channel@8 {
> label = "vdd_bat";
> };
>
> + channel@16 {
> + gw,mode = <4>;
> + reg = <0x16>;
> + label = "fan_tach";
> + };
> +
> channel@82 {
> gw,mode = <2>;
> reg = <0x82>;
> @@ -358,6 +396,11 @@ channel@a2 {
> gw,voltage-divider-ohms = <10000 10000>;
> };
> };
> +
> + fan-controller@0 {

The unit-address doesn't match 'reg' property below.

Shawn

> + compatible = "gw,gsc-fan";
> + reg = <0x0a>;
> + };
> };
>
> gpio: gpio@23 {
> @@ -369,85 +412,6 @@ gpio: gpio@23 {
> interrupts = <4>;
> };
>
> - pmic@25 {
> - compatible = "nxp,pca9450c";
> - reg = <0x25>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&pinctrl_pmic>;
> - interrupt-parent = <&gpio3>;
> - interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
> -
> - regulators {
> - BUCK1 {
> - regulator-name = "BUCK1";
> - regulator-min-microvolt = <720000>;
> - regulator-max-microvolt = <1000000>;
> - regulator-boot-on;
> - regulator-always-on;
> - regulator-ramp-delay = <3125>;
> - };
> -
> - reg_arm: BUCK2 {
> - regulator-name = "BUCK2";
> - regulator-min-microvolt = <720000>;
> - regulator-max-microvolt = <1025000>;
> - regulator-boot-on;
> - regulator-always-on;
> - regulator-ramp-delay = <3125>;
> - nxp,dvs-run-voltage = <950000>;
> - nxp,dvs-standby-voltage = <850000>;
> - };
> -
> - BUCK4 {
> - regulator-name = "BUCK4";
> - regulator-min-microvolt = <3000000>;
> - regulator-max-microvolt = <3600000>;
> - regulator-boot-on;
> - regulator-always-on;
> - };
> -
> - BUCK5 {
> - regulator-name = "BUCK5";
> - regulator-min-microvolt = <1650000>;
> - regulator-max-microvolt = <1950000>;
> - regulator-boot-on;
> - regulator-always-on;
> - };
> -
> - BUCK6 {
> - regulator-name = "BUCK6";
> - regulator-min-microvolt = <1045000>;
> - regulator-max-microvolt = <1155000>;
> - regulator-boot-on;
> - regulator-always-on;
> - };
> -
> - LDO1 {
> - regulator-name = "LDO1";
> - regulator-min-microvolt = <1650000>;
> - regulator-max-microvolt = <1950000>;
> - regulator-boot-on;
> - regulator-always-on;
> - };
> -
> - LDO3 {
> - regulator-name = "LDO3";
> - regulator-min-microvolt = <1710000>;
> - regulator-max-microvolt = <1890000>;
> - regulator-boot-on;
> - regulator-always-on;
> - };
> -
> - LDO5 {
> - regulator-name = "LDO5";
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <3300000>;
> - regulator-boot-on;
> - regulator-always-on;
> - };
> - };
> - };
> -
> eeprom@50 {
> compatible = "atmel,24c02";
> reg = <0x50>;
> @@ -559,7 +523,6 @@ fixed-link {
> };
> };
>
> -/* off-board header */
> &i2c3 {
> clock-frequency = <400000>;
> pinctrl-names = "default", "gpio";
> @@ -568,6 +531,85 @@ &i2c3 {
> scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> status = "okay";
> +
> + pmic@25 {
> + compatible = "nxp,pca9450c";
> + reg = <0x25>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_pmic>;
> + interrupt-parent = <&gpio3>;
> + interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
> +
> + regulators {
> + BUCK1 {
> + regulator-name = "BUCK1";
> + regulator-min-microvolt = <720000>;
> + regulator-max-microvolt = <1000000>;
> + regulator-boot-on;
> + regulator-always-on;
> + regulator-ramp-delay = <3125>;
> + };
> +
> + reg_arm: BUCK2 {
> + regulator-name = "BUCK2";
> + regulator-min-microvolt = <720000>;
> + regulator-max-microvolt = <1025000>;
> + regulator-boot-on;
> + regulator-always-on;
> + regulator-ramp-delay = <3125>;
> + nxp,dvs-run-voltage = <950000>;
> + nxp,dvs-standby-voltage = <850000>;
> + };
> +
> + BUCK4 {
> + regulator-name = "BUCK4";
> + regulator-min-microvolt = <3000000>;
> + regulator-max-microvolt = <3600000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + BUCK5 {
> + regulator-name = "BUCK5";
> + regulator-min-microvolt = <1650000>;
> + regulator-max-microvolt = <1950000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + BUCK6 {
> + regulator-name = "BUCK6";
> + regulator-min-microvolt = <1045000>;
> + regulator-max-microvolt = <1155000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + LDO1 {
> + regulator-name = "LDO1";
> + regulator-min-microvolt = <1650000>;
> + regulator-max-microvolt = <1950000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + LDO3 {
> + regulator-name = "LDO3";
> + regulator-min-microvolt = <1710000>;
> + regulator-max-microvolt = <1890000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + LDO5 {
> + regulator-name = "LDO5";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> + };
> + };
> };
>
> /* off-board header */
> @@ -726,12 +768,14 @@ pinctrl_hog: hoggrp {
> fsl,pins = <
> MX8MP_IOMUXC_GPIO1_IO09__GPIO1_IO09 0x40000040 /* DIO0 */
> MX8MP_IOMUXC_GPIO1_IO11__GPIO1_IO11 0x40000040 /* DIO1 */
> - MX8MP_IOMUXC_NAND_DQS__GPIO3_IO14 0x40000040 /* M2SKT_OFF# */
> - MX8MP_IOMUXC_SD2_DATA3__GPIO2_IO18 0x40000150 /* PCIE2_WDIS# */
> + MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02 0x40000040 /* M2SKT_OFF# */
> + MX8MP_IOMUXC_SAI1_TXD6__GPIO4_IO18 0x40000150 /* M2SKT_WDIS# */
> + MX8MP_IOMUXC_SD1_DATA4__GPIO2_IO06 0x40000040 /* M2SKT_PIN20 */
> + MX8MP_IOMUXC_SD1_STROBE__GPIO2_IO11 0x40000040 /* M2SKT_PIN22 */
> + MX8MP_IOMUXC_SD2_CLK__GPIO2_IO13 0x40000150 /* PCIE1_WDIS# */
> MX8MP_IOMUXC_SD2_CMD__GPIO2_IO14 0x40000150 /* PCIE3_WDIS# */
> + MX8MP_IOMUXC_SD2_DATA3__GPIO2_IO18 0x40000150 /* PCIE2_WDIS# */
> MX8MP_IOMUXC_NAND_DATA00__GPIO3_IO06 0x40000040 /* M2SKT_RST# */
> - MX8MP_IOMUXC_SAI1_TXD6__GPIO4_IO18 0x40000150 /* M2SKT_WDIS# */
> - MX8MP_IOMUXC_NAND_ALE__GPIO3_IO00 0x40000150 /* M2SKT_GDIS# */
> MX8MP_IOMUXC_SAI3_TXD__GPIO5_IO01 0x40000104 /* UART_TERM */
> MX8MP_IOMUXC_SAI3_TXFS__GPIO4_IO31 0x40000104 /* UART_RS485 */
> MX8MP_IOMUXC_SAI3_TXC__GPIO5_IO00 0x40000104 /* UART_HALF */
> @@ -784,6 +828,13 @@ MX8MP_IOMUXC_SAI1_RXC__ENET1_1588_EVENT0_OUT 0x140
> >;
> };
>
> + pinctrl_flexcan1: flexcan1grp {
> + fsl,pins = <
> + MX8MP_IOMUXC_SPDIF_RX__CAN1_RX 0x154
> + MX8MP_IOMUXC_SPDIF_TX__CAN1_TX 0x154
> + >;
> + };
> +
> pinctrl_flexcan2: flexcan2grp {
> fsl,pins = <
> MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX 0x154
> @@ -869,7 +920,7 @@ MX8MP_IOMUXC_SD2_DATA1__GPIO2_IO16 0x10
>
> pinctrl_pcie0: pciegrp {
> fsl,pins = <
> - MX8MP_IOMUXC_SD2_DATA2__GPIO2_IO17 0x110
> + MX8MP_IOMUXC_SD2_DATA2__GPIO2_IO17 0x106
> >;
> };
>
> @@ -885,12 +936,18 @@ MX8MP_IOMUXC_GPIO1_IO12__GPIO1_IO12 0x140
> >;
> };
>
> - pinctrl_reg_can: regcangrp {
> + pinctrl_reg_can1: regcan1grp {
> fsl,pins = <
> MX8MP_IOMUXC_SAI5_RXFS__GPIO3_IO19 0x154
> >;
> };
>
> + pinctrl_reg_can2: regcan2grp {
> + fsl,pins = <
> + MX8MP_IOMUXC_SPDIF_EXT_CLK__GPIO5_IO05 0x154
> + >;
> + };
> +
> pinctrl_reg_usb2: regusb2grp {
> fsl,pins = <
> MX8MP_IOMUXC_GPIO1_IO06__GPIO1_IO06 0x140
> @@ -903,12 +960,12 @@ MX8MP_IOMUXC_NAND_DATA03__GPIO3_IO09 0x110
> >;
> };
>
> - pinctrl_sai2: sai2grp {
> + pinctrl_spi1: spi1grp {
> fsl,pins = <
> - MX8MP_IOMUXC_SAI2_TXFS__AUDIOMIX_SAI2_TX_SYNC 0xd6
> - MX8MP_IOMUXC_SAI2_TXD0__AUDIOMIX_SAI2_TX_DATA00 0xd6
> - MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_SAI2_TX_BCLK 0xd6
> - MX8MP_IOMUXC_SAI2_MCLK__AUDIOMIX_SAI2_MCLK 0xd6
> + MX8MP_IOMUXC_ECSPI1_SCLK__ECSPI1_SCLK 0x82
> + MX8MP_IOMUXC_ECSPI1_MOSI__ECSPI1_MOSI 0x82
> + MX8MP_IOMUXC_ECSPI1_MISO__ECSPI1_MISO 0x82
> + MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09 0x140
> >;
> };
>
> --
> 2.25.1
>

2023-06-06 00:32:31

by Tim Harvey

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: imx8mp-venice-gw74xx: update to revB PCB

On Sun, Jun 4, 2023 at 5:22 PM Shawn Guo <[email protected]> wrote:
>
> On Thu, Jun 01, 2023 at 12:31:12PM -0700, Tim Harvey wrote:
> > Update the imx8mp-venice-gw74xx for revB:
> > - add CAN1
> > - add TIS-TPM on SPI2
> > - add FAN controller
> > - fix PMIC I2C bus (revA PMIC I2C was non-functional so no need for
> > backward compatible option)
> > - M2 socket GPIO's moved
> >
> > Signed-off-by: Tim Harvey <[email protected]>
> > ---
> > .../dts/freescale/imx8mp-venice-gw74xx.dts | 261 +++++++++++-------
> > 1 file changed, 159 insertions(+), 102 deletions(-)
> >
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts b/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts
> > index eb51d648359b..0e389ec5c2d4 100644
> > --- a/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts
> > +++ b/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts
> > @@ -125,12 +125,22 @@ reg_usb2_vbus: regulator-usb2 {
> > regulator-max-microvolt = <5000000>;
> > };
> >
> > + reg_can1_stby: regulator-can1-stby {
> > + compatible = "regulator-fixed";
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_reg_can1>;
> > + regulator-name = "can1_stby";
> > + gpio = <&gpio3 19 GPIO_ACTIVE_LOW>;
> > + regulator-min-microvolt = <3300000>;
> > + regulator-max-microvolt = <3300000>;
> > + };
> > +
> > reg_can2_stby: regulator-can2-stby {
> > compatible = "regulator-fixed";
> > pinctrl-names = "default";
> > - pinctrl-0 = <&pinctrl_reg_can>;
> > + pinctrl-0 = <&pinctrl_reg_can2>;
> > regulator-name = "can2_stby";
> > - gpio = <&gpio3 19 GPIO_ACTIVE_LOW>;
> > + gpio = <&gpio5 5 GPIO_ACTIVE_LOW>;
> > regulator-min-microvolt = <3300000>;
> > regulator-max-microvolt = <3300000>;
> > };
> > @@ -164,6 +174,21 @@ &A53_3 {
> > cpu-supply = <&reg_arm>;
> > };
> >
> > +&ecspi1 {
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_spi1>;
> > + cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
> > + status = "okay";
> > +
> > + tpm@0 {
> > + compatible = "tcg,tpm_tis-spi";
> > + #address-cells = <0x1>;
> > + #size-cells = <0x1>;
> > + reg = <0x0>;
> > + spi-max-frequency = <36000000>;
> > + };
> > +};
> > +
> > /* off-board header */
> > &ecspi2 {
> > pinctrl-names = "default";
> > @@ -204,6 +229,13 @@ fixed-link {
> > };
> > };
> >
> > +&flexcan1 {
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_flexcan1>;
> > + xceiver-supply = <&reg_can1_stby>;
> > + status = "okay";
> > +};
> > +
> > &flexcan2 {
> > pinctrl-names = "default";
> > pinctrl-0 = <&pinctrl_flexcan2>;
> > @@ -214,38 +246,38 @@ &flexcan2 {
> > &gpio1 {
> > gpio-line-names =
> > "", "", "", "", "", "", "", "",
> > - "", "", "dio0", "", "dio1", "", "", "",
> > + "", "dio0", "", "dio1", "", "", "", "",
> > "", "", "", "", "", "", "", "",
> > "", "", "", "", "", "", "", "";
> > };
> >
> > &gpio2 {
> > gpio-line-names =
> > - "", "", "", "", "", "", "", "",
> > - "", "", "", "", "", "", "pcie3_wdis#", "",
> > + "", "", "", "", "", "", "m2_pin20", "",
> > + "", "", "", "", "", "pcie1_wdis#", "pcie3_wdis#", "",
> > "", "", "pcie2_wdis#", "", "", "", "", "",
> > "", "", "", "", "", "", "", "";
> > };
> >
> > &gpio3 {
> > gpio-line-names =
> > - "m2_gdis#", "", "", "", "", "", "", "m2_rst#",
> > + "", "", "", "", "", "", "m2_rst", "",
> > + "", "", "", "", "", "", "", "",
> > "", "", "", "", "", "", "", "",
> > - "m2_off#", "", "", "", "", "", "", "",
> > "", "", "", "", "", "", "", "";
> > };
> >
> > &gpio4 {
> > gpio-line-names =
> > + "", "", "m2_off#", "", "", "", "", "",
> > "", "", "", "", "", "", "", "",
> > - "", "", "", "", "", "", "", "",
> > - "", "", "", "", "m2_wdis#", "", "", "",
> > - "", "", "", "", "", "", "", "uart_rs485";
> > + "", "", "m2_wdis#", "", "", "", "", "",
> > + "", "", "", "", "", "", "", "rs485_en";
> > };
> >
> > &gpio5 {
> > gpio-line-names =
> > - "uart_half", "uart_term", "", "", "", "", "", "",
> > + "rs485_hd", "rs485_term", "", "", "", "", "", "",
> > "", "", "", "", "", "", "", "",
> > "", "", "", "", "", "", "", "",
> > "", "", "", "", "", "", "", "";
> > @@ -286,6 +318,12 @@ channel@8 {
> > label = "vdd_bat";
> > };
> >
> > + channel@16 {
> > + gw,mode = <4>;
> > + reg = <0x16>;
> > + label = "fan_tach";
> > + };
> > +
> > channel@82 {
> > gw,mode = <2>;
> > reg = <0x82>;
> > @@ -358,6 +396,11 @@ channel@a2 {
> > gw,voltage-divider-ohms = <10000 10000>;
> > };
> > };
> > +
> > + fan-controller@0 {
>
> The unit-address doesn't match 'reg' property below.
>
> Shawn
>

Shawn,

Thanks - I'll fix this in v2

Best Regards,

Tim