1*aa1a8ff2SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT) 2*aa1a8ff2SEmmanuel Vadot/* 3*aa1a8ff2SEmmanuel Vadot * Copyright (c) 2022 TQ-Systems GmbH <linux@ew.tq-group.com>, 4*aa1a8ff2SEmmanuel Vadot * D-82229 Seefeld, Germany. 5*aa1a8ff2SEmmanuel Vadot * Author: Markus Niebel 6*aa1a8ff2SEmmanuel Vadot */ 7*aa1a8ff2SEmmanuel Vadot 8*aa1a8ff2SEmmanuel Vadot#include "imx93.dtsi" 9*aa1a8ff2SEmmanuel Vadot 10*aa1a8ff2SEmmanuel Vadot/{ 11*aa1a8ff2SEmmanuel Vadot model = "TQ-Systems i.MX93 TQMa93xxLA/TQMa93xxCA SOM"; 12*aa1a8ff2SEmmanuel Vadot compatible = "tq,imx93-tqma9352", "fsl,imx93"; 13*aa1a8ff2SEmmanuel Vadot 14*aa1a8ff2SEmmanuel Vadot reserved-memory { 15*aa1a8ff2SEmmanuel Vadot #address-cells = <2>; 16*aa1a8ff2SEmmanuel Vadot #size-cells = <2>; 17*aa1a8ff2SEmmanuel Vadot ranges; 18*aa1a8ff2SEmmanuel Vadot 19*aa1a8ff2SEmmanuel Vadot linux,cma { 20*aa1a8ff2SEmmanuel Vadot compatible = "shared-dma-pool"; 21*aa1a8ff2SEmmanuel Vadot reusable; 22*aa1a8ff2SEmmanuel Vadot alloc-ranges = <0 0x60000000 0 0x40000000>; 23*aa1a8ff2SEmmanuel Vadot size = <0 0x10000000>; 24*aa1a8ff2SEmmanuel Vadot linux,cma-default; 25*aa1a8ff2SEmmanuel Vadot }; 26*aa1a8ff2SEmmanuel Vadot }; 27*aa1a8ff2SEmmanuel Vadot 28*aa1a8ff2SEmmanuel Vadot reg_v1v8: regulator-v1v8 { 29*aa1a8ff2SEmmanuel Vadot compatible = "regulator-fixed"; 30*aa1a8ff2SEmmanuel Vadot regulator-name = "V_1V8"; 31*aa1a8ff2SEmmanuel Vadot regulator-min-microvolt = <1800000>; 32*aa1a8ff2SEmmanuel Vadot regulator-max-microvolt = <1800000>; 33*aa1a8ff2SEmmanuel Vadot }; 34*aa1a8ff2SEmmanuel Vadot 35*aa1a8ff2SEmmanuel Vadot reg_v3v3: regulator-v3v3 { 36*aa1a8ff2SEmmanuel Vadot compatible = "regulator-fixed"; 37*aa1a8ff2SEmmanuel Vadot regulator-name = "V_3V3"; 38*aa1a8ff2SEmmanuel Vadot regulator-min-microvolt = <3300000>; 39*aa1a8ff2SEmmanuel Vadot regulator-max-microvolt = <3300000>; 40*aa1a8ff2SEmmanuel Vadot }; 41*aa1a8ff2SEmmanuel Vadot 42*aa1a8ff2SEmmanuel Vadot /* SD2 RST# via PMIC SW_EN */ 43*aa1a8ff2SEmmanuel Vadot reg_usdhc2_vmmc: regulator-usdhc2 { 44*aa1a8ff2SEmmanuel Vadot compatible = "regulator-fixed"; 45*aa1a8ff2SEmmanuel Vadot pinctrl-names = "default"; 46*aa1a8ff2SEmmanuel Vadot pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>; 47*aa1a8ff2SEmmanuel Vadot regulator-name = "VSD_3V3"; 48*aa1a8ff2SEmmanuel Vadot regulator-min-microvolt = <3300000>; 49*aa1a8ff2SEmmanuel Vadot regulator-max-microvolt = <3300000>; 50*aa1a8ff2SEmmanuel Vadot vin-supply = <®_v3v3>; 51*aa1a8ff2SEmmanuel Vadot gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>; 52*aa1a8ff2SEmmanuel Vadot enable-active-high; 53*aa1a8ff2SEmmanuel Vadot }; 54*aa1a8ff2SEmmanuel Vadot}; 55*aa1a8ff2SEmmanuel Vadot 56*aa1a8ff2SEmmanuel Vadot&adc1 { 57*aa1a8ff2SEmmanuel Vadot vref-supply = <®_v1v8>; 58*aa1a8ff2SEmmanuel Vadot}; 59*aa1a8ff2SEmmanuel Vadot 60*aa1a8ff2SEmmanuel Vadot&flexspi1 { 61*aa1a8ff2SEmmanuel Vadot pinctrl-names = "default"; 62*aa1a8ff2SEmmanuel Vadot pinctrl-0 = <&pinctrl_flexspi1>; 63*aa1a8ff2SEmmanuel Vadot status = "okay"; 64*aa1a8ff2SEmmanuel Vadot 65*aa1a8ff2SEmmanuel Vadot flash0: flash@0 { 66*aa1a8ff2SEmmanuel Vadot compatible = "jedec,spi-nor"; 67*aa1a8ff2SEmmanuel Vadot reg = <0>; 68*aa1a8ff2SEmmanuel Vadot /* 69*aa1a8ff2SEmmanuel Vadot * no DQS, RXCLKSRC internal loop back, max 66 MHz 70*aa1a8ff2SEmmanuel Vadot * clk framework uses CLK_DIVIDER_ROUND_CLOSEST 71*aa1a8ff2SEmmanuel Vadot * selected value together with root from 72*aa1a8ff2SEmmanuel Vadot * IMX93_CLK_SYS_PLL_PFD1 @ 800.000.000 Hz helps to 73*aa1a8ff2SEmmanuel Vadot * respect the maximum value. 74*aa1a8ff2SEmmanuel Vadot */ 75*aa1a8ff2SEmmanuel Vadot spi-max-frequency = <62000000>; 76*aa1a8ff2SEmmanuel Vadot spi-tx-bus-width = <4>; 77*aa1a8ff2SEmmanuel Vadot spi-rx-bus-width = <4>; 78*aa1a8ff2SEmmanuel Vadot }; 79*aa1a8ff2SEmmanuel Vadot}; 80*aa1a8ff2SEmmanuel Vadot 81*aa1a8ff2SEmmanuel Vadot&gpio1 { 82*aa1a8ff2SEmmanuel Vadot pmic-irq-hog { 83*aa1a8ff2SEmmanuel Vadot gpio-hog; 84*aa1a8ff2SEmmanuel Vadot gpios = <3 GPIO_ACTIVE_LOW>; 85*aa1a8ff2SEmmanuel Vadot input; 86*aa1a8ff2SEmmanuel Vadot line-name = "PMIC_IRQ#"; 87*aa1a8ff2SEmmanuel Vadot }; 88*aa1a8ff2SEmmanuel Vadot}; 89*aa1a8ff2SEmmanuel Vadot 90*aa1a8ff2SEmmanuel Vadot&lpi2c1 { 91*aa1a8ff2SEmmanuel Vadot clock-frequency = <400000>; 92*aa1a8ff2SEmmanuel Vadot pinctrl-names = "default", "sleep"; 93*aa1a8ff2SEmmanuel Vadot pinctrl-0 = <&pinctrl_lpi2c1>; 94*aa1a8ff2SEmmanuel Vadot pinctrl-1 = <&pinctrl_lpi2c1>; 95*aa1a8ff2SEmmanuel Vadot status = "okay"; 96*aa1a8ff2SEmmanuel Vadot 97*aa1a8ff2SEmmanuel Vadot se97_som: temperature-sensor@1b { 98*aa1a8ff2SEmmanuel Vadot compatible = "nxp,se97b", "jedec,jc-42.4-temp"; 99*aa1a8ff2SEmmanuel Vadot reg = <0x1b>; 100*aa1a8ff2SEmmanuel Vadot }; 101*aa1a8ff2SEmmanuel Vadot 102*aa1a8ff2SEmmanuel Vadot pcf85063: rtc@51 { 103*aa1a8ff2SEmmanuel Vadot compatible = "nxp,pcf85063a"; 104*aa1a8ff2SEmmanuel Vadot reg = <0x51>; 105*aa1a8ff2SEmmanuel Vadot quartz-load-femtofarads = <7000>; 106*aa1a8ff2SEmmanuel Vadot }; 107*aa1a8ff2SEmmanuel Vadot 108*aa1a8ff2SEmmanuel Vadot eeprom0: eeprom@53 { 109*aa1a8ff2SEmmanuel Vadot compatible = "nxp,se97b", "atmel,24c02"; 110*aa1a8ff2SEmmanuel Vadot reg = <0x53>; 111*aa1a8ff2SEmmanuel Vadot pagesize = <16>; 112*aa1a8ff2SEmmanuel Vadot read-only; 113*aa1a8ff2SEmmanuel Vadot vcc-supply = <®_v3v3>; 114*aa1a8ff2SEmmanuel Vadot }; 115*aa1a8ff2SEmmanuel Vadot 116*aa1a8ff2SEmmanuel Vadot eeprom1: eeprom@57 { 117*aa1a8ff2SEmmanuel Vadot compatible = "atmel,24c64"; 118*aa1a8ff2SEmmanuel Vadot reg = <0x57>; 119*aa1a8ff2SEmmanuel Vadot pagesize = <32>; 120*aa1a8ff2SEmmanuel Vadot vcc-supply = <®_v3v3>; 121*aa1a8ff2SEmmanuel Vadot }; 122*aa1a8ff2SEmmanuel Vadot 123*aa1a8ff2SEmmanuel Vadot /* protectable identification memory (part of M24C64-D @57) */ 124*aa1a8ff2SEmmanuel Vadot eeprom@5f { 125*aa1a8ff2SEmmanuel Vadot compatible = "st,24c64", "atmel,24c64"; 126*aa1a8ff2SEmmanuel Vadot reg = <0x5f>; 127*aa1a8ff2SEmmanuel Vadot size = <32>; 128*aa1a8ff2SEmmanuel Vadot pagesize = <32>; 129*aa1a8ff2SEmmanuel Vadot vcc-supply = <®_v3v3>; 130*aa1a8ff2SEmmanuel Vadot }; 131*aa1a8ff2SEmmanuel Vadot 132*aa1a8ff2SEmmanuel Vadot imu@6a { 133*aa1a8ff2SEmmanuel Vadot compatible = "st,ism330dhcx"; 134*aa1a8ff2SEmmanuel Vadot reg = <0x6a>; 135*aa1a8ff2SEmmanuel Vadot vdd-supply = <®_v3v3>; 136*aa1a8ff2SEmmanuel Vadot vddio-supply = <®_v3v3>; 137*aa1a8ff2SEmmanuel Vadot }; 138*aa1a8ff2SEmmanuel Vadot}; 139*aa1a8ff2SEmmanuel Vadot 140*aa1a8ff2SEmmanuel Vadot&usdhc1 { 141*aa1a8ff2SEmmanuel Vadot pinctrl-names = "default", "state_100mhz", "state_200mhz"; 142*aa1a8ff2SEmmanuel Vadot pinctrl-0 = <&pinctrl_usdhc1>; 143*aa1a8ff2SEmmanuel Vadot pinctrl-1 = <&pinctrl_usdhc1>; 144*aa1a8ff2SEmmanuel Vadot pinctrl-2 = <&pinctrl_usdhc1>; 145*aa1a8ff2SEmmanuel Vadot bus-width = <8>; 146*aa1a8ff2SEmmanuel Vadot non-removable; 147*aa1a8ff2SEmmanuel Vadot no-sdio; 148*aa1a8ff2SEmmanuel Vadot no-sd; 149*aa1a8ff2SEmmanuel Vadot status = "okay"; 150*aa1a8ff2SEmmanuel Vadot}; 151*aa1a8ff2SEmmanuel Vadot 152*aa1a8ff2SEmmanuel Vadot&wdog3 { 153*aa1a8ff2SEmmanuel Vadot pinctrl-names = "default"; 154*aa1a8ff2SEmmanuel Vadot pinctrl-0 = <&pinctrl_wdog>; 155*aa1a8ff2SEmmanuel Vadot status = "okay"; 156*aa1a8ff2SEmmanuel Vadot}; 157*aa1a8ff2SEmmanuel Vadot 158*aa1a8ff2SEmmanuel Vadot&iomuxc { 159*aa1a8ff2SEmmanuel Vadot pinctrl_flexspi1: flexspi1grp { 160*aa1a8ff2SEmmanuel Vadot fsl,pins = < 161*aa1a8ff2SEmmanuel Vadot MX93_PAD_SD3_CMD__FLEXSPI1_A_SS0_B 0x3fe 162*aa1a8ff2SEmmanuel Vadot MX93_PAD_SD3_CLK__FLEXSPI1_A_SCLK 0x3fe 163*aa1a8ff2SEmmanuel Vadot MX93_PAD_SD3_DATA0__FLEXSPI1_A_DATA00 0x3fe 164*aa1a8ff2SEmmanuel Vadot MX93_PAD_SD3_DATA1__FLEXSPI1_A_DATA01 0x3fe 165*aa1a8ff2SEmmanuel Vadot MX93_PAD_SD3_DATA2__FLEXSPI1_A_DATA02 0x3fe 166*aa1a8ff2SEmmanuel Vadot MX93_PAD_SD3_DATA3__FLEXSPI1_A_DATA03 0x3fe 167*aa1a8ff2SEmmanuel Vadot >; 168*aa1a8ff2SEmmanuel Vadot }; 169*aa1a8ff2SEmmanuel Vadot 170*aa1a8ff2SEmmanuel Vadot pinctrl_lpi2c1: lpi2c1grp { 171*aa1a8ff2SEmmanuel Vadot fsl,pins = < 172*aa1a8ff2SEmmanuel Vadot MX93_PAD_I2C1_SCL__LPI2C1_SCL 0x40000b9e 173*aa1a8ff2SEmmanuel Vadot MX93_PAD_I2C1_SDA__LPI2C1_SDA 0x40000b9e 174*aa1a8ff2SEmmanuel Vadot >; 175*aa1a8ff2SEmmanuel Vadot }; 176*aa1a8ff2SEmmanuel Vadot 177*aa1a8ff2SEmmanuel Vadot pinctrl_pca9451: pca9451grp { 178*aa1a8ff2SEmmanuel Vadot fsl,pins = < 179*aa1a8ff2SEmmanuel Vadot MX93_PAD_I2C2_SDA__GPIO1_IO03 0x1306 180*aa1a8ff2SEmmanuel Vadot >; 181*aa1a8ff2SEmmanuel Vadot }; 182*aa1a8ff2SEmmanuel Vadot 183*aa1a8ff2SEmmanuel Vadot pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp { 184*aa1a8ff2SEmmanuel Vadot fsl,pins = < 185*aa1a8ff2SEmmanuel Vadot MX93_PAD_SD2_RESET_B__GPIO3_IO07 0x1306 186*aa1a8ff2SEmmanuel Vadot >; 187*aa1a8ff2SEmmanuel Vadot }; 188*aa1a8ff2SEmmanuel Vadot 189*aa1a8ff2SEmmanuel Vadot pinctrl_usdhc1: usdhc1grp { 190*aa1a8ff2SEmmanuel Vadot fsl,pins = < 191*aa1a8ff2SEmmanuel Vadot /* HYS | PU | PD | FSEL_3 | X5 */ 192*aa1a8ff2SEmmanuel Vadot MX93_PAD_SD1_CLK__USDHC1_CLK 0x17be 193*aa1a8ff2SEmmanuel Vadot MX93_PAD_SD1_STROBE__USDHC1_STROBE 0x17be 194*aa1a8ff2SEmmanuel Vadot /* HYS | PU | FSEL_3 | X5 */ 195*aa1a8ff2SEmmanuel Vadot MX93_PAD_SD1_CMD__USDHC1_CMD 0x13be 196*aa1a8ff2SEmmanuel Vadot /* HYS | PU | FSEL_3 | X4 */ 197*aa1a8ff2SEmmanuel Vadot MX93_PAD_SD1_DATA0__USDHC1_DATA0 0x139e 198*aa1a8ff2SEmmanuel Vadot MX93_PAD_SD1_DATA1__USDHC1_DATA1 0x139e 199*aa1a8ff2SEmmanuel Vadot MX93_PAD_SD1_DATA2__USDHC1_DATA2 0x139e 200*aa1a8ff2SEmmanuel Vadot MX93_PAD_SD1_DATA3__USDHC1_DATA3 0x139e 201*aa1a8ff2SEmmanuel Vadot MX93_PAD_SD1_DATA4__USDHC1_DATA4 0x139e 202*aa1a8ff2SEmmanuel Vadot MX93_PAD_SD1_DATA5__USDHC1_DATA5 0x139e 203*aa1a8ff2SEmmanuel Vadot MX93_PAD_SD1_DATA6__USDHC1_DATA6 0x139e 204*aa1a8ff2SEmmanuel Vadot MX93_PAD_SD1_DATA7__USDHC1_DATA7 0x139e 205*aa1a8ff2SEmmanuel Vadot >; 206*aa1a8ff2SEmmanuel Vadot }; 207*aa1a8ff2SEmmanuel Vadot 208*aa1a8ff2SEmmanuel Vadot pinctrl_wdog: wdoggrp { 209*aa1a8ff2SEmmanuel Vadot fsl,pins = < 210*aa1a8ff2SEmmanuel Vadot MX93_PAD_WDOG_ANY__WDOG1_WDOG_ANY 0x31e 211*aa1a8ff2SEmmanuel Vadot >; 212*aa1a8ff2SEmmanuel Vadot }; 213*aa1a8ff2SEmmanuel Vadot}; 214