// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * Copyright 2025 Josua Mayer */ /dts-v1/; #include #include "imx8mm-sr-som.dtsi" / { compatible = "solidrun,imx8mm-hummingboard-ripple", "solidrun,imx8mm-sr-som", "fsl,imx8mm"; model = "SolidRun i.MX8MM HummingBoard Ripple"; aliases { rtc0 = &carrier_rtc; rtc1 = &snvs_rtc; }; hdmi-connector { compatible = "hdmi-connector"; label = "hdmi"; type = "c"; port { hdmi_connector_in: endpoint { remote-endpoint = <&adv7535_out>; }; }; }; leds { compatible = "gpio-leds"; pinctrl-0 = <&led_pins>; pinctrl-names = "default"; led-0 { color = ; default-state = "on"; gpios = <&gpio5 29 GPIO_ACTIVE_LOW>; label = "D30"; }; led-1 { color = ; default-state = "on"; gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; label = "D31"; }; led-2 { color = ; default-state = "on"; gpios = <&gpio5 8 GPIO_ACTIVE_LOW>; label = "D32"; }; led-3 { color = ; default-state = "on"; gpios = <&gpio5 7 GPIO_ACTIVE_LOW>; label = "D33"; }; led-4 { color = ; default-state = "on"; gpios = <&gpio5 6 GPIO_ACTIVE_LOW>; label = "D34"; }; }; v_1_2: regulator-1-2 { compatible = "regulator-fixed"; regulator-name = "1v2"; regulator-max-microvolt = <1200000>; regulator-min-microvolt = <1200000>; }; vmmc: regulator-mmc { compatible = "regulator-fixed"; regulator-name = "vmmc"; pinctrl-0 = <&vmmc_pins>; pinctrl-names = "default"; regulator-max-microvolt = <3300000>; regulator-min-microvolt = <3300000>; startup-delay-us = <250>; gpio = <&gpio2 19 GPIO_ACTIVE_LOW>; }; vbus1: regulator-vbus-1 { compatible = "regulator-fixed"; regulator-name = "vbus1"; pinctrl-0 = <&vbus1_pins>; pinctrl-names = "default"; regulator-max-microvolt = <5000000>; regulator-min-microvolt = <5000000>; gpio = <&gpio2 11 GPIO_ACTIVE_HIGH>; enable-active-high; }; vbus2: regulator-vbus-2 { compatible = "regulator-fixed"; regulator-name = "vbus2"; pinctrl-0 = <&vbus2_pins>; pinctrl-names = "default"; regulator-max-microvolt = <5000000>; regulator-min-microvolt = <5000000>; gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>; enable-active-high; }; rfkill-mpcie-wifi { compatible = "rfkill-gpio"; /* rfkill-gpio inverts internally */ shutdown-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>; label = "mpcie WiFi"; pinctrl-0 = <&pcie_rfkill_pins>; pinctrl-names = "default"; radio-type = "wlan"; }; }; &i2c3 { clock-frequency = <100000>; pinctrl-0 = <&i2c3_pins>; pinctrl-names = "default"; status = "okay"; hdmi@3d { compatible = "adi,adv7535"; reg = <0x3d>, <0x3f>, <0x3c>, <0x38>; reg-names = "main", "edid", "cec", "packet"; interrupt-parent = <&gpio1>; interrupts = <7 IRQ_TYPE_EDGE_FALLING>; a2vdd-supply = <&v_1_8>; avdd-supply = <&v_1_8>; dvdd-supply = <&v_1_8>; pd-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>; pinctrl-0 = <&hdmi_pins>; pinctrl-names = "default"; pvdd-supply = <&v_1_8>; v3p3-supply = <&v_3_3>; adi,dsi-lanes = <4>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; adv7535_from_dsim: endpoint { remote-endpoint = <&mipi_dsi_out>; }; }; port@1 { reg = <1>; adv7535_out: endpoint { remote-endpoint = <&hdmi_connector_in>; }; }; }; }; carrier_eeprom: eeprom@57 { compatible = "st,24c02", "atmel,24c02"; reg = <0x57>; pagesize = <16>; }; carrier_rtc: rtc@69 { compatible = "abracon,ab1805"; reg = <0x69>; abracon,tc-diode = "schottky"; abracon,tc-resistor = <3>; }; }; &iomuxc { hdmi_pins: pinctrl-hdmi-grp { fsl,pins = < MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7 0x0 MX8MM_IOMUXC_SAI5_RXD1_GPIO3_IO22 0x0 >; }; i2c3_pins: pinctrl-i2c3-grp { fsl,pins = < MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL 0x400001c3 MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA 0x400001c3 >; }; led_pins: pinctrl-led-grp { fsl,pins = < MX8MM_IOMUXC_UART4_TXD_GPIO5_IO29 0x0 MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x0 MX8MM_IOMUXC_ECSPI1_MISO_GPIO5_IO8 0x0 MX8MM_IOMUXC_ECSPI1_MOSI_GPIO5_IO7 0x0 MX8MM_IOMUXC_ECSPI1_SCLK_GPIO5_IO6 0x0 >; }; pcie_rfkill_pins: pinctrl-pcie-rfkill-grp { fsl,pins = < MX8MM_IOMUXC_SD2_WP_GPIO2_IO20 0x0 >; }; usb_hub_pins: pinctrl-usb-hub-grp { fsl,pins = < MX8MM_IOMUXC_SAI3_RXD_GPIO4_IO30 0x0 >; }; usdhc2_100mhz_pins: pinctrl-usdhc2-100mhz-grp { fsl,pins = < MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x194 MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d4 MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4 MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4 MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4 MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4 MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x140 MX8MM_IOMUXC_SD2_CD_B_USDHC2_CD_B 0x0 >; }; usdhc2_200mhz_pins: pinctrl-usdhc2-100mhz-grp { fsl,pins = < MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x196 MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d6 MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d6 MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d6 MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d6 MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d6 MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x140 MX8MM_IOMUXC_SD2_CD_B_USDHC2_CD_B 0x0 >; }; usdhc2_pins: pinctrl-usdhc2-grp { fsl,pins = < MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x190 MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d0 MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d0 MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d0 MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d0 MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0 MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x140 MX8MM_IOMUXC_SD2_CD_B_USDHC2_CD_B 0x0 >; }; vbus1_pins: pinctrl-vbus-1-grp { fsl,pins = < MX8MM_IOMUXC_SD1_STROBE_GPIO2_IO11 0x20 >; }; vbus2_pins: pinctrl-vbus-2-grp { fsl,pins = < MX8MM_IOMUXC_SAI2_RXFS_GPIO4_IO21 0x20 >; }; vmmc_pins: pinctrl-vmmc-grp { fsl,pins = < MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x41 >; }; }; &lcdif { status = "okay"; }; &mipi_dsi { samsung,esc-clock-frequency = <10000000>; status = "okay"; }; &mipi_dsi_out { remote-endpoint = <&adv7535_from_dsim>; }; &usbotg1 { dr_mode = "host"; vbus-supply = <&vbus2>; status = "okay"; }; &usbotg2 { #address-cells = <1>; #size-cells = <0>; dr_mode = "host"; pinctrl-0 = <&usb_hub_pins>; pinctrl-names = "default"; vbus-supply = <&vbus1>; status = "okay"; hub_2_0: hub@1 { compatible = "usb4b4,6502", "usb4b4,6506"; reg = <1>; peer-hub = <&hub_3_0>; reset-gpios = <&gpio4 30 GPIO_ACTIVE_LOW>; vdd2-supply = <&v_3_3>; vdd-supply = <&v_1_2>; }; /* this device is not visible because host supports 2.0 only */ hub_3_0: hub@2 { compatible = "usb4b4,6500", "usb4b4,6504"; reg = <2>; peer-hub = <&hub_2_0>; reset-gpios = <&gpio4 30 GPIO_ACTIVE_LOW>; vdd2-supply = <&v_3_3>; vdd-supply = <&v_1_2>; }; }; &usdhc2 { bus-width = <4>; pinctrl-0 = <&usdhc2_pins>; pinctrl-1 = <&usdhc2_100mhz_pins>; pinctrl-2 = <&usdhc2_200mhz_pins>; pinctrl-names = "default", "state_100mhz", "state_200mhz"; vmmc-supply = <&vmmc>; status = "okay"; };