1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright (C) 2025 Amarula Solutions, Dario Binacchi <dario.binacchi@amarulasolutions.com> 4 */ 5 6/dts-v1/; 7 8#include "imx28.dtsi" 9#include <dt-bindings/gpio/gpio.h> 10#include <dt-bindings/interrupt-controller/irq.h> 11 12/ { 13 compatible = "amarula,imx28-rmm", "fsl,imx28"; 14 model = "Amarula i.MX28 rmm"; 15 16 memory@40000000 { 17 reg = <0x40000000 0x08000000>; 18 device_type = "memory"; 19 }; 20 21 backlight { 22 compatible = "pwm-backlight"; 23 pwms = <&pwm 4 5000000 0>; 24 brightness-levels = <0 255>; 25 num-interpolated-steps = <255>; 26 default-brightness-level = <255>; 27 power-supply = <®_5v>; 28 }; 29 30 beeper { 31 compatible = "pwm-beeper"; 32 pwms = <&pwm 7 100000 0>; 33 }; 34 35 leds { 36 compatible = "gpio-leds"; 37 pinctrl-names = "default"; 38 pinctrl-0 = <&leds_pins>; 39 40 led-0 { 41 gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>; 42 default-state = "off"; 43 }; 44 45 led-1 { 46 gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>; 47 default-state = "off"; 48 }; 49 50 led-2 { 51 gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>; 52 default-state = "off"; 53 }; 54 }; 55 56 reg_1v8: regulator-1v8 { 57 compatible = "regulator-fixed"; 58 regulator-name = "1v8"; 59 regulator-min-microvolt = <1800000>; 60 regulator-max-microvolt = <1800000>; 61 }; 62 63 reg_3v3: regulator-3v3 { 64 compatible = "regulator-fixed"; 65 regulator-name = "3v3"; 66 regulator-min-microvolt = <3300000>; 67 regulator-max-microvolt = <3300000>; 68 regulator-always-on; 69 }; 70 71 reg_5v: regulator-5v { 72 compatible = "regulator-fixed"; 73 regulator-name = "5v"; 74 regulator-min-microvolt = <5000000>; 75 regulator-max-microvolt = <5000000>; 76 regulator-always-on; 77 }; 78 79 reg_fec_3v3: regulator-fec-3v3 { 80 compatible = "regulator-fixed"; 81 pinctrl-names = "default"; 82 pinctrl-0 = <&fec_3v3_enable_pin>; 83 regulator-name = "fec-3v3"; 84 regulator-min-microvolt = <3300000>; 85 regulator-max-microvolt = <3300000>; 86 gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>; 87 enable-active-high; 88 startup-delay-us = <300000>; 89 vin-supply = <®_5v>; 90 }; 91 92 reg_usb0_vbus: regulator-usb0-vbus { 93 compatible = "regulator-fixed"; 94 pinctrl-names = "default"; 95 pinctrl-0 = <&usb0_vbus_enable_pin>; 96 regulator-name = "usb0_vbus"; 97 regulator-min-microvolt = <5000000>; 98 regulator-max-microvolt = <5000000>; 99 gpio = <&gpio2 5 GPIO_ACTIVE_HIGH>; 100 enable-active-high; 101 regulator-always-on; 102 }; 103 104 reg_usb1_vbus: regulator-usb1-vbus { 105 compatible = "regulator-fixed"; 106 pinctrl-names = "default"; 107 pinctrl-0 = <&usb1_vbus_enable_pin>; 108 regulator-name = "usb1_vbus"; 109 regulator-min-microvolt = <5000000>; 110 regulator-max-microvolt = <5000000>; 111 gpio = <&gpio2 6 GPIO_ACTIVE_HIGH>; 112 enable-active-high; 113 regulator-always-on; 114 }; 115}; 116 117&auart0 { 118 pinctrl-names = "default"; 119 pinctrl-0 = <&auart0_2pins_a>; 120 status = "okay"; 121}; 122 123&auart1 { 124 pinctrl-names = "default"; 125 pinctrl-0 = <&auart1_pins_a>; 126 status = "okay"; 127}; 128 129&can0 { 130 pinctrl-names = "default"; 131 pinctrl-0 = <&can0_pins_a>; 132 status = "okay"; 133}; 134 135&duart { 136 pinctrl-names = "default"; 137 pinctrl-0 = <&duart_pins_b>; 138 status = "okay"; 139}; 140 141&duart_pins_b { 142 fsl,voltage = <MXS_VOLTAGE_LOW>; 143}; 144 145&gpmi { 146 #size-cells = <0>; 147 pinctrl-names = "default"; 148 pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>; 149 status = "okay"; 150}; 151 152&i2c0 { 153 pinctrl-names = "default"; 154 pinctrl-0 = <&i2c0_pins_a>; 155 status = "okay"; 156 157 touchscreen: touchscreen@38 { 158 compatible = "edt,edt-ft5306"; 159 reg = <0x38>; 160 pinctrl-names = "default"; 161 pinctrl-0 = <&edt_ft5x06_pins &edt_ft5x06_wake_pin>; 162 interrupt-parent = <&gpio0>; 163 interrupts = <19 IRQ_TYPE_EDGE_RISING>; 164 reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>; 165 wake-gpios = <&gpio0 18 GPIO_ACTIVE_HIGH>; 166 }; 167}; 168 169&lradc { 170 status = "okay"; 171}; 172 173&mac0 { 174 pinctrl-names = "default"; 175 pinctrl-0 = <&mac0_pins_a>; 176 phy-mode = "rmii"; 177 phy-supply = <®_fec_3v3>; 178 phy-handle = <ðphy>; 179 status = "okay"; 180 181 mdio { 182 #address-cells = <1>; 183 #size-cells = <0>; 184 185 ethphy: ethernet-phy@0 { 186 compatible = "ethernet-phy-ieee802.3-c22"; 187 reg = <0>; 188 max-speed = <100>; 189 reset-gpios = <&gpio3 28 GPIO_ACTIVE_LOW>; 190 reset-assert-us = <4000>; 191 reset-deassert-us = <4000>; 192 }; 193 }; 194}; 195 196&pinctrl { 197 pinctrl-names = "default"; 198 pinctrl-0 = <&hog_pins_a>; 199 200 edt_ft5x06_pins: edt-ft5x06@0 { 201 reg = <0>; 202 fsl,pinmux-ids = < 203 MX28_PAD_GPMI_RDY1__GPIO_0_21 /* Reset */ 204 MX28_PAD_GPMI_CE3N__GPIO_0_19 /* Interrupt */ 205 >; 206 fsl,drive-strength = <MXS_DRIVE_4mA>; 207 fsl,pull-up = <MXS_PULL_ENABLE>; 208 fsl,voltage = <MXS_VOLTAGE_HIGH>; 209 }; 210 211 edt_ft5x06_wake_pin: edt-ft5x06-wake@0 { 212 reg = <0>; 213 fsl,pinmux-ids = <MX28_PAD_GPMI_CE2N__GPIO_0_18>; 214 fsl,drive-strength = <MXS_DRIVE_16mA>; 215 fsl,pull-up = <MXS_PULL_DISABLE>; 216 fsl,voltage = <MXS_VOLTAGE_HIGH>; 217 }; 218 219 fec_3v3_enable_pin: fec-3v3-enable@0 { 220 reg = <0>; 221 fsl,pinmux-ids = <MX28_PAD_SPDIF__GPIO_3_27>; 222 fsl,drive-strength = <MXS_DRIVE_4mA>; 223 fsl,pull-up = <MXS_PULL_DISABLE>; 224 fsl,voltage = <MXS_VOLTAGE_HIGH>; 225 }; 226 227 hog_pins_a: hog@0 { 228 reg = <0>; 229 fsl,pinmux-ids = < 230 MX28_PAD_SSP2_SS1__GPIO_2_20 /* External power */ 231 >; 232 fsl,drive-strength = <MXS_DRIVE_4mA>; 233 fsl,pull-up = <MXS_PULL_DISABLE>; 234 fsl,voltage = <MXS_VOLTAGE_HIGH>; 235 }; 236 237 leds_pins: leds@0 { 238 reg = <0>; 239 fsl,pinmux-ids = < 240 MX28_PAD_SSP0_DATA7__GPIO_2_7 241 MX28_PAD_PWM0__GPIO_3_16 242 MX28_PAD_PWM1__GPIO_3_17 243 >; 244 fsl,drive-strength = <MXS_DRIVE_4mA>; 245 fsl,pull-up = <MXS_PULL_DISABLE>; 246 fsl,voltage = <MXS_VOLTAGE_HIGH>; 247 }; 248 249 usb0_vbus_enable_pin: usb0-vbus-enable@0 { 250 reg = <0>; 251 fsl,pinmux-ids = <MX28_PAD_SSP0_DATA5__GPIO_2_5>; 252 fsl,drive-strength = <MXS_DRIVE_4mA>; 253 fsl,pull-up = <MXS_PULL_DISABLE>; 254 fsl,voltage = <MXS_VOLTAGE_HIGH>; 255 }; 256 257 usb1_vbus_enable_pin: usb1-vbus-enable@0 { 258 reg = <0>; 259 fsl,pinmux-ids = <MX28_PAD_SSP0_DATA6__GPIO_2_6>; 260 fsl,drive-strength = <MXS_DRIVE_4mA>; 261 fsl,pull-up = <MXS_PULL_DISABLE>; 262 fsl,voltage = <MXS_VOLTAGE_HIGH>; 263 }; 264}; 265 266&pwm { 267 pinctrl-names = "default"; 268 pinctrl-0 = <&pwm4_pins_a &pwm7_pins_a>; 269 status = "okay"; 270}; 271 272/* microSD */ 273&ssp0 { 274 compatible = "fsl,imx28-mmc"; 275 pinctrl-names = "default"; 276 pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_sck_cfg>; 277 broken-cd; 278 bus-width = <4>; 279 status = "okay"; 280}; 281 282&usb0 { 283 dr_mode = "host"; 284 vbus-supply = <®_usb0_vbus>; 285 status = "okay"; 286}; 287 288&usb1 { 289 dr_mode = "host"; 290 vbus-supply = <®_usb1_vbus>; 291 status = "okay"; 292}; 293 294&usbphy0 { 295 status = "okay"; 296}; 297 298&usbphy1 { 299 status = "okay"; 300}; 301