arm64: dts: imx8mp: Add support for DH electronics i.MX8M Plus DHCOM PicoITX
authorMarek Vasut <marex@denx.de>
Fri, 18 Oct 2024 02:54:14 +0000 (10:54 +0800)
committerShawn Guo <shawnguo@kernel.org>
Fri, 18 Oct 2024 02:54:14 +0000 (10:54 +0800)
Add support for DH electronics i.MX8M Plus DHCOM SoM on PicoITX carrier board.
This system is populated with serial console, EQoS ethernet, eMMC, SD, SPI NOR,
LEDs and USB 3.0 host used in USB 2.0 mode on PicoITX.

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/Makefile
arch/arm64/boot/dts/freescale/imx8mp-dhcom-picoitx.dts [new file with mode: 0644]

index 1acafd839a23f47bce5a71278d57505f45569dcb..13d6ba52bf3c5c8ddaa592f0ed6b269d4007c3dd 100644 (file)
@@ -172,6 +172,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-debix-som-a-bmb-08.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-drc02.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk2.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk3.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-picoitx.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-iota2-lumpy.dtb
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-dhcom-picoitx.dts b/arch/arm64/boot/dts/freescale/imx8mp-dhcom-picoitx.dts
new file mode 100644 (file)
index 0000000..703cf0f
--- /dev/null
@@ -0,0 +1,176 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2023-2024 Marek Vasut <marex@denx.de>
+ *
+ * DHCOM iMX8MP variant:
+ * DHCM-iMX8ML8-C160-R204-F1638-SPI16-E-SD-RTC-T-RGB-I-01D2
+ * DHCOM PCB number: 660-200 or newer
+ * PicoITX PCB number: 487-600 or newer
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+#include "imx8mp-dhcom-som.dtsi"
+
+/ {
+       model = "DH electronics i.MX8M Plus DHCOM PicoITX";
+       compatible = "dh,imx8mp-dhcom-picoitx", "dh,imx8mp-dhcom-som",
+                    "fsl,imx8mp";
+
+       chosen {
+               stdout-path = &uart1;
+       };
+
+       led {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       color = <LED_COLOR_ID_YELLOW>;
+                       default-state = "off";
+                       function = LED_FUNCTION_INDICATOR;
+                       gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; /* GPIO I */
+                       pinctrl-0 = <&pinctrl_dhcom_i>;
+                       pinctrl-names = "default";
+               };
+       };
+};
+
+&eqos {        /* First ethernet */
+       pinctrl-0 = <&pinctrl_eqos_rmii>;
+       phy-handle = <&ethphy0f>;
+       phy-mode = "rmii";
+
+       assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_266M>,
+                                <&clk IMX8MP_SYS_PLL2_100M>,
+                                <&clk IMX8MP_SYS_PLL2_50M>;
+       assigned-clock-rates = <0>, <100000000>, <50000000>;
+};
+
+&ethphy0g {    /* Micrel KSZ9131RNXI */
+       status = "disabled";
+};
+
+&ethphy0f {    /* SMSC LAN8740Ai */
+       status = "okay";
+};
+
+&fec {
+       status = "disabled";
+};
+
+&flexcan1 {
+       status = "okay";
+};
+
+&gpio1 {
+       gpio-line-names =
+               "DHCOM-G", "", "", "",
+               "", "DHCOM-I", "PicoITX-HW0", "PicoITX-HW2",
+               "DHCOM-B", "DHCOM-A", "", "DHCOM-H", "", "", "", "",
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "";
+};
+
+&gpio2 {
+       gpio-line-names =
+               "", "", "", "", "", "", "", "",
+               "", "", "", "PicoITX-HW1", "", "", "", "",
+               "", "", "", "", "DHCOM-INT", "", "", "",
+               "", "", "", "", "", "", "", "";
+};
+
+&gpio4 {
+       gpio-line-names =
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "",
+               "", "", "", "SOM-HW1", "", "", "", "",
+               "", "", "", "PicoITX-Out2", "", "", "", "";
+};
+
+&gpio5 {
+       gpio-line-names =
+               "", "", "PicoITX-In2", "", "", "", "", "",
+               "", "", "", "", "", "", "", "",
+               "", "", "", "",
+               "", "", "PicoITX-In1", "PicoITX-Out1",
+               "", "", "", "", "", "", "", "";
+};
+
+/* No HS connector on this SoM variant, so no HDMI, PCIe and only USB HS. */
+&hdmi_blk_ctrl {
+       status = "disabled";
+};
+
+&hdmi_pvi {
+       status = "disabled";
+};
+
+&hdmi_tx {
+       status = "disabled";
+};
+
+&hdmi_tx_phy {
+       status = "disabled";
+};
+
+&irqsteer_hdmi {
+       status = "disabled";
+};
+
+&lcdif3 {
+       status = "disabled";
+};
+
+&pcie_phy {
+       status = "disabled";
+};
+
+&pcie {
+       status = "disabled";
+};
+
+/* No WiFi/BT chipset on this SoM variant. */
+&uart2 {
+       bluetooth {
+               status = "disabled";
+       };
+};
+
+/* USB_OTG port is not routed out on PicoITX. */
+&usb3_0 {
+       status = "disabled";
+};
+
+&usb_dwc3_0 {
+       status = "disabled";
+};
+
+&usb3_1 {
+       fsl,over-current-active-low;
+};
+
+&usb_dwc3_1 {
+       dr_mode = "host";
+       maximum-speed = "high-speed";
+};
+
+/* No WiFi/BT chipset on this SoM variant. */
+&usdhc1 {
+       status = "disabled";
+};
+
+&iomuxc {
+       /*
+        * The following DHCOM GPIOs are used on this board.
+        * Therefore, they have been removed from the list below.
+        * I: yellow led
+        */
+       pinctrl-0 = <&pinctrl_dhcom_a &pinctrl_dhcom_b &pinctrl_dhcom_c
+                    &pinctrl_dhcom_d &pinctrl_dhcom_e &pinctrl_dhcom_f
+                    &pinctrl_dhcom_g &pinctrl_dhcom_h &pinctrl_dhcom_j
+                    &pinctrl_dhcom_k &pinctrl_dhcom_l &pinctrl_dhcom_m
+                    &pinctrl_dhcom_n &pinctrl_dhcom_o &pinctrl_dhcom_p
+                    &pinctrl_dhcom_q &pinctrl_dhcom_r &pinctrl_dhcom_s
+                    &pinctrl_dhcom_int>;
+};