1*4185d10aSMarkus Niebel// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT) 2*4185d10aSMarkus Niebel/* 3*4185d10aSMarkus Niebel * Copyright (c) 2024-2026 TQ-Systems GmbH <linux@ew.tq-group.com>, 4*4185d10aSMarkus Niebel * D-82229 Seefeld, Germany. 5*4185d10aSMarkus Niebel * Author: Alexander Stein 6*4185d10aSMarkus Niebel * Author: Markus Niebel 7*4185d10aSMarkus Niebel */ 8*4185d10aSMarkus Niebel 9*4185d10aSMarkus Niebel/dts-v1/; 10*4185d10aSMarkus Niebel 11*4185d10aSMarkus Niebel#include <dt-bindings/gpio/gpio.h> 12*4185d10aSMarkus Niebel#include "imx95.dtsi" 13*4185d10aSMarkus Niebel 14*4185d10aSMarkus Niebel/ { 15*4185d10aSMarkus Niebel memory@80000000 { 16*4185d10aSMarkus Niebel device_type = "memory"; 17*4185d10aSMarkus Niebel /* 18*4185d10aSMarkus Niebel * DRAM base addr, size : 2048 MiB DRAM 19*4185d10aSMarkus Niebel * should be corrected by bootloader 20*4185d10aSMarkus Niebel */ 21*4185d10aSMarkus Niebel reg = <0 0x80000000 0 0x80000000>; 22*4185d10aSMarkus Niebel }; 23*4185d10aSMarkus Niebel 24*4185d10aSMarkus Niebel reg_1v8: regulator-1v8 { 25*4185d10aSMarkus Niebel compatible = "regulator-fixed"; 26*4185d10aSMarkus Niebel regulator-name = "V_1V8"; 27*4185d10aSMarkus Niebel regulator-min-microvolt = <1800000>; 28*4185d10aSMarkus Niebel regulator-max-microvolt = <1800000>; 29*4185d10aSMarkus Niebel regulator-always-on; 30*4185d10aSMarkus Niebel }; 31*4185d10aSMarkus Niebel 32*4185d10aSMarkus Niebel reg_3v3: regulator-3v3 { 33*4185d10aSMarkus Niebel compatible = "regulator-fixed"; 34*4185d10aSMarkus Niebel regulator-name = "V_3V3"; 35*4185d10aSMarkus Niebel regulator-min-microvolt = <3300000>; 36*4185d10aSMarkus Niebel regulator-max-microvolt = <3300000>; 37*4185d10aSMarkus Niebel regulator-always-on; 38*4185d10aSMarkus Niebel }; 39*4185d10aSMarkus Niebel 40*4185d10aSMarkus Niebel reg_sdvmmc: regulator-sdvmmc { 41*4185d10aSMarkus Niebel compatible = "regulator-fixed"; 42*4185d10aSMarkus Niebel pinctrl-names = "default"; 43*4185d10aSMarkus Niebel pinctrl-0 = <&pinctrl_sdvmmc>; 44*4185d10aSMarkus Niebel regulator-name = "SD_PWR_EN"; 45*4185d10aSMarkus Niebel regulator-min-microvolt = <3300000>; 46*4185d10aSMarkus Niebel regulator-max-microvolt = <3300000>; 47*4185d10aSMarkus Niebel gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>; 48*4185d10aSMarkus Niebel off-on-delay-us = <12000>; 49*4185d10aSMarkus Niebel enable-active-high; 50*4185d10aSMarkus Niebel /* can be enabled by mainboard with SD-Card support */ 51*4185d10aSMarkus Niebel status = "disabled"; 52*4185d10aSMarkus Niebel }; 53*4185d10aSMarkus Niebel}; 54*4185d10aSMarkus Niebel 55*4185d10aSMarkus Niebel&adc1 { 56*4185d10aSMarkus Niebel vref-supply = <®_1v8>; 57*4185d10aSMarkus Niebel}; 58*4185d10aSMarkus Niebel 59*4185d10aSMarkus Niebel&flexspi1 { 60*4185d10aSMarkus Niebel pinctrl-names = "default"; 61*4185d10aSMarkus Niebel pinctrl-0 = <&pinctrl_flexspi1>; 62*4185d10aSMarkus Niebel status = "okay"; 63*4185d10aSMarkus Niebel 64*4185d10aSMarkus Niebel flash0: flash@0 { 65*4185d10aSMarkus Niebel compatible = "jedec,spi-nor"; 66*4185d10aSMarkus Niebel reg = <0>; 67*4185d10aSMarkus Niebel spi-max-frequency = <66000000>; 68*4185d10aSMarkus Niebel spi-tx-bus-width = <4>; 69*4185d10aSMarkus Niebel spi-rx-bus-width = <4>; 70*4185d10aSMarkus Niebel vcc-supply = <®_1v8>; 71*4185d10aSMarkus Niebel 72*4185d10aSMarkus Niebel partitions { 73*4185d10aSMarkus Niebel compatible = "fixed-partitions"; 74*4185d10aSMarkus Niebel #address-cells = <1>; 75*4185d10aSMarkus Niebel #size-cells = <1>; 76*4185d10aSMarkus Niebel }; 77*4185d10aSMarkus Niebel }; 78*4185d10aSMarkus Niebel}; 79*4185d10aSMarkus Niebel 80*4185d10aSMarkus Niebel/* System Manager */ 81*4185d10aSMarkus Niebel&gpio1 { 82*4185d10aSMarkus Niebel status = "reserved"; 83*4185d10aSMarkus Niebel}; 84*4185d10aSMarkus Niebel 85*4185d10aSMarkus Niebel/* System Manager */ 86*4185d10aSMarkus Niebel&lpi2c1 { 87*4185d10aSMarkus Niebel status = "reserved"; 88*4185d10aSMarkus Niebel}; 89*4185d10aSMarkus Niebel 90*4185d10aSMarkus Niebel&lpi2c2 { 91*4185d10aSMarkus Niebel clock-frequency = <400000>; 92*4185d10aSMarkus Niebel pinctrl-names = "default"; 93*4185d10aSMarkus Niebel pinctrl-0 = <&pinctrl_lpi2c2>; 94*4185d10aSMarkus Niebel status = "okay"; 95*4185d10aSMarkus Niebel 96*4185d10aSMarkus Niebel pcf85063: rtc@51 { 97*4185d10aSMarkus Niebel compatible = "nxp,pcf85063a"; 98*4185d10aSMarkus Niebel reg = <0x51>; 99*4185d10aSMarkus Niebel quartz-load-femtofarads = <7000>; 100*4185d10aSMarkus Niebel }; 101*4185d10aSMarkus Niebel 102*4185d10aSMarkus Niebel m24c64: eeprom@54 { 103*4185d10aSMarkus Niebel compatible = "atmel,24c64"; 104*4185d10aSMarkus Niebel reg = <0x54>; 105*4185d10aSMarkus Niebel pagesize = <32>; 106*4185d10aSMarkus Niebel vcc-supply = <®_3v3>; 107*4185d10aSMarkus Niebel }; 108*4185d10aSMarkus Niebel 109*4185d10aSMarkus Niebel /* protectable identification memory (part of M24C64-D @54) */ 110*4185d10aSMarkus Niebel eeprom@5c { 111*4185d10aSMarkus Niebel compatible = "atmel,24c64d-wl"; 112*4185d10aSMarkus Niebel reg = <0x5c>; 113*4185d10aSMarkus Niebel pagesize = <32>; 114*4185d10aSMarkus Niebel vcc-supply = <®_3v3>; 115*4185d10aSMarkus Niebel }; 116*4185d10aSMarkus Niebel 117*4185d10aSMarkus Niebel imu@6b { 118*4185d10aSMarkus Niebel compatible = "st,ism330dhcx"; 119*4185d10aSMarkus Niebel reg = <0x6b>; 120*4185d10aSMarkus Niebel vdd-supply = <®_3v3>; 121*4185d10aSMarkus Niebel vddio-supply = <®_3v3>; 122*4185d10aSMarkus Niebel }; 123*4185d10aSMarkus Niebel}; 124*4185d10aSMarkus Niebel 125*4185d10aSMarkus Niebel&thermal_zones { 126*4185d10aSMarkus Niebel pf09-thermal { 127*4185d10aSMarkus Niebel polling-delay = <2000>; 128*4185d10aSMarkus Niebel polling-delay-passive = <250>; 129*4185d10aSMarkus Niebel thermal-sensors = <&scmi_sensor 2>; 130*4185d10aSMarkus Niebel 131*4185d10aSMarkus Niebel trips { 132*4185d10aSMarkus Niebel pf09_alert: trip0 { 133*4185d10aSMarkus Niebel hysteresis = <2000>; 134*4185d10aSMarkus Niebel temperature = <140000>; 135*4185d10aSMarkus Niebel type = "passive"; 136*4185d10aSMarkus Niebel }; 137*4185d10aSMarkus Niebel 138*4185d10aSMarkus Niebel pf09_crit: trip1 { 139*4185d10aSMarkus Niebel hysteresis = <2000>; 140*4185d10aSMarkus Niebel temperature = <155000>; 141*4185d10aSMarkus Niebel type = "critical"; 142*4185d10aSMarkus Niebel }; 143*4185d10aSMarkus Niebel }; 144*4185d10aSMarkus Niebel }; 145*4185d10aSMarkus Niebel 146*4185d10aSMarkus Niebel pf53arm-thermal { 147*4185d10aSMarkus Niebel polling-delay = <2000>; 148*4185d10aSMarkus Niebel polling-delay-passive = <250>; 149*4185d10aSMarkus Niebel thermal-sensors = <&scmi_sensor 4>; 150*4185d10aSMarkus Niebel 151*4185d10aSMarkus Niebel cooling-maps { 152*4185d10aSMarkus Niebel map0 { 153*4185d10aSMarkus Niebel trip = <&pf5301_alert>; 154*4185d10aSMarkus Niebel cooling-device = 155*4185d10aSMarkus Niebel <&A55_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 156*4185d10aSMarkus Niebel <&A55_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 157*4185d10aSMarkus Niebel <&A55_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 158*4185d10aSMarkus Niebel <&A55_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 159*4185d10aSMarkus Niebel <&A55_4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 160*4185d10aSMarkus Niebel <&A55_5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 161*4185d10aSMarkus Niebel }; 162*4185d10aSMarkus Niebel }; 163*4185d10aSMarkus Niebel 164*4185d10aSMarkus Niebel trips { 165*4185d10aSMarkus Niebel pf5301_alert: trip0 { 166*4185d10aSMarkus Niebel hysteresis = <2000>; 167*4185d10aSMarkus Niebel temperature = <140000>; 168*4185d10aSMarkus Niebel type = "passive"; 169*4185d10aSMarkus Niebel }; 170*4185d10aSMarkus Niebel 171*4185d10aSMarkus Niebel pf5301_crit: trip1 { 172*4185d10aSMarkus Niebel hysteresis = <2000>; 173*4185d10aSMarkus Niebel temperature = <155000>; 174*4185d10aSMarkus Niebel type = "critical"; 175*4185d10aSMarkus Niebel }; 176*4185d10aSMarkus Niebel }; 177*4185d10aSMarkus Niebel }; 178*4185d10aSMarkus Niebel 179*4185d10aSMarkus Niebel pf53soc-thermal { 180*4185d10aSMarkus Niebel polling-delay = <2000>; 181*4185d10aSMarkus Niebel polling-delay-passive = <250>; 182*4185d10aSMarkus Niebel thermal-sensors = <&scmi_sensor 3>; 183*4185d10aSMarkus Niebel 184*4185d10aSMarkus Niebel trips { 185*4185d10aSMarkus Niebel pf5302_alert: trip0 { 186*4185d10aSMarkus Niebel hysteresis = <2000>; 187*4185d10aSMarkus Niebel temperature = <140000>; 188*4185d10aSMarkus Niebel type = "passive"; 189*4185d10aSMarkus Niebel }; 190*4185d10aSMarkus Niebel 191*4185d10aSMarkus Niebel pf5302_crit: trip1 { 192*4185d10aSMarkus Niebel hysteresis = <2000>; 193*4185d10aSMarkus Niebel temperature = <155000>; 194*4185d10aSMarkus Niebel type = "critical"; 195*4185d10aSMarkus Niebel }; 196*4185d10aSMarkus Niebel }; 197*4185d10aSMarkus Niebel }; 198*4185d10aSMarkus Niebel}; 199*4185d10aSMarkus Niebel 200*4185d10aSMarkus Niebel&usdhc1 { 201*4185d10aSMarkus Niebel pinctrl-names = "default", "state_100mhz", "state_200mhz"; 202*4185d10aSMarkus Niebel pinctrl-0 = <&pinctrl_usdhc1>; 203*4185d10aSMarkus Niebel pinctrl-1 = <&pinctrl_usdhc1_100mhz>; 204*4185d10aSMarkus Niebel pinctrl-2 = <&pinctrl_usdhc1_200mhz>; 205*4185d10aSMarkus Niebel bus-width = <8>; 206*4185d10aSMarkus Niebel non-removable; 207*4185d10aSMarkus Niebel no-sdio; 208*4185d10aSMarkus Niebel no-sd; 209*4185d10aSMarkus Niebel status = "okay"; 210*4185d10aSMarkus Niebel}; 211*4185d10aSMarkus Niebel 212*4185d10aSMarkus Niebel&wdog3 { 213*4185d10aSMarkus Niebel status = "okay"; 214*4185d10aSMarkus Niebel}; 215*4185d10aSMarkus Niebel 216*4185d10aSMarkus Niebel&scmi_iomuxc { 217*4185d10aSMarkus Niebel pinctrl_flexspi1: flexspi1grp { 218*4185d10aSMarkus Niebel fsl,pins = <IMX95_PAD_XSPI1_SS0_B__FLEXSPI1_A_SS0_B 0x19e>, 219*4185d10aSMarkus Niebel <IMX95_PAD_XSPI1_DATA0__FLEXSPI1_A_DATA_BIT0 0x19e>, 220*4185d10aSMarkus Niebel <IMX95_PAD_XSPI1_DATA1__FLEXSPI1_A_DATA_BIT1 0x19e>, 221*4185d10aSMarkus Niebel <IMX95_PAD_XSPI1_DATA2__FLEXSPI1_A_DATA_BIT2 0x19e>, 222*4185d10aSMarkus Niebel <IMX95_PAD_XSPI1_DATA3__FLEXSPI1_A_DATA_BIT3 0x19e>, 223*4185d10aSMarkus Niebel /* SION to allow clock loopback from pad */ 224*4185d10aSMarkus Niebel <IMX95_PAD_XSPI1_SCLK__FLEXSPI1_A_SCLK 0x4000019e>, 225*4185d10aSMarkus Niebel <IMX95_PAD_XSPI1_DQS__FLEXSPI1_A_DQS 0x4000019e>; 226*4185d10aSMarkus Niebel }; 227*4185d10aSMarkus Niebel 228*4185d10aSMarkus Niebel pinctrl_lpi2c2: lpi2c2grp { 229*4185d10aSMarkus Niebel fsl,pins = <IMX95_PAD_I2C2_SCL__AONMIX_TOP_LPI2C2_SCL 0x4000191e>, 230*4185d10aSMarkus Niebel <IMX95_PAD_I2C2_SDA__AONMIX_TOP_LPI2C2_SDA 0x4000191e>; 231*4185d10aSMarkus Niebel }; 232*4185d10aSMarkus Niebel 233*4185d10aSMarkus Niebel pinctrl_sdvmmc: sdvmmcgrp { 234*4185d10aSMarkus Niebel fsl,pins = <IMX95_PAD_SD2_RESET_B__GPIO3_IO_BIT7 0x11e>; 235*4185d10aSMarkus Niebel }; 236*4185d10aSMarkus Niebel 237*4185d10aSMarkus Niebel pinctrl_usdhc1: usdhc1grp { 238*4185d10aSMarkus Niebel fsl,pins = <IMX95_PAD_SD1_CLK__USDHC1_CLK 0x158e>, 239*4185d10aSMarkus Niebel <IMX95_PAD_SD1_CMD__USDHC1_CMD 0x138e>, 240*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA0__USDHC1_DATA0 0x138e>, 241*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA1__USDHC1_DATA1 0x138e>, 242*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA2__USDHC1_DATA2 0x138e>, 243*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA3__USDHC1_DATA3 0x138e>, 244*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA4__USDHC1_DATA4 0x138e>, 245*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA5__USDHC1_DATA5 0x138e>, 246*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA6__USDHC1_DATA6 0x138e>, 247*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA7__USDHC1_DATA7 0x138e>, 248*4185d10aSMarkus Niebel <IMX95_PAD_SD1_STROBE__USDHC1_STROBE 0x158e>; 249*4185d10aSMarkus Niebel }; 250*4185d10aSMarkus Niebel 251*4185d10aSMarkus Niebel pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp { 252*4185d10aSMarkus Niebel fsl,pins = <IMX95_PAD_SD1_CLK__USDHC1_CLK 0x158e>, 253*4185d10aSMarkus Niebel <IMX95_PAD_SD1_CMD__USDHC1_CMD 0x138e>, 254*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA0__USDHC1_DATA0 0x138e>, 255*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA1__USDHC1_DATA1 0x138e>, 256*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA2__USDHC1_DATA2 0x138e>, 257*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA3__USDHC1_DATA3 0x138e>, 258*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA4__USDHC1_DATA4 0x138e>, 259*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA5__USDHC1_DATA5 0x138e>, 260*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA6__USDHC1_DATA6 0x138e>, 261*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA7__USDHC1_DATA7 0x138e>, 262*4185d10aSMarkus Niebel <IMX95_PAD_SD1_STROBE__USDHC1_STROBE 0x158e>; 263*4185d10aSMarkus Niebel }; 264*4185d10aSMarkus Niebel 265*4185d10aSMarkus Niebel pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp { 266*4185d10aSMarkus Niebel fsl,pins = <IMX95_PAD_SD1_CLK__USDHC1_CLK 0x15fe>, 267*4185d10aSMarkus Niebel <IMX95_PAD_SD1_CMD__USDHC1_CMD 0x13fe>, 268*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA0__USDHC1_DATA0 0x13fe>, 269*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA1__USDHC1_DATA1 0x13fe>, 270*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA2__USDHC1_DATA2 0x13fe>, 271*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA3__USDHC1_DATA3 0x13fe>, 272*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA4__USDHC1_DATA4 0x13fe>, 273*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA5__USDHC1_DATA5 0x13fe>, 274*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA6__USDHC1_DATA6 0x13fe>, 275*4185d10aSMarkus Niebel <IMX95_PAD_SD1_DATA7__USDHC1_DATA7 0x13fe>, 276*4185d10aSMarkus Niebel <IMX95_PAD_SD1_STROBE__USDHC1_STROBE 0x15fe>; 277*4185d10aSMarkus Niebel }; 278*4185d10aSMarkus Niebel}; 279