1*a009c0c6SJosua Mayer// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*a009c0c6SJosua Mayer/* 3*a009c0c6SJosua Mayer * Copyright 2025 Josua Mayer <josua@solid-run.com> 4*a009c0c6SJosua Mayer */ 5*a009c0c6SJosua Mayer 6*a009c0c6SJosua Mayer/dts-v1/; 7*a009c0c6SJosua Mayer 8*a009c0c6SJosua Mayer#include <dt-bindings/leds/common.h> 9*a009c0c6SJosua Mayer 10*a009c0c6SJosua Mayer#include "imx8mp-sr-som.dtsi" 11*a009c0c6SJosua Mayer 12*a009c0c6SJosua Mayer/ { 13*a009c0c6SJosua Mayer model = "SolidRun i.MX8MP CuBox-M"; 14*a009c0c6SJosua Mayer compatible = "solidrun,imx8mp-cubox-m", 15*a009c0c6SJosua Mayer "solidrun,imx8mp-sr-som", "fsl,imx8mp"; 16*a009c0c6SJosua Mayer 17*a009c0c6SJosua Mayer aliases { 18*a009c0c6SJosua Mayer ethernet0 = &eqos; 19*a009c0c6SJosua Mayer /delete-property/ ethernet1; 20*a009c0c6SJosua Mayer rtc0 = &carrier_rtc; 21*a009c0c6SJosua Mayer rtc1 = &snvs_rtc; 22*a009c0c6SJosua Mayer }; 23*a009c0c6SJosua Mayer 24*a009c0c6SJosua Mayer ir-receiver { 25*a009c0c6SJosua Mayer compatible = "gpio-ir-receiver"; 26*a009c0c6SJosua Mayer gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; 27*a009c0c6SJosua Mayer pinctrl-names = "default"; 28*a009c0c6SJosua Mayer pinctrl-0 = <&ir_pins>; 29*a009c0c6SJosua Mayer linux,autosuspend-period = <125>; 30*a009c0c6SJosua Mayer wakeup-source; 31*a009c0c6SJosua Mayer }; 32*a009c0c6SJosua Mayer 33*a009c0c6SJosua Mayer leds { 34*a009c0c6SJosua Mayer compatible = "gpio-leds"; 35*a009c0c6SJosua Mayer pinctrl-names = "default"; 36*a009c0c6SJosua Mayer pinctrl-0 = <&led_pins>; 37*a009c0c6SJosua Mayer 38*a009c0c6SJosua Mayer status { 39*a009c0c6SJosua Mayer label = "status"; 40*a009c0c6SJosua Mayer color = <LED_COLOR_ID_RED>; 41*a009c0c6SJosua Mayer gpios = <&gpio1 12 GPIO_ACTIVE_LOW>; 42*a009c0c6SJosua Mayer function = LED_FUNCTION_HEARTBEAT; 43*a009c0c6SJosua Mayer }; 44*a009c0c6SJosua Mayer }; 45*a009c0c6SJosua Mayer 46*a009c0c6SJosua Mayer sound-hdmi { 47*a009c0c6SJosua Mayer compatible = "fsl,imx-audio-hdmi"; 48*a009c0c6SJosua Mayer model = "audio-hdmi"; 49*a009c0c6SJosua Mayer audio-cpu = <&aud2htx>; 50*a009c0c6SJosua Mayer hdmi-out; 51*a009c0c6SJosua Mayer }; 52*a009c0c6SJosua Mayer 53*a009c0c6SJosua Mayer vbus: regulator-vbus { 54*a009c0c6SJosua Mayer compatible = "regulator-fixed"; 55*a009c0c6SJosua Mayer regulator-name = "vbus"; 56*a009c0c6SJosua Mayer gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>; 57*a009c0c6SJosua Mayer enable-active-high; 58*a009c0c6SJosua Mayer pinctrl-names = "default"; 59*a009c0c6SJosua Mayer pinctrl-0 = <&vbus_pins>; 60*a009c0c6SJosua Mayer regulator-min-microvolt = <5000000>; 61*a009c0c6SJosua Mayer regulator-max-microvolt = <5000000>; 62*a009c0c6SJosua Mayer }; 63*a009c0c6SJosua Mayer 64*a009c0c6SJosua Mayer vmmc: regulator-mmc { 65*a009c0c6SJosua Mayer compatible = "regulator-fixed"; 66*a009c0c6SJosua Mayer pinctrl-names = "default"; 67*a009c0c6SJosua Mayer pinctrl-0 = <&vmmc_pins>; 68*a009c0c6SJosua Mayer regulator-name = "vmmc"; 69*a009c0c6SJosua Mayer regulator-min-microvolt = <3300000>; 70*a009c0c6SJosua Mayer regulator-max-microvolt = <3300000>; 71*a009c0c6SJosua Mayer gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>; 72*a009c0c6SJosua Mayer startup-delay-us = <250>; 73*a009c0c6SJosua Mayer }; 74*a009c0c6SJosua Mayer}; 75*a009c0c6SJosua Mayer 76*a009c0c6SJosua Mayer&aud2htx { 77*a009c0c6SJosua Mayer status = "okay"; 78*a009c0c6SJosua Mayer}; 79*a009c0c6SJosua Mayer 80*a009c0c6SJosua Mayer&fec { 81*a009c0c6SJosua Mayer /* this board does not use second phy / ethernet on SoM */ 82*a009c0c6SJosua Mayer status = "disabled"; 83*a009c0c6SJosua Mayer}; 84*a009c0c6SJosua Mayer 85*a009c0c6SJosua Mayer&hdmi_pvi { 86*a009c0c6SJosua Mayer status = "okay"; 87*a009c0c6SJosua Mayer}; 88*a009c0c6SJosua Mayer 89*a009c0c6SJosua Mayer&hdmi_tx { 90*a009c0c6SJosua Mayer status = "okay"; 91*a009c0c6SJosua Mayer}; 92*a009c0c6SJosua Mayer 93*a009c0c6SJosua Mayer&hdmi_tx_phy { 94*a009c0c6SJosua Mayer status = "okay"; 95*a009c0c6SJosua Mayer}; 96*a009c0c6SJosua Mayer 97*a009c0c6SJosua Mayer&i2c3 { 98*a009c0c6SJosua Mayer carrier_rtc: rtc@32 { 99*a009c0c6SJosua Mayer compatible = "epson,rx8130"; 100*a009c0c6SJosua Mayer reg = <0x32>; 101*a009c0c6SJosua Mayer }; 102*a009c0c6SJosua Mayer}; 103*a009c0c6SJosua Mayer 104*a009c0c6SJosua Mayer&iomuxc { 105*a009c0c6SJosua Mayer pinctrl-names = "default"; 106*a009c0c6SJosua Mayer pinctrl-0 = <&hdmi_pins>; 107*a009c0c6SJosua Mayer 108*a009c0c6SJosua Mayer hdmi_pins: pinctrl-hdmi-grp { 109*a009c0c6SJosua Mayer fsl,pins = < 110*a009c0c6SJosua Mayer MX8MP_IOMUXC_HDMI_DDC_SCL__HDMIMIX_HDMI_SCL 0x400001c3 111*a009c0c6SJosua Mayer MX8MP_IOMUXC_HDMI_DDC_SDA__HDMIMIX_HDMI_SDA 0x400001c3 112*a009c0c6SJosua Mayer MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC 0x154 113*a009c0c6SJosua Mayer MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD 0x154 114*a009c0c6SJosua Mayer >; 115*a009c0c6SJosua Mayer }; 116*a009c0c6SJosua Mayer 117*a009c0c6SJosua Mayer ir_pins: pinctrl-ir-grp { 118*a009c0c6SJosua Mayer fsl,pins = < 119*a009c0c6SJosua Mayer MX8MP_IOMUXC_GPIO1_IO10__GPIO1_IO10 0x4f 120*a009c0c6SJosua Mayer >; 121*a009c0c6SJosua Mayer }; 122*a009c0c6SJosua Mayer 123*a009c0c6SJosua Mayer led_pins: pinctrl-led-grp { 124*a009c0c6SJosua Mayer fsl,pins = < 125*a009c0c6SJosua Mayer MX8MP_IOMUXC_GPIO1_IO12__GPIO1_IO12 0x0 126*a009c0c6SJosua Mayer >; 127*a009c0c6SJosua Mayer }; 128*a009c0c6SJosua Mayer 129*a009c0c6SJosua Mayer usdhc2_pins: pinctrl-usdhc2-grp { 130*a009c0c6SJosua Mayer fsl,pins = < 131*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x190 132*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d0 133*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d0 134*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d0 135*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d0 136*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d0 137*a009c0c6SJosua Mayer MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0x140 138*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_CD_B__USDHC2_CD_B 0x140 139*a009c0c6SJosua Mayer >; 140*a009c0c6SJosua Mayer }; 141*a009c0c6SJosua Mayer 142*a009c0c6SJosua Mayer usdhc2_100mhz_pins: pinctrl-usdhc2-100mhz-grp { 143*a009c0c6SJosua Mayer fsl,pins = < 144*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x194 145*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d4 146*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d4 147*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d4 148*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d4 149*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4 150*a009c0c6SJosua Mayer MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0x140 151*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_CD_B__USDHC2_CD_B 0x140 152*a009c0c6SJosua Mayer >; 153*a009c0c6SJosua Mayer }; 154*a009c0c6SJosua Mayer 155*a009c0c6SJosua Mayer usdhc2_200mhz_pins: pinctrl-usdhc2-200mhz-grp { 156*a009c0c6SJosua Mayer fsl,pins = < 157*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x196 158*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d6 159*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d6 160*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d6 161*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d6 162*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d6 163*a009c0c6SJosua Mayer MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0x140 164*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_CD_B__USDHC2_CD_B 0x140 165*a009c0c6SJosua Mayer >; 166*a009c0c6SJosua Mayer }; 167*a009c0c6SJosua Mayer 168*a009c0c6SJosua Mayer vbus_pins: pinctrl-vbus-grp { 169*a009c0c6SJosua Mayer fsl,pins = < 170*a009c0c6SJosua Mayer MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07 0x100 171*a009c0c6SJosua Mayer >; 172*a009c0c6SJosua Mayer }; 173*a009c0c6SJosua Mayer 174*a009c0c6SJosua Mayer vmmc_pins: pinctrl-vmmc-grp { 175*a009c0c6SJosua Mayer fsl,pins = < 176*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19 0x0 177*a009c0c6SJosua Mayer >; 178*a009c0c6SJosua Mayer }; 179*a009c0c6SJosua Mayer}; 180*a009c0c6SJosua Mayer 181*a009c0c6SJosua Mayer&lcdif3 { 182*a009c0c6SJosua Mayer status = "okay"; 183*a009c0c6SJosua Mayer}; 184*a009c0c6SJosua Mayer 185*a009c0c6SJosua Mayer&usb3_phy0 { 186*a009c0c6SJosua Mayer fsl,phy-tx-preemp-amp-tune-microamp = <1200>; 187*a009c0c6SJosua Mayer vbus-supply = <&vbus>; 188*a009c0c6SJosua Mayer status = "okay"; 189*a009c0c6SJosua Mayer}; 190*a009c0c6SJosua Mayer 191*a009c0c6SJosua Mayer&usb3_0 { 192*a009c0c6SJosua Mayer status = "okay"; 193*a009c0c6SJosua Mayer}; 194*a009c0c6SJosua Mayer 195*a009c0c6SJosua Mayer&usb3_phy1 { 196*a009c0c6SJosua Mayer fsl,phy-tx-preemp-amp-tune-microamp = <1200>; 197*a009c0c6SJosua Mayer vbus-supply = <&vbus>; 198*a009c0c6SJosua Mayer status = "okay"; 199*a009c0c6SJosua Mayer}; 200*a009c0c6SJosua Mayer 201*a009c0c6SJosua Mayer&usb3_1 { 202*a009c0c6SJosua Mayer status = "okay"; 203*a009c0c6SJosua Mayer}; 204*a009c0c6SJosua Mayer 205*a009c0c6SJosua Mayer&usb_dwc3_0 { 206*a009c0c6SJosua Mayer dr_mode = "host"; 207*a009c0c6SJosua Mayer}; 208*a009c0c6SJosua Mayer 209*a009c0c6SJosua Mayer&usb_dwc3_1 { 210*a009c0c6SJosua Mayer dr_mode = "host"; 211*a009c0c6SJosua Mayer}; 212*a009c0c6SJosua Mayer 213*a009c0c6SJosua Mayer&usdhc2 { 214*a009c0c6SJosua Mayer pinctrl-names = "default", "state_100mhz", "state_200mhz"; 215*a009c0c6SJosua Mayer pinctrl-0 = <&usdhc2_pins>; 216*a009c0c6SJosua Mayer pinctrl-1 = <&usdhc2_100mhz_pins>; 217*a009c0c6SJosua Mayer pinctrl-2 = <&usdhc2_200mhz_pins>; 218*a009c0c6SJosua Mayer vmmc-supply = <&vmmc>; 219*a009c0c6SJosua Mayer bus-width = <4>; 220*a009c0c6SJosua Mayer cap-power-off-card; 221*a009c0c6SJosua Mayer full-pwr-cycle; 222*a009c0c6SJosua Mayer status = "okay"; 223*a009c0c6SJosua Mayer}; 224