mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-12-20 17:01:50 +01:00
Add support for the Toradex SMARC iMX95. Link: https://www.toradex.com/computer-on-modules/smarc-arm-family/nxp-imx95 Link: https://www.toradex.com/products/carrier-board/smarc-development-board-kit Signed-off-by: João Paulo Gonçalves <joao.goncalves@toradex.com> Co-developed-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com> Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com> Co-developed-by: Max Krummenacher <max.krummenacher@toradex.com> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Co-developed-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com> Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
278 lines
4.7 KiB
Plaintext
278 lines
4.7 KiB
Plaintext
// 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 <dt-bindings/pwm/pwm.h>
|
|
#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";
|
|
};
|