arm64: dts: freescale: add apalis imx8 aka quadmax carrier board support
authorMarcel Ziswiler <marcel.ziswiler@toradex.com>
Wed, 8 Feb 2023 06:56:41 +0000 (07:56 +0100)
committerShawn Guo <shawnguo@kernel.org>
Tue, 7 Mar 2023 03:15:08 +0000 (11:15 +0800)
The previous patch added the device tree to support Toradex Apalis
iMX8 [1] aka QuadMax a computer on module which can be used on
different carrier boards which this patch introduces.

The module consists of an NXP i.MX 8 family SoC (either i.MX 8QuadMax or
8QuadPlus), two PF8100 PMICs, a KSZ9131 Gigabit Ethernet PHY, 2, 4 or 8
GB of LPDDR4 RAM, an eMMC, an SGTL5000 analogue audio codec, an USB3503A
USB HSIC hub, an optional I2C EEPROM plus an optional Bluetooth/Wi-Fi
module.

Anything that is not self-contained on the module is disabled by
default.

The carrier board device trees contained in this patch include the
module's device tree and enable the supported peripherals of the
carrier board.

Some level of display functionality just landed upstream but requires
further integration/testing on our side. Therefore, currently only
basic console UART, eMMC and Ethernet functionality work fine.

As there is no i.MX 8QuadPlus device tree upstream those have been
dropped. However, apart from an error message during boot about it
failing to bring up the second Cortex-A72 core this boots fine on
QuadPlus' as well.

[1] https://www.toradex.com/computer-on-modules/apalis-arm-family/nxp-imx-8

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/Makefile
arch/arm64/boot/dts/freescale/imx8-apalis-eval.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8-apalis-ixora-v1.1.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8-apalis-ixora-v1.2.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8qm-apalis-eval.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8qm-apalis-ixora-v1.1.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-eval.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-ixora-v1.1.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-ixora-v1.2.dts [new file with mode: 0644]

index 198fff3..836dcc5 100644 (file)
@@ -122,6 +122,11 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mq-pico-pi.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-thor96.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-zii-ultra-rmb3.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-zii-ultra-zest.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8qm-apalis-eval.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-ixora-v1.1.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8qm-apalis-v1.1-ixora-v1.2.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8qm-mek.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8qxp-ai_ml.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8qxp-colibri-eval-v3.dtb
diff --git a/arch/arm64/boot/dts/freescale/imx8-apalis-eval.dtsi b/arch/arm64/boot/dts/freescale/imx8-apalis-eval.dtsi
new file mode 100644 (file)
index 0000000..685d429
--- /dev/null
@@ -0,0 +1,144 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/ {
+       aliases {
+               rtc0 = &rtc_i2c;
+               rtc1 = &rtc;
+       };
+
+       reg_usb_host_vbus: regulator-usb-host-vbus {
+               regulator-name = "VCC USBH2(ABCD) / USBH(3|4)";
+       };
+};
+
+&adc0 {
+       status = "okay";
+};
+
+&adc1 {
+       status = "okay";
+};
+
+/* TODO: Audio Mixer */
+
+/* TODO: Asynchronous Sample Rate Converter (ASRC) */
+
+/* TODO: Display Controller */
+
+/* TODO: DPU */
+
+/* Apalis ETH1 */
+&fec1 {
+       status = "okay";
+};
+
+/* Apalis CAN1 */
+&flexcan1 {
+       status = "okay";
+};
+
+/* Apalis CAN2 */
+&flexcan2 {
+       status = "okay";
+};
+
+/* TODO: GPU */
+
+/* Apalis I2C1 */
+&i2c2 {
+       status = "okay";
+
+       /* M41T0M6 real time clock on carrier board */
+       rtc_i2c: rtc@68 {
+               status = "okay";
+       };
+};
+
+/* Apalis I2C3 (CAM) */
+&i2c3 {
+       status = "okay";
+};
+
+/* Apalis SPI1 */
+&lpspi0 {
+       status = "okay";
+};
+
+/* Apalis SPI2 */
+&lpspi2 {
+       status = "okay";
+};
+
+/* Apalis UART3 */
+&lpuart0 {
+       status = "okay";
+};
+
+/* Apalis UART1 */
+&lpuart1 {
+       status = "okay";
+};
+
+/* Apalis UART4 */
+&lpuart2 {
+       status = "okay";
+};
+
+/* Apalis UART2 */
+&lpuart3 {
+       status = "okay";
+};
+
+/* Apalis PWM3, MXM3 pin 6 */
+&lsio_pwm0 {
+       status = "okay";
+};
+
+/* Apalis PWM4, MXM3 pin 8 */
+&lsio_pwm1 {
+       status = "okay";
+};
+
+/* Apalis PWM1, MXM3 pin 2 */
+&lsio_pwm2 {
+       status = "okay";
+};
+
+/* Apalis PWM2, MXM3 pin 4 */
+&lsio_pwm3 {
+       status = "okay";
+};
+
+/* TODO: Apalis PCIE1 */
+
+/* TODO: Apalis BKL1_PWM */
+
+/* TODO: Apalis DAP1 */
+
+/* TODO: Apalis Analogue Audio */
+
+/* TODO: Apalis SATA1 */
+
+/* TODO: Apalis SPDIF1 */
+
+/* TODO: Apalis USBH2, Apalis USBH3 and on-module Wi-Fi via on-module HSIC Hub */
+
+/* Apalis USBO1 */
+&usbotg1 {
+       status = "okay";
+};
+
+/* TODO: Apalis USBH4 SuperSpeed */
+
+/* Apalis MMC1 */
+&usdhc2 {
+       status = "okay";
+};
+
+/* Apalis SD1 */
+&usdhc3 {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8-apalis-ixora-v1.1.dtsi b/arch/arm64/boot/dts/freescale/imx8-apalis-ixora-v1.1.dtsi
new file mode 100644 (file)
index 0000000..c6d51f1
--- /dev/null
@@ -0,0 +1,220 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+#include <dt-bindings/leds/common.h>
+
+/ {
+       aliases {
+               rtc0 = &rtc_i2c;
+               rtc1 = &rtc;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_leds_ixora>;
+
+               /* LED_4_GREEN / MXM3_188 */
+               led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       default-state = "off";
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&lsio_gpio5 27 GPIO_ACTIVE_HIGH>;
+               };
+
+               /* LED_4_RED / MXM3_178 */
+               led-2 {
+                       color = <LED_COLOR_ID_RED>;
+                       default-state = "off";
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&lsio_gpio5 29 GPIO_ACTIVE_HIGH>;
+               };
+
+               /* LED_5_GREEN / MXM3_152 */
+               led-3 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       default-state = "off";
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&lsio_gpio5 20 GPIO_ACTIVE_HIGH>;
+               };
+
+               /* LED_5_RED / MXM3_156 */
+               led-4 {
+                       color = <LED_COLOR_ID_RED>;
+                       default-state = "off";
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&lsio_gpio5 21 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       reg_usb_host_vbus: regulator-usb-host-vbus {
+               regulator-name = "VCC_USBH(2|4)";
+       };
+};
+
+&adc0 {
+       status = "okay";
+};
+
+&adc1 {
+       status = "okay";
+};
+
+/* TODO: Audio Mixer */
+
+/* TODO: Asynchronous Sample Rate Converter (ASRC) */
+
+/* TODO: Display Controller */
+
+/* TODO: DPU */
+
+/* Apalis ETH1 */
+&fec1 {
+       status = "okay";
+};
+
+/* Apalis CAN1 */
+&flexcan1 {
+       status = "okay";
+};
+
+/* Apalis CAN2 */
+&flexcan2 {
+       status = "okay";
+};
+
+/* TODO: GPU */
+
+/* Apalis I2C1 */
+&i2c2 {
+       status = "okay";
+
+       /* M41T0M6 real time clock on carrier board */
+       rtc_i2c: rtc@68 {
+               status = "okay";
+       };
+};
+
+/* Apalis I2C3 (CAM) */
+&i2c3 {
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl-0 = <&pinctrl_cam1_gpios>, <&pinctrl_dap1_gpios>,
+                   <&pinctrl_esai0_gpios>, <&pinctrl_fec2_gpios>,
+                   <&pinctrl_gpio3>, <&pinctrl_gpio4>, <&pinctrl_gpio_usbh_oc_n>,
+                   <&pinctrl_lpuart1ctrl>, <&pinctrl_lvds0_i2c0_gpio>,
+                   <&pinctrl_lvds1_i2c0_gpios>, <&pinctrl_mipi_dsi_0_1_en>,
+                   <&pinctrl_mipi_dsi1_gpios>, <&pinctrl_mlb_gpios>,
+                   <&pinctrl_qspi1a_gpios>, <&pinctrl_sata1_act>,
+                   <&pinctrl_sim0_gpios>, <&pinctrl_uart24_forceoff>,
+                   <&pinctrl_usdhc1_gpios>;
+
+       pinctrl_leds_ixora: ledsixoragrp {
+               fsl,pins = <IMX8QM_USDHC2_DATA1_LSIO_GPIO5_IO27 0x06000061>, /* LED_4_GREEN */
+                          <IMX8QM_USDHC2_DATA3_LSIO_GPIO5_IO29 0x06000061>, /* LED_4_RED */
+                          <IMX8QM_USDHC1_DATA5_LSIO_GPIO5_IO20 0x06000061>, /* LED_5_GREEN */
+                          <IMX8QM_USDHC1_DATA6_LSIO_GPIO5_IO21 0x06000061>; /* LED_5_RED */
+       };
+
+       pinctrl_uart24_forceoff: uart24forceoffgrp {
+               fsl,pins = <IMX8QM_USDHC2_CMD_LSIO_GPIO5_IO25           0x00000021>;
+       };
+};
+
+/* Apalis SPI1 */
+&lpspi0 {
+       status = "okay";
+};
+
+/* Apalis SPI2 */
+&lpspi2 {
+       status = "okay";
+};
+
+/* Apalis UART3 */
+&lpuart0 {
+       status = "okay";
+};
+
+/* Apalis UART1 */
+&lpuart1 {
+       status = "okay";
+};
+
+/* Apalis UART4 */
+&lpuart2 {
+       status = "okay";
+};
+
+/* Apalis UART2 */
+&lpuart3 {
+       status = "okay";
+};
+
+&lsio_gpio5 {
+       gpio-line-names = "gpio5-00", "gpio5-01", "gpio5-02", "gpio5-03",
+                         "gpio5-04", "gpio5-05", "gpio5-06", "gpio5-07",
+                         "gpio5-08", "gpio5-09", "gpio5-10", "gpio5-11",
+                         "gpio5-12", "gpio5-13", "gpio5-14", "gpio5-15",
+                         "gpio5-16", "gpio5-17", "gpio5-18", "gpio5-19",
+                         "LED-5-GREEN", "LED-5-RED", "gpio5-22", "gpio5-23",
+                         "gpio5-24", "UART24-FORCEOFF", "gpio5-26",
+                         "LED-4-GREEN", "gpio5-28", "LED-4-RED", "gpio5-30",
+                         "gpio5-31";
+       ngpios = <32>;
+};
+
+/* Apalis PWM3, MXM3 pin 6 */
+&lsio_pwm0 {
+       status = "okay";
+};
+
+/* Apalis PWM4, MXM3 pin 8 */
+&lsio_pwm1 {
+       status = "okay";
+};
+
+/* Apalis PWM1, MXM3 pin 2 */
+&lsio_pwm2 {
+       status = "okay";
+};
+
+/* Apalis PWM2, MXM3 pin 4 */
+&lsio_pwm3 {
+       status = "okay";
+};
+
+/* TODO: Apalis PCIE1 */
+
+/* TODO: Apalis BKL1_PWM */
+
+/* TODO: Apalis DAP1 */
+
+/* TODO: Apalis Analogue Audio */
+
+/* TODO: Apalis SATA1 */
+
+/* TODO: Apalis SPDIF1 */
+
+/* TODO: Apalis USBH2, Apalis USBH3 and on-module Wi-Fi via on-module HSIC Hub */
+
+/* Apalis USBO1 */
+&usbotg1 {
+       status = "okay";
+};
+
+/* TODO: Apalis USBH4 SuperSpeed */
+
+/* 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>;
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8-apalis-ixora-v1.2.dtsi b/arch/arm64/boot/dts/freescale/imx8-apalis-ixora-v1.2.dtsi
new file mode 100644 (file)
index 0000000..40067ab
--- /dev/null
@@ -0,0 +1,270 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+#include <dt-bindings/leds/common.h>
+
+/ {
+       aliases {
+               rtc0 = &rtc_i2c;
+               rtc1 = &rtc;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_leds_ixora>;
+
+               /* LED_4_GREEN / MXM3_188 */
+               led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       default-state = "off";
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&lsio_gpio5 27 GPIO_ACTIVE_HIGH>;
+               };
+
+               /* LED_4_RED / MXM3_178 */
+               led-2 {
+                       color = <LED_COLOR_ID_RED>;
+                       default-state = "off";
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&lsio_gpio5 29 GPIO_ACTIVE_HIGH>;
+               };
+
+               /* LED_5_GREEN / MXM3_152 */
+               led-3 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       default-state = "off";
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&lsio_gpio5 20 GPIO_ACTIVE_HIGH>;
+               };
+
+               /* LED_5_RED / MXM3_156 */
+               led-4 {
+                       color = <LED_COLOR_ID_RED>;
+                       default-state = "off";
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&lsio_gpio5 21 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       reg_3v3_vmmc: regulator-3v3-vmmc {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_enable_3v3_vmmc>;
+               /* MMC1_PWR_CTRL */
+               gpio = <&lsio_gpio5 19 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "3v3_vmmc";
+       };
+
+       reg_can1_supply: regulator-can1-supply {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_enable_can1_power>;
+               gpio = <&lsio_gpio5 22 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-name = "can1_supply";
+       };
+
+       reg_can2_supply: regulator-can2-supply {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_sata1_act>;
+               gpio = <&lsio_gpio2 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-name = "can2_supply";
+       };
+
+       reg_usb_host_vbus: regulator-usb-host-vbus {
+               regulator-name = "VCC_USBH(2|4)";
+       };
+};
+
+&adc0 {
+       status = "okay";
+};
+
+&adc1 {
+       status = "okay";
+};
+
+/* TODO: Audio Mixer */
+
+/* TODO: Asynchronous Sample Rate Converter (ASRC) */
+
+/* TODO: Display Controller */
+
+/* TODO: DPU */
+
+/* Apalis ETH1 */
+&fec1 {
+       status = "okay";
+};
+
+/* Apalis CAN1 */
+&flexcan1 {
+       xceiver-supply = <&reg_can1_supply>;
+       status = "okay";
+};
+
+/* Apalis CAN2 */
+&flexcan2 {
+       xceiver-supply = <&reg_can2_supply>;
+       status = "okay";
+};
+
+/* TODO: GPU */
+
+/* Apalis I2C1 */
+&i2c2 {
+       status = "okay";
+
+       eeprom: eeprom@50 {
+               compatible = "atmel,24c02";
+               reg = <0x50>;
+               pagesize = <16>;
+       };
+
+       /* M41T0M6 real time clock on carrier board */
+       rtc_i2c: rtc@68 {
+               status = "okay";
+       };
+};
+
+/* Apalis I2C3 (CAM) */
+&i2c3 {
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl-0 = <&pinctrl_cam1_gpios>, <&pinctrl_dap1_gpios>,
+                   <&pinctrl_esai0_gpios>, <&pinctrl_fec2_gpios>,
+                   <&pinctrl_gpio3>, <&pinctrl_gpio4>, <&pinctrl_gpio_usbh_oc_n>,
+                   <&pinctrl_lpuart1ctrl>, <&pinctrl_lvds0_i2c0_gpio>,
+                   <&pinctrl_lvds1_i2c0_gpios>, <&pinctrl_mipi_dsi_0_1_en>,
+                   <&pinctrl_mipi_dsi1_gpios>, <&pinctrl_mlb_gpios>,
+                   <&pinctrl_qspi1a_gpios>, <&pinctrl_sim0_gpios>,
+                   <&pinctrl_uart24_forceoff>, <&pinctrl_usdhc1_gpios>;
+
+       /* PMIC MMC1 power-switch */
+       pinctrl_enable_3v3_vmmc: enable3v3vmmcgrp {
+               fsl,pins = <IMX8QM_USDHC1_DATA4_LSIO_GPIO5_IO19 0x00000021>; /* MXM3_148, PMIC */
+       };
+
+       /* FlexCAN PMIC */
+       pinctrl_enable_can1_power: enablecan1powergrp {
+               fsl,pins = <IMX8QM_USDHC1_DATA7_LSIO_GPIO5_IO22 0x00000021>; /* MXM3_158, PMIC */
+       };
+
+       pinctrl_leds_ixora: ledsixoragrp {
+               fsl,pins = <IMX8QM_USDHC2_DATA1_LSIO_GPIO5_IO27 0x06000061>, /* LED_4_GREEN */
+                          <IMX8QM_USDHC2_DATA3_LSIO_GPIO5_IO29 0x06000061>, /* LED_4_RED */
+                          <IMX8QM_USDHC1_DATA5_LSIO_GPIO5_IO20 0x06000061>, /* LED_5_GREEN */
+                          <IMX8QM_USDHC1_DATA6_LSIO_GPIO5_IO21 0x06000061>; /* LED_5_RED */
+       };
+
+       pinctrl_uart24_forceoff: uart24forceoffgrp {
+               fsl,pins = <IMX8QM_USDHC2_CMD_LSIO_GPIO5_IO25           0x00000021>;
+       };
+};
+
+/* Apalis SPI1 */
+&lpspi0 {
+       status = "okay";
+};
+
+/* Apalis SPI2 */
+&lpspi2 {
+       status = "okay";
+};
+
+/* Apalis UART3 */
+&lpuart0 {
+       status = "okay";
+};
+
+/* Apalis UART1 */
+&lpuart1 {
+       status = "okay";
+};
+
+/* Apalis UART4 */
+&lpuart2 {
+       status = "okay";
+};
+
+/* Apalis UART2 */
+&lpuart3 {
+       status = "okay";
+};
+
+&lsio_gpio5 {
+       gpio-line-names = "gpio5-00", "gpio5-01", "gpio5-02", "gpio5-03",
+                         "gpio5-04", "gpio5-05", "gpio5-06", "gpio5-07",
+                         "gpio5-08", "gpio5-09", "gpio5-10", "gpio5-11",
+                         "gpio5-12", "gpio5-13", "gpio5-14", "gpio5-15",
+                         "gpio5-16", "gpio5-17", "gpio5-18", "gpio5-19",
+                         "LED-5-GREEN", "LED-5-RED", "gpio5-22", "gpio5-23",
+                         "gpio5-24", "UART24-FORCEOFF", "gpio5-26",
+                         "LED-4-GREEN", "gpio5-28", "LED-4-RED", "gpio5-30",
+                         "gpio5-31";
+       ngpios = <32>;
+};
+
+/* Apalis PWM3, MXM3 pin 6 */
+&lsio_pwm0 {
+       status = "okay";
+};
+
+/* Apalis PWM4, MXM3 pin 8 */
+&lsio_pwm1 {
+       status = "okay";
+};
+
+/* Apalis PWM1, MXM3 pin 2 */
+&lsio_pwm2 {
+       status = "okay";
+};
+
+/* Apalis PWM2, MXM3 pin 4 */
+&lsio_pwm3 {
+       status = "okay";
+};
+
+/* TODO: Apalis PCIE1 */
+
+/* TODO: Apalis BKL1_PWM */
+
+/* TODO: Apalis DAP1 */
+
+/* TODO: Apalis Analogue Audio */
+
+/* TODO: Apalis SATA1 */
+
+/* TODO: Apalis SPDIF1 */
+
+/* TODO: Apalis USBH2, Apalis USBH3 and on-module Wi-Fi via on-module HSIC Hub */
+
+/* Apalis USBO1 */
+&usbotg1 {
+       status = "okay";
+};
+
+/* TODO: Apalis USBH4 SuperSpeed */
+
+/* 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>;
+       cap-power-off-card;
+       /delete-property/ no-1-8-v;
+       vmmc-supply = <&reg_3v3_vmmc>;
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8qm-apalis-eval.dts b/arch/arm64/boot/dts/freescale/imx8qm-apalis-eval.dts
new file mode 100644 (file)
index 0000000..5ab0921
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8qm-apalis.dtsi"
+#include "imx8-apalis-eval.dtsi"
+
+/ {
+       model = "Toradex Apalis iMX8QM/QP on Apalis Evaluation Board";
+       compatible = "toradex,apalis-imx8-eval",
+                    "toradex,apalis-imx8",
+                    "fsl,imx8qm";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8qm-apalis-ixora-v1.1.dts b/arch/arm64/boot/dts/freescale/imx8qm-apalis-ixora-v1.1.dts
new file mode 100644 (file)
index 0000000..68ce58d
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8qm-apalis.dtsi"
+#include "imx8-apalis-ixora-v1.1.dtsi"
+
+/ {
+       model = "Toradex Apalis iMX8QM/QP on Apalis Ixora V1.1 Carrier Board";
+       compatible = "toradex,apalis-imx8-ixora-v1.1",
+                    "toradex,apalis-imx8",
+                    "fsl,imx8qm";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-eval.dts b/arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-eval.dts
new file mode 100644 (file)
index 0000000..c8ff758
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8qm-apalis-v1.1.dtsi"
+#include "imx8-apalis-eval.dtsi"
+
+/ {
+       model = "Toradex Apalis iMX8QM V1.1 on Apalis Evaluation Board";
+       compatible = "toradex,apalis-imx8-v1.1-eval",
+                    "toradex,apalis-imx8-v1.1",
+                    "fsl,imx8qm";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-ixora-v1.1.dts b/arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-ixora-v1.1.dts
new file mode 100644 (file)
index 0000000..ad7f644
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8qm-apalis-v1.1.dtsi"
+#include "imx8-apalis-ixora-v1.1.dtsi"
+
+/ {
+       model = "Toradex Apalis iMX8QM V1.1 on Apalis Ixora V1.1 Carrier Board";
+       compatible = "toradex,apalis-imx8-v1.1-ixora-v1.1",
+                    "toradex,apalis-imx8-v1.1",
+                    "fsl,imx8qm";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-ixora-v1.2.dts b/arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-ixora-v1.2.dts
new file mode 100644 (file)
index 0000000..3b2e8c9
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8qm-apalis-v1.1.dtsi"
+#include "imx8-apalis-ixora-v1.2.dtsi"
+
+/ {
+       model = "Toradex Apalis iMX8QM V1.1 on Apalis Ixora V1.2 Carrier Board";
+       compatible = "toradex,apalis-imx8-v1.1-ixora-v1.2",
+                    "toradex,apalis-imx8-v1.1",
+                    "fsl,imx8qm";
+};