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