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 A28DFD3B7E5 for ; Mon, 29 Dec 2025 08:28:45 +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-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=LoX5WdOoGBrBROTBkDtX0PsV+s1fOCdAGe50Ey1bMGI=; b=FhBtyivb/BS0eoU84yuAiI7is2 nYsRJXgRmsYpl6bxYxrSDgmgqinfAWje6vNbNosF/mji39ByLQbg/B3AeEvkG89Wp4gq6ZzVqNnYd REtYY98lLxqSkwzzTQDWDu6vZEE1V+uDl+vmSvMHMxgl4Fe9kiMb+QBVwFQcDufuE02FPVv0zoxJl eSGSd2Ni/Pkn+5hcyaf0LLH+JXlVcV8NcwrWhlakAaHL67JLOlwsHtE/6k3j9H0vVBgVrMUnuxv0E Z30qPBxch8J+XBdhjIxDAIPHL3gZJct4INW6NDXqzsUkyI+FiJTonowpSacJvxcYSt7iqao93FmAf OSc4jOTQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1va8cL-00000003TVQ-1Y2D; Mon, 29 Dec 2025 08:28:41 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1va8cK-00000003TV1-0xfV for linux-arm-kernel@lists.infradead.org; Mon, 29 Dec 2025 08:28:40 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 38AE96000A; Mon, 29 Dec 2025 08:28:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1E018C4CEF7; Mon, 29 Dec 2025 08:28:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1766996918; bh=Xyb3EWtazZNtfN+CXVhBQ8OoojBIlsXAdu3ujH5aoc8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=RyN+yOiJy6LVrXhKC/H00QhbbrmqxzO7ATD2akO6MZcjjHZY+Xmm2seG3lHqftOix 3F26Bxj9e64PzJk0M0njIAQX+9PZolaKFR3XKg7E6LAXCvc1IOjy5vnRcgoHfBeOo/ Y0Dg7jqLKTNsNfuMHo4OjhVr9F/ExlBhyQf4mr5amJJ1zEFFy/qpV+nP3w0acmGvaI mPxp4SVnkOT0X9XYJ2vsSdDc7rcG1trvLhDdGR1I3y6DygYlU06mPHK/uNQPKC4tb7 B/D+Gw3jbdIMC7CpRmUmVdOK9hCfRnUuZJjPMZeAbSMbdpuk4R/HuH9vWJtgdqnNno dGGsXSF5n+S9w== Date: Mon, 29 Dec 2025 16:28:32 +0800 From: Shawn Guo To: maudspierings@gocontroll.com Cc: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Matti Vaittinen , Liam Girdwood , Mark Brown , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v4 5/5] arm64: dts: freescale: Add the GOcontroll Moduline Mini Message-ID: References: <20251117-mini_iv-v4-0-5aa63832f51a@gocontroll.com> <20251117-mini_iv-v4-5-5aa63832f51a@gocontroll.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20251117-mini_iv-v4-5-5aa63832f51a@gocontroll.com> 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 Mon, Nov 17, 2025 at 04:01:30PM +0100, Maud Spierings via B4 Relay wrote: > From: Maud Spierings > > The Moduline Mini is a part of the wider GOcontroll Moduline ecosystem. These > are embedded controllers that focus on modularity with their swappable IO > modules. > > Features: > - up to 4 Moduline IO modules > - 2 CAN busses > - 1 Ethernet > - 4 RGB leds > - 1 3D accelerometer > - optional Wi-Fi/Bluetooth > - optional 4G/GPS > > Signed-off-by: Maud Spierings > --- > arch/arm64/boot/dts/freescale/Makefile | 1 + > .../imx8mm-tx8m-1610-moduline-mini-111.dts | 688 +++++++++++++++++++++ > 2 files changed, 689 insertions(+) > > diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile > index b2fef44e0a37..0a84c7dc89e3 100644 > --- a/arch/arm64/boot/dts/freescale/Makefile > +++ b/arch/arm64/boot/dts/freescale/Makefile > @@ -125,6 +125,7 @@ imx8mm-evkb-pcie-ep-dtbs += imx8mm-evkb.dtb imx-pcie0-ep.dtbo > dtb-$(CONFIG_ARCH_MXC) += imx8mm-evk-pcie-ep.dtb imx8mm-evkb-pcie-ep.dtb > > dtb-$(CONFIG_ARCH_MXC) += imx8mm-tx8m-1610-moduline-iv-306-d.dtb > +dtb-$(CONFIG_ARCH_MXC) += imx8mm-tx8m-1610-moduline-mini-111.dtb > > dtb-$(CONFIG_ARCH_MXC) += imx8mm-icore-mx8mm-ctouch2.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mm-icore-mx8mm-edimm2.2.dtb > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-tx8m-1610-moduline-mini-111.dts b/arch/arm64/boot/dts/freescale/imx8mm-tx8m-1610-moduline-mini-111.dts > new file mode 100644 > index 000000000000..0091196a27d2 > --- /dev/null > +++ b/arch/arm64/boot/dts/freescale/imx8mm-tx8m-1610-moduline-mini-111.dts > @@ -0,0 +1,688 @@ > +// SPDX-License-Identifier: (GPL-2.0 OR MIT) > +/* > + * Copyright (C) 2025 Maud Spierings > + */ > + > +/dts-v1/; > + > +#include "imx8mm-tx8m-1610.dtsi" > +#include > + > +/ { > + chassis-type = "embedded"; > + compatible = "gocontroll,moduline-mini-111", "karo,imx8mm-tx8m-1610", "fsl,imx8mm"; > + hardware = "Moduline Mini V1.11"; > + model = "GOcontroll Moduline Mini"; > + > + aliases { > + usb-host = &usbotg2; > + usbotg = &usbotg1; > + spi0 = &ecspi2; /* spidev number compatibility */ > + spi1 = &ecspi3; /* spidev number compatibility */ > + spi2 = &ecspi1; /* spidev number compatibility */ Alphabetical order? > + }; > + > + chosen { > + stdout-path = "serial2:115200n8"; > + }; > + > + mcp_clock: mcp-clock { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <20000000>; > + }; > + > + reg_3v3_comm: regulator-3v3-communication { > + compatible = "regulator-fixed"; > + enable-active-high; > + gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>; > + pinctrl-0 = <&pinctrl_reg_comm>; > + pinctrl-names = "default"; > + power-supply = <®_6v4>; > + /* also powers the cellular modem which can't vote on the regulator */ > + regulator-always-on; > + regulator-max-microvolt = <3300000>; > + regulator-min-microvolt = <3300000>; > + regulator-name = "3v3_comm"; > + }; > + > + reg_5v0: regulator-5v0 { > + compatible = "regulator-fixed"; > + power-supply = <®_6v4>; > + regulator-always-on; > + regulator-max-microvolt = <5000000>; > + regulator-min-microvolt = <5000000>; > + regulator-name = "5v0"; > + }; > + > + reg_6v4: regulator-6v4 { > + compatible = "regulator-fixed"; > + regulator-always-on; > + regulator-max-microvolt = <6400000>; > + regulator-min-microvolt = <6400000>; > + regulator-name = "6v4"; > + }; > + > + reg_can1_stby: regulator-can1-stby { > + compatible = "regulator-fixed"; > + gpio = <&gpio2 12 GPIO_ACTIVE_LOW>; > + pinctrl-0 = <&pinctrl_can1_reg>; > + pinctrl-names = "default"; > + regulator-max-microvolt = <3300000>; > + regulator-min-microvolt = <3300000>; > + regulator-name = "can1-stby"; > + }; > + > + reg_can2_stby: regulator-can2-stby { > + compatible = "regulator-fixed"; > + gpio = <&gpio3 15 GPIO_ACTIVE_LOW>; > + pinctrl-0 = <&pinctrl_can2_reg>; > + pinctrl-names = "default"; > + regulator-max-microvolt = <3300000>; > + regulator-min-microvolt = <3300000>; > + regulator-name = "can2-stby"; > + }; > + > + wifi_pwrseq: wifi-pwrseq { > + compatible = "mmc-pwrseq-simple"; > + pinctrl-0 = <&pinctrl_wl_reg>; > + pinctrl-names = "default"; > + post-power-on-delay-ms = <100>; > + power-off-delay-us = <500000>; > + reset-gpios = <&gpio5 28 GPIO_ACTIVE_LOW>; > + }; > +}; > + > +&ecspi1 { > + cs-gpios = <&gpio4 27 GPIO_ACTIVE_LOW>, > + <&gpio3 23 GPIO_ACTIVE_LOW>, > + <&gpio3 1 GPIO_ACTIVE_LOW>; > + pinctrl-0 = <&pinctrl_ecspi1>; > + pinctrl-names = "default"; > + status = "okay"; > + > + connector@0 { > + compatible = "gocontroll,moduline-module-slot"; > + reg = <0>; > + i2c-bus = <&i2c2>; > + interrupt-parent = <&gpio4>; > + interrupts = <26 IRQ_TYPE_EDGE_FALLING>; > + reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>; > + slot-number = <3>; > + spi-max-frequency = <54000000>; > + sync-gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>; > + vddhpp-supply = <®_6v4>; > + vddp-supply = <®_5v0>; > + vdd-supply = <®_vdd_3v3>; > + }; > + > + connector@1 { > + compatible = "gocontroll,moduline-module-slot"; > + reg = <1>; > + i2c-bus = <&i2c2>; > + interrupt-parent = <&gpio3>; > + interrupts = <19 IRQ_TYPE_EDGE_FALLING>; > + reset-gpios = <&gpio3 21 GPIO_ACTIVE_LOW>; > + slot-number = <4>; > + spi-max-frequency = <54000000>; > + sync-gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>; > + vddhpp-supply = <®_6v4>; > + vddp-supply = <®_5v0>; > + vdd-supply = <®_vdd_3v3>; > + }; > + > + adc@2 { > + compatible = "microchip,mcp3004"; > + reg = <2>; > + spi-max-frequency = <2300000>; > + vref-supply = <®_vdd_3v3>; > + }; > +}; > + > +&ecspi2 { > + cs-gpios = <&gpio3 24 GPIO_ACTIVE_LOW>, > + <&gpio3 9 GPIO_ACTIVE_LOW>; > + pinctrl-0 = <&pinctrl_ecspi2>; > + pinctrl-names = "default"; > + status = "okay"; > + > + can@0 { > + compatible = "microchip,mcp25625"; > + reg = <0>; > + clocks = <&mcp_clock>; > + interrupt-parent = <&gpio3>; > + interrupts = <22 IRQ_TYPE_LEVEL_LOW>; > + pinctrl-0 = <&pinctrl_can1>; > + pinctrl-names = "default"; > + spi-max-frequency = <10000000>; > + vdd-supply = <®_vdd_3v3>; > + xceiver-supply = <®_can1_stby>; > + }; > + > + can@1 { > + compatible = "microchip,mcp25625"; > + reg = <1>; > + clocks = <&mcp_clock>; > + interrupt-parent = <&gpio3>; > + interrupts = <6 IRQ_TYPE_LEVEL_LOW>; > + pinctrl-0 = <&pinctrl_can2>; > + pinctrl-names = "default"; > + spi-max-frequency = <10000000>; > + vdd-supply = <®_vdd_3v3>; > + xceiver-supply = <®_can2_stby>; > + }; > +}; > + > +&ecspi3 { > + cs-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>, > + <&gpio1 2 GPIO_ACTIVE_LOW>; > + pinctrl-0 = <&pinctrl_ecspi3>; > + pinctrl-names = "default"; > + status = "okay"; > + > + connector@0 { > + compatible = "gocontroll,moduline-module-slot"; > + reg = <0>; > + i2c-bus = <&i2c2>; > + interrupt-parent = <&gpio1>; > + interrupts = <10 IRQ_TYPE_EDGE_FALLING>; > + reset-gpios = <&gpio1 7 GPIO_ACTIVE_LOW>; > + slot-number = <1>; > + spi-max-frequency = <54000000>; > + sync-gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>; > + vddhpp-supply = <®_6v4>; > + vddp-supply = <®_5v0>; > + vdd-supply = <®_vdd_3v3>; > + }; > + > + connector@1 { > + compatible = "gocontroll,moduline-module-slot"; > + reg = <1>; > + i2c-bus = <&i2c2>; > + interrupt-parent = <&gpio1>; > + interrupts = <5 IRQ_TYPE_EDGE_FALLING>; > + reset-gpios = <&gpio5 21 GPIO_ACTIVE_LOW>; > + slot-number = <2>; > + spi-max-frequency = <54000000>; > + sync-gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>; > + vddhpp-supply = <®_6v4>; > + vddp-supply = <®_5v0>; > + vdd-supply = <®_vdd_3v3>; > + }; > +}; > + > +&gpu_2d { > + status = "disabled"; > +}; > + > +&gpu_3d { > + status = "disabled"; > +}; > + > +&i2c2 { > + clock-frequency = <400000>; > + pinctrl-0 = <&pinctrl_i2c2>; > + pinctrl-1 = <&pinctrl_i2c2_gpio>; > + pinctrl-names = "default", "gpio"; > + scl-gpios = <&gpio5 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + sda-gpios = <&gpio5 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + status = "okay"; > +}; > + > +&i2c3 { > + clock-frequency = <400000>; > + pinctrl-0 = <&pinctrl_i2c3>; > + pinctrl-1 = <&pinctrl_i2c3_gpio>; > + pinctrl-names = "default", "gpio"; > + scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + status = "okay"; > + > + lp5012@14 { Can we use a generic node name, maybe led-controller? Shawn > + compatible = "ti,lp5012"; > + reg = <0x14>; > + vled-supply = <®_6v4>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + multi-led@0 { > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <0>; > + color = ; > + label = "case-led1"; > + > + led@0 { > + reg = <0>; > + color = ; > + }; > + > + led@1 { > + reg = <1>; > + color = ; > + }; > + > + led@2 { > + reg = <2>; > + color = ; > + }; > + }; > + > + multi-led@1 { > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <1>; > + color = ; > + label = "case-led2"; > + > + led@0 { > + reg = <0>; > + color = ; > + }; > + > + led@1 { > + reg = <1>; > + color = ; > + }; > + > + led@2 { > + reg = <2>; > + color = ; > + }; > + }; > + > + multi-led@2 { > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <2>; > + color = ; > + label = "case-led3"; > + > + led@0 { > + reg = <0>; > + color = ; > + }; > + > + led@1 { > + reg = <1>; > + color = ; > + }; > + > + led@2 { > + reg = <2>; > + color = ; > + }; > + }; > + > + multi-led@3 { > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <3>; > + color = ; > + label = "case-led4"; > + > + led@0 { > + reg = <0>; > + color = ; > + }; > + > + led@1 { > + reg = <1>; > + color = ; > + }; > + > + led@2 { > + reg = <2>; > + color = ; > + }; > + }; > + }; > + > + accelerometer@18 { > + compatible = "st,lis2dw12"; > + reg = <0x18>; > + interrupt-parent = <&gpio5>; > + interrupts = <3 IRQ_TYPE_EDGE_RISING>, <5 IRQ_TYPE_EDGE_RISING>; > + pinctrl-0 = <&pinctrl_lis_int>; > + pinctrl-names = "default"; > + vddio-supply = <®_vdd_3v3>; > + vdd-supply = <®_vdd_3v3>; > + }; > + > + humidity-sensor@5f { > + compatible = "st,hts221"; > + reg = <0x5f>; > + interrupt-parent = <&gpio3>; > + interrupts = <10 IRQ_TYPE_EDGE_RISING>; > + pinctrl-0 = <&pinctrl_hts_int>; > + pinctrl-names = "default"; > + vdd-supply = <®_vdd_3v3>; > + }; > +}; > + > +&iomuxc { > + pinctrl_bt: btgrp { > + fsl,pins = < > + MX8MM_IOMUXC_GPIO1_IO01_GPIO1_IO1 > + MX8MM_DSE_X1 > + MX8MM_IOMUXC_SAI5_MCLK_GPIO3_IO25 > + (MX8MM_PULL_UP | MX8MM_PULL_ENABLE | MX8MM_HYS_SCHMITT) > + MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13 > + MX8MM_DSE_X1 > + >; > + }; > + > + pinctrl_can1: can1grp { > + fsl,pins = < > + MX8MM_IOMUXC_SAI2_TXC_GPIO4_IO25 > + (MX8MM_PULL_UP | MX8MM_PULL_ENABLE) > + MX8MM_IOMUXC_SAI5_RXD1_GPIO3_IO22 > + (MX8MM_PULL_UP | MX8MM_PULL_ENABLE | MX8MM_HYS_SCHMITT) > + >; > + }; > + > + pinctrl_can1_reg: can1reggrp { > + fsl,pins = < > + MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 > + (MX8MM_DSE_X2 | MX8MM_FSEL_FAST | MX8MM_PULL_UP | MX8MM_PULL_ENABLE) > + >; > + }; > + > + pinctrl_can2: can2grp { > + fsl,pins = < > + MX8MM_IOMUXC_NAND_CLE_GPIO3_IO5 > + (MX8MM_PULL_UP | MX8MM_PULL_ENABLE) > + MX8MM_IOMUXC_NAND_DATA00_GPIO3_IO6 > + (MX8MM_PULL_UP | MX8MM_PULL_ENABLE | MX8MM_HYS_SCHMITT) > + >; > + }; > + > + pinctrl_can2_reg: can2reggrp { > + fsl,pins = < > + MX8MM_IOMUXC_NAND_RE_B_GPIO3_IO15 > + (MX8MM_DSE_X2 | MX8MM_FSEL_FAST | MX8MM_PULL_UP | MX8MM_PULL_ENABLE) > + >; > + }; > + > + pinctrl_ecspi1: ecspi1grp { > + fsl,pins = < > + MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI > + MX8MM_DSE_X4 > + MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO > + (MX8MM_DSE_X4 | MX8MM_HYS_SCHMITT) > + MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK > + MX8MM_DSE_X4 > + MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27 > + MX8MM_DSE_X1 > + MX8MM_IOMUXC_SAI5_RXD2_GPIO3_IO23 > + MX8MM_DSE_X1 > + MX8MM_IOMUXC_NAND_CE0_B_GPIO3_IO1 > + MX8MM_DSE_X1 > + >; > + }; > + > + pinctrl_ecspi2: ecspi2grp { > + fsl,pins = < > + MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI > + MX8MM_DSE_X4 > + MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO > + (MX8MM_DSE_X4 | MX8MM_HYS_SCHMITT) > + MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK > + MX8MM_DSE_X4 > + MX8MM_IOMUXC_SAI5_RXD3_GPIO3_IO24 > + MX8MM_DSE_X1 > + MX8MM_IOMUXC_NAND_DATA03_GPIO3_IO9 > + MX8MM_DSE_X1 > + >; > + }; > + > + pinctrl_ecspi3: ecspi3grp { > + fsl,pins = < > + MX8MM_IOMUXC_UART1_TXD_ECSPI3_MOSI > + MX8MM_DSE_X4 > + MX8MM_IOMUXC_UART2_RXD_ECSPI3_MISO > + (MX8MM_DSE_X4 | MX8MM_HYS_SCHMITT) > + MX8MM_IOMUXC_UART1_RXD_ECSPI3_SCLK > + MX8MM_DSE_X4 > + MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9 > + MX8MM_DSE_X1 > + MX8MM_IOMUXC_GPIO1_IO02_GPIO1_IO2 > + MX8MM_DSE_X1 > + >; > + }; > + > + pinctrl_hts_int: htsintgrp { > + fsl,pins = < > + MX8MM_IOMUXC_NAND_DATA04_GPIO3_IO10 > + (MX8MM_PULL_ENABLE | MX8MM_HYS_SCHMITT) > + >; > + }; > + > + pinctrl_i2c2: i2c2grp { > + fsl,pins = < > + MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL > + MX8MM_I2C_DEFAULT > + MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA > + MX8MM_I2C_DEFAULT > + >; > + }; > + > + pinctrl_i2c2_gpio: i2c2-gpiogrp { > + fsl,pins = < > + MX8MM_IOMUXC_I2C2_SCL_GPIO5_IO16 > + MX8MM_I2C_DEFAULT > + MX8MM_IOMUXC_I2C2_SDA_GPIO5_IO17 > + MX8MM_I2C_DEFAULT > + >; > + }; > + > + pinctrl_i2c3: i2c3grp { > + fsl,pins = < > + MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL > + MX8MM_I2C_DEFAULT > + MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA > + MX8MM_I2C_DEFAULT > + >; > + }; > + > + pinctrl_i2c3_gpio: i2c3-gpiogrp { > + fsl,pins = < > + MX8MM_IOMUXC_I2C3_SCL_GPIO5_IO18 > + MX8MM_I2C_DEFAULT > + MX8MM_IOMUXC_I2C3_SDA_GPIO5_IO19 > + MX8MM_I2C_DEFAULT > + >; > + }; > + > + pinctrl_lis_int: lisintgrp { > + fsl,pins = < > + MX8MM_IOMUXC_SPDIF_TX_GPIO5_IO3 > + (MX8MM_PULL_ENABLE | MX8MM_HYS_SCHMITT) > + MX8MM_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5 > + (MX8MM_PULL_ENABLE | MX8MM_HYS_SCHMITT) > + >; > + }; > + > + pinctrl_reg_comm: reg_commgrp { > + fsl,pins = < > + MX8MM_IOMUXC_GPIO1_IO11_GPIO1_IO11 > + MX8MM_DSE_X1 > + >; > + }; > + > + pinctrl_sysfs_gpios: sysfsgpiogrp { > + fsl,pins = < > + MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7 > + MX8MM_DSE_X1 > + MX8MM_IOMUXC_I2C4_SDA_GPIO5_IO21 > + MX8MM_DSE_X1 > + MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28 > + MX8MM_DSE_X1 > + MX8MM_IOMUXC_SAI5_RXD0_GPIO3_IO21 > + MX8MM_DSE_X1 > + MX8MM_IOMUXC_SD2_WP_GPIO2_IO20 > + MX8MM_DSE_X1 > + MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0 > + MX8MM_DSE_X1 > + MX8MM_IOMUXC_GPIO1_IO04_GPIO1_IO4 > + MX8MM_DSE_X1 > + MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6 > + MX8MM_DSE_X1 > + >; > + }; > + > + pinctrl_uart1: uart1grp { > + fsl,pins = < > + MX8MM_IOMUXC_SAI2_RXC_UART1_DCE_RX > + (MX8MM_PULL_UP | MX8MM_PULL_ENABLE) > + MX8MM_IOMUXC_SAI2_RXFS_UART1_DCE_TX > + (MX8MM_PULL_UP | MX8MM_PULL_ENABLE) > + MX8MM_IOMUXC_SAI2_RXD0_UART1_DCE_RTS_B > + (MX8MM_PULL_UP | MX8MM_PULL_ENABLE) > + MX8MM_IOMUXC_SAI2_TXFS_UART1_DCE_CTS_B > + (MX8MM_PULL_UP | MX8MM_PULL_ENABLE) > + >; > + }; > + > + pinctrl_uart2: uart2grp { > + fsl,pins = < > + MX8MM_IOMUXC_SAI3_TXFS_UART2_DCE_RX > + (MX8MM_PULL_UP | MX8MM_PULL_ENABLE) > + MX8MM_IOMUXC_SAI3_TXC_UART2_DCE_TX > + (MX8MM_PULL_UP | MX8MM_PULL_ENABLE) > + MX8MM_IOMUXC_SAI3_RXD_UART2_DCE_RTS_B > + (MX8MM_PULL_UP | MX8MM_PULL_ENABLE) > + MX8MM_IOMUXC_SAI3_RXC_UART2_DCE_CTS_B > + (MX8MM_PULL_UP | MX8MM_PULL_ENABLE) > + >; > + }; > + > + pinctrl_uart3: uart3grp { > + fsl,pins = < > + MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX > + (MX8MM_PULL_UP | MX8MM_PULL_ENABLE) > + MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX > + (MX8MM_PULL_UP | MX8MM_PULL_ENABLE) > + >; > + }; > + > + pinctrl_usdhc2: pinctrlusdhc2grp { > + fsl,pins = < > + MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK > + (MX8MM_DSE_X2 | MX8MM_FSEL_FAST | MX8MM_PULL_ENABLE) > + MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD > + (MX8MM_DSE_X2 | MX8MM_USDHC_DATA_DEFAULT) > + MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 > + (MX8MM_DSE_X2 | MX8MM_USDHC_DATA_DEFAULT) > + MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 > + (MX8MM_DSE_X2 | MX8MM_USDHC_DATA_DEFAULT) > + MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 > + (MX8MM_DSE_X2 | MX8MM_USDHC_DATA_DEFAULT) > + MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 > + (MX8MM_DSE_X2 | MX8MM_USDHC_DATA_DEFAULT) > + >; > + }; > + > + pinctrl_wl_int: wlintgrp { > + fsl,pins = < > + MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20 > + (MX8MM_PULL_UP | MX8MM_HYS_SCHMITT | MX8MM_PULL_ENABLE) > + >; > + }; > + > + pinctrl_wl_reg: wlreggrp { > + fsl,pins = < > + MX8MM_IOMUXC_UART4_RXD_GPIO5_IO28 > + MX8MM_DSE_X1 > + >; > + }; > +}; > + > +&uart1 { > + pinctrl-0 = <&pinctrl_uart1>; > + pinctrl-names = "default"; > + uart-has-rtscts; > + status = "okay"; > + > + bluetooth { > + compatible = "infineon,cyw43439-bt", "brcm,bcm4329-bt"; > + device-wakeup-gpios = <&gpio5 13 GPIO_ACTIVE_HIGH>; > + interrupt-names = "host-wakeup"; > + interrupt-parent = <&gpio3>; > + interrupts = <25 IRQ_TYPE_EDGE_FALLING>; > + max-speed = <921600>; > + pinctrl-0 = <&pinctrl_bt>; > + pinctrl-names = "default"; > + shutdown-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>; > + vbat-supply = <®_3v3_comm>; > + vddio-supply = <®_3v3_comm>; > + }; > +}; > + > +&uart2 { > + pinctrl-0 = <&pinctrl_uart2>; > + pinctrl-names = "default"; > + uart-has-rtscts; > + status = "okay"; > +}; > + > +&uart3 { > + pinctrl-0 = <&pinctrl_uart3>; > + pinctrl-names = "default"; > + status = "okay"; > +}; > + > +&usbotg1 { > + disable-over-current; > + dr_mode = "peripheral"; > + status = "okay"; > +}; > + > +&usbotg2 { > + disable-over-current; > + dr_mode = "host"; > + vbus-supply = <®_5v0>; > + status = "okay"; > +}; > + > +&usdhc2 { > + #address-cells = <1>; > + #size-cells = <0>; > + cap-power-off-card; > + keep-power-in-suspend; > + max-frequency = <50000000>; > + mmc-pwrseq = <&wifi_pwrseq>; > + non-removable; > + pinctrl-0 = <&pinctrl_usdhc2>; > + pinctrl-names = "default"; > + sd-uhs-sdr25; > + vmmc-supply = <®_3v3_comm>; > + status = "okay"; > + > + wifi@1 { > + compatible = "infineon,cyw43439-fmac", "brcm,bcm4329-fmac"; > + reg = <1>; > + pinctrl-0 = <&pinctrl_wl_int>; > + pinctrl-names = "default"; > + interrupt-names = "host-wake"; > + interrupt-parent = <&gpio3>; > + interrupts = <20 IRQ_TYPE_LEVEL_LOW>; > + brcm,board-type = "GOcontroll,moduline"; > + }; > +}; > + > +&vpu_blk_ctrl { > + status = "disabled"; > +}; > + > +&vpu_g1 { > + status = "disabled"; > +}; > + > +&vpu_g2 { > + status = "disabled"; > +}; > + > +&wdog1 { > + status = "okay"; > +}; > > -- > 2.51.2 > >