From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id AD47DCCFA1A for ; Tue, 11 Nov 2025 13:49:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=qRR5ctH5UsxGiQSQlQLtOn2MbBe3B0q8XM1MHCgwR3o=; b=mDXFvG89HUks+FwV+Tm1/n4cih b3Fq1BKhSiA/JeEL5kNsS+P+7hAUa8826jmYQ/+8PaaggrmUUfdlkOvzCQGpZ0prV0CyULNZlvEum YhAjchZ9tF+3eOtV0UhOr7e0R9h96yk/1L1I08egwkLTamlIX703VjbPiKhIy1YO9ipCJV3RJjxRS oP/LJg7+GkdyoqpEzDAF5EGpxIJDqJF1yYnCwAhNqnh4fEcGkLH7hASS0I0Aa00zk5oF3OqlMJKFA jtvTdy7XD3KTPMt/NPEQhXmUbudEUEwdR/SJXeyoJFAlhJvyVQRdTSU5Yb8SXxEyhSM36WNNFXj3k G09956GQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vIojo-00000007GDs-2Bms; Tue, 11 Nov 2025 13:48:49 +0000 Received: from mail-m16.yeah.net ([1.95.21.14]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vIojj-00000007GDR-23Pe for linux-arm-kernel@lists.infradead.org; Tue, 11 Nov 2025 13:48:46 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yeah.net; s=s110527; h=Date:From:To:Subject:Message-ID:MIME-Version: Content-Type; bh=qRR5ctH5UsxGiQSQlQLtOn2MbBe3B0q8XM1MHCgwR3o=; b=gTugEfE/VWdZnj8x1QZo9v0kKA554JHaPjQBn9HDQHs4pCeixHevosl3fX9U6k aA/UYcFVT4rGYlSiDT+6NlMRzAtQkbhUlMfJIMAd8YHs6GBNVieiO6v6/vlaoLR9 H7um5BYym2Eglnu097l74I5YGm4Yo8qPPHWzupYV+5Mcg= Received: from dragon (unknown []) by gzsmtp3 (Coremail) with SMTP id M88vCgAHoreKPhNpiKjGAQ--.5335S3; Tue, 11 Nov 2025 21:47:56 +0800 (CST) Date: Tue, 11 Nov 2025 21:47:54 +0800 From: Shawn Guo To: Francesco Dolcini Cc: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , "Kirill A. Shutemov" , Dave Hansen , Rick Edgecombe , Max Krummenacher , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, Ernest Van Hoecke , Emanuele Ghidoli , =?iso-8859-1?Q?Jo=E3o_Paulo_Gon=E7alves?= , Vitor Soares , Francesco Dolcini Subject: Re: [PATCH v1 2/2] arm64: dts: freescale: add Toradex SMARC iMX95 Message-ID: References: <20251024144921.77714-1-francesco@dolcini.it> <20251024144921.77714-3-francesco@dolcini.it> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20251024144921.77714-3-francesco@dolcini.it> X-CM-TRANSID: M88vCgAHoreKPhNpiKjGAQ--.5335S3 X-Coremail-Antispam: 1Uf129KBjvAXoWDJw4xtw1UWryrZr18CFW7Arb_yoWrCr18Co WY9FnYkryUKF1UArn5Jr17tF45Zrsaga13Kayqyay3Ga129390ya48Xa1jqw1rt3yrtF1k J3yavFyrZ3yqyw1kn29KB7ZKAUJUUUU8529EdanIXcx71UUUUU7v73VFW2AGmfu7bjvjm3 AaLaJ3UbIYCTnIWIevJa73UjIFyTuYvjxU7vtCDUUUU X-Originating-IP: [117.80.155.87] X-CM-SenderInfo: pvkd40hjxrjqh1hdxhhqhw/1tbiIg-RN2kTPo-WkAAA3G X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251111_054844_156556_865D6871 X-CRM114-Status: GOOD ( 20.16 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Fri, Oct 24, 2025 at 04:49:21PM +0200, Francesco Dolcini wrote: > From: Max Krummenacher > > Add DT support for Toradex SMARC iMX95 SoM and Development carrier > board. > > The module consists of an NXP i.MX95 family SoC, up to 16GB of LPDDR5 > RAM and up to 128GB of storage, a USB 3.0 Host Hub and 2.0 OTG, two > Gigabit Ethernet PHYs, a 10 Gigabit Ethernet interface, an I2C EEPROM > and Temperature Sensor, an RX8130 RTC, a Quad/Dual lane CSI interface, > and some optional addons: TPM 2.0, DSI, LVDS, DisplayPort (through a > DSI-DP bridge), and Wi-Fi/BT module. > > 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: Max Krummenacher > Co-developed-by: Ernest Van Hoecke > Signed-off-by: Ernest Van Hoecke > Co-developed-by: Emanuele Ghidoli > Signed-off-by: Emanuele Ghidoli > Co-developed-by: João Paulo Gonçalves > Signed-off-by: João Paulo Gonçalves > Co-developed-by: Vitor Soares > Signed-off-by: Vitor Soares > Co-developed-by: Francesco Dolcini > Signed-off-by: Francesco Dolcini > --- > arch/arm64/boot/dts/freescale/Makefile | 1 + > .../dts/freescale/imx95-toradex-smarc-dev.dts | 277 ++++ > .../dts/freescale/imx95-toradex-smarc.dtsi | 1153 +++++++++++++++++ > 3 files changed, 1431 insertions(+) > create mode 100644 arch/arm64/boot/dts/freescale/imx95-toradex-smarc-dev.dts > create mode 100644 arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi > > diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile > index 525ef180481d..53f764d8c9a8 100644 > --- a/arch/arm64/boot/dts/freescale/Makefile > +++ b/arch/arm64/boot/dts/freescale/Makefile > @@ -373,6 +373,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx943-evk.dtb > dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-evk.dtb > dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-evk.dtb > dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-evk-sof.dtb > +dtb-$(CONFIG_ARCH_MXC) += imx95-toradex-smarc-dev.dtb > dtb-$(CONFIG_ARCH_MXC) += imx95-tqma9596sa-mb-smarc-2.dtb > > imx95-15x15-evk-pcie0-ep-dtbs = imx95-15x15-evk.dtb imx-pcie0-ep.dtbo > diff --git a/arch/arm64/boot/dts/freescale/imx95-toradex-smarc-dev.dts b/arch/arm64/boot/dts/freescale/imx95-toradex-smarc-dev.dts > new file mode 100644 > index 000000000000..5b05f256fd52 > --- /dev/null > +++ b/arch/arm64/boot/dts/freescale/imx95-toradex-smarc-dev.dts > @@ -0,0 +1,277 @@ > +// 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"; > +}; > diff --git a/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi b/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi > new file mode 100644 > index 000000000000..e99f1a57af8c > --- /dev/null > +++ b/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi > @@ -0,0 +1,1153 @@ > +// 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 > + */ > + > +#include > +#include > +#include "imx95.dtsi" > + > +/ { > + aliases { > + can0 = &flexcan1; > + can1 = &flexcan2; > + ethernet0 = &enetc_port0; > + ethernet1 = &enetc_port1; > + mmc0 = &usdhc1; > + mmc1 = &usdhc2; > + mmc2 = &usdhc3; > + rtc0 = &rtc_i2c; > + rtc1 = &scmi_bbm; > + serial0 = &lpuart2; > + serial1 = &lpuart1; > + serial3 = &lpuart3; > + }; > + > + chosen { > + stdout-path = "serial1:115200n8"; > + }; > + > + clk_dsi2dp_bridge: clock-dsi2dp-bridge { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <27000000>; > + }; > + > + clk_serdes_eth_ref: clock-eth-ref { > + compatible = "gpio-gate-clock"; > + #clock-cells = <0>; > + /* CTRL_ETH_REF_CLK_STBY# */ > + enable-gpios = <&som_gpio_expander_1 13 GPIO_ACTIVE_HIGH>; > + }; > + > + connector { > + compatible = "gpio-usb-b-connector", "usb-b-connector"; > + /* SMARC P64 - USB0_OTG_ID */ > + id-gpios = <&som_gpio_expander_0 3 GPIO_ACTIVE_HIGH>; > + label = "USB0"; > + self-powered; > + type = "micro"; > + vbus-supply = <®_usb0_vbus>; > + > + port { > + usb_dr_connector: endpoint { > + remote-endpoint = <&usb0_otg_id>; > + }; > + }; > + }; > + > + gpio-keys { > + compatible = "gpio-keys"; > + > + smarc_key_sleep: key-sleep { > + gpios = <&som_ec_gpio_expander 4 GPIO_ACTIVE_LOW>; > + label = "SMARC_SLEEP#"; > + wakeup-source; > + linux,code = ; > + }; > + > + smarc_switch_lid: switch-lid { > + gpios = <&som_ec_gpio_expander 2 GPIO_ACTIVE_LOW>; > + label = "SMARC_LID#"; > + linux,code = ; > + linux,input-type = ; > + }; > + }; > + > + reg_module_1p8v: regulator-module-1p8v { > + compatible = "regulator-fixed"; > + regulator-max-microvolt = <1800000>; > + regulator-min-microvolt = <1800000>; > + regulator-name = "On-module +V1.8"; > + }; > + > + /* Non PMIC On-module Supplies */ > + reg_module_dp_1p2v: regulator-module-dp-1p2v { > + compatible = "regulator-fixed"; > + regulator-max-microvolt = <1200000>; > + regulator-min-microvolt = <1200000>; > + regulator-name = "On-module +V1.2_DP"; > + vin-supply = <®_module_1p8v>; > + }; > + > + reg_usb0_vbus: regulator-usb0-vbus { > + compatible = "regulator-fixed"; > + /* SMARC P62 - USB0_EN_OC# */ > + gpios = <&som_gpio_expander_0 4 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + regulator-name = "USB0_EN_OC#"; > + }; > + > + reg_usb1_vbus: regulator-usb1-vbus { > + compatible = "regulator-fixed"; > + /* CTRL_V_BUS_USB_HUB or SMARC P71 - USB2_EN_OC# */ > + gpios = <&som_gpio_expander_0 6 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + regulator-name = "CTRL_V_BUS_USB_HUB"; > + }; > + > + reg_usdhc2_vmmc: regulator-vmmc-usdhc2 { > + compatible = "regulator-fixed"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_usdhc2_pwr_en>; > + enable-active-high; > + gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>; enable-active-high goes after GPIO_ACTIVE_HIGH line. > + off-on-delay-us = <100000>; > + regulator-max-microvolt = <3300000>; > + regulator-min-microvolt = <3300000>; > + regulator-name = "SDIO_PWR_EN"; > + startup-delay-us = <20000>; > + }; > + > + reg_usdhc2_vqmmc: regulator-usdhc2-vqmmc { > + compatible = "regulator-gpio"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_usdhc2_vsel>; > + gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>; > + regulator-max-microvolt = <3300000>; > + regulator-min-microvolt = <1800000>; > + states = <1800000 0x1>, > + <3300000 0x0>; > + regulator-name = "PMIC_SD2_VSEL"; > + }; > + > + reg_wifi_en: regulator-wifi-en { > + compatible = "regulator-fixed"; > + /* CTRL_EN_WIFI */ > + gpios = <&som_gpio_expander_1 7 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + regulator-max-microvolt = <3300000>; > + regulator-min-microvolt = <3300000>; > + regulator-name = "CTRL_EN_WIFI"; > + startup-delay-us = <2000>; > + }; > + > + reserved-memory { > + #address-cells = <2>; > + #size-cells = <2>; > + ranges; > + > + linux_cma: linux,cma { > + compatible = "shared-dma-pool"; > + reusable; > + size = <0 0x3c000000>; > + alloc-ranges = <0 0x80000000 0 0x7F000000>; > + linux,cma-default; > + }; > + }; > +}; > + > +/* SMARC GBE0 */ > +&enetc_port0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_enetc0>, <&pinctrl_enetc0_1588_tmr>; > + phy-handle = <ðphy1>; > + phy-mode = "rgmii-id"; > +}; > + > +/* SMARC GBE1 */ > +&enetc_port1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_enetc1>, <&pinctrl_enetc1_1588_tmr>; > + phy-handle = <ðphy2>; > + phy-mode = "rgmii-id"; > +}; > + > +/* SMARC CAN0 */ > +&flexcan1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_flexcan1>; > +}; > + > +/* SMARC CAN1 */ > +&flexcan2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_flexcan2>; > +}; > + > +&gpio1 { > + gpio-line-names = "", /* 0 */ > + "", > + "SMARC_I2C_GP_CK", > + "SMARC_I2C_GP_DAT", > + "", > + "", > + "", > + "", > + "", > + "", > + "", /* 10 */ > + "", > + "", > + "", > + "CTRL_IO_EXP_INT_B"; > + status = "okay"; > +}; > + > +&gpio2 { > + gpio-line-names = "SMARC_SPI0_CS0#", /* 0 */ > + "", > + "", > + "", > + "", > + "", > + "SMARC_GPIO5", > + "", > + "I2C_CAM_DAT", > + "I2C_CAM_CK", > + "SMARC_GPIO12", /* 10 */ > + "SMARC_GPIO13", > + "", > + "", > + "", > + "", > + "", > + "", > + "SMARC_SPI1_CS0#", > + "", > + "", /* 20 */ > + "", > + "SMARC_I2C_LCD_DAT", > + "SMARC_I2C_LCD_CK", > + "SMARC_SPI0_CS1#", > + "", > + "", > + "", > + "SMARC_I2C_PM_DAT", > + "SMARC_I2C_PM_CK", > + "I2C_SOM_DAT", /* 30 */ > + "I2C_SOM_CK"; > + status = "okay"; > +}; > + > +&gpio3 { > + gpio-line-names = "SMARC_SDIO_CD#", /* 0 */ > + "", > + "", > + "", > + "", > + "", > + "", > + "SMARC_SDIO_PWR_EN", > + "", > + "", > + "", /* 10 */ > + "", > + "", > + "", > + "", > + "", > + "", > + "", > + "", > + "", > + "PMIC_SD2_VSEL"; > + status = "okay"; > +}; > + > +&gpio4 { > + gpio-line-names = "", /* 0 */ > + "", > + "", > + "", > + "", > + "", > + "", > + "", > + "", > + "", > + "", /* 10 */ > + "", > + "", > + "", > + "SMARC_GPIO11", > + "SMARC_GPIO10", > + "", > + "", > + "", > + "", > + "", /* 20 */ > + "", > + "", > + "", > + "", > + "", > + "", > + "", > + "SMARC_SMB_ALERT#"; > + status = "okay"; > +}; > + > +&gpio5 { > + gpio-line-names = "SMARC_GPIO2", /* 0 */ > + "SMARC_GPIO3", > + "SMARC_GPIO4", > + "SMARC_GPIO6", > + "", > + "", > + "", > + "", > + "SMARC_GPIO9", > + "SMARC_GPIO7", > + "SMARC_GPIO8", /* 10 */ > + "SMARC_SPI1_CS1#", > + "", > + "SPI1_TPM_CS#"; > + status = "okay"; > +}; > + > +/* SMARC I2C_GP */ > +&lpi2c2 { > + pinctrl-names = "default", "gpio"; > + pinctrl-0 = <&pinctrl_lpi2c2>; > + pinctrl-1 = <&pinctrl_lpi2c2_gpio>; > + #address-cells = <1>; > + #size-cells = <0>; > + clock-frequency = <400000>; > + scl-gpios = <&gpio1 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + sda-gpios = <&gpio1 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + status = "okay"; > + > + eeprom@50 { > + compatible = "st,24c32", "atmel,24c32"; > + reg = <0x50>; > + pagesize = <32>; > + }; > +}; > + > +/* SMARC I2C_PM */ > +&lpi2c3 { > + pinctrl-names = "default", "gpio"; > + pinctrl-0 = <&pinctrl_lpi2c3>; > + pinctrl-1 = <&pinctrl_lpi2c3_gpio>; > + #address-cells = <1>; > + #size-cells = <0>; > + clock-frequency = <400000>; > + scl-gpios = <&gpio2 29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + sda-gpios = <&gpio2 28 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > +}; > + > +/* I2C_SOM */ > +&lpi2c4 { > + pinctrl-names = "default", "gpio"; > + pinctrl-0 = <&pinctrl_lpi2c4>, <&pinctrl_ctrl_io_exp_int_b>; > + pinctrl-1 = <&pinctrl_lpi2c4_gpio>, <&pinctrl_ctrl_io_exp_int_b>; > + #address-cells = <1>; > + #size-cells = <0>; > + clock-frequency = <400000>; > + scl-gpios = <&gpio2 31 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + sda-gpios = <&gpio2 30 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + status = "okay"; > + > + som_gpio_expander_0: gpio@20 { > + compatible = "nxp,pcal6408"; > + reg = <0x20>; > + #interrupt-cells = <2>; > + interrupt-controller; > + interrupt-parent = <&gpio1>; > + interrupts = <14 IRQ_TYPE_LEVEL_LOW>; > + #gpio-cells = <2>; > + gpio-controller; > + gpio-line-names = > + "SMARC_PCIE_WAKE#", /* 0 */ > + "SMARC_PCIE_B_RST#", > + "SMARC_PCIE_A_RST#", > + "SMARC_USB0_OTG_ID", > + "SMARC_USB0_EN", /* SMARC USB0_EN_OC# - Open Drain Output */ > + "SMARC_USB0_OC#", /* SMARC USB0_EN_OC# - Over-Current Sense Input */ > + "", > + "SMARC_PCIE_C_RST#"; > + }; > + > + som_gpio_expander_1: gpio@21 { > + compatible = "nxp,pcal6416"; > + reg = <0x21>; > + #interrupt-cells = <2>; > + interrupt-controller; > + interrupt-parent = <&gpio1>; > + interrupts = <14 IRQ_TYPE_LEVEL_LOW>; > + #gpio-cells = <2>; > + gpio-controller; > + gpio-line-names = > + "SMARC_GPIO0", /* 0 */ > + "SMARC_GPIO1", > + "SMARC_LCD0_VDD_EN", > + "SMARC_LCD0_BKLT_EN", > + "SMARC_LCD1_VDD_EN", > + "SMARC_LCD1_BKLT_EN", > + "", > + "", > + "", > + "", > + "", /* 10 */ > + "", > + "", > + "", > + "", > + "", > + "", > + "SMARC_SDIO_WP"; > + }; > + > + embedded-controller@28 { > + compatible = "toradex,smarc-imx95-ec", "toradex,smarc-ec"; > + reg = <0x28>; > + }; > + > + som_ec_gpio_expander: gpio@29 { > + compatible = "toradex,ecgpiol16", "nxp,pcal6416"; > + reg = <0x29>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_ec_int>; > + #interrupt-cells = <2>; > + interrupt-controller; > + interrupt-parent = <&gpio1>; > + interrupts = <11 IRQ_TYPE_LEVEL_LOW>; > + #gpio-cells = <2>; > + gpio-controller; > + gpio-line-names = > + "SMARC_CHARGER_PRSNT#", > + "SMARC_CHARGING#", > + "SMARC_LID#", > + "SMARC_BATLOW#", > + "SMARC_SLEEP#"; > + }; > + > + /* SMARC DP0 */ > + som_dsi2dp_bridge: bridge@2c { > + compatible = "ti,sn65dsi86"; > + reg = <0x2c>; > + clocks = <&clk_dsi2dp_bridge>; > + clock-names = "refclk"; > + vcc-supply = <®_module_dp_1p2v>; > + vcca-supply = <®_module_dp_1p2v>; > + vccio-supply = <®_module_1p8v>; > + vpll-supply = <®_module_1p8v>; > + status = "disabled"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; Have a newline between properties and child node. Shawn > + sn65dsi86_in: endpoint { > + }; > + }; > + > + port@1 { > + reg = <1>; > + sn65dsi86_out: endpoint { > + data-lanes = <3 2 1 0>; > + }; > + }; > + }; > + }; > + > + rtc_i2c: rtc@32 { > + compatible = "epson,rx8130"; > + reg = <0x32>; > + }; > + > + temperature-sensor@48 { > + compatible = "ti,tmp1075"; > + reg = <0x48>; > + }; > + > + eeprom@50 { > + compatible = "st,24c02", "atmel,24c02"; > + reg = <0x50>; > + pagesize = <16>; > + }; > +}; > + > +/* SMARC I2C_LCD */ > +&lpi2c5 { > + pinctrl-names = "default", "gpio"; > + pinctrl-0 = <&pinctrl_lpi2c5>; > + pinctrl-1 = <&pinctrl_lpi2c5_gpio>; > + #address-cells = <1>; > + #size-cells = <0>; > + clock-frequency = <100000>; > + scl-gpios = <&gpio2 23 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + sda-gpios = <&gpio2 22 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > +}; > + > +/* I2C_CAM */ > +&lpi2c7 { > + pinctrl-names = "default", "gpio"; > + pinctrl-0 = <&pinctrl_lpi2c7>; > + pinctrl-1 = <&pinctrl_lpi2c7_gpio>; > + #address-cells = <1>; > + #size-cells = <0>; > + clock-frequency = <400000>; > + scl-gpios = <&gpio2 9 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + sda-gpios = <&gpio2 8 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + status = "okay"; > + > + i2c-mux@70 { > + compatible = "nxp,pca9543"; > + reg = <0x70>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + /* SMARC I2C_CAM0 */ > + i2c_cam0: i2c@0 { > + reg = <0>; > + #address-cells = <1>; > + #size-cells = <0>; > + }; > + > + /* SMARC I2C_CAM1 */ > + i2c_cam1: i2c@1 { > + reg = <1>; > + #address-cells = <1>; > + #size-cells = <0>; > + }; > + }; > +}; > + > +/* SMARC SPI1 */ > +&lpspi4 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_lpspi4>; > + cs-gpios = <&gpio2 18 GPIO_ACTIVE_LOW>, > + <&gpio5 11 GPIO_ACTIVE_LOW>, > + <&gpio5 13 GPIO_ACTIVE_LOW>; > + status = "okay"; > + > + som_tpm: tpm@2 { > + compatible = "infineon,slb9670", "tcg,tpm_tis-spi"; > + reg = <0x2>; > + spi-max-frequency = <18500000>; > + }; > +}; > + > +/* SMARC SPI0 */ > +&lpspi6 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_lpspi6>; > + cs-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>, > + <&gpio2 24 GPIO_ACTIVE_LOW>; > +}; > + > +/* SMARC SER1, used as the Linux Console */ > +&lpuart1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_uart1>; > +}; > + > +/* SMARC SER0 */ > +&lpuart2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_uart2>; > + uart-has-rtscts; > +}; > + > +/* SMARC SER3 */ > +&lpuart3 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_uart3>; > +}; > + > +/* SMARC MDIO, shared between all ethernet ports */ > +&netc_emdio { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_emdio>; > + > + ethphy1: ethernet-phy@1 { > + reg = <1>; > + interrupt-parent = <&som_gpio_expander_1>; > + interrupts = <6 IRQ_TYPE_LEVEL_LOW>; > + ti,rx-internal-delay = ; > + ti,tx-internal-delay = ; > + }; > + > + ethphy2: ethernet-phy@2 { > + reg = <2>; > + ti,rx-internal-delay = ; > + ti,tx-internal-delay = ; > + }; > +}; > + > +&netcmix_blk_ctrl { > + status = "okay"; > +}; > + > +&netc_blk_ctrl { > + status = "okay"; > +}; > + > +&netc_timer { > + status = "okay"; > +}; > + > +/* SMARC PCIE_A */ > +&pcie0 { > + pinctrl-0 = <&pinctrl_pcie0>; > + pinctrl-names = "default"; > + reset-gpios = <&som_gpio_expander_0 2 GPIO_ACTIVE_LOW>; > +}; > + > +/* SMARC PCIE_B */ > +&pcie1 { > + pinctrl-0 = <&pinctrl_pcie1>; > + pinctrl-names = "default"; > + reset-gpios = <&som_gpio_expander_0 1 GPIO_ACTIVE_LOW>; > +}; > + > +/* SMARC I2S0 */ > +&sai3 { > + #sound-dai-cells = <0>; > + assigned-clocks = <&scmi_clk IMX95_CLK_AUDIOPLL1_VCO>, > + <&scmi_clk IMX95_CLK_AUDIOPLL2_VCO>, > + <&scmi_clk IMX95_CLK_AUDIOPLL1>, > + <&scmi_clk IMX95_CLK_AUDIOPLL2>, > + <&scmi_clk IMX95_CLK_SAI3>; > + assigned-clock-parents = <0>, <0>, <0>, <0>, > + <&scmi_clk IMX95_CLK_AUDIOPLL1>; > + assigned-clock-rates = <3932160000>, > + <3612672000>, <393216000>, > + <361267200>, <12288000>; > + fsl,sai-mclk-direction-output; > +}; > + > +&thermal_zones { > + /* PF09 Main PMIC */ > + pf09-thermal { > + polling-delay = <2000>; > + polling-delay-passive = <250>; > + thermal-sensors = <&scmi_sensor 2>; > + > + trips { > + trip0 { > + hysteresis = <2000>; > + temperature = <155000>; > + type = "critical"; > + }; > + }; > + }; > + > + /* PF53 VDD_ARM PMIC */ > + pf53-arm-thermal { > + polling-delay = <2000>; > + polling-delay-passive = <250>; > + thermal-sensors = <&scmi_sensor 4>; > + > + trips { > + trip0 { > + hysteresis = <2000>; > + temperature = <155000>; > + type = "critical"; > + }; > + }; > + }; > + > + /* PF53 VDD_SOC PMIC */ > + pf53-soc-thermal { > + polling-delay = <2000>; > + polling-delay-passive = <250>; > + thermal-sensors = <&scmi_sensor 3>; > + > + trips { > + trip0 { > + hysteresis = <2000>; > + temperature = <155000>; > + type = "critical"; > + }; > + }; > + }; > +}; > + > +/* SMARC LCD0_BKLT_PWM */ > +&tpm3 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_lcd0_bklt_pwm>; > +}; > + > +/* SMARC LCD1_BKLT_PWM */ > +&tpm4 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_lcd1_bklt_pwm>; > +}; > + > +/* SMARC GPIO5 as PWM */ > +&tpm5 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_gpio5_pwm>; > +}; > + > +/* SMARC USB0 */ > +&usb2 { > + adp-disable; > + dr_mode = "otg"; > + hnp-disable; > + srp-disable; > + usb-role-switch; > + vbus-supply = <®_usb0_vbus>; > + > + port { > + usb0_otg_id: endpoint { > + remote-endpoint = <&usb_dr_connector>; > + }; > + }; > +}; > + > +&usb3 { > + fsl,disable-port-power-control; > +}; > + > +/* SMARC USB1..4 */ > +&usb3_dwc3 { > + dr_mode = "host"; > +}; > + > +&usb3_phy { > + vbus-supply = <®_usb1_vbus>; > +}; > + > +/* On-module eMMC */ > +&usdhc1 { > + pinctrl-names = "default", "state_100mhz", "state_200mhz"; > + pinctrl-0 = <&pinctrl_usdhc1>; > + pinctrl-1 = <&pinctrl_usdhc1>; > + pinctrl-2 = <&pinctrl_usdhc1_200mhz>; > + bus-width = <8>; > + non-removable; > + no-sdio; > + no-sd; > + status = "okay"; > +}; > + > +/* SMARC SDIO */ > +&usdhc2 { > + pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep"; > + pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_cd>; > + pinctrl-1 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_cd>; > + pinctrl-2 = <&pinctrl_usdhc2_200mhz>,<&pinctrl_usdhc2_cd>; > + pinctrl-3 = <&pinctrl_usdhc2_sleep>, <&pinctrl_usdhc2_cd>; > + cd-gpios = <&gpio3 0 GPIO_ACTIVE_LOW>; > + vmmc-supply = <®_usdhc2_vmmc>; > + vqmmc-supply = <®_usdhc2_vqmmc>; > + wp-gpios = <&som_gpio_expander_1 15 GPIO_ACTIVE_HIGH>; > +}; > + > +/* On-module Wi-Fi */ > +&usdhc3 { > + pinctrl-names = "default", "state_100mhz", "state_200mhz"; > + pinctrl-0 = <&pinctrl_usdhc3>; > + pinctrl-1 = <&pinctrl_usdhc3>; > + pinctrl-2 = <&pinctrl_usdhc3_200mhz>; > + keep-power-in-suspend; > + non-removable; > + vmmc-supply = <®_wifi_en>; > +}; > + > +&scmi_bbm { > + linux,code = ; > +}; > + > +&wdog3 { > + fsl,ext-reset-output; > + status = "okay"; > +}; > + > +&scmi_iomuxc { > + /* SMARC CAM_MCK */ > + pinctrl_cam_mck: cammckgrp { > + fsl,pins = ; /* SMARC S6 - CAM_MCK */ > + }; > + > + pinctrl_ec_int: ecintgrp { > + fsl,pins = ; /* SAI1_TXFS - EC_MCU_INT# */ > + }; > + > + /* SMARC MDIO, shared between all ethernet ports */ > + pinctrl_emdio: emdiogrp { > + fsl,pins = , /* SMARC S45 - MDIO_CLK */ > + ; /* SMARC S46 - MDIO_DAT */ > + }; > + > + /* SMARC GBE0 */ > + pinctrl_enetc0: enetc0grp { > + fsl,pins = , /* ENET1_TX_CTL */ > + , /* ENET1_TXC */ > + , /* ENET1_TDO */ > + , /* ENET1_TD1 */ > + , /* ENET1_TD2 */ > + , /* ENET1_TD3 */ > + , /* ENET1_RX_CTL */ > + , /* ENET1_RXC */ > + , /* ENET1_RD0 */ > + , /* ENET1_RD1 */ > + , /* ENET1_RD2 */ > + ; /* ENET1_RD3 */ > + }; > + > + /* SMARC GBE0_SDP */ > + pinctrl_enetc0_1588_tmr: enetc01588tmrgrp { > + fsl,pins = ; /* SMARC P6 - GBE0_SDP */ > + }; > + > + /* SMARC GBE1 */ > + pinctrl_enetc1: enetc1grp { > + fsl,pins = , /* ENET2_TX_CTL */ > + , /* ENET2_TXC */ > + , /* ENET2_TD0 */ > + , /* ENET2_TD1 */ > + , /* ENET2_TD2 */ > + , /* ENET2_TD3 */ > + , /* ENET2_RX_CTL */ > + , /* ENET2_RXC */ > + , /* ENET2_RD0 */ > + , /* ENET2_RD1 */ > + , /* ENET2_RD2 */ > + ; /* ENET2_RD3 */ > + }; > + > + /* SMARC GBE1_SDP */ > + pinctrl_enetc1_1588_tmr: enetc11588tmrgrp { > + fsl,pins = ; /* SMARC P5 - GBE1_SDP */ > + }; > + > + /* SMARC CAN0 */ > + pinctrl_flexcan1: flexcan1grp { > + fsl,pins = , /* SMARC P143 - CAN0_TX */ > + ; /* SMARC P144 - CAN0_RX */ > + }; > + > + /* SMARC CAN1 */ > + pinctrl_flexcan2: flexcan2grp { > + fsl,pins = , /* SMARC P145 - CAN1_TX */ > + ; /* SMARC P146 - CAN1_RX */ > + }; > + > + /* SMARC GPIO2 */ > + pinctrl_gpio2: gpio2grp { > + fsl,pins = ; /* SMARC P110 - GPIO2 */ > + }; > + > + /* SMARC GPIO3 */ > + pinctrl_gpio3: gpio3grp { > + fsl,pins = ; /* SMARC P111 - GPIO3 */ > + }; > + > + /* SMARC GPIO4 */ > + pinctrl_gpio4: gpio4grp { > + fsl,pins = ; /* SMARC P112 - GPIO4 */ > + }; > + > + /* SMARC GPIO5 */ > + pinctrl_gpio5: gpio5grp { > + fsl,pins = ; /* SMARC P113 - GPIO5 */ > + }; > + > + /* SMARC GPIO5 as PWM */ > + pinctrl_gpio5_pwm: gpio5pwmgrp { > + fsl,pins = ; /* SMARC P113 - PWM_OUT */ > + }; > + > + /* SMARC GPIO6 */ > + pinctrl_gpio6: gpio6grp { > + fsl,pins = ; /* SMARC P114 - GPIO6 */ > + }; > + > + /* SMARC GPIO7 */ > + pinctrl_gpio7: gpio7grp { > + fsl,pins = ; /* SMARC P115 - GPIO7 */ > + }; > + > + /* SMARC GPIO8 */ > + pinctrl_gpio8: gpio8grp { > + fsl,pins = ; /* SMARC P116 - GPIO8 */ > + }; > + > + /* SMARC GPIO9 */ > + pinctrl_gpio9: gpio9grp { > + fsl,pins = ; /* SMARC P117 - GPIO9 */ > + }; > + > + /* SMARC GPIO10 */ > + pinctrl_gpio10: gpio10grp { > + fsl,pins = ; /* SMARC P118 - GPIO10 */ > + }; > + > + /* SMARC GPIO11 */ > + pinctrl_gpio11: gpio11grp { > + fsl,pins = ; /* SMARC P119 - GPIO11 */ > + }; > + > + /* SMARC GPIO12 */ > + pinctrl_gpio12: gpio12grp { > + fsl,pins = ; /* SMARC S142 - GPIO12 */ > + }; > + > + /* SMARC GPIO13 */ > + pinctrl_gpio13: gpio13grp { > + fsl,pins = ; /* SMARC S123 - GPIO13 */ > + }; > + > + pinctrl_ctrl_io_exp_int_b: ioexpintgrp { > + fsl,pins = ; /* CTRL_IO_EXP_INT_B */ > + }; > + > + /* SMARC LCD0_BKLT_PWM */ > + pinctrl_lcd0_bklt_pwm: lcd0bkltpwmgrp { > + fsl,pins = ; /* SMARC S141 - LCD0_BKLT_PWM */ > + }; > + > + /* SMARC LCD1_BKLT_PWM */ > + pinctrl_lcd1_bklt_pwm: lcd1bkltpwmgrp { > + fsl,pins = ; /* SMARC S122 - LCD1_BKLT_PWM */ > + }; > + > + /* SMARC I2C_GP */ > + pinctrl_lpi2c2: lpi2c2grp { > + fsl,pins = , /* SMARC S48 - I2C_GP_CK */ > + ; /* SMARC S49 - I2C_GP_DAT */ > + }; > + > + /* SMARC I2C_GP as GPIOs */ > + pinctrl_lpi2c2_gpio: lpi2c2gpiogrp { > + fsl,pins = , /* SMARC S48 - I2C_GP_CK */ > + ; /* SMARC S49 - I2C_GP_DAT */ > + }; > + > + /* SMARC I2C_PM */ > + pinctrl_lpi2c3: lpi2c3grp { > + fsl,pins = , /* SMARC P122 - I2C_PM_DAT */ > + ; /* SMARC P121 - I2C_PM_CK */ > + }; > + > + /* SMARC I2C_PM as GPIOs */ > + pinctrl_lpi2c3_gpio: lpi2c3gpiogrp { > + fsl,pins = , /* SMARC P122 - I2C_PM_DAT */ > + ; /* SMARC P121 - I2C_PM_CK */ > + }; > + > + /* I2C_SOM */ > + pinctrl_lpi2c4: lpi2c4grp { > + fsl,pins = , /* I2C_SOM_CK */ > + ; /* I2C_SOM_DAT */ > + }; > + > + /* I2C_SOM as GPIOs */ > + pinctrl_lpi2c4_gpio: lpi2c4gpiogrp { > + fsl,pins = , /* I2C_SOM_CK */ > + ; /* I2C_SOM_DAT */ > + }; > + > + /* SMARC I2C_LCD */ > + pinctrl_lpi2c5: lpi2c5grp { > + fsl,pins = , /* SMARC S140 - I2C_LCD_DAT */ > + ; /* SMARC S139 - I2C_LCD_CK */ > + }; > + > + /* SMARC I2C_LCD as GPIOs */ > + pinctrl_lpi2c5_gpio: lpi2c5gpiogrp { > + fsl,pins = , /* SMARC S140 - I2C_LCD_DAT */ > + ; /* SMARC S139 - I2C_LCD_CK */ > + }; > + > + /* I2C_CAM */ > + pinctrl_lpi2c7: lpi2c7grp { > + fsl,pins = , /* I2C_CAM_DAT */ > + ; /* I2C_CAM_CK */ > + }; > + > + /* I2C_CAM as GPIOs */ > + pinctrl_lpi2c7_gpio: lpi2c7gpiogrp { > + fsl,pins = , /* I2C_CAM_DAT */ > + ; /* I2C_CAM_CK */ > + }; > + > + /* SMARC SPI1 */ > + pinctrl_lpspi4: lpspi4grp { > + fsl,pins = , /* SMARC P56 - SPI1_CK */ > + , /* SMARC P58 - SPI1_DO */ > + , /* SMARC P57 - SPI1_DIN */ > + , /* SPI1_TPM_CS# */ > + , /* SMARC P54 - SPI1_CS0# */ > + ; /* SMARC P55 - SPI1_CS1# */ > + }; > + > + /* SMARC SPI0 */ > + pinctrl_lpspi6: lpspi6grp { > + fsl,pins = , /* SMARC P43 - SPI0_CS0# */ > + , /* SMARC P31 - SPI0_CS1# */ > + , /* SMARC P45 - SPI0_DIN */ > + , /* SMARC P46 - SPI0_DO */ > + ; /* SMARC P44 - SPI0_CK */ > + }; > + > + /* SMARC PCIE_A */ > + pinctrl_pcie0: pcie0grp { > + fsl,pins = ; /* SMARC P78 - PCIE_A_CKREQ# */ > + }; > + > + /* SMARC PCIE_B */ > + pinctrl_pcie1: pcie1grp { > + fsl,pins = ; /* SMARC P77 - PCIE_B_CKREQ# */ > + }; > + > + /* SMARC I2S0 */ > + pinctrl_sai3: sai3grp { > + fsl,pins = , /* SMARC S38 - I2S0_CK */ > + , /* SMARC S41 - I2S0_SDIN */ > + , /* SMARC S40 - I2S0_SDOUT */ > + ; /* SMARC S39 - I2S0_LRCK */ > + }; > + > + /* SMARC AUDIO_MCK */ > + pinctrl_sai3_mclk: sai3mclkgrp { > + fsl,pins = ; /* SMARC S42 - AUDIO_MCK */ > + }; > + > + /* SMARC I2S2 */ > + pinctrl_sai5: sai5grp { > + fsl,pins = , /* SMARC S53 - I2S2_CK */ > + , /* SMARC S51 - I2S2_SDOUT */ > + , /* SMARC S52 - I2S2_SDIN */ > + ; /* SMARC S50 - I2S2_LRCK */ > + }; > + > + /* SMARC SMB_ALERT# */ > + pinctrl_smb_alert_gpio: smbalertgrp { > + fsl,pins = ; /* SMARC P1 - SMB_ALERT# */ > + }; > + > + /* SMARC SER1, used as the Linux Console */ > + pinctrl_uart1: uart1grp { > + fsl,pins = , /* SMARC P134 - SER1_TX */ > + ; /* SMARC P135 - SER1_RX */ > + }; > + > + /* SMARC SER0 */ > + pinctrl_uart2: uart2grp { > + fsl,pins = , /* SMARC P132 - SER0_CTS# */ > + , /* SMARC P131 - SER0_RTS# */ > + , /* SMARC P130 - SER0_RX */ > + ; /* SMARC P129 - SER0_TX */ > + }; > + > + /* SMARC SER3 */ > + pinctrl_uart3: uart3grp { > + fsl,pins = , /* SMARC P140 - SER3_TX */ > + ; /* SMARC P141 - SER3_RX */ > + }; > + > + /* On-module eMMC */ > + pinctrl_usdhc1: usdhc1grp { > + fsl,pins = , /* SD1_CLK */ > + , /* SD1_CMD */ > + , /* SD1_DATA0 */ > + , /* SD1_DATA1 */ > + , /* SD1_DATA2 */ > + , /* SD1_DATA3 */ > + , /* SD1_DATA4 */ > + , /* SD1_DATA5 */ > + , /* SD1_DATA6 */ > + , /* SD1_DATA7 */ > + ; /* SD1_STROBE */ > + }; > + > + pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp { > + fsl,pins = , /* SD1_CLK */ > + , /* SD1_CMD */ > + , /* SD1_DATA0 */ > + , /* SD1_DATA1 */ > + , /* SD1_DATA2 */ > + , /* SD1_DATA3 */ > + , /* SD1_DATA4 */ > + , /* SD1_DATA5 */ > + , /* SD1_DATA6 */ > + , /* SD1_DATA7 */ > + ; /* SD1_STROBE */ > + }; > + > + /* SMARC SDIO */ > + pinctrl_usdhc2: usdhc2grp { > + fsl,pins = , /* SMARC P36 - SDIO_CK */ > + , /* SMARC P34 - SDIO_CMD */ > + , /* SMARC P39 - SDIO_D0 */ > + , /* SMARC P40 - SDIO_D1 */ > + , /* SMARC P41 - SDIO_D2 */ > + ; /* SMARC P42 - SDIO_D3 */ > + }; > + > + /* SMARC SDIO */ > + pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp { > + fsl,pins = , /* SMARC P36 - SDIO_CK */ > + , /* SMARC P34 - SDIO_CMD */ > + , /* SMARC P39 - SDIO_D0 */ > + , /* SMARC P40 - SDIO_D1 */ > + , /* SMARC P41 - SDIO_D2 */ > + ; /* SMARC P42 - SDIO_D3 */ > + }; > + > + /* SMARC SDIO */ > + pinctrl_usdhc2_sleep: usdhc2-sleepgrp { > + fsl,pins = , /* SMARC P36 - SDIO_CK */ > + , /* SMARC P34 - SDIO_CMD */ > + , /* SMARC P39 - SDIO_D0 */ > + , /* SMARC P40 - SDIO_D1 */ > + , /* SMARC P41 - SDIO_D2 */ > + ; /* SMARC P42 - SDIO_D3 */ > + }; > + > + /* SMARC SDIO_CD# */ > + pinctrl_usdhc2_cd: usdhc2-cdgrp { > + fsl,pins = ; /* SMARC P35 - SDIO_CD# */ > + }; > + > + /* SMARC SDIO_PWR_EN */ > + pinctrl_usdhc2_pwr_en: usdhc2-pwrengrp { > + fsl,pins = ; /* SMARC P37 - SDIO_PWR_EN */ > + }; > + > + pinctrl_usdhc2_vsel: usdhc2-vselgrp { > + fsl,pins = ; /* PMIC_SD2_VSEL */ > + }; > + > + /* On-module Wi-Fi */ > + pinctrl_usdhc3: usdhc3grp { > + fsl,pins = , /* SD3_CLK */ > + , /* SD3_CMD */ > + , /* SD3_DATA0 */ > + , /* SD3_DATA1 */ > + , /* SD3_DATA2 */ > + ; /* SD3_DATA3 */ > + }; > + > + /* On-module Wi-Fi */ > + pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp { > + fsl,pins = , /* SD3_CLK */ > + , /* SD3_CMD */ > + , /* SD3_DATA1 */ > + , /* SD3_DATA2 */ > + , /* SD3_DATA3 */ > + ; /* SD3_DATA4 */ > + }; > +}; > -- > 2.39.5 >