// SPDX-License-Identifier: GPL-2.0 /* * Copyright (C) 2025 Amarula Solutions, Dario Binacchi */ /dts-v1/; #include "imx28.dtsi" #include #include / { compatible = "amarula,imx28-rmm", "fsl,imx28"; model = "Amarula i.MX28 rmm"; memory@40000000 { reg = <0x40000000 0x08000000>; device_type = "memory"; }; backlight { compatible = "pwm-backlight"; pwms = <&pwm 4 5000000 0>; brightness-levels = <0 255>; num-interpolated-steps = <255>; default-brightness-level = <255>; power-supply = <®_5v>; }; beeper { compatible = "pwm-beeper"; pwms = <&pwm 7 100000 0>; }; leds { compatible = "gpio-leds"; pinctrl-names = "default"; pinctrl-0 = <&leds_pins>; led-0 { gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>; default-state = "off"; }; led-1 { gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>; default-state = "off"; }; led-2 { gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>; default-state = "off"; }; }; 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>; regulator-always-on; }; reg_5v: regulator-5v { compatible = "regulator-fixed"; regulator-name = "5v"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; }; reg_fec_3v3: regulator-fec-3v3 { compatible = "regulator-fixed"; pinctrl-names = "default"; pinctrl-0 = <&fec_3v3_enable_pin>; regulator-name = "fec-3v3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>; enable-active-high; startup-delay-us = <300000>; vin-supply = <®_5v>; }; reg_usb0_vbus: regulator-usb0-vbus { compatible = "regulator-fixed"; pinctrl-names = "default"; pinctrl-0 = <&usb0_vbus_enable_pin>; regulator-name = "usb0_vbus"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; gpio = <&gpio2 5 GPIO_ACTIVE_HIGH>; enable-active-high; regulator-always-on; }; reg_usb1_vbus: regulator-usb1-vbus { compatible = "regulator-fixed"; pinctrl-names = "default"; pinctrl-0 = <&usb1_vbus_enable_pin>; regulator-name = "usb1_vbus"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; gpio = <&gpio2 6 GPIO_ACTIVE_HIGH>; enable-active-high; regulator-always-on; }; }; &auart0 { pinctrl-names = "default"; pinctrl-0 = <&auart0_2pins_a>; status = "okay"; }; &auart1 { pinctrl-names = "default"; pinctrl-0 = <&auart1_pins_a>; status = "okay"; }; &can0 { pinctrl-names = "default"; pinctrl-0 = <&can0_pins_a>; status = "okay"; }; &duart { pinctrl-names = "default"; pinctrl-0 = <&duart_pins_b>; status = "okay"; }; &duart_pins_b { fsl,voltage = ; }; &gpmi { #size-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>; status = "okay"; }; &i2c0 { pinctrl-names = "default"; pinctrl-0 = <&i2c0_pins_a>; status = "okay"; touchscreen: touchscreen@38 { compatible = "edt,edt-ft5306"; reg = <0x38>; pinctrl-names = "default"; pinctrl-0 = <&edt_ft5x06_pins &edt_ft5x06_wake_pin>; interrupt-parent = <&gpio0>; interrupts = <19 IRQ_TYPE_EDGE_RISING>; reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>; wake-gpios = <&gpio0 18 GPIO_ACTIVE_HIGH>; }; }; &lradc { status = "okay"; }; &mac0 { pinctrl-names = "default"; pinctrl-0 = <&mac0_pins_a>; phy-mode = "rmii"; phy-supply = <®_fec_3v3>; phy-handle = <ðphy>; status = "okay"; mdio { #address-cells = <1>; #size-cells = <0>; ethphy: ethernet-phy@0 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <0>; max-speed = <100>; reset-gpios = <&gpio3 28 GPIO_ACTIVE_LOW>; reset-assert-us = <4000>; reset-deassert-us = <4000>; }; }; }; &pinctrl { pinctrl-names = "default"; pinctrl-0 = <&hog_pins_a>; edt_ft5x06_pins: edt-ft5x06@0 { reg = <0>; fsl,pinmux-ids = < MX28_PAD_GPMI_RDY1__GPIO_0_21 /* Reset */ MX28_PAD_GPMI_CE3N__GPIO_0_19 /* Interrupt */ >; fsl,drive-strength = ; fsl,pull-up = ; fsl,voltage = ; }; edt_ft5x06_wake_pin: edt-ft5x06-wake@0 { reg = <0>; fsl,pinmux-ids = ; fsl,drive-strength = ; fsl,pull-up = ; fsl,voltage = ; }; fec_3v3_enable_pin: fec-3v3-enable@0 { reg = <0>; fsl,pinmux-ids = ; fsl,drive-strength = ; fsl,pull-up = ; fsl,voltage = ; }; hog_pins_a: hog@0 { reg = <0>; fsl,pinmux-ids = < MX28_PAD_SSP2_SS1__GPIO_2_20 /* External power */ >; fsl,drive-strength = ; fsl,pull-up = ; fsl,voltage = ; }; leds_pins: leds@0 { reg = <0>; fsl,pinmux-ids = < MX28_PAD_SSP0_DATA7__GPIO_2_7 MX28_PAD_PWM0__GPIO_3_16 MX28_PAD_PWM1__GPIO_3_17 >; fsl,drive-strength = ; fsl,pull-up = ; fsl,voltage = ; }; usb0_vbus_enable_pin: usb0-vbus-enable@0 { reg = <0>; fsl,pinmux-ids = ; fsl,drive-strength = ; fsl,pull-up = ; fsl,voltage = ; }; usb1_vbus_enable_pin: usb1-vbus-enable@0 { reg = <0>; fsl,pinmux-ids = ; fsl,drive-strength = ; fsl,pull-up = ; fsl,voltage = ; }; }; &pwm { pinctrl-names = "default"; pinctrl-0 = <&pwm4_pins_a &pwm7_pins_a>; status = "okay"; }; /* microSD */ &ssp0 { compatible = "fsl,imx28-mmc"; pinctrl-names = "default"; pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_sck_cfg>; broken-cd; bus-width = <4>; status = "okay"; }; &usb0 { dr_mode = "host"; vbus-supply = <®_usb0_vbus>; status = "okay"; }; &usb1 { dr_mode = "host"; vbus-supply = <®_usb1_vbus>; status = "okay"; }; &usbphy0 { status = "okay"; }; &usbphy1 { status = "okay"; };