| // SPDX-License-Identifier: GPL-2.0 |
| /* |
| * Copyright (C) 2025 Amarula Solutions, Dario Binacchi <dario.binacchi@amarulasolutions.com> |
| * Copyright (C) 2025 Engicam srl |
| */ |
| |
| /dts-v1/; |
| |
| #include "imx6ull-engicam-microgea.dtsi" |
| |
| / { |
| compatible = "engicam,microgea-imx6ull-bmm", |
| "engicam,microgea-imx6ull", "fsl,imx6ull"; |
| model = "Engicam MicroGEA i.MX6ULL BMM Board"; |
| |
| backlight { |
| compatible = "pwm-backlight"; |
| brightness-levels = <0 100>; |
| num-interpolated-steps = <100>; |
| default-brightness-level = <85>; |
| pwms = <&pwm8 0 100000 0>; |
| }; |
| |
| buzzer { |
| compatible = "pwm-beeper"; |
| pwms = <&pwm4 0 1000000 0>; |
| }; |
| |
| reg_1v8: regulator-1v8 { |
| compatible = "regulator-fixed"; |
| regulator-name = "1v8"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| }; |
| |
| reg_3v3: regulator-3v3 { |
| compatible = "regulator-fixed"; |
| regulator-name = "3v3"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| reg_usb1_vbus: regulator-usb1-vbus { |
| compatible = "regulator-fixed"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_reg_usb1>; |
| regulator-name = "usb1_vbus"; |
| regulator-min-microvolt = <5000000>; |
| regulator-max-microvolt = <5000000>; |
| gpio = <&gpio5 0 GPIO_ACTIVE_HIGH>; |
| enable-active-high; |
| }; |
| |
| reg_usb2_vbus: regulator-usb2-vbus { |
| compatible = "regulator-fixed"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_reg_usb2>; |
| regulator-name = "usbotg_vbus"; |
| regulator-min-microvolt = <5000000>; |
| regulator-max-microvolt = <5000000>; |
| gpio = <&gpio5 3 GPIO_ACTIVE_HIGH>; |
| enable-active-high; |
| }; |
| |
| reg_ext_pwr: regulator-ext-pwr { |
| compatible = "regulator-fixed"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_reg_ext_pwr>; |
| regulator-name = "ext-pwr"; |
| regulator-min-microvolt = <5000000>; |
| regulator-max-microvolt = <5000000>; |
| gpio = <&gpio5 6 GPIO_ACTIVE_HIGH>; |
| enable-active-high; |
| regulator-always-on; |
| }; |
| |
| sound { |
| compatible = "simple-audio-card"; |
| simple-audio-card,name = "imx6ull-microgea-bmm-sgtl5000"; |
| simple-audio-card,format = "i2s"; |
| simple-audio-card,bitclock-master = <&codec_dai>; |
| simple-audio-card,frame-master = <&codec_dai>; |
| simple-audio-card,widgets = |
| "Microphone", "Mic Jack", |
| "Headphone", "Headphone Jack"; |
| simple-audio-card,routing = |
| "MIC_IN", "Mic Jack", |
| "Mic Jack", "Mic Bias", |
| "Headphone Jack", "HP_OUT"; |
| |
| cpu_dai: simple-audio-card,cpu { |
| sound-dai = <&sai2>; |
| }; |
| |
| codec_dai: simple-audio-card,codec { |
| sound-dai = <&codec>; |
| }; |
| }; |
| }; |
| |
| &can1 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_can>; |
| status = "okay"; |
| }; |
| |
| &i2c2 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_i2c2>; |
| clock-frequency = <100000>; |
| status = "okay"; |
| |
| codec: audio-codec@a { |
| compatible = "fsl,sgtl5000"; |
| reg = <0x0a>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_mclk>; |
| #sound-dai-cells = <0>; |
| clocks = <&clks IMX6UL_CLK_CKO>; |
| assigned-clocks = <&clks IMX6UL_CLK_CKO2_SEL>, |
| <&clks IMX6UL_CLK_CKO2_PODF>, |
| <&clks IMX6UL_CLK_CKO2>, |
| <&clks IMX6UL_CLK_CKO>; |
| assigned-clock-parents = <&clks IMX6UL_CLK_OSC>, |
| <&clks IMX6UL_CLK_CKO2_SEL>, |
| <&clks IMX6UL_CLK_CKO2_PODF>, |
| <&clks IMX6UL_CLK_CKO2>; |
| VDDA-supply = <®_3v3>; |
| VDDIO-supply = <®_3v3>; |
| VDDD-supply = <®_1v8>; |
| }; |
| }; |
| |
| &pwm4 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_pwm4>; |
| status = "okay"; |
| }; |
| |
| &pwm8 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_pwm8>; |
| status = "okay"; |
| }; |
| |
| &sai2 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_sai2>; |
| status = "okay"; |
| }; |
| |
| &tsc { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_tsc>; |
| measure-delay-time = <0x9ffff>; |
| pre-charge-time = <0xfff>; |
| xnur-gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; |
| status = "okay"; |
| }; |
| |
| &uart1 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_uart1>; |
| status = "okay"; |
| }; |
| |
| &usbotg1 { |
| dr_mode = "host"; |
| vbus-supply = <®_usb1_vbus>; |
| status = "okay"; |
| }; |
| |
| &usbotg2 { |
| dr_mode = "host"; |
| vbus-supply = <®_usb2_vbus>; |
| status = "okay"; |
| }; |
| |
| /* MicroSD */ |
| &usdhc1 { |
| pinctrl-names = "default", "state_100mhz", "state_200mhz"; |
| pinctrl-0 = <&pinctrl_usdhc1>; |
| pinctrl-1 = <&pinctrl_usdhc1_100mhz>; |
| pinctrl-2 = <&pinctrl_usdhc1_200mhz>; |
| vmmc-supply = <®_3v3>; |
| bus-width = <4>; |
| keep-power-in-suspend; |
| non-removable; |
| wakeup-source; |
| status = "okay"; |
| }; |
| |
| &iomuxc { |
| pinctrl_can: can-grp { |
| fsl,pins = < |
| MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x1b020 |
| MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x1b020 |
| >; |
| }; |
| |
| pinctrl_i2c2: i2c2grp { |
| fsl,pins = < |
| MX6UL_PAD_GPIO1_IO00__I2C2_SCL 0x4001b8b0 |
| MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4001b8b0 |
| >; |
| }; |
| |
| pinctrl_mclk: mclkgrp { |
| fsl,pins = < |
| MX6UL_PAD_JTAG_TMS__CCM_CLKO1 0x13009 |
| >; |
| }; |
| |
| pinctrl_pwm4: pwm4grp { |
| fsl,pins = < |
| MX6UL_PAD_GPIO1_IO05__PWM4_OUT 0x110b0 |
| >; |
| }; |
| |
| pinctrl_pwm8: pwm8grp { |
| fsl,pins = < |
| MX6UL_PAD_ENET1_RX_ER__PWM8_OUT 0x11008 |
| >; |
| }; |
| |
| pinctrl_sai2: sai2grp { |
| fsl,pins = < |
| MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x130b0 |
| MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x17088 |
| MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x17088 |
| MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x120b0 |
| >; |
| }; |
| |
| pinctrl_tsc: tscgrp { |
| fsl,pins = < |
| MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0x000b0 |
| MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0x000b0 |
| MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0x000b0 |
| MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0x000b0 |
| >; |
| }; |
| |
| pinctrl_uart1: uart1grp { |
| fsl,pins = < |
| MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1 |
| MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1 |
| >; |
| }; |
| |
| pinctrl_usdhc1: usdhc1grp { |
| fsl,pins = < |
| MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059 |
| MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10059 |
| MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059 |
| MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059 |
| MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059 |
| MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059 |
| >; |
| }; |
| |
| pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp { |
| fsl,pins = < |
| MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170b9 |
| MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100b9 |
| MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9 |
| MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9 |
| MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9 |
| MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9 |
| >; |
| }; |
| |
| pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp { |
| fsl,pins = < |
| MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170f9 |
| MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100f9 |
| MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9 |
| MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9 |
| MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9 |
| MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9 |
| >; |
| }; |
| }; |
| |
| &iomuxc_snvs { |
| pinctrl_reg_usb1: regusb1grp { |
| fsl,pins = < |
| MX6ULL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x17059 |
| >; |
| }; |
| |
| pinctrl_reg_usb2: regusb2grp { |
| fsl,pins = < |
| MX6ULL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x17059 |
| >; |
| }; |
| |
| pinctrl_reg_ext_pwr: reg-ext-pwrgrp { |
| fsl,pins = < |
| MX6ULL_PAD_SNVS_TAMPER6__GPIO5_IO06 0x17059 |
| >; |
| }; |
| }; |