arm64: dts: freescale: imx8qm: add apalis eval v1.2 carrier board
authorJoao Paulo Goncalves <joao.goncalves@toradex.com>
Thu, 25 Jan 2024 10:14:57 +0000 (11:14 +0100)
committerShawn Guo <shawnguo@kernel.org>
Tue, 6 Feb 2024 08:23:13 +0000 (16:23 +0800)
Add support for the new version, v1.2, of Apalis Evaluation Board.
Because only imx8-apalis-eval.dtsi was available and used as the only
board configuration for board version v1.0 and v1.1, it was changed to
be the common hardware configurations for all versions v1.0,
v1.1 and v1.2. Also, two .dtsi board files were added to have the
differences by board. The .dts were organized by SoM and board version.

Board versions v1.0 and v1.1 are compatible with each other and should
use imx8qm-apalis-eval.dts file or imx8qm-apalis-v1.1-eval.dts file
depending on SoM version. Now for v1.2, organized by SoM version too, the
files are imx8qm-apalis-eval-v1.2.dts and imx8qm-apalis-v1.1-eval-v1.2.dts.

Signed-off-by: Joao Paulo Goncalves <joao.goncalves@toradex.com>
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/Makefile
arch/arm64/boot/dts/freescale/imx8-apalis-eval-v1.1.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8-apalis-eval-v1.2.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8-apalis-eval.dtsi
arch/arm64/boot/dts/freescale/imx8qm-apalis-eval-v1.2.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8qm-apalis-eval.dts
arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-eval-v1.2.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-eval.dts

index 2e347a594fdd6a540ef604c5fc5d77ae86a58421..518149d295a1ad52b72fe9e9d52bf4be0ba0ce6b 100644 (file)
@@ -189,8 +189,10 @@ imx8mq-tqma8mq-mba8mx-lvds-tm070jvhg33-dtbs += imx8mq-tqma8mq-mba8mx.dtb imx8mq-
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-tqma8mq-mba8mx-lvds-tm070jvhg33.dtb
 
 dtb-$(CONFIG_ARCH_MXC) += imx8qm-apalis-eval.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8qm-apalis-eval-v1.2.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8qm-apalis-ixora-v1.1.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8qm-apalis-v1.1-eval.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8qm-apalis-v1.1-eval-v1.2.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8qm-apalis-v1.1-ixora-v1.1.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8qm-apalis-v1.1-ixora-v1.2.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8qm-mek.dtb
diff --git a/arch/arm64/boot/dts/freescale/imx8-apalis-eval-v1.1.dtsi b/arch/arm64/boot/dts/freescale/imx8-apalis-eval-v1.1.dtsi
new file mode 100644 (file)
index 0000000..0f77f78
--- /dev/null
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2024 Toradex
+ */
+
+#include "imx8-apalis-eval.dtsi"
+
+/* Apalis CAN1 */
+&flexcan1 {
+       status = "okay";
+};
+
+/* Apalis CAN2 */
+&flexcan2 {
+       status = "okay";
+};
+
+/* Apalis MMC1 */
+&usdhc2 {
+       status = "okay";
+};
+
+/* Apalis SD1 */
+&usdhc3 {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8-apalis-eval-v1.2.dtsi b/arch/arm64/boot/dts/freescale/imx8-apalis-eval-v1.2.dtsi
new file mode 100644 (file)
index 0000000..f5c6a01
--- /dev/null
@@ -0,0 +1,124 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2024 Toradex
+ */
+
+#include "imx8-apalis-eval.dtsi"
+
+/ {
+       reg_3v3_mmc: regulator-3v3-mmc {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_enable_3v3_mmc>;
+               enable-active-high;
+               gpio = <&lsio_gpio5 19 GPIO_ACTIVE_HIGH>;
+               off-on-delay-us = <100000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "3.3V_MMC";
+               startup-delay-us = <10000>;
+       };
+
+       reg_3v3_sd: regulator-3v3-sd {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_enable_3v3_sd>;
+               enable-active-high;
+               gpio = <&lsio_gpio5 20 GPIO_ACTIVE_HIGH>;
+               off-on-delay-us = <100000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "3.3V_SD";
+               startup-delay-us = <10000>;
+       };
+
+       reg_can1: regulator-can1 {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_enable_can1_power>;
+               enable-active-high;
+               gpio = <&lsio_gpio5 22 GPIO_ACTIVE_HIGH>;
+               regulator-name = "5V_SW_CAN1";
+               startup-delay-us = <10000>;
+       };
+
+       reg_can2: regulator-can2 {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_enable_can2_power>;
+               enable-active-high;
+               gpio = <&lsio_gpio5 21 GPIO_ACTIVE_HIGH>;
+               regulator-name = "5V_SW_CAN2";
+               startup-delay-us = <10000>;
+       };
+};
+
+/* Apalis CAN1 */
+&flexcan1 {
+       xceiver-supply = <&reg_can1>;
+       status = "okay";
+};
+
+/* Apalis CAN2 */
+&flexcan2 {
+       xceiver-supply = <&reg_can2>;
+       status = "okay";
+};
+
+/* Apalis I2C1 */
+&i2c2 {
+       status = "okay";
+
+       /* Power/Current Measurement Sensor */
+       hwmon@40 {
+               compatible = "ti,ina219";
+               reg = <0x40>;
+               shunt-resistor = <5000>;
+       };
+
+       temperature-sensor@4f {
+               compatible = "ti,tmp75c";
+               reg = <0x4f>;
+       };
+
+       eeprom@57 {
+               compatible = "st,24c02", "atmel,24c02";
+               reg = <0x57>;
+       };
+};
+
+/* Apalis MMC1 */
+&usdhc2 {
+       pinctrl-0 = <&pinctrl_usdhc2_4bit>, <&pinctrl_mmc1_cd>;
+       pinctrl-1 = <&pinctrl_usdhc2_4bit_100mhz>, <&pinctrl_mmc1_cd>;
+       pinctrl-2 = <&pinctrl_usdhc2_4bit_200mhz>, <&pinctrl_mmc1_cd>;
+       pinctrl-3 = <&pinctrl_usdhc2_4bit_sleep>, <&pinctrl_mmc1_cd_sleep>;
+       bus-width = <4>;
+       vmmc-supply = <&reg_3v3_mmc>;
+       status = "okay";
+};
+
+/* Apalis SD1 */
+&usdhc3 {
+       vmmc-supply = <&reg_3v3_sd>;
+       status = "okay";
+};
+
+&iomuxc {
+
+       pinctrl_enable_3v3_mmc: enable3v3mmcgrp {
+               fsl,pins = <IMX8QM_USDHC1_DATA4_LSIO_GPIO5_IO19 0x00000021>; /* MXM3_148 */
+       };
+
+       pinctrl_enable_3v3_sd: enable3v3sdgrp {
+               fsl,pins = <IMX8QM_USDHC1_DATA5_LSIO_GPIO5_IO20 0x00000021>; /* MXM3_152 */
+       };
+
+       pinctrl_enable_can1_power: enablecan1powergrp {
+               fsl,pins = <IMX8QM_USDHC1_DATA7_LSIO_GPIO5_IO22 0x00000021>; /* MXM3_158 */
+       };
+
+       pinctrl_enable_can2_power: enablecan2powergrp {
+               fsl,pins = <IMX8QM_USDHC1_DATA6_LSIO_GPIO5_IO21 0x00000021>; /* MXM3_156 */
+       };
+};
index 685d4294f4f17d9b9d10abf0b2d7fe7a76c1bd90..deecb96a159610a2582a81e915d6cc2bbf24b139 100644 (file)
        status = "okay";
 };
 
-/* Apalis CAN1 */
-&flexcan1 {
-       status = "okay";
-};
-
-/* Apalis CAN2 */
-&flexcan2 {
-       status = "okay";
-};
-
-/* TODO: GPU */
-
 /* Apalis I2C1 */
 &i2c2 {
        status = "okay";
 };
 
 /* TODO: Apalis USBH4 SuperSpeed */
-
-/* Apalis MMC1 */
-&usdhc2 {
-       status = "okay";
-};
-
-/* Apalis SD1 */
-&usdhc3 {
-       status = "okay";
-};
diff --git a/arch/arm64/boot/dts/freescale/imx8qm-apalis-eval-v1.2.dts b/arch/arm64/boot/dts/freescale/imx8qm-apalis-eval-v1.2.dts
new file mode 100644 (file)
index 0000000..8466a82
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2024 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8qm-apalis.dtsi"
+#include "imx8-apalis-eval-v1.2.dtsi"
+
+/ {
+       model = "Toradex Apalis iMX8QM/QP on Apalis Evaluation Board V1.2";
+       compatible = "toradex,apalis-imx8-eval-v1.2",
+                    "toradex,apalis-imx8",
+                    "fsl,imx8qm";
+};
index 5ab0921eb599bcff9b1b78716cf6929b540cb834..b0ebf6d05450b4af1b39eecd68ea7a7189ffc05f 100644 (file)
@@ -6,7 +6,7 @@
 /dts-v1/;
 
 #include "imx8qm-apalis.dtsi"
-#include "imx8-apalis-eval.dtsi"
+#include "imx8-apalis-eval-v1.1.dtsi"
 
 / {
        model = "Toradex Apalis iMX8QM/QP on Apalis Evaluation Board";
diff --git a/arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-eval-v1.2.dts b/arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-eval-v1.2.dts
new file mode 100644 (file)
index 0000000..92c0ae0
--- /dev/null
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2024 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8qm-apalis-v1.1.dtsi"
+#include "imx8-apalis-eval-v1.2.dtsi"
+
+/ {
+       model = "Toradex Apalis iMX8QM V1.1 on Apalis Evaluation Board V1.2";
+       compatible = "toradex,apalis-imx8-v1.1-eval-v1.2",
+                    "toradex,apalis-imx8-v1.1",
+                    "fsl,imx8qm";
+};
+
+/* Apalis MMC1 */
+&usdhc2 {
+       /delete-property/ no-1-8-v;
+};
+
+/* Apalis SD1 */
+&usdhc3 {
+       /delete-property/ no-1-8-v;
+};
index c8ff75831556d1439a8e52d98a5807c21c2ba24f..c998e542f93c064a7283fa4502158f98ff2f3645 100644 (file)
@@ -6,7 +6,7 @@
 /dts-v1/;
 
 #include "imx8qm-apalis-v1.1.dtsi"
-#include "imx8-apalis-eval.dtsi"
+#include "imx8-apalis-eval-v1.1.dtsi"
 
 / {
        model = "Toradex Apalis iMX8QM V1.1 on Apalis Evaluation Board";