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-rmm", 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-rmm-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 leds { 101 compatible = "gpio-leds"; 102 pinctrl-names = "default"; 103 pinctrl-0 = <&pinctrl_leds>; 104 105 led-0 { 106 gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>; 107 default-state = "off"; 108 status = "okay"; 109 }; 110 111 led-1 { 112 gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>; 113 default-state = "off"; 114 status = "okay"; 115 }; 116 }; 117}; 118 119&can1 { 120 pinctrl-names = "default"; 121 pinctrl-0 = <&pinctrl_can>; 122 status = "okay"; 123}; 124 125&i2c1 { 126 pinctrl-names = "default"; 127 pinctrl-0 = <&pinctrl_i2c1>; 128 clock-frequency = <100000>; 129 status = "okay"; 130 131 touchscreen: touchscreen@38 { 132 compatible ="edt,edt-ft5306"; 133 reg = <0x38>; 134 pinctrl-names = "default"; 135 pinctrl-0 = <&pinctrl_touchscreen>; 136 interrupt-parent = <&gpio2>; 137 interrupts = <8 IRQ_TYPE_EDGE_FALLING>; 138 reset-gpios = <&gpio2 14 GPIO_ACTIVE_LOW>; 139 report-rate-hz = <6>; 140 /* settings valid only for Hycon touchscreen */ 141 touchscreen-size-x = <1280>; 142 touchscreen-size-y = <800>; 143 }; 144}; 145 146&i2c2 { 147 pinctrl-names = "default"; 148 pinctrl-0 = <&pinctrl_i2c2>; 149 clock-frequency = <100000>; 150 status = "okay"; 151 152 codec: audio-codec@a { 153 compatible = "fsl,sgtl5000"; 154 reg = <0x0a>; 155 pinctrl-names = "default"; 156 pinctrl-0 = <&pinctrl_mclk>; 157 #sound-dai-cells = <0>; 158 clocks = <&clks IMX6UL_CLK_CKO>; 159 assigned-clocks = <&clks IMX6UL_CLK_CKO2_SEL>, 160 <&clks IMX6UL_CLK_CKO2_PODF>, 161 <&clks IMX6UL_CLK_CKO2>, 162 <&clks IMX6UL_CLK_CKO>; 163 assigned-clock-parents = <&clks IMX6UL_CLK_OSC>, 164 <&clks IMX6UL_CLK_CKO2_SEL>, 165 <&clks IMX6UL_CLK_CKO2_PODF>, 166 <&clks IMX6UL_CLK_CKO2>; 167 VDDA-supply = <®_3v3>; 168 VDDIO-supply = <®_3v3>; 169 VDDD-supply = <®_1v8>; 170 }; 171}; 172 173&pwm4 { 174 pinctrl-names = "default"; 175 pinctrl-0 = <&pinctrl_pwm4>; 176 status = "okay"; 177}; 178 179&pwm8 { 180 pinctrl-names = "default"; 181 pinctrl-0 = <&pinctrl_pwm8>; 182 status = "okay"; 183}; 184 185&sai2 { 186 pinctrl-names = "default"; 187 pinctrl-0 = <&pinctrl_sai2>; 188 status = "okay"; 189}; 190 191&uart1 { 192 pinctrl-names = "default"; 193 pinctrl-0 = <&pinctrl_uart1>; 194 status = "okay"; 195}; 196 197&uart4 { 198 pinctrl-names = "default"; 199 pinctrl-0 = <&pinctrl_uart4>; 200 status = "okay"; 201}; 202 203&usbotg1 { 204 dr_mode = "host"; 205 vbus-supply = <®_usb1_vbus>; 206 disable-over-current; 207 status = "okay"; 208}; 209 210&usbotg2 { 211 dr_mode = "host"; 212 vbus-supply = <®_usb2_vbus>; 213 disable-over-current; 214 status = "okay"; 215}; 216 217/* MicroSD */ 218&usdhc1 { 219 pinctrl-names = "default", "state_100mhz", "state_200mhz"; 220 pinctrl-0 = <&pinctrl_usdhc1>; 221 pinctrl-1 = <&pinctrl_usdhc1_100mhz>; 222 pinctrl-2 = <&pinctrl_usdhc1_200mhz>; 223 vmmc-supply = <®_3v3>; 224 bus-width = <4>; 225 keep-power-in-suspend; 226 non-removable; 227 wakeup-source; 228 status = "okay"; 229}; 230 231&iomuxc { 232 pinctrl_can: can-grp { 233 fsl,pins = < 234 MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x1b020 235 MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x1b020 236 >; 237 }; 238 239 pinctrl_i2c1: i2c1grp { 240 fsl,pins = < 241 MX6UL_PAD_CSI_PIXCLK__I2C1_SCL 0x4001b8b0 242 MX6UL_PAD_CSI_MCLK__I2C1_SDA 0x4001b8b0 243 >; 244 }; 245 246 pinctrl_i2c2: i2c2grp { 247 fsl,pins = < 248 MX6UL_PAD_GPIO1_IO00__I2C2_SCL 0x4001b8b0 249 MX6UL_PAD_GPIO1_IO01__I2C2_SDA 0x4001b8b0 250 >; 251 }; 252 253 pinctrl_leds: ledsgrp { 254 fsl,pins = < 255 MX6UL_PAD_ENET2_RX_EN__GPIO2_IO10 0x130b0 256 MX6UL_PAD_ENET2_TX_DATA0__GPIO2_IO11 0x130b0 257 >; 258 }; 259 260 pinctrl_mclk: mclkgrp { 261 fsl,pins = < 262 MX6UL_PAD_JTAG_TMS__CCM_CLKO1 0x13009 263 >; 264 }; 265 266 pinctrl_pwm4: pwm4grp { 267 fsl,pins = < 268 MX6UL_PAD_GPIO1_IO05__PWM4_OUT 0x110b0 269 >; 270 }; 271 272 pinctrl_pwm8: pwm8grp { 273 fsl,pins = < 274 MX6UL_PAD_ENET1_RX_ER__PWM8_OUT 0x110b0 275 >; 276 }; 277 278 pinctrl_sai2: sai2grp { 279 fsl,pins = < 280 MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x130b0 281 MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x17088 282 MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x17088 283 MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x120b0 284 >; 285 }; 286 287 pinctrl_touchscreen: touchgrp { 288 fsl,pins = < 289 MX6UL_PAD_ENET2_TX_CLK__GPIO2_IO14 0x17059 290 MX6UL_PAD_ENET2_RX_DATA0__GPIO2_IO08 0x17059 291 >; 292 }; 293 294 pinctrl_uart1: uart1grp { 295 fsl,pins = < 296 MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1 297 MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1 298 >; 299 }; 300 301 pinctrl_uart4: uart4grp { 302 fsl,pins = < 303 MX6UL_PAD_UART4_TX_DATA__UART4_DCE_TX 0x0b0b0 304 MX6UL_PAD_UART4_RX_DATA__UART4_DCE_RX 0x0b0b0 305 >; 306 }; 307 308 pinctrl_usdhc1: usdhc1grp { 309 fsl,pins = < 310 MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059 311 MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10059 312 MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059 313 MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059 314 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059 315 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059 316 >; 317 }; 318 319 pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp { 320 fsl,pins = < 321 MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170b9 322 MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100b9 323 MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9 324 MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9 325 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9 326 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9 327 >; 328 }; 329 330 pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp { 331 fsl,pins = < 332 MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170f9 333 MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100f9 334 MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9 335 MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9 336 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9 337 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9 338 >; 339 }; 340}; 341 342&iomuxc_snvs { 343 pinctrl_reg_usb1: regusb1grp { 344 fsl,pins = < 345 MX6ULL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x17059 346 >; 347 }; 348 349 pinctrl_reg_usb2: regusb2grp { 350 fsl,pins = < 351 MX6ULL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x17059 352 >; 353 }; 354 355 pinctrl_reg_ext_pwr: reg-ext-pwrgrp { 356 fsl,pins = < 357 MX6ULL_PAD_SNVS_TAMPER6__GPIO5_IO06 0x17059 358 >; 359 }; 360}; 361