1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2/* 3 * Copyright (C) 2025 Toradex 4 * 5 * https://www.toradex.com/computer-on-modules/smarc-arm-family/nxp-imx95 6 * https://www.toradex.com/products/carrier-board/smarc-development-board-kit 7 */ 8 9/dts-v1/; 10 11#include <dt-bindings/pwm/pwm.h> 12#include "imx95-toradex-smarc.dtsi" 13 14/ { 15 model = "Toradex SMARC iMX95 on Toradex SMARC Development Board"; 16 compatible = "toradex,smarc-imx95-dev", 17 "toradex,smarc-imx95", 18 "fsl,imx95"; 19 20 reg_carrier_1p8v: regulator-carrier-1p8v { 21 compatible = "regulator-fixed"; 22 regulator-max-microvolt = <1800000>; 23 regulator-min-microvolt = <1800000>; 24 regulator-name = "On-carrier 1V8"; 25 }; 26 27 sound { 28 compatible = "simple-audio-card"; 29 simple-audio-card,bitclock-master = <&codec_dai>; 30 simple-audio-card,format = "i2s"; 31 simple-audio-card,frame-master = <&codec_dai>; 32 simple-audio-card,mclk-fs = <256>; 33 simple-audio-card,name = "tdx-smarc-wm8904"; 34 simple-audio-card,routing = 35 "Headphone Jack", "HPOUTL", 36 "Headphone Jack", "HPOUTR", 37 "IN2L", "Line In Jack", 38 "IN2R", "Line In Jack", 39 "Microphone Jack", "MICBIAS", 40 "IN1L", "Microphone Jack"; 41 simple-audio-card,widgets = 42 "Microphone", "Microphone Jack", 43 "Headphone", "Headphone Jack", 44 "Line", "Line In Jack"; 45 46 codec_dai: simple-audio-card,codec { 47 clocks = <&scmi_clk IMX95_CLK_SAI3>; 48 sound-dai = <&wm8904_1a>; 49 }; 50 51 simple-audio-card,cpu { 52 sound-dai = <&sai3>; 53 }; 54 }; 55}; 56 57/* SMARC GBE0 */ 58&enetc_port0 { 59 status = "okay"; 60}; 61 62/* SMARC GBE1 */ 63&enetc_port1 { 64 status = "okay"; 65}; 66 67/* SMARC CAN0 */ 68&flexcan1 { 69 status = "okay"; 70}; 71 72/* SMARC CAN1 */ 73&flexcan2 { 74 status = "okay"; 75}; 76 77&gpio2 { 78 pinctrl-names = "default"; 79 pinctrl-0 = <&pinctrl_gpio12>, <&pinctrl_gpio13>; 80}; 81 82&gpio4 { 83 pinctrl-names = "default"; 84 pinctrl-0 = <&pinctrl_gpio10>, <&pinctrl_gpio11>; 85}; 86 87&gpio5 { 88 pinctrl-names = "default"; 89 pinctrl-0 = <&pinctrl_gpio2>, 90 <&pinctrl_gpio3>, 91 <&pinctrl_gpio4>, 92 <&pinctrl_gpio6>, 93 <&pinctrl_gpio8>, 94 <&pinctrl_gpio9>; 95}; 96 97/* SMARC I2C_CAM0 */ 98&i2c_cam0 { 99 status = "okay"; 100}; 101 102/* SMARC I2C_CAM1 */ 103&i2c_cam1 { 104 status = "okay"; 105}; 106 107/* SMARC I2C_GP */ 108&lpi2c2 { 109 status = "okay"; 110 111 wm8904_1a: audio-codec@1a { 112 compatible = "wlf,wm8904"; 113 reg = <0x1a>; 114 pinctrl-names = "default"; 115 pinctrl-0 = <&pinctrl_sai3>, <&pinctrl_sai3_mclk>; 116 #sound-dai-cells = <0>; 117 clocks = <&scmi_clk IMX95_CLK_SAI3>; 118 clock-names = "mclk"; 119 AVDD-supply = <®_carrier_1p8v>; 120 CPVDD-supply = <®_carrier_1p8v>; 121 DBVDD-supply = <®_carrier_1p8v>; 122 DCVDD-supply = <®_carrier_1p8v>; 123 MICVDD-supply = <®_carrier_1p8v>; 124 }; 125 126 temperature-sensor@4f { 127 compatible = "ti,tmp1075"; 128 reg = <0x4f>; 129 }; 130 131 eeprom@57 { 132 compatible = "st,24c02", "atmel,24c02"; 133 reg = <0x57>; 134 pagesize = <16>; 135 }; 136 137}; 138 139/* SMARC I2C_PM */ 140&lpi2c3 { 141 clock-frequency = <100000>; 142 status = "okay"; 143 144 fan_controller: fan@18 { 145 compatible = "ti,amc6821"; 146 reg = <0x18>; 147 #pwm-cells = <2>; 148 149 fan { 150 cooling-levels = <255>; 151 pwms = <&fan_controller 40000 PWM_POLARITY_INVERTED>; 152 }; 153 }; 154 155 /* Current measurement into module VCC */ 156 hwmon@40 { 157 compatible = "ti,ina226"; 158 reg = <0x40>; 159 shunt-resistor = <5000>; 160 }; 161}; 162 163/* SMARC I2C_LCD */ 164&lpi2c5 { 165 status = "okay"; 166 167 i2c-mux@70 { 168 compatible = "nxp,pca9543"; 169 reg = <0x70>; 170 i2c-mux-idle-disconnect; 171 #address-cells = <1>; 172 #size-cells = <0>; 173 174 /* I2C on DSI Connector Pins 4/6 */ 175 i2c_dsi_0: i2c@0 { 176 reg = <0>; 177 #address-cells = <1>; 178 #size-cells = <0>; 179 }; 180 181 /* I2C on DSI Connector Pins 52/54 */ 182 i2c_dsi_1: i2c@1 { 183 reg = <1>; 184 #address-cells = <1>; 185 #size-cells = <0>; 186 }; 187 }; 188}; 189 190/* SMARC SPI0 */ 191&lpspi6 { 192 status = "okay"; 193}; 194 195/* SMARC SER1, used as the Linux Console */ 196&lpuart1 { 197 status = "okay"; 198}; 199 200/* SMARC SER0, RS485 */ 201&lpuart2 { 202 linux,rs485-enabled-at-boot-time; 203 rs485-rts-active-low; 204 rs485-rx-during-tx; 205 status = "okay"; 206}; 207 208/* SMARC SER3, RS232 */ 209&lpuart3 { 210 status = "okay"; 211}; 212 213/* SMARC MDIO, shared between all ethernet ports */ 214&netc_emdio { 215 status = "okay"; 216 217 ethphy3: ethernet-phy@4 { 218 reg = <4>; 219 pinctrl-names = "default"; 220 pinctrl-0 = <&pinctrl_gpio7>; 221 interrupt-parent = <&gpio5>; 222 interrupts = <9 IRQ_TYPE_LEVEL_LOW>; 223 }; 224}; 225 226/* SMARC PCIE_A / M2 Key B */ 227&pcie0 { 228 status = "okay"; 229}; 230 231/* SMARC PCIE_B / M2 Key E */ 232&pcie1 { 233 status = "okay"; 234}; 235 236/* SMARC I2S0 */ 237&sai3 { 238 status = "okay"; 239}; 240 241/* SMARC LCD0_BKLT_PWM */ 242&tpm3 { 243 status = "okay"; 244}; 245 246/* SMARC LCD1_BKLT_PWM */ 247&tpm4 { 248 status = "okay"; 249}; 250 251/* SMARC GPIO5 as PWM */ 252&tpm5 { 253 status = "okay"; 254}; 255 256/* SMARC USB0 */ 257&usb2 { 258 status = "okay"; 259}; 260 261/* SMARC USB1..4 */ 262&usb3 { 263 status = "okay"; 264}; 265 266&usb3_dwc3 { 267 status = "okay"; 268}; 269 270&usb3_phy { 271 status = "okay"; 272}; 273 274/* SMARC SDIO */ 275&usdhc2 { 276 status = "okay"; 277}; 278