// SPDX-License-Identifier: GPL-2.0-or-later OR MIT /* * Copyright (C) 2025 Toradex * * https://www.toradex.com/computer-on-modules/smarc-arm-family/nxp-imx95 * https://www.toradex.com/products/carrier-board/smarc-development-board-kit */ /dts-v1/; #include #include "imx95-toradex-smarc.dtsi" / { model = "Toradex SMARC iMX95 on Toradex SMARC Development Board"; compatible = "toradex,smarc-imx95-dev", "toradex,smarc-imx95", "fsl,imx95"; reg_carrier_1p8v: regulator-carrier-1p8v { compatible = "regulator-fixed"; regulator-max-microvolt = <1800000>; regulator-min-microvolt = <1800000>; regulator-name = "On-carrier 1V8"; }; sound { compatible = "simple-audio-card"; simple-audio-card,bitclock-master = <&codec_dai>; simple-audio-card,format = "i2s"; simple-audio-card,frame-master = <&codec_dai>; simple-audio-card,mclk-fs = <256>; simple-audio-card,name = "tdx-smarc-wm8904"; simple-audio-card,routing = "Headphone Jack", "HPOUTL", "Headphone Jack", "HPOUTR", "IN2L", "Line In Jack", "IN2R", "Line In Jack", "Microphone Jack", "MICBIAS", "IN1L", "Microphone Jack"; simple-audio-card,widgets = "Microphone", "Microphone Jack", "Headphone", "Headphone Jack", "Line", "Line In Jack"; codec_dai: simple-audio-card,codec { clocks = <&scmi_clk IMX95_CLK_SAI3>; sound-dai = <&wm8904_1a>; }; simple-audio-card,cpu { sound-dai = <&sai3>; }; }; }; /* SMARC GBE0 */ &enetc_port0 { status = "okay"; }; /* SMARC GBE1 */ &enetc_port1 { status = "okay"; }; /* SMARC CAN0 */ &flexcan1 { status = "okay"; }; /* SMARC CAN1 */ &flexcan2 { status = "okay"; }; &gpio2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpio12>, <&pinctrl_gpio13>; }; &gpio4 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpio10>, <&pinctrl_gpio11>; }; &gpio5 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpio2>, <&pinctrl_gpio3>, <&pinctrl_gpio4>, <&pinctrl_gpio6>, <&pinctrl_gpio8>, <&pinctrl_gpio9>; }; /* SMARC I2C_CAM0 */ &i2c_cam0 { status = "okay"; }; /* SMARC I2C_CAM1 */ &i2c_cam1 { status = "okay"; }; /* SMARC I2C_GP */ &lpi2c2 { status = "okay"; wm8904_1a: audio-codec@1a { compatible = "wlf,wm8904"; reg = <0x1a>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sai3>, <&pinctrl_sai3_mclk>; #sound-dai-cells = <0>; clocks = <&scmi_clk IMX95_CLK_SAI3>; clock-names = "mclk"; AVDD-supply = <®_carrier_1p8v>; CPVDD-supply = <®_carrier_1p8v>; DBVDD-supply = <®_carrier_1p8v>; DCVDD-supply = <®_carrier_1p8v>; MICVDD-supply = <®_carrier_1p8v>; }; temperature-sensor@4f { compatible = "ti,tmp1075"; reg = <0x4f>; }; eeprom@57 { compatible = "st,24c02", "atmel,24c02"; reg = <0x57>; pagesize = <16>; }; }; /* SMARC I2C_PM */ &lpi2c3 { clock-frequency = <100000>; status = "okay"; fan_controller: fan@18 { compatible = "ti,amc6821"; reg = <0x18>; #pwm-cells = <2>; fan { cooling-levels = <255>; pwms = <&fan_controller 40000 PWM_POLARITY_INVERTED>; }; }; /* Current measurement into module VCC */ hwmon@40 { compatible = "ti,ina226"; reg = <0x40>; shunt-resistor = <5000>; }; }; /* SMARC I2C_LCD */ &lpi2c5 { status = "okay"; i2c-mux@70 { compatible = "nxp,pca9543"; reg = <0x70>; i2c-mux-idle-disconnect; #address-cells = <1>; #size-cells = <0>; /* I2C on DSI Connector Pins 4/6 */ i2c_dsi_0: i2c@0 { reg = <0>; #address-cells = <1>; #size-cells = <0>; }; /* I2C on DSI Connector Pins 52/54 */ i2c_dsi_1: i2c@1 { reg = <1>; #address-cells = <1>; #size-cells = <0>; }; }; }; /* SMARC SPI0 */ &lpspi6 { status = "okay"; }; /* SMARC SER1, used as the Linux Console */ &lpuart1 { status = "okay"; }; /* SMARC SER0, RS485 */ &lpuart2 { linux,rs485-enabled-at-boot-time; rs485-rts-active-low; rs485-rx-during-tx; status = "okay"; }; /* SMARC SER3, RS232 */ &lpuart3 { status = "okay"; }; /* SMARC MDIO, shared between all ethernet ports */ &netc_emdio { status = "okay"; ethphy3: ethernet-phy@4 { reg = <4>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpio7>; interrupt-parent = <&gpio5>; interrupts = <9 IRQ_TYPE_LEVEL_LOW>; }; }; /* SMARC PCIE_A / M2 Key B */ &pcie0 { status = "okay"; }; /* SMARC PCIE_B / M2 Key E */ &pcie1 { status = "okay"; }; /* SMARC I2S0 */ &sai3 { status = "okay"; }; /* SMARC LCD0_BKLT_PWM */ &tpm3 { status = "okay"; }; /* SMARC LCD1_BKLT_PWM */ &tpm4 { status = "okay"; }; /* SMARC GPIO5 as PWM */ &tpm5 { status = "okay"; }; /* SMARC USB0 */ &usb2 { status = "okay"; }; /* SMARC USB1..4 */ &usb3 { status = "okay"; }; &usb3_dwc3 { status = "okay"; }; &usb3_phy { status = "okay"; }; /* SMARC SDIO */ &usdhc2 { status = "okay"; };