]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ARM: dts: imx6ul: support Engicam MicroGEA RMM board
authorDario Binacchi <dario.binacchi@amarulasolutions.com>
Fri, 20 Jun 2025 08:27:11 +0000 (10:27 +0200)
committerShawn Guo <shawnguo@kernel.org>
Wed, 2 Jul 2025 10:01:37 +0000 (18:01 +0800)
Support Engicam MicroGEA RMM board with:

- 256 Mbytes NAND Flash
- 512 Mbytes DRAM DDR2
- CAN
- LEDs
- Micro SD card connector
- USB 2.0 high-speed/full-speed
- Ethernet MAC

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm/boot/dts/nxp/imx/Makefile
arch/arm/boot/dts/nxp/imx/imx6ull-engicam-microgea-rmm.dts [new file with mode: 0644]

index 57f18519821714637dd462df6b6b1a355e7b7347..32dfd69b8d8bf849ae8dac1eaada5bace3e12bf3 100644 (file)
@@ -357,6 +357,7 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
        imx6ull-dhcom-picoitx.dtb \
        imx6ull-dhcor-maveo-box.dtb \
        imx6ull-engicam-microgea-bmm.dtb \
+       imx6ull-engicam-microgea-rmm.dtb \
        imx6ull-jozacp.dtb \
        imx6ull-kontron-bl.dtb \
        imx6ull-myir-mys-6ulx-eval.dtb \
diff --git a/arch/arm/boot/dts/nxp/imx/imx6ull-engicam-microgea-rmm.dts b/arch/arm/boot/dts/nxp/imx/imx6ull-engicam-microgea-rmm.dts
new file mode 100644 (file)
index 0000000..5d1cc8a
--- /dev/null
@@ -0,0 +1,360 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2025 Amarula Solutions, Dario Binacchi <dario.binacchi@amarulasolutions.com>
+ * Copyright (C) 2025 Engicam srl
+ */
+
+/dts-v1/;
+
+#include "imx6ull-engicam-microgea.dtsi"
+
+/ {
+       compatible = "engicam,microgea-imx6ull-rmm",
+                    "engicam,microgea-imx6ull", "fsl,imx6ull";
+       model = "Engicam MicroGEA i.MX6ULL BMM Board";
+
+       backlight {
+               compatible = "pwm-backlight";
+               brightness-levels = <0 100>;
+               num-interpolated-steps = <100>;
+               default-brightness-level = <85>;
+               pwms = <&pwm8 0 100000 0>;
+       };
+
+       buzzer {
+               compatible = "pwm-beeper";
+               pwms = <&pwm4 0 1000000 0>;
+       };
+
+       reg_1v8: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       reg_3v3: regulator-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       reg_usb1_vbus: regulator-usb1-vbus {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_usb1>;
+               regulator-name = "usb1_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio5 0 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_usb2_vbus: regulator-usb2-vbus {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_usb2>;
+               regulator-name = "usbotg_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio5 3 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_ext_pwr: regulator-ext-pwr {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_ext_pwr>;
+               regulator-name = "ext-pwr";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio5 6 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "imx6ull-microgea-rmm-sgtl5000";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,bitclock-master = <&codec_dai>;
+               simple-audio-card,frame-master = <&codec_dai>;
+               simple-audio-card,widgets =
+                       "Microphone", "Mic Jack",
+                       "Headphone", "Headphone Jack";
+               simple-audio-card,routing =
+                       "MIC_IN", "Mic Jack",
+                       "Mic Jack", "Mic Bias",
+                       "Headphone Jack", "HP_OUT";
+
+               cpu_dai: simple-audio-card,cpu {
+                       sound-dai = <&sai2>;
+               };
+
+               codec_dai: simple-audio-card,codec {
+                       sound-dai = <&codec>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_leds>;
+
+               led-0 {
+                       gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+                       status = "okay";
+               };
+
+               led-1 {
+                       gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+                       status = "okay";
+               };
+       };
+};
+
+&can1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_can>;
+       status = "okay";
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       clock-frequency = <100000>;
+       status = "okay";
+
+       touchscreen: touchscreen@38 {
+               compatible ="edt,edt-ft5306";
+               reg = <0x38>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_touchscreen>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&gpio2 14 GPIO_ACTIVE_LOW>;
+               report-rate-hz = <6>;
+               /* settings valid only for Hycon touchscreen */
+               touchscreen-size-x = <1280>;
+               touchscreen-size-y = <800>;
+       };
+};
+
+&i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       clock-frequency = <100000>;
+       status = "okay";
+
+       codec: audio-codec@a {
+               compatible = "fsl,sgtl5000";
+               reg = <0x0a>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_mclk>;
+               #sound-dai-cells = <0>;
+               clocks = <&clks IMX6UL_CLK_CKO>;
+               assigned-clocks = <&clks IMX6UL_CLK_CKO2_SEL>,
+                                 <&clks IMX6UL_CLK_CKO2_PODF>,
+                                 <&clks IMX6UL_CLK_CKO2>,
+                                 <&clks IMX6UL_CLK_CKO>;
+               assigned-clock-parents = <&clks IMX6UL_CLK_OSC>,
+                                        <&clks IMX6UL_CLK_CKO2_SEL>,
+                                        <&clks IMX6UL_CLK_CKO2_PODF>,
+                                        <&clks IMX6UL_CLK_CKO2>;
+               VDDA-supply = <&reg_3v3>;
+               VDDIO-supply = <&reg_3v3>;
+               VDDD-supply = <&reg_1v8>;
+       };
+};
+
+&pwm4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm4>;
+       status = "okay";
+};
+
+&pwm8 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm8>;
+       status = "okay";
+};
+
+&sai2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai2>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart4>;
+       status = "okay";
+};
+
+&usbotg1 {
+       dr_mode = "host";
+       vbus-supply = <&reg_usb1_vbus>;
+       disable-over-current;
+       status = "okay";
+};
+
+&usbotg2 {
+       dr_mode = "host";
+       vbus-supply = <&reg_usb2_vbus>;
+       disable-over-current;
+       status = "okay";
+};
+
+/* MicroSD */
+&usdhc1 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+       vmmc-supply = <&reg_3v3>;
+       bus-width = <4>;
+       keep-power-in-suspend;
+       non-removable;
+       wakeup-source;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_can: can-grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX      0x1b020
+                       MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX      0x1b020
+               >;
+       };
+
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX6UL_PAD_CSI_PIXCLK__I2C1_SCL          0x4001b8b0
+                       MX6UL_PAD_CSI_MCLK__I2C1_SDA            0x4001b8b0
+               >;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO00__I2C2_SCL          0x4001b8b0
+                       MX6UL_PAD_GPIO1_IO01__I2C2_SDA          0x4001b8b0
+               >;
+       };
+
+       pinctrl_leds: ledsgrp {
+               fsl,pins = <
+                       MX6UL_PAD_ENET2_RX_EN__GPIO2_IO10       0x130b0
+                       MX6UL_PAD_ENET2_TX_DATA0__GPIO2_IO11    0x130b0
+               >;
+       };
+
+       pinctrl_mclk: mclkgrp {
+               fsl,pins = <
+                       MX6UL_PAD_JTAG_TMS__CCM_CLKO1           0x13009
+               >;
+       };
+
+       pinctrl_pwm4: pwm4grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO05__PWM4_OUT          0x110b0
+               >;
+       };
+
+       pinctrl_pwm8: pwm8grp {
+               fsl,pins = <
+                       MX6UL_PAD_ENET1_RX_ER__PWM8_OUT         0x110b0
+               >;
+       };
+
+       pinctrl_sai2: sai2grp {
+               fsl,pins = <
+                       MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA        0x130b0
+                       MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK        0x17088
+                       MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC        0x17088
+                       MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA     0x120b0
+               >;
+       };
+
+       pinctrl_touchscreen: touchgrp {
+               fsl,pins = <
+                       MX6UL_PAD_ENET2_TX_CLK__GPIO2_IO14      0x17059
+                       MX6UL_PAD_ENET2_RX_DATA0__GPIO2_IO08    0x17059
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX   0x1b0b1
+               >;
+       };
+
+       pinctrl_uart4: uart4grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART4_TX_DATA__UART4_DCE_TX   0x0b0b0
+                       MX6UL_PAD_UART4_RX_DATA__UART4_DCE_RX   0x0b0b0
+               >;
+       };
+
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x17059
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x10059
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0       0x17059
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1       0x17059
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2       0x17059
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3       0x17059
+               >;
+       };
+
+       pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x170b9
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x100b9
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0       0x170b9
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1       0x170b9
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2       0x170b9
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3       0x170b9
+               >;
+       };
+
+       pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x170f9
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x100f9
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0       0x170f9
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1       0x170f9
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2       0x170f9
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3       0x170f9
+               >;
+       };
+};
+
+&iomuxc_snvs {
+       pinctrl_reg_usb1: regusb1grp {
+               fsl,pins = <
+                       MX6ULL_PAD_SNVS_TAMPER0__GPIO5_IO00     0x17059
+               >;
+       };
+
+       pinctrl_reg_usb2: regusb2grp {
+               fsl,pins = <
+                       MX6ULL_PAD_SNVS_TAMPER3__GPIO5_IO03     0x17059
+               >;
+       };
+
+       pinctrl_reg_ext_pwr: reg-ext-pwrgrp {
+               fsl,pins = <
+                       MX6ULL_PAD_SNVS_TAMPER6__GPIO5_IO06     0x17059
+               >;
+       };
+};