1*33583fa5SPrimoz Fiser// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*33583fa5SPrimoz Fiser/* 3*33583fa5SPrimoz Fiser * Copyright (C) 2025 PHYTEC Messtechnik GmbH 4*33583fa5SPrimoz Fiser * Author: Christoph Stoidner <c.stoidner@phytec.de> 5*33583fa5SPrimoz Fiser * 6*33583fa5SPrimoz Fiser * Product homepage: 7*33583fa5SPrimoz Fiser * https://www.phytec.eu/en/produkte/system-on-modules/phycore-imx-91-93/ 8*33583fa5SPrimoz Fiser */ 9*33583fa5SPrimoz Fiser 10*33583fa5SPrimoz Fiser#include <dt-bindings/leds/common.h> 11*33583fa5SPrimoz Fiser 12*33583fa5SPrimoz Fiser#include "imx91.dtsi" 13*33583fa5SPrimoz Fiser 14*33583fa5SPrimoz Fiser/ { 15*33583fa5SPrimoz Fiser model = "PHYTEC phyCORE-i.MX91"; 16*33583fa5SPrimoz Fiser compatible = "phytec,imx91-phycore-som", "fsl,imx91"; 17*33583fa5SPrimoz Fiser 18*33583fa5SPrimoz Fiser aliases { 19*33583fa5SPrimoz Fiser ethernet0 = &fec; 20*33583fa5SPrimoz Fiser }; 21*33583fa5SPrimoz Fiser 22*33583fa5SPrimoz Fiser reserved-memory { 23*33583fa5SPrimoz Fiser ranges; 24*33583fa5SPrimoz Fiser #address-cells = <2>; 25*33583fa5SPrimoz Fiser #size-cells = <2>; 26*33583fa5SPrimoz Fiser 27*33583fa5SPrimoz Fiser linux,cma { 28*33583fa5SPrimoz Fiser compatible = "shared-dma-pool"; 29*33583fa5SPrimoz Fiser reusable; 30*33583fa5SPrimoz Fiser alloc-ranges = <0 0x80000000 0 0x40000000>; 31*33583fa5SPrimoz Fiser size = <0 0x10000000>; 32*33583fa5SPrimoz Fiser linux,cma-default; 33*33583fa5SPrimoz Fiser }; 34*33583fa5SPrimoz Fiser }; 35*33583fa5SPrimoz Fiser 36*33583fa5SPrimoz Fiser leds { 37*33583fa5SPrimoz Fiser compatible = "gpio-leds"; 38*33583fa5SPrimoz Fiser pinctrl-names = "default"; 39*33583fa5SPrimoz Fiser pinctrl-0 = <&pinctrl_leds>; 40*33583fa5SPrimoz Fiser 41*33583fa5SPrimoz Fiser led-0 { 42*33583fa5SPrimoz Fiser color = <LED_COLOR_ID_GREEN>; 43*33583fa5SPrimoz Fiser function = LED_FUNCTION_HEARTBEAT; 44*33583fa5SPrimoz Fiser gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>; 45*33583fa5SPrimoz Fiser linux,default-trigger = "heartbeat"; 46*33583fa5SPrimoz Fiser }; 47*33583fa5SPrimoz Fiser }; 48*33583fa5SPrimoz Fiser 49*33583fa5SPrimoz Fiser reg_vdda_1v8: regulator-vdda-1v8 { 50*33583fa5SPrimoz Fiser compatible = "regulator-fixed"; 51*33583fa5SPrimoz Fiser regulator-name = "VDDA_1V8"; 52*33583fa5SPrimoz Fiser regulator-max-microvolt = <1800000>; 53*33583fa5SPrimoz Fiser regulator-min-microvolt = <1800000>; 54*33583fa5SPrimoz Fiser vin-supply = <&buck5>; 55*33583fa5SPrimoz Fiser }; 56*33583fa5SPrimoz Fiser}; 57*33583fa5SPrimoz Fiser 58*33583fa5SPrimoz Fiser/* ADC */ 59*33583fa5SPrimoz Fiser&adc1 { 60*33583fa5SPrimoz Fiser vref-supply = <®_vdda_1v8>; 61*33583fa5SPrimoz Fiser}; 62*33583fa5SPrimoz Fiser 63*33583fa5SPrimoz Fiser/* Ethernet */ 64*33583fa5SPrimoz Fiser&fec { 65*33583fa5SPrimoz Fiser pinctrl-names = "default"; 66*33583fa5SPrimoz Fiser pinctrl-0 = <&pinctrl_fec>; 67*33583fa5SPrimoz Fiser phy-mode = "rmii"; 68*33583fa5SPrimoz Fiser phy-handle = <ðphy1>; 69*33583fa5SPrimoz Fiser 70*33583fa5SPrimoz Fiser assigned-clocks = <&clk IMX91_CLK_ENET_TIMER>, 71*33583fa5SPrimoz Fiser <&clk IMX91_CLK_ENET2_REGULAR>; 72*33583fa5SPrimoz Fiser assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>, 73*33583fa5SPrimoz Fiser <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>; 74*33583fa5SPrimoz Fiser assigned-clock-rates = <100000000>, <50000000>; 75*33583fa5SPrimoz Fiser status = "okay"; 76*33583fa5SPrimoz Fiser 77*33583fa5SPrimoz Fiser mdio: mdio { 78*33583fa5SPrimoz Fiser clock-frequency = <5000000>; 79*33583fa5SPrimoz Fiser #address-cells = <1>; 80*33583fa5SPrimoz Fiser #size-cells = <0>; 81*33583fa5SPrimoz Fiser 82*33583fa5SPrimoz Fiser ethphy1: ethernet-phy@1 { 83*33583fa5SPrimoz Fiser compatible = "ethernet-phy-ieee802.3-c22"; 84*33583fa5SPrimoz Fiser reg = <1>; 85*33583fa5SPrimoz Fiser reset-gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>; 86*33583fa5SPrimoz Fiser reset-assert-us = <30>; 87*33583fa5SPrimoz Fiser }; 88*33583fa5SPrimoz Fiser }; 89*33583fa5SPrimoz Fiser}; 90*33583fa5SPrimoz Fiser 91*33583fa5SPrimoz Fiser/* I2C3 */ 92*33583fa5SPrimoz Fiser&lpi2c3 { 93*33583fa5SPrimoz Fiser clock-frequency = <400000>; 94*33583fa5SPrimoz Fiser pinctrl-names = "default", "gpio"; 95*33583fa5SPrimoz Fiser pinctrl-0 = <&pinctrl_lpi2c3>; 96*33583fa5SPrimoz Fiser pinctrl-1 = <&pinctrl_lpi2c3_gpio>; 97*33583fa5SPrimoz Fiser scl-gpios = <&gpio2 29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 98*33583fa5SPrimoz Fiser sda-gpios = <&gpio2 28 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 99*33583fa5SPrimoz Fiser status = "okay"; 100*33583fa5SPrimoz Fiser 101*33583fa5SPrimoz Fiser pmic@25 { 102*33583fa5SPrimoz Fiser compatible = "nxp,pca9451a"; 103*33583fa5SPrimoz Fiser reg = <0x25>; 104*33583fa5SPrimoz Fiser pinctrl-names = "default"; 105*33583fa5SPrimoz Fiser pinctrl-0 = <&pinctrl_pmic>; 106*33583fa5SPrimoz Fiser interrupt-parent = <&gpio4>; 107*33583fa5SPrimoz Fiser interrupts = <27 IRQ_TYPE_LEVEL_LOW>; 108*33583fa5SPrimoz Fiser 109*33583fa5SPrimoz Fiser regulators { 110*33583fa5SPrimoz Fiser buck1: BUCK1 { 111*33583fa5SPrimoz Fiser regulator-name = "VDD_SOC"; 112*33583fa5SPrimoz Fiser regulator-max-microvolt = <950000>; 113*33583fa5SPrimoz Fiser regulator-min-microvolt = <610000>; 114*33583fa5SPrimoz Fiser regulator-boot-on; 115*33583fa5SPrimoz Fiser regulator-always-on; 116*33583fa5SPrimoz Fiser regulator-ramp-delay = <3125>; 117*33583fa5SPrimoz Fiser }; 118*33583fa5SPrimoz Fiser 119*33583fa5SPrimoz Fiser buck2: BUCK2 { 120*33583fa5SPrimoz Fiser regulator-name = "VDDQ_0V6"; 121*33583fa5SPrimoz Fiser regulator-max-microvolt = <600000>; 122*33583fa5SPrimoz Fiser regulator-min-microvolt = <600000>; 123*33583fa5SPrimoz Fiser regulator-boot-on; 124*33583fa5SPrimoz Fiser regulator-always-on; 125*33583fa5SPrimoz Fiser }; 126*33583fa5SPrimoz Fiser 127*33583fa5SPrimoz Fiser buck4: BUCK4 { 128*33583fa5SPrimoz Fiser regulator-name = "VDD_3V3_BUCK"; 129*33583fa5SPrimoz Fiser regulator-max-microvolt = <3300000>; 130*33583fa5SPrimoz Fiser regulator-min-microvolt = <3300000>; 131*33583fa5SPrimoz Fiser regulator-boot-on; 132*33583fa5SPrimoz Fiser regulator-always-on; 133*33583fa5SPrimoz Fiser }; 134*33583fa5SPrimoz Fiser 135*33583fa5SPrimoz Fiser buck5: BUCK5 { 136*33583fa5SPrimoz Fiser regulator-name = "VDD_1V8"; 137*33583fa5SPrimoz Fiser regulator-max-microvolt = <1800000>; 138*33583fa5SPrimoz Fiser regulator-min-microvolt = <1800000>; 139*33583fa5SPrimoz Fiser regulator-boot-on; 140*33583fa5SPrimoz Fiser regulator-always-on; 141*33583fa5SPrimoz Fiser }; 142*33583fa5SPrimoz Fiser 143*33583fa5SPrimoz Fiser buck6: BUCK6 { 144*33583fa5SPrimoz Fiser regulator-name = "VDD_1V1"; 145*33583fa5SPrimoz Fiser regulator-max-microvolt = <1100000>; 146*33583fa5SPrimoz Fiser regulator-min-microvolt = <1100000>; 147*33583fa5SPrimoz Fiser regulator-boot-on; 148*33583fa5SPrimoz Fiser regulator-always-on; 149*33583fa5SPrimoz Fiser }; 150*33583fa5SPrimoz Fiser 151*33583fa5SPrimoz Fiser ldo1: LDO1 { 152*33583fa5SPrimoz Fiser regulator-name = "PMIC_SNVS_1V8"; 153*33583fa5SPrimoz Fiser regulator-max-microvolt = <1800000>; 154*33583fa5SPrimoz Fiser regulator-min-microvolt = <1800000>; 155*33583fa5SPrimoz Fiser regulator-boot-on; 156*33583fa5SPrimoz Fiser regulator-always-on; 157*33583fa5SPrimoz Fiser }; 158*33583fa5SPrimoz Fiser 159*33583fa5SPrimoz Fiser ldo4: LDO4 { 160*33583fa5SPrimoz Fiser regulator-name = "VDD_0V8"; 161*33583fa5SPrimoz Fiser regulator-max-microvolt = <800000>; 162*33583fa5SPrimoz Fiser regulator-min-microvolt = <800000>; 163*33583fa5SPrimoz Fiser regulator-boot-on; 164*33583fa5SPrimoz Fiser regulator-always-on; 165*33583fa5SPrimoz Fiser }; 166*33583fa5SPrimoz Fiser 167*33583fa5SPrimoz Fiser ldo5: LDO5 { 168*33583fa5SPrimoz Fiser regulator-name = "NVCC_SD2"; 169*33583fa5SPrimoz Fiser regulator-max-microvolt = <3300000>; 170*33583fa5SPrimoz Fiser regulator-min-microvolt = <1800000>; 171*33583fa5SPrimoz Fiser regulator-boot-on; 172*33583fa5SPrimoz Fiser regulator-always-on; 173*33583fa5SPrimoz Fiser }; 174*33583fa5SPrimoz Fiser }; 175*33583fa5SPrimoz Fiser }; 176*33583fa5SPrimoz Fiser 177*33583fa5SPrimoz Fiser /* EEPROM */ 178*33583fa5SPrimoz Fiser eeprom@50 { 179*33583fa5SPrimoz Fiser compatible = "atmel,24c32"; 180*33583fa5SPrimoz Fiser reg = <0x50>; 181*33583fa5SPrimoz Fiser pagesize = <32>; 182*33583fa5SPrimoz Fiser vcc-supply = <&buck4>; 183*33583fa5SPrimoz Fiser }; 184*33583fa5SPrimoz Fiser}; 185*33583fa5SPrimoz Fiser 186*33583fa5SPrimoz Fiser/* eMMC */ 187*33583fa5SPrimoz Fiser&usdhc1 { 188*33583fa5SPrimoz Fiser pinctrl-names = "default", "state_100mhz", "state_200mhz"; 189*33583fa5SPrimoz Fiser pinctrl-0 = <&pinctrl_usdhc1>; 190*33583fa5SPrimoz Fiser pinctrl-1 = <&pinctrl_usdhc1_100mhz>; 191*33583fa5SPrimoz Fiser pinctrl-2 = <&pinctrl_usdhc1_200mhz>; 192*33583fa5SPrimoz Fiser bus-width = <8>; 193*33583fa5SPrimoz Fiser non-removable; 194*33583fa5SPrimoz Fiser no-1-8-v; 195*33583fa5SPrimoz Fiser status = "okay"; 196*33583fa5SPrimoz Fiser}; 197*33583fa5SPrimoz Fiser 198*33583fa5SPrimoz Fiser/* Watchdog */ 199*33583fa5SPrimoz Fiser&wdog3 { 200*33583fa5SPrimoz Fiser pinctrl-names = "default"; 201*33583fa5SPrimoz Fiser pinctrl-0 = <&pinctrl_wdog>; 202*33583fa5SPrimoz Fiser fsl,ext-reset-output; 203*33583fa5SPrimoz Fiser status = "okay"; 204*33583fa5SPrimoz Fiser}; 205*33583fa5SPrimoz Fiser 206*33583fa5SPrimoz Fiser&iomuxc { 207*33583fa5SPrimoz Fiser pinctrl_fec: fecgrp { 208*33583fa5SPrimoz Fiser fsl,pins = < 209*33583fa5SPrimoz Fiser MX91_PAD_ENET2_MDC__ENET2_MDC 0x50e 210*33583fa5SPrimoz Fiser MX91_PAD_ENET2_MDIO__ENET2_MDIO 0x502 211*33583fa5SPrimoz Fiser /* the three pins below are connected to PHYs straps, 212*33583fa5SPrimoz Fiser * that is what the pull-up/down setting is for. 213*33583fa5SPrimoz Fiser */ 214*33583fa5SPrimoz Fiser MX91_PAD_ENET2_RD0__ENET2_RGMII_RD0 0x37e 215*33583fa5SPrimoz Fiser MX91_PAD_ENET2_RD1__ENET2_RGMII_RD1 0x37e 216*33583fa5SPrimoz Fiser MX91_PAD_ENET2_RX_CTL__ENET2_RGMII_RX_CTL 0x57e 217*33583fa5SPrimoz Fiser MX91_PAD_ENET2_TD0__ENET2_RGMII_TD0 0x50e 218*33583fa5SPrimoz Fiser MX91_PAD_ENET2_TD1__ENET2_RGMII_TD1 0x50e 219*33583fa5SPrimoz Fiser MX91_PAD_ENET2_TX_CTL__ENET2_RGMII_TX_CTL 0x50e 220*33583fa5SPrimoz Fiser MX91_PAD_ENET2_TD2__ENET2_TX_CLK2 0x4000050e 221*33583fa5SPrimoz Fiser MX91_PAD_ENET2_RXC__GPIO4_IO23 0x51e 222*33583fa5SPrimoz Fiser >; 223*33583fa5SPrimoz Fiser }; 224*33583fa5SPrimoz Fiser 225*33583fa5SPrimoz Fiser pinctrl_leds: ledsgrp { 226*33583fa5SPrimoz Fiser fsl,pins = < 227*33583fa5SPrimoz Fiser MX91_PAD_I2C1_SDA__GPIO1_IO1 0x11e 228*33583fa5SPrimoz Fiser >; 229*33583fa5SPrimoz Fiser }; 230*33583fa5SPrimoz Fiser 231*33583fa5SPrimoz Fiser pinctrl_lpi2c3: lpi2c3grp { 232*33583fa5SPrimoz Fiser fsl,pins = < 233*33583fa5SPrimoz Fiser MX91_PAD_GPIO_IO28__LPI2C3_SDA 0x40000b9e 234*33583fa5SPrimoz Fiser MX91_PAD_GPIO_IO29__LPI2C3_SCL 0x40000b9e 235*33583fa5SPrimoz Fiser >; 236*33583fa5SPrimoz Fiser }; 237*33583fa5SPrimoz Fiser 238*33583fa5SPrimoz Fiser pinctrl_lpi2c3_gpio: lpi2c3gpiogrp { 239*33583fa5SPrimoz Fiser fsl,pins = < 240*33583fa5SPrimoz Fiser MX91_PAD_GPIO_IO28__GPIO2_IO28 0x31e 241*33583fa5SPrimoz Fiser MX91_PAD_GPIO_IO29__GPIO2_IO29 0x31e 242*33583fa5SPrimoz Fiser >; 243*33583fa5SPrimoz Fiser }; 244*33583fa5SPrimoz Fiser 245*33583fa5SPrimoz Fiser pinctrl_pmic: pmicgrp { 246*33583fa5SPrimoz Fiser fsl,pins = < 247*33583fa5SPrimoz Fiser MX91_PAD_ENET2_RD3__GPIO4_IO27 0x31e 248*33583fa5SPrimoz Fiser >; 249*33583fa5SPrimoz Fiser }; 250*33583fa5SPrimoz Fiser 251*33583fa5SPrimoz Fiser pinctrl_usdhc1: usdhc1grp { 252*33583fa5SPrimoz Fiser fsl,pins = < 253*33583fa5SPrimoz Fiser MX91_PAD_SD1_CLK__USDHC1_CLK 0x179e 254*33583fa5SPrimoz Fiser MX91_PAD_SD1_CMD__USDHC1_CMD 0x1386 255*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA0__USDHC1_DATA0 0x138e 256*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA1__USDHC1_DATA1 0x1386 257*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA2__USDHC1_DATA2 0x138e 258*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA3__USDHC1_DATA3 0x1386 259*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA4__USDHC1_DATA4 0x1386 260*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA5__USDHC1_DATA5 0x1386 261*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA6__USDHC1_DATA6 0x1386 262*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA7__USDHC1_DATA7 0x1386 263*33583fa5SPrimoz Fiser MX91_PAD_SD1_STROBE__USDHC1_STROBE 0x179e 264*33583fa5SPrimoz Fiser >; 265*33583fa5SPrimoz Fiser }; 266*33583fa5SPrimoz Fiser 267*33583fa5SPrimoz Fiser pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp { 268*33583fa5SPrimoz Fiser fsl,pins = < 269*33583fa5SPrimoz Fiser MX91_PAD_SD1_CLK__USDHC1_CLK 0x17be 270*33583fa5SPrimoz Fiser MX91_PAD_SD1_CMD__USDHC1_CMD 0x139e 271*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA0__USDHC1_DATA0 0x138e 272*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA1__USDHC1_DATA1 0x139e 273*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA2__USDHC1_DATA2 0x13be 274*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA3__USDHC1_DATA3 0x139e 275*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA4__USDHC1_DATA4 0x139e 276*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA5__USDHC1_DATA5 0x139e 277*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA6__USDHC1_DATA6 0x139e 278*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA7__USDHC1_DATA7 0x139e 279*33583fa5SPrimoz Fiser MX91_PAD_SD1_STROBE__USDHC1_STROBE 0x179e 280*33583fa5SPrimoz Fiser >; 281*33583fa5SPrimoz Fiser }; 282*33583fa5SPrimoz Fiser 283*33583fa5SPrimoz Fiser pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp { 284*33583fa5SPrimoz Fiser fsl,pins = < 285*33583fa5SPrimoz Fiser MX91_PAD_SD1_CLK__USDHC1_CLK 0x17be 286*33583fa5SPrimoz Fiser MX91_PAD_SD1_CMD__USDHC1_CMD 0x139e 287*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA0__USDHC1_DATA0 0x139e 288*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA1__USDHC1_DATA1 0x13be 289*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA2__USDHC1_DATA2 0x13be 290*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA3__USDHC1_DATA3 0x13be 291*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA4__USDHC1_DATA4 0x13be 292*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA5__USDHC1_DATA5 0x13be 293*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA6__USDHC1_DATA6 0x13be 294*33583fa5SPrimoz Fiser MX91_PAD_SD1_DATA7__USDHC1_DATA7 0x13be 295*33583fa5SPrimoz Fiser MX91_PAD_SD1_STROBE__USDHC1_STROBE 0x179e 296*33583fa5SPrimoz Fiser >; 297*33583fa5SPrimoz Fiser }; 298*33583fa5SPrimoz Fiser 299*33583fa5SPrimoz Fiser pinctrl_wdog: wdoggrp { 300*33583fa5SPrimoz Fiser fsl,pins = < 301*33583fa5SPrimoz Fiser MX91_PAD_WDOG_ANY__WDOG1_WDOG_ANY 0x31e 302*33583fa5SPrimoz Fiser >; 303*33583fa5SPrimoz Fiser }; 304*33583fa5SPrimoz Fiser}; 305