Files
linux-kernel/linux-7.2.3/arch/arm64/boot/dts/freescale/imx8mm-hummingboard-ripple.dts
T
2026-09-06 12:53:21 -06:00

336 lines
7.0 KiB
Devicetree

// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2025 Josua Mayer <josua@solid-run.com>
*/
/dts-v1/;
#include <dt-bindings/leds/common.h>
#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 = <LED_COLOR_ID_GREEN>;
default-state = "on";
gpios = <&gpio5 29 GPIO_ACTIVE_LOW>;
label = "D30";
};
led-1 {
color = <LED_COLOR_ID_GREEN>;
default-state = "on";
gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
label = "D31";
};
led-2 {
color = <LED_COLOR_ID_GREEN>;
default-state = "on";
gpios = <&gpio5 8 GPIO_ACTIVE_LOW>;
label = "D32";
};
led-3 {
color = <LED_COLOR_ID_GREEN>;
default-state = "on";
gpios = <&gpio5 7 GPIO_ACTIVE_LOW>;
label = "D33";
};
led-4 {
color = <LED_COLOR_ID_GREEN>;
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";
};