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