1*833e5d42SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0 2*833e5d42SEmmanuel Vadot/* 3*833e5d42SEmmanuel Vadot * Copyright (C) 2025 Amarula Solutions, Dario Binacchi <dario.binacchi@amarulasolutions.com> 4*833e5d42SEmmanuel Vadot * Copyright (C) 2025 Engicam srl 5*833e5d42SEmmanuel Vadot */ 6*833e5d42SEmmanuel Vadot 7*833e5d42SEmmanuel Vadot/dts-v1/; 8*833e5d42SEmmanuel Vadot 9*833e5d42SEmmanuel Vadot#include "imx6ull-engicam-microgea.dtsi" 10*833e5d42SEmmanuel Vadot 11*833e5d42SEmmanuel Vadot/ { 12*833e5d42SEmmanuel Vadot compatible = "engicam,microgea-imx6ull-bmm", 13*833e5d42SEmmanuel Vadot "engicam,microgea-imx6ull", "fsl,imx6ull"; 14*833e5d42SEmmanuel Vadot model = "Engicam MicroGEA i.MX6ULL BMM Board"; 15*833e5d42SEmmanuel Vadot 16*833e5d42SEmmanuel Vadot backlight { 17*833e5d42SEmmanuel Vadot compatible = "pwm-backlight"; 18*833e5d42SEmmanuel Vadot brightness-levels = <0 100>; 19*833e5d42SEmmanuel Vadot num-interpolated-steps = <100>; 20*833e5d42SEmmanuel Vadot default-brightness-level = <85>; 21*833e5d42SEmmanuel Vadot pwms = <&pwm8 0 100000 0>; 22*833e5d42SEmmanuel Vadot }; 23*833e5d42SEmmanuel Vadot 24*833e5d42SEmmanuel Vadot buzzer { 25*833e5d42SEmmanuel Vadot compatible = "pwm-beeper"; 26*833e5d42SEmmanuel Vadot pwms = <&pwm4 0 1000000 0>; 27*833e5d42SEmmanuel Vadot }; 28*833e5d42SEmmanuel Vadot 29*833e5d42SEmmanuel Vadot reg_1v8: regulator-1v8 { 30*833e5d42SEmmanuel Vadot compatible = "regulator-fixed"; 31*833e5d42SEmmanuel Vadot regulator-name = "1v8"; 32*833e5d42SEmmanuel Vadot regulator-min-microvolt = <1800000>; 33*833e5d42SEmmanuel Vadot regulator-max-microvolt = <1800000>; 34*833e5d42SEmmanuel Vadot }; 35*833e5d42SEmmanuel Vadot 36*833e5d42SEmmanuel Vadot reg_3v3: regulator-3v3 { 37*833e5d42SEmmanuel Vadot compatible = "regulator-fixed"; 38*833e5d42SEmmanuel Vadot regulator-name = "3v3"; 39*833e5d42SEmmanuel Vadot regulator-min-microvolt = <3300000>; 40*833e5d42SEmmanuel Vadot regulator-max-microvolt = <3300000>; 41*833e5d42SEmmanuel Vadot }; 42*833e5d42SEmmanuel Vadot 43*833e5d42SEmmanuel Vadot reg_usb1_vbus: regulator-usb1-vbus { 44*833e5d42SEmmanuel Vadot compatible = "regulator-fixed"; 45*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 46*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_reg_usb1>; 47*833e5d42SEmmanuel Vadot regulator-name = "usb1_vbus"; 48*833e5d42SEmmanuel Vadot regulator-min-microvolt = <5000000>; 49*833e5d42SEmmanuel Vadot regulator-max-microvolt = <5000000>; 50*833e5d42SEmmanuel Vadot gpio = <&gpio5 0 GPIO_ACTIVE_HIGH>; 51*833e5d42SEmmanuel Vadot enable-active-high; 52*833e5d42SEmmanuel Vadot }; 53*833e5d42SEmmanuel Vadot 54*833e5d42SEmmanuel Vadot reg_usb2_vbus: regulator-usb2-vbus { 55*833e5d42SEmmanuel Vadot compatible = "regulator-fixed"; 56*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 57*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_reg_usb2>; 58*833e5d42SEmmanuel Vadot regulator-name = "usbotg_vbus"; 59*833e5d42SEmmanuel Vadot regulator-min-microvolt = <5000000>; 60*833e5d42SEmmanuel Vadot regulator-max-microvolt = <5000000>; 61*833e5d42SEmmanuel Vadot gpio = <&gpio5 3 GPIO_ACTIVE_HIGH>; 62*833e5d42SEmmanuel Vadot enable-active-high; 63*833e5d42SEmmanuel Vadot }; 64*833e5d42SEmmanuel Vadot 65*833e5d42SEmmanuel Vadot reg_ext_pwr: regulator-ext-pwr { 66*833e5d42SEmmanuel Vadot compatible = "regulator-fixed"; 67*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 68*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_reg_ext_pwr>; 69*833e5d42SEmmanuel Vadot regulator-name = "ext-pwr"; 70*833e5d42SEmmanuel Vadot regulator-min-microvolt = <5000000>; 71*833e5d42SEmmanuel Vadot regulator-max-microvolt = <5000000>; 72*833e5d42SEmmanuel Vadot gpio = <&gpio5 6 GPIO_ACTIVE_HIGH>; 73*833e5d42SEmmanuel Vadot enable-active-high; 74*833e5d42SEmmanuel Vadot regulator-always-on; 75*833e5d42SEmmanuel Vadot }; 76*833e5d42SEmmanuel Vadot 77*833e5d42SEmmanuel Vadot sound { 78*833e5d42SEmmanuel Vadot compatible = "simple-audio-card"; 79*833e5d42SEmmanuel Vadot simple-audio-card,name = "imx6ull-microgea-bmm-sgtl5000"; 80*833e5d42SEmmanuel Vadot simple-audio-card,format = "i2s"; 81*833e5d42SEmmanuel Vadot simple-audio-card,bitclock-master = <&codec_dai>; 82*833e5d42SEmmanuel Vadot simple-audio-card,frame-master = <&codec_dai>; 83*833e5d42SEmmanuel Vadot simple-audio-card,widgets = 84*833e5d42SEmmanuel Vadot "Microphone", "Mic Jack", 85*833e5d42SEmmanuel Vadot "Headphone", "Headphone Jack"; 86*833e5d42SEmmanuel Vadot simple-audio-card,routing = 87*833e5d42SEmmanuel Vadot "MIC_IN", "Mic Jack", 88*833e5d42SEmmanuel Vadot "Mic Jack", "Mic Bias", 89*833e5d42SEmmanuel Vadot "Headphone Jack", "HP_OUT"; 90*833e5d42SEmmanuel Vadot 91*833e5d42SEmmanuel Vadot cpu_dai: simple-audio-card,cpu { 92*833e5d42SEmmanuel Vadot sound-dai = <&sai2>; 93*833e5d42SEmmanuel Vadot }; 94*833e5d42SEmmanuel Vadot 95*833e5d42SEmmanuel Vadot codec_dai: simple-audio-card,codec { 96*833e5d42SEmmanuel Vadot sound-dai = <&codec>; 97*833e5d42SEmmanuel Vadot }; 98*833e5d42SEmmanuel Vadot }; 99*833e5d42SEmmanuel Vadot}; 100*833e5d42SEmmanuel Vadot 101*833e5d42SEmmanuel Vadot&can1 { 102*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 103*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_can>; 104*833e5d42SEmmanuel Vadot status = "okay"; 105*833e5d42SEmmanuel Vadot}; 106*833e5d42SEmmanuel Vadot 107*833e5d42SEmmanuel Vadot&i2c2 { 108*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 109*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_i2c2>; 110*833e5d42SEmmanuel Vadot clock-frequency = <100000>; 111*833e5d42SEmmanuel Vadot status = "okay"; 112*833e5d42SEmmanuel Vadot 113*833e5d42SEmmanuel Vadot codec: audio-codec@a { 114*833e5d42SEmmanuel Vadot compatible = "fsl,sgtl5000"; 115*833e5d42SEmmanuel Vadot reg = <0x0a>; 116*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 117*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_mclk>; 118*833e5d42SEmmanuel Vadot #sound-dai-cells = <0>; 119*833e5d42SEmmanuel Vadot clocks = <&clks IMX6UL_CLK_CKO>; 120*833e5d42SEmmanuel Vadot assigned-clocks = <&clks IMX6UL_CLK_CKO2_SEL>, 121*833e5d42SEmmanuel Vadot <&clks IMX6UL_CLK_CKO2_PODF>, 122*833e5d42SEmmanuel Vadot <&clks IMX6UL_CLK_CKO2>, 123*833e5d42SEmmanuel Vadot <&clks IMX6UL_CLK_CKO>; 124*833e5d42SEmmanuel Vadot assigned-clock-parents = <&clks IMX6UL_CLK_OSC>, 125*833e5d42SEmmanuel Vadot <&clks IMX6UL_CLK_CKO2_SEL>, 126*833e5d42SEmmanuel Vadot <&clks IMX6UL_CLK_CKO2_PODF>, 127*833e5d42SEmmanuel Vadot <&clks IMX6UL_CLK_CKO2>; 128*833e5d42SEmmanuel Vadot VDDA-supply = <®_3v3>; 129*833e5d42SEmmanuel Vadot VDDIO-supply = <®_3v3>; 130*833e5d42SEmmanuel Vadot VDDD-supply = <®_1v8>; 131*833e5d42SEmmanuel Vadot }; 132*833e5d42SEmmanuel Vadot}; 133*833e5d42SEmmanuel Vadot 134*833e5d42SEmmanuel Vadot&pwm4 { 135*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 136*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_pwm4>; 137*833e5d42SEmmanuel Vadot status = "okay"; 138*833e5d42SEmmanuel Vadot}; 139*833e5d42SEmmanuel Vadot 140*833e5d42SEmmanuel Vadot&pwm8 { 141*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 142*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_pwm8>; 143*833e5d42SEmmanuel Vadot status = "okay"; 144*833e5d42SEmmanuel Vadot}; 145*833e5d42SEmmanuel Vadot 146*833e5d42SEmmanuel Vadot&sai2 { 147*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 148*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_sai2>; 149*833e5d42SEmmanuel Vadot status = "okay"; 150*833e5d42SEmmanuel Vadot}; 151*833e5d42SEmmanuel Vadot 152*833e5d42SEmmanuel Vadot&tsc { 153*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 154*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_tsc>; 155*833e5d42SEmmanuel Vadot measure-delay-time = <0x9ffff>; 156*833e5d42SEmmanuel Vadot pre-charge-time = <0xfff>; 157*833e5d42SEmmanuel Vadot xnur-gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; 158*833e5d42SEmmanuel Vadot status = "okay"; 159*833e5d42SEmmanuel Vadot}; 160*833e5d42SEmmanuel Vadot 161*833e5d42SEmmanuel Vadot&uart1 { 162*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 163*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_uart1>; 164*833e5d42SEmmanuel Vadot status = "okay"; 165*833e5d42SEmmanuel Vadot}; 166*833e5d42SEmmanuel Vadot 167*833e5d42SEmmanuel Vadot&usbotg1 { 168*833e5d42SEmmanuel Vadot dr_mode = "host"; 169*833e5d42SEmmanuel Vadot vbus-supply = <®_usb1_vbus>; 170*833e5d42SEmmanuel Vadot status = "okay"; 171*833e5d42SEmmanuel Vadot}; 172*833e5d42SEmmanuel Vadot 173*833e5d42SEmmanuel Vadot&usbotg2 { 174*833e5d42SEmmanuel Vadot dr_mode = "host"; 175*833e5d42SEmmanuel Vadot vbus-supply = <®_usb2_vbus>; 176*833e5d42SEmmanuel Vadot status = "okay"; 177*833e5d42SEmmanuel Vadot}; 178*833e5d42SEmmanuel Vadot 179*833e5d42SEmmanuel Vadot/* MicroSD */ 180*833e5d42SEmmanuel Vadot&usdhc1 { 181*833e5d42SEmmanuel Vadot pinctrl-names = "default", "state_100mhz", "state_200mhz"; 182*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_usdhc1>; 183*833e5d42SEmmanuel Vadot pinctrl-1 = <&pinctrl_usdhc1_100mhz>; 184*833e5d42SEmmanuel Vadot pinctrl-2 = <&pinctrl_usdhc1_200mhz>; 185*833e5d42SEmmanuel Vadot vmmc-supply = <®_3v3>; 186*833e5d42SEmmanuel Vadot bus-width = <4>; 187*833e5d42SEmmanuel Vadot keep-power-in-suspend; 188*833e5d42SEmmanuel Vadot non-removable; 189*833e5d42SEmmanuel Vadot wakeup-source; 190*833e5d42SEmmanuel Vadot status = "okay"; 191*833e5d42SEmmanuel Vadot}; 192*833e5d42SEmmanuel Vadot 193*833e5d42SEmmanuel Vadot&iomuxc { 194*833e5d42SEmmanuel Vadot pinctrl_can: can-grp { 195*833e5d42SEmmanuel Vadot fsl,pins = < 196*833e5d42SEmmanuel Vadot MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x1b020 197*833e5d42SEmmanuel Vadot MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x1b020 198*833e5d42SEmmanuel Vadot >; 199*833e5d42SEmmanuel Vadot }; 200*833e5d42SEmmanuel Vadot 201*833e5d42SEmmanuel Vadot pinctrl_i2c2: i2c2grp { 202*833e5d42SEmmanuel Vadot fsl,pins = < 203*833e5d42SEmmanuel Vadot MX6UL_PAD_GPIO1_IO00__I2C2_SCL 0x4001b8b0 204*833e5d42SEmmanuel Vadot MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4001b8b0 205*833e5d42SEmmanuel Vadot >; 206*833e5d42SEmmanuel Vadot }; 207*833e5d42SEmmanuel Vadot 208*833e5d42SEmmanuel Vadot pinctrl_mclk: mclkgrp { 209*833e5d42SEmmanuel Vadot fsl,pins = < 210*833e5d42SEmmanuel Vadot MX6UL_PAD_JTAG_TMS__CCM_CLKO1 0x13009 211*833e5d42SEmmanuel Vadot >; 212*833e5d42SEmmanuel Vadot }; 213*833e5d42SEmmanuel Vadot 214*833e5d42SEmmanuel Vadot pinctrl_pwm4: pwm4grp { 215*833e5d42SEmmanuel Vadot fsl,pins = < 216*833e5d42SEmmanuel Vadot MX6UL_PAD_GPIO1_IO05__PWM4_OUT 0x110b0 217*833e5d42SEmmanuel Vadot >; 218*833e5d42SEmmanuel Vadot }; 219*833e5d42SEmmanuel Vadot 220*833e5d42SEmmanuel Vadot pinctrl_pwm8: pwm8grp { 221*833e5d42SEmmanuel Vadot fsl,pins = < 222*833e5d42SEmmanuel Vadot MX6UL_PAD_ENET1_RX_ER__PWM8_OUT 0x11008 223*833e5d42SEmmanuel Vadot >; 224*833e5d42SEmmanuel Vadot }; 225*833e5d42SEmmanuel Vadot 226*833e5d42SEmmanuel Vadot pinctrl_sai2: sai2grp { 227*833e5d42SEmmanuel Vadot fsl,pins = < 228*833e5d42SEmmanuel Vadot MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x130b0 229*833e5d42SEmmanuel Vadot MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x17088 230*833e5d42SEmmanuel Vadot MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x17088 231*833e5d42SEmmanuel Vadot MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x120b0 232*833e5d42SEmmanuel Vadot >; 233*833e5d42SEmmanuel Vadot }; 234*833e5d42SEmmanuel Vadot 235*833e5d42SEmmanuel Vadot pinctrl_tsc: tscgrp { 236*833e5d42SEmmanuel Vadot fsl,pins = < 237*833e5d42SEmmanuel Vadot MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0x000b0 238*833e5d42SEmmanuel Vadot MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0x000b0 239*833e5d42SEmmanuel Vadot MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0x000b0 240*833e5d42SEmmanuel Vadot MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0x000b0 241*833e5d42SEmmanuel Vadot >; 242*833e5d42SEmmanuel Vadot }; 243*833e5d42SEmmanuel Vadot 244*833e5d42SEmmanuel Vadot pinctrl_uart1: uart1grp { 245*833e5d42SEmmanuel Vadot fsl,pins = < 246*833e5d42SEmmanuel Vadot MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1 247*833e5d42SEmmanuel Vadot MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1 248*833e5d42SEmmanuel Vadot >; 249*833e5d42SEmmanuel Vadot }; 250*833e5d42SEmmanuel Vadot 251*833e5d42SEmmanuel Vadot pinctrl_usdhc1: usdhc1grp { 252*833e5d42SEmmanuel Vadot fsl,pins = < 253*833e5d42SEmmanuel Vadot MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059 254*833e5d42SEmmanuel Vadot MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10059 255*833e5d42SEmmanuel Vadot MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059 256*833e5d42SEmmanuel Vadot MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059 257*833e5d42SEmmanuel Vadot MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059 258*833e5d42SEmmanuel Vadot MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059 259*833e5d42SEmmanuel Vadot >; 260*833e5d42SEmmanuel Vadot }; 261*833e5d42SEmmanuel Vadot 262*833e5d42SEmmanuel Vadot pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp { 263*833e5d42SEmmanuel Vadot fsl,pins = < 264*833e5d42SEmmanuel Vadot MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170b9 265*833e5d42SEmmanuel Vadot MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100b9 266*833e5d42SEmmanuel Vadot MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9 267*833e5d42SEmmanuel Vadot MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9 268*833e5d42SEmmanuel Vadot MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9 269*833e5d42SEmmanuel Vadot MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9 270*833e5d42SEmmanuel Vadot >; 271*833e5d42SEmmanuel Vadot }; 272*833e5d42SEmmanuel Vadot 273*833e5d42SEmmanuel Vadot pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp { 274*833e5d42SEmmanuel Vadot fsl,pins = < 275*833e5d42SEmmanuel Vadot MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170f9 276*833e5d42SEmmanuel Vadot MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100f9 277*833e5d42SEmmanuel Vadot MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9 278*833e5d42SEmmanuel Vadot MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9 279*833e5d42SEmmanuel Vadot MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9 280*833e5d42SEmmanuel Vadot MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9 281*833e5d42SEmmanuel Vadot >; 282*833e5d42SEmmanuel Vadot }; 283*833e5d42SEmmanuel Vadot}; 284*833e5d42SEmmanuel Vadot 285*833e5d42SEmmanuel Vadot&iomuxc_snvs { 286*833e5d42SEmmanuel Vadot pinctrl_reg_usb1: regusb1grp { 287*833e5d42SEmmanuel Vadot fsl,pins = < 288*833e5d42SEmmanuel Vadot MX6ULL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x17059 289*833e5d42SEmmanuel Vadot >; 290*833e5d42SEmmanuel Vadot }; 291*833e5d42SEmmanuel Vadot 292*833e5d42SEmmanuel Vadot pinctrl_reg_usb2: regusb2grp { 293*833e5d42SEmmanuel Vadot fsl,pins = < 294*833e5d42SEmmanuel Vadot MX6ULL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x17059 295*833e5d42SEmmanuel Vadot >; 296*833e5d42SEmmanuel Vadot }; 297*833e5d42SEmmanuel Vadot 298*833e5d42SEmmanuel Vadot pinctrl_reg_ext_pwr: reg-ext-pwrgrp { 299*833e5d42SEmmanuel Vadot fsl,pins = < 300*833e5d42SEmmanuel Vadot MX6ULL_PAD_SNVS_TAMPER6__GPIO5_IO06 0x17059 301*833e5d42SEmmanuel Vadot >; 302*833e5d42SEmmanuel Vadot }; 303*833e5d42SEmmanuel Vadot}; 304