From nobody Sat Sep 26 13:46:41 2026 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C264B3C0A0F for ; Mon, 31 Aug 2026 22:55:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788216947; cv=none; b=Lh4tSvaHrjjzwOEG+eVCRyeIdAdUFT47ewwFoUyk7dhfQc1A7IzWZiDbAdpx4BuT+9fQTEDyHTPx+qxjlFw5hbWnBDk4Do6+plqbXfVCCQBABBxMswl6Aa+hlPz5iVFBmF3VMxWbWmmK6RENjW9ptpSpkgvl1qfUq1xJtXPYyak= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788216947; c=relaxed/simple; bh=dhXJ+FBhl0dUtNLwfVJ2+FMZJSif3+49a/oOSrqpjqk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=e8L5FitrwDjkRmK297Aami1oL12GPX8CprZDdeNJzkAGoN10q3dMr1vbxNNWyPPjFbOyKUNgBKoa87CR0QrWxpWL11EupGO7qeaHe++vCpY1s+aIx6KTsvhTWVT9X02V4qF/XZDchKhQLgse6kByWiZSGVXusCCX8ZRb9V71Y8k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=eiT9lVrH; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="eiT9lVrH" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-49b8be0409fso1880135e9.2 for ; Mon, 31 Aug 2026 15:55:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788216943; x=1788821743; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=PrCJwvq4FJRDCkfm44Ye55Kq5POR7NnqJpsxGpwWsOs=; b=eiT9lVrHqHOSMZk0XfQ/IlzKn3vvT9YUy/9eWBIlmAyalbWf6sJPULW4/YeAx7K5IE TZVgW5G8tX73a41KCXPnTI3UZQRVi+16VDRa1Ba3xyRk1GMLiU6KbTUHSCujSJCxEsNK 7cKFO2flcCfw+I1J8w34JLLtgD9HmVCJ8vwzLSAfcXIKbciAYptswSSVpKeFvBxX9f1k dQJNeivCal0gYltHC0Ow0h87clATdBIFSflpJJFiNbdvERYuX8dOGmhQZiMGbyvzpuUJ JHHmnxTIHxWUbm6G/HRTWOo/zNrt7zII3tWoIoz4dvhYUrwZ8ycid14+w9mDqyQztSkj xGlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788216943; x=1788821743; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=PrCJwvq4FJRDCkfm44Ye55Kq5POR7NnqJpsxGpwWsOs=; b=JSUZhAqW91jHtTndf7ZB+7a7PrvBjogMYNI/xobIg3THGxZYGvlPBgMkHos5I7u5kA iJdqWUBIAUJ+nC+6WEIkeNW3R2QVu2t5q99eTlgLs6g7g2cZ+EOX4B8qlAARxBDX0Byh bxRsVykOU7A5/g/yXx5koYrwRqMHfpEPaabp+7IQ0XgM/npKjz0eYgyB6nwmV27ZRYPV tD6s7Gf4C2FwlznLqfApRuSctHuw7sX3Sb623GQX5pQ6stPkU0mPDJZNDvhN7u23IK+7 CijQzLonQrqQnEy0vmic4n0BQeloJCdJDUxi05U6AqPhEDmf7QPSfJv5EVBq4EDJ0m15 h1Tg== X-Forwarded-Encrypted: i=1; AHgh+RrX8q/zpws84yLqtutLwc+sgNIoAp8osXQuqKtuG1LbCD7POIR0MHysD5e8kg0RTEKfX63gAh0suQ7djzA=@vger.kernel.org X-Gm-Message-State: AFuF++loNQunVtLvBd5Si9y/QSjyAmaOTOScCkiHu+jawEoO6ZgLuRkM xjOzgHlzJWHQWlj/YEvWI/vtcQJV/XKM8fIeOt1g3B5p7Q8lAwcV5DkT X-Gm-Gg: AR+sD13nCp2RWIgISykUkuT2VoXQisojo9QZmJUzdtd6CrW7ceEGWnxZXGz6iJA++Pr 382QN2flCc4n7+k+F8ue6sp0EGzNM+vDw3txUcHA1mHWo7IM38FWpFla/2yDGVKqn8cGSpkyKRf /jMoz5Ab5TSkTQ1ndX63F7nvxXksAMu43Y1/g+DGQe0uFM5eD7SJn5n8c2LE/Ruqv9poeVt4x5H OJbKDcgxNWP/+mtShlGMkqzzy7WEyhavkBRcRiCF41piLtxUeY9wwtomyoG0rTqJ2htySd1akRQ XDDVoN/hHawfbr1T8/FGVhtQjrSoWDnt6j31Jsxkv7Q4l6PTdRgaSKU0MP9L79ho5Xmkx3I/4cw emOAXBf6+q8C9Qsm8b/2dbWpE/skYTiVb+6Ob5TGfD9YLNBPuWJ3COmMh6tllj3AQgntpbjzNNh MIRVMEUylHm8J3Ya7gVAxI3fhnqVwdT8D4gHDCWFOamtimVjvpKYESir374VASZGTCZtHElbX9P vcYNn7tzPpMZ5sMBt5oJcJORA== X-Received: by 2002:a05:600c:1d15:b0:499:d366:f572 with SMTP id 5b1f17b1804b1-49b91c4338cmr399173455e9.10.1788216942522; Mon, 31 Aug 2026 15:55:42 -0700 (PDT) Received: from GLaDOS.station ([187.14.102.81]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49cdce10153sm24452615e9.4.2026.08.31.15.55.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Aug 2026 15:55:42 -0700 (PDT) From: Stefano Radaelli X-Google-Original-From: Stefano Radaelli To: Frank Li , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org Cc: pierluigi.p@variscite.com, Stefano Radaelli , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Shawn Guo , Daniel Baluta , Josua Mayer , Alexander Stein , Ernest Van Hoecke , Maud Spierings , Francesco Dolcini , Markus Niebel , Hugo Villeneuve , Marek Vasut , Conor Dooley Subject: [PATCH v8 1/3] dt-bindings: arm: fsl: add Variscite VAR-SOM-MX7 boards Date: Tue, 1 Sep 2026 00:55:18 +0200 Message-ID: <7af24e53fc6dc0e84a7d2dce7090f5c465f470d2.1788184274.git.stefano.r@variscite.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Stefano Radaelli Add DT compatible strings for the Variscite VAR-SOM-MX7 SoM variants used with the MX7CustomBoard carrier board. Both the first and second hardware revisions are supported, including eMMC and NAND configurations, with WM8731 variants available for the first hardware revision. Acked-by: Conor Dooley Signed-off-by: Stefano Radaelli --- v7->v8: -=20 v6->v7: -=20 v5->v6: -=20 v4->v5: -=20 v3->v4: -=20 v2->v3: -=20 v1->v2: - Fixed commit message - Fixed spacing Documentation/devicetree/bindings/arm/fsl.yaml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation= /devicetree/bindings/arm/fsl.yaml index 656f2596e1d5..b732ff810265 100644 --- a/Documentation/devicetree/bindings/arm/fsl.yaml +++ b/Documentation/devicetree/bindings/arm/fsl.yaml @@ -950,6 +950,23 @@ properties: - const: toradex,colibri-imx7d-emmc - const: fsl,imx7d =20 + - description: i.MX7D Variscite Boards based on VAR-SOM-MX7 Module + oneOf: + - items: + - enum: + - variscite,var-som-imx7d-emmc-mx7customboard + - variscite,var-som-imx7d-emmc-wm8731-mx7customboard + - variscite,var-som-imx7d-nand-mx7customboard + - variscite,var-som-imx7d-nand-wm8731-mx7customboard + - const: variscite,var-som-imx7d + - const: fsl,imx7d + - items: + - enum: + - variscite,var-som-imx7d-v2-emmc-mx7customboard + - variscite,var-som-imx7d-v2-nand-mx7customboard + - const: variscite,var-som-imx7d-v2 + - const: fsl,imx7d + - description: i.MX7ULP based Boards items: - enum: --=20 2.47.3 From nobody Sat Sep 26 13:46:41 2026 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E0F523BFAEE for ; Mon, 31 Aug 2026 22:55:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788216956; cv=none; b=pjZgVPUQcqdrSJ39yKDxiTXtkd/ouKpel9ugHqEyZ08PJeeApplCRubkJ+iogag//wX04HLQUBgcU9Kl1Ay/2YE1jgu2zwfO4UqiKtdn8bkS/CZrWJKkt9831hIcfEWqAtS+QI8dhTy996ESYVbbcS46vBDAt/yVoqtSa6xDLTg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788216956; c=relaxed/simple; bh=FeLe7MiMIvWzY87zR5n3kJ76N6WqEOzBnjKlh7iyL8w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UOSw01DUcDvPEfAZMB1ojjUCu3Cdx2+m+g1qB8TbqR44lGxOVpud4cfVlaBXUzloRPIxaj0i1hCEQtrjuETg1kG+EzxTQ4pPqHSgwuP2ilfqC/4bks+IAgT4xciJOlY8uzcuU0jhnIP4aFIxAaqUc84tQRQMs5pk+saiOV5L6hw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Os/zpAu3; arc=none smtp.client-ip=209.85.128.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Os/zpAu3" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-49556f97a9dso27847215e9.1 for ; Mon, 31 Aug 2026 15:55:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788216951; x=1788821751; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=RajZ64OwsjSdHFmVNpp2Hs8CSfrEpkLrOZLz4PyJzbQ=; b=Os/zpAu3POOeZsw/SapRYYRjoTYdLOP6YDsqTJG+VV2+cQzWGArpTYjw/A1OINuWP4 tbVOPm27n7NLrvPx07T6y+krOcolCX3eH1Z8P2ZKXvZEfvOgBfgZ2hzZMJ9LU0Z/72W+ HSPmigLmcZVZ6r+os0JPzPiemxO7MQ2eDk/iSqa+F1Gc2mWv9qrqqI4bdSfadhHXmRTn QRTKSsH8dqI6zChUozX6f+j8U+6TanMjLKqEDOonJLJUgfwjozZA4PcPhPoTOZmES4Vg 5738knUewKd0/gfEhGw8aUtPMbL0U1T/k5Kn9fXZZg5hTb9xrnIOJSpId8Zr+ek05eJB vKhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788216951; x=1788821751; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=RajZ64OwsjSdHFmVNpp2Hs8CSfrEpkLrOZLz4PyJzbQ=; b=qo7iclA4R5+sBftgdYwYOlP6KpGycON1v2OFiH2G+bLR06jUo/kFKRe9BS2q7Qr6+Z GYs2gdpQ1EL6OkeXpmgs1o7hdBYvIDJ2WcajHE60um2PerbeCS8WzFjTG2aQc5/8Bmpj +aBdtrMRO+0B+HXZlYt6aOXQQhWovtQwphKJEkc6xRrJ7VFLhOfXPWZI3JEJDxRJ/AL5 wiiefzox5NN05KO7KLolXEWX/B9krKtIAmu/mKPzsv0BNUV251AQTIgG2gYgKj03gSVo w9gUXBqTZZLy98m7t6wubK+J9Lhe4qy223+FWPibtP+ecXAPASpM8l0Z2BqawGPWJLfD 3GPQ== X-Forwarded-Encrypted: i=1; AHgh+RrcnSAV/SHwkRTS3wUfzaHPKDR2eMR/2SLk2lPfvRdxTVdxotn+wx8cjW9RICCI8+Jmzi0dQ947PtP4NGo=@vger.kernel.org X-Gm-Message-State: AFuF++k6ZpuCXJ35DMDo3utDDxH8TwwLIhR5I8ipFADiVnsA3kuMsjHb 4wit3LD8yRjIXaz642mLW0ZZPuB7k7ZH1VI7V3kt0JBhmd61lfV21bt6 X-Gm-Gg: AR+sD10/87ypNeRpN/X9/8esSS+RbPwCAWTf/6vXHqku/ZrcQUvQUhlSYJtUmRtQnic mEn+aVQZzRnVGHIE9rOJIYR1YHDS54LLAsoCXLw7H9WG6nddAjWu5ZZ9eYPFKX3OBH2JbaNQSlR yKhY13em0nCHqOS4LWVmFv7ylG1MT1F0oyAjgtenLM8ldpRzD7CjSimUQvCA3saDbInIMMWk4IY sKpYFv5aOqwXCV+rrDlMKSq9hexx+BLSt+gP13ETjZuVK7vAH/I7VkRDnIODcFq9zglJIv+oDxt tQZztkgv2fMVvPvE7DQaVTAZPKd//Dk/V9LOUH/V4iZ2v7t4R3D+v8hn9G0XSq/GCNCEawqx8vd pyTo1gM1Q+tgXGa0YBzLnh5uXLWCZx2JPvnMI/RuJiBK2NNWsOB66ooJ7AxslNwdEFJzdEjA/yH azWsY1ibNNSDacjH27bRkPVZye8k/GbNWb5JZpczAcMpZ2a4+pGHlO6GM3PWzTWB2xXzhAdxPXO wCymcZj20GpcweRhgAHV3vQrw== X-Received: by 2002:a05:600d:11:b0:49c:d818:8771 with SMTP id 5b1f17b1804b1-49cdc41c424mr76831755e9.7.1788216950643; Mon, 31 Aug 2026 15:55:50 -0700 (PDT) Received: from GLaDOS.station ([187.14.102.81]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49cdce10153sm24452615e9.4.2026.08.31.15.55.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Aug 2026 15:55:50 -0700 (PDT) From: Stefano Radaelli X-Google-Original-From: Stefano Radaelli To: Frank Li , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org Cc: pierluigi.p@variscite.com, Stefano Radaelli , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Shawn Guo , Daniel Baluta , Josua Mayer , Alexander Stein , Ernest Van Hoecke , Maud Spierings , Francesco Dolcini , Markus Niebel , Hugo Villeneuve , Marek Vasut Subject: [PATCH v8 2/3] ARM: dts: imx7d: add Variscite VAR-SOM-MX7 support Date: Tue, 1 Sep 2026 00:55:19 +0200 Message-ID: <7a3aa8bc7d4613998904db4fbbae03d213c6c30d.1788184274.git.stefano.r@variscite.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Stefano Radaelli Add device tree support for the Variscite VAR-SOM-MX7 system on module. The module is based on the NXP i.MX7Dual SoC and is available in multiple configurations and hardware revisions. Add the common SoM description together with support for: - eMMC storage - NAND storage - WM8731 audio codec - WM8904 audio codec - VAR-SOM-MX7 V2 hardware revision Only SoM-specific peripherals are described here. Carrier board specific interfaces are provided by the respective carrier board device trees. Link: https://variscite.com/system-on-module-som/i-mx-7/var-som-mx7/ Signed-off-by: Stefano Radaelli --- v7->v8: - Fixed commit message adding wm8904 v6->v7: - Added common dtsi for wm8904 codec removing it from base dtsi - Spacing cleanup - Removed unused 100mhz and 200mhz pinctrl on usdhc3 v5->v6: - Removed unused 100mhz and 200mhz pinctrl v4->v5: - Removed wrong gpio-hog v3->v4: - Fixed non-generic names and wrong separators - Fixed ads7846_ts pendown gpio v2->v3: - Removed wrong header in dtsi - Fixed pinctrl name - Fixed sai clocks v1->v2: - Moved ethphy1 reset pin mux - Fixed irq types - Removed duplicate assigned-clock-rates property - fixed wifi child node name - Added color property in gpio led definition - Updated deprecated reset-gpio propery - Added disable-over-current property in usb nodes .../boot/dts/nxp/imx/imx7d-var-som-emmc.dtsi | 56 ++ .../nxp/imx/imx7d-var-som-mx7customboard.dtsi | 358 ++++++++++++ .../boot/dts/nxp/imx/imx7d-var-som-nand.dtsi | 73 +++ .../boot/dts/nxp/imx/imx7d-var-som-v2.dtsi | 66 +++ .../dts/nxp/imx/imx7d-var-som-wm8731.dtsi | 102 ++++ .../dts/nxp/imx/imx7d-var-som-wm8904.dtsi | 118 ++++ arch/arm/boot/dts/nxp/imx/imx7d-var-som.dtsi | 533 ++++++++++++++++++ 7 files changed, 1306 insertions(+) create mode 100644 arch/arm/boot/dts/nxp/imx/imx7d-var-som-emmc.dtsi create mode 100644 arch/arm/boot/dts/nxp/imx/imx7d-var-som-mx7customboard.= dtsi create mode 100644 arch/arm/boot/dts/nxp/imx/imx7d-var-som-nand.dtsi create mode 100644 arch/arm/boot/dts/nxp/imx/imx7d-var-som-v2.dtsi create mode 100644 arch/arm/boot/dts/nxp/imx/imx7d-var-som-wm8731.dtsi create mode 100644 arch/arm/boot/dts/nxp/imx/imx7d-var-som-wm8904.dtsi create mode 100644 arch/arm/boot/dts/nxp/imx/imx7d-var-som.dtsi diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-var-som-emmc.dtsi b/arch/arm/b= oot/dts/nxp/imx/imx7d-var-som-emmc.dtsi new file mode 100644 index 000000000000..62f60ec39992 --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-emmc.dtsi @@ -0,0 +1,56 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Common dtsi for eMMC support on Variscite VAR-SOM-MX7 + * + * Link: https://variscite.com/system-on-module-som/i-mx-7/var-som-mx7/ + * + * Copyright (C) 2026 Variscite Ltd. - https://www.variscite.com/ + * + */ + +&usdhc3 { + pinctrl-names =3D "default", "sleep"; + pinctrl-0 =3D <&pinctrl_usdhc3>; + pinctrl-1 =3D <&pinctrl_usdhc3_sleep>; + vmmc-supply =3D <&vgen3_reg>; + assigned-clocks =3D <&clks IMX7D_USDHC3_ROOT_CLK>; + assigned-clock-rates =3D <400000000>; + no-1-8-v; + bus-width =3D <8>; + non-removable; + status =3D "okay"; +}; + +&iomuxc { + pinctrl_usdhc3: usdhc3grp { + fsl,pins =3D < + MX7D_PAD_SD3_RESET_B__SD3_RESET_B 0x59 + MX7D_PAD_SD3_CMD__SD3_CMD 0x59 + MX7D_PAD_SD3_CLK__SD3_CLK 0x19 + MX7D_PAD_SD3_DATA0__SD3_DATA0 0x59 + MX7D_PAD_SD3_DATA1__SD3_DATA1 0x59 + MX7D_PAD_SD3_DATA2__SD3_DATA2 0x59 + MX7D_PAD_SD3_DATA3__SD3_DATA3 0x59 + MX7D_PAD_SD3_DATA4__SD3_DATA4 0x59 + MX7D_PAD_SD3_DATA5__SD3_DATA5 0x59 + MX7D_PAD_SD3_DATA6__SD3_DATA6 0x59 + MX7D_PAD_SD3_DATA7__SD3_DATA7 0x59 + >; + }; + + pinctrl_usdhc3_sleep: usdhc3-sleepgrp { + fsl,pins =3D < + MX7D_PAD_SD3_RESET_B__GPIO6_IO11 0x10 + MX7D_PAD_SD3_CMD__GPIO6_IO1 0x10 + MX7D_PAD_SD3_CLK__GPIO6_IO0 0x10 + MX7D_PAD_SD3_DATA0__GPIO6_IO2 0x10 + MX7D_PAD_SD3_DATA1__GPIO6_IO3 0x10 + MX7D_PAD_SD3_DATA2__GPIO6_IO4 0x10 + MX7D_PAD_SD3_DATA3__GPIO6_IO5 0x10 + MX7D_PAD_SD3_DATA4__GPIO6_IO6 0x10 + MX7D_PAD_SD3_DATA5__GPIO6_IO7 0x10 + MX7D_PAD_SD3_DATA6__GPIO6_IO8 0x10 + MX7D_PAD_SD3_DATA7__GPIO6_IO9 0x10 + >; + }; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-var-som-mx7customboard.dtsi b/= arch/arm/boot/dts/nxp/imx/imx7d-var-som-mx7customboard.dtsi new file mode 100644 index 000000000000..d798b021f8e0 --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-mx7customboard.dtsi @@ -0,0 +1,358 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Variscite VAR-MX7CustomBoard carrier board for VAR-SOM-MX7 + * + * Link: https://variscite.com/carrier-boards/var-mx7customboard/ + * + * Copyright (C) 2026 Variscite Ltd. - https://www.variscite.com/ + * + */ + +/ { + chosen { + stdout-path =3D &uart1; + }; + + gpio-keys { + compatible =3D "gpio-keys"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio_keys>; + + key-back { + label =3D "Back"; + gpios =3D <&gpio1 11 GPIO_ACTIVE_LOW>; + linux,code =3D ; + }; + + key-menu { + label =3D "Menu"; + gpios =3D <&gpio2 28 GPIO_ACTIVE_LOW>; + linux,code =3D ; + }; + + key-home { + label =3D "Home"; + gpios =3D <&gpio2 29 GPIO_ACTIVE_LOW>; + linux,code =3D ; + }; + }; + + leds { + compatible =3D "gpio-leds"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio_leds>; + + led-d10 { + function =3D LED_FUNCTION_STATUS; + color =3D ; + gpios =3D <&gpio1 13 GPIO_ACTIVE_HIGH>; + linux,default-trigger =3D "heartbeat"; + }; + }; + + reg_hsic_hub_connect: regulator-hsic-hub-connect { + compatible =3D "regulator-fixed"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_hsic_hub_connect>; + regulator-name =3D "reg_hsic_hub_connect"; + gpio =3D <&gpio1 12 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-always-on; + }; + + reg_hsic_hub_pwr_on: regulator-hsic-hub-pwr-on { + compatible =3D "regulator-fixed"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_hsic_hub_pwr>; + regulator-name =3D "hsic_hub_pwr_on"; + gpio =3D <&gpio1 10 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + reg_usb_otg1_vbus: regulator-otg1-vbus { + compatible =3D "regulator-fixed"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_usbotg1_pwr>; + regulator-name =3D "usb_otg1_vbus"; + regulator-min-microvolt =3D <5000000>; + regulator-max-microvolt =3D <5000000>; + gpio =3D <&gpio1 5 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + reg_usb_otg2_vbus: regulator-otg2-vbus { + compatible =3D "regulator-fixed"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_usbotg2_pwr>; + regulator-name =3D "usb_otg2_vbus"; + regulator-min-microvolt =3D <5000000>; + regulator-max-microvolt =3D <5000000>; + gpio =3D <&gpio1 7 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; +}; + +&clks { + assigned-clocks =3D <&clks IMX7D_PLL_AUDIO_POST_DIV>; + assigned-clock-rates =3D <884736000>; +}; + +&ecspi2 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_ecspi2>; + cs-gpios =3D <&gpio4 23 GPIO_ACTIVE_LOW>; + status =3D "okay"; +}; + +&flexcan2 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_flexcan2>; + status =3D "okay"; +}; + +&i2c2 { + /* DS1337 RTC module */ + rtc@68 { + compatible =3D "dallas,ds1337"; + reg =3D <0x68>; + }; +}; + +&i2c4 { + clock-frequency =3D <100000>; + pinctrl-names =3D "default", "gpio"; + pinctrl-0 =3D <&pinctrl_i2c4>; + pinctrl-1 =3D <&pinctrl_i2c4_gpio>; + scl-gpios =3D <&gpio4 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + sda-gpios =3D <&gpio4 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + status =3D "okay"; + + ft5x06_ts: touchscreen@38 { + compatible =3D "edt,edt-ft5206"; + reg =3D <0x38>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_touch>; + interrupt-parent =3D <&gpio2>; + interrupts =3D <30 IRQ_TYPE_EDGE_FALLING>; + touchscreen-size-x =3D <800>; + touchscreen-size-y =3D <480>; + touchscreen-inverted-x; + touchscreen-inverted-y; + }; +}; + +&pcie { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_pcie>; + reset-gpios =3D <&gpio2 31 GPIO_ACTIVE_LOW>; + status =3D "okay"; +}; + +&pwm2 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_pwm2>; + status =3D "okay"; +}; + +&snvs_poweroff { + status =3D "okay"; +}; + +&snvs_pwrkey { + status =3D "okay"; +}; + +&snvs_rtc { + status =3D "disabled"; +}; + +/* DEBUG */ +&uart1 { + pinctrl-names =3D "default", "sleep"; + pinctrl-0 =3D <&pinctrl_uart1>; + pinctrl-1 =3D <&pinctrl_uart1_sleep>; + assigned-clocks =3D <&clks IMX7D_UART1_ROOT_SRC>; + assigned-clock-parents =3D <&clks IMX7D_OSC_24M_CLK>; + status =3D "okay"; +}; + +&uart2 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_uart2>; + assigned-clocks =3D <&clks IMX7D_UART2_ROOT_SRC>; + assigned-clock-parents =3D <&clks IMX7D_OSC_24M_CLK>; + uart-has-rtscts; + status =3D "okay"; +}; + +&usbh { + disable-over-current; + vbus-supply =3D <®_hsic_hub_pwr_on>; + status =3D "okay"; +}; + +&usbotg1 { + dr_mode =3D "host"; + disable-over-current; + vbus-supply =3D <®_usb_otg1_vbus>; + status =3D "okay"; +}; + +&usbotg2 { + dr_mode =3D "host"; + disable-over-current; + vbus-supply =3D <®_usb_otg2_vbus>; + status =3D "okay"; +}; + +&usdhc1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_usdhc1>, <&pinctrl_usdhc1_gpio>; + cd-gpios =3D <&gpio5 0 GPIO_ACTIVE_LOW>; + no-1-8-v; + keep-power-in-suspend; + status =3D "okay"; +}; + +&wdog1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_wdog>; + fsl,ext-reset-output; +}; + +&iomuxc { + pinctrl_gpio_keys: gpio-keysgrp { + fsl,pins =3D < + MX7D_PAD_EPDC_BDR0__GPIO2_IO28 0x32 + MX7D_PAD_EPDC_BDR1__GPIO2_IO29 0x32 + MX7D_PAD_GPIO1_IO11__GPIO1_IO11 0x32 + >; + }; + + pinctrl_gpio_leds: gpio-ledsgrp { + fsl,pins =3D < + MX7D_PAD_GPIO1_IO13__GPIO1_IO13 0x59 + >; + }; + + pinctrl_ecspi2: ecspi2grp { + fsl,pins =3D < + MX7D_PAD_ECSPI2_MISO__ECSPI2_MISO 0x2 + MX7D_PAD_ECSPI2_MOSI__ECSPI2_MOSI 0x2 + MX7D_PAD_ECSPI2_SCLK__ECSPI2_SCLK 0x2 + MX7D_PAD_ECSPI2_SS0__GPIO4_IO23 0x2 + >; + }; + + pinctrl_flexcan2: flexcan2grp { + fsl,pins =3D < + MX7D_PAD_I2C3_SCL__FLEXCAN2_RX 0x59 + MX7D_PAD_I2C3_SDA__FLEXCAN2_TX 0x59 + >; + }; + + pinctrl_hsic_hub_connect: hsichubconnectgrp { + fsl,pins =3D < + MX7D_PAD_GPIO1_IO12__GPIO1_IO12 0x59 + >; + }; + + pinctrl_hsic_hub_pwr: hsichubpwrgrp { + fsl,pins =3D < + MX7D_PAD_GPIO1_IO10__GPIO1_IO10 0x59 + >; + }; + + pinctrl_i2c4: i2c4grp { + fsl,pins =3D < + MX7D_PAD_I2C4_SDA__I2C4_SDA 0x4000007f + MX7D_PAD_I2C4_SCL__I2C4_SCL 0x4000007f + >; + }; + + pinctrl_i2c4_gpio: i2c4gpiogrp { + fsl,pins =3D < + MX7D_PAD_I2C4_SDA__GPIO4_IO15 0x4000007f + MX7D_PAD_I2C4_SCL__GPIO4_IO14 0x4000007f + >; + }; + + pinctrl_pcie: pciegrp { + fsl,pins =3D < + MX7D_PAD_EPDC_PWR_STAT__GPIO2_IO31 0x79 + >; + }; + + pinctrl_touch: touchgrp { + fsl,pins =3D < + MX7D_PAD_EPDC_PWR_COM__GPIO2_IO30 0x80000000 + >; + }; + + pinctrl_uart1: uart1grp { + fsl,pins =3D < + MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX 0x79 + MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX 0x79 + >; + }; + + pinctrl_uart1_sleep: uart1sleep-grp { + fsl,pins =3D < + MX7D_PAD_UART1_TX_DATA__GPIO4_IO1 0x10 + MX7D_PAD_UART1_RX_DATA__GPIO4_IO0 0x10 + >; + }; + + pinctrl_uart2: uart2grp { + fsl,pins =3D < + MX7D_PAD_LCD_ENABLE__UART2_DCE_TX 0x79 + MX7D_PAD_LCD_CLK__UART2_DCE_RX 0x79 + MX7D_PAD_LCD_VSYNC__UART2_DCE_CTS 0x79 + MX7D_PAD_LCD_HSYNC__UART2_DCE_RTS 0x79 + >; + }; + + pinctrl_usdhc1_gpio: usdhc1-gpiogrp { + fsl,pins =3D < + MX7D_PAD_SD1_CD_B__GPIO5_IO0 0x59 + MX7D_PAD_GPIO1_IO08__SD1_VSELECT 0x59 + >; + }; + + pinctrl_usdhc1: usdhc1grp { + fsl,pins =3D < + MX7D_PAD_SD1_CMD__SD1_CMD 0x59 + MX7D_PAD_SD1_CLK__SD1_CLK 0x19 + MX7D_PAD_SD1_DATA0__SD1_DATA0 0x59 + MX7D_PAD_SD1_DATA1__SD1_DATA1 0x59 + MX7D_PAD_SD1_DATA2__SD1_DATA2 0x59 + MX7D_PAD_SD1_DATA3__SD1_DATA3 0x59 + >; + }; +}; + +&iomuxc_lpsr { + pinctrl_pwm2: pwm2grp { + fsl,pins =3D < + MX7D_PAD_LPSR_GPIO1_IO02__PWM2_OUT 0x110b0 + >; + }; + + pinctrl_usbotg1_pwr: usbotg1pwrgrp { + fsl,pins =3D < + MX7D_PAD_LPSR_GPIO1_IO05__GPIO1_IO5 0x14 + >; + }; + + pinctrl_usbotg2_pwr: usbotg2pwrgrp { + fsl,pins =3D < + MX7D_PAD_LPSR_GPIO1_IO07__GPIO1_IO7 0x14 + >; + }; + + pinctrl_wdog: wdoggrp { + fsl,pins =3D < + MX7D_PAD_LPSR_GPIO1_IO00__WDOG1_WDOG_B 0x74 + >; + }; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-var-som-nand.dtsi b/arch/arm/b= oot/dts/nxp/imx/imx7d-var-som-nand.dtsi new file mode 100644 index 000000000000..d2c3b9e6007e --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-nand.dtsi @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Common dtsi for NAND support on Variscite VAR-SOM-MX7 + * + * Link: https://variscite.com/system-on-module-som/i-mx-7/var-som-mx7/ + * + * Copyright (C) 2026 Variscite Ltd. - https://www.variscite.com/ + * + */ + +&gpmi { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpmi_nand>; + status =3D "okay"; + + nand@0 { + reg =3D <0>; + + partitions { + compatible =3D "fixed-partitions"; + #address-cells =3D <1>; + #size-cells =3D <1>; + + partition@0 { + label =3D "spl"; + reg =3D <0x00000000 0x00200000>; + }; + + partition@200000 { + label =3D "u-boot"; + reg =3D <0x00200000 0x00200000>; + }; + + partition@400000 { + label =3D "u-boot_env"; + reg =3D <0x00400000 0x00200000>; + }; + + partition@600000 { + label =3D "kernel"; + reg =3D <0x00600000 0x00c00000>; + }; + + partition@1200000 { + label =3D "rootfs"; + reg =3D <0x01200000 0x3ee00000>; + }; + }; + }; +}; + +&iomuxc { + pinctrl_gpmi_nand: gpminandgrp { + fsl,pins =3D < + MX7D_PAD_SD3_CLK__NAND_CLE 0x71 + MX7D_PAD_SD3_CMD__NAND_ALE 0x71 + MX7D_PAD_SAI1_MCLK__NAND_WP_B 0x71 + MX7D_PAD_SAI1_TX_BCLK__NAND_CE0_B 0x71 + MX7D_PAD_SAI1_RX_DATA__NAND_CE1_B 0x71 + MX7D_PAD_SAI1_TX_DATA__NAND_READY_B 0x74 + MX7D_PAD_SD3_STROBE__NAND_RE_B 0x71 + MX7D_PAD_SD3_RESET_B__NAND_WE_B 0x71 + MX7D_PAD_SD3_DATA0__NAND_DATA00 0x71 + MX7D_PAD_SD3_DATA1__NAND_DATA01 0x71 + MX7D_PAD_SD3_DATA2__NAND_DATA02 0x71 + MX7D_PAD_SD3_DATA3__NAND_DATA03 0x71 + MX7D_PAD_SD3_DATA4__NAND_DATA04 0x71 + MX7D_PAD_SD3_DATA5__NAND_DATA05 0x71 + MX7D_PAD_SD3_DATA6__NAND_DATA06 0x71 + MX7D_PAD_SD3_DATA7__NAND_DATA07 0x71 + >; + }; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-var-som-v2.dtsi b/arch/arm/boo= t/dts/nxp/imx/imx7d-var-som-v2.dtsi new file mode 100644 index 000000000000..8aa9d0950a97 --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-v2.dtsi @@ -0,0 +1,66 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * dtsi for Variscite VAR-SOM-MX7 V2 + * + * Changelog link: https://dev.variscite.com/var-som-mx7/changelog/#var-so= m-mx7_v2-v20 + * + * Copyright (C) 2026 Variscite Ltd. - https://www.variscite.com/ + * + */ + +/ { + model =3D "Variscite i.MX7 Dual VAR-SOM-MX7 V2"; + compatible =3D "variscite,var-som-imx7d-v2", "fsl,imx7d"; + + wifi_pwrseq: wifi-pwrseq { + compatible =3D "mmc-pwrseq-simple"; + post-power-on-delay-ms =3D <100>; + power-off-delay-us =3D <10000>; + reset-gpios =3D <&gpio1 4 GPIO_ACTIVE_LOW>; + }; +}; + +&fec1 { + /* + * The required RGMII TX and RX 2ns delays are implemented directly + * in hardware via passive delay elements on the SOM PCB. + * No delay configuration is needed in software via PHY driver. + */ + phy-mode =3D "rgmii"; +}; + +&fec2 { + /* + * The required RGMII TX and RX 2ns delays are implemented directly + * in hardware via passive delay elements on the SOM PCB. + * No delay configuration is needed in software via PHY driver. + */ + phy-mode =3D "rgmii"; +}; + +&pinctrl_wlan { + fsl,pins =3D < + MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4 0x09 + >; +}; + +&pinctrl_wlan_sleep { + fsl,pins =3D < + MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4 0x10 + >; +}; + +/* BT */ +&uart3 { + bluetooth_iw61x: bluetooth { + compatible =3D "nxp,88w8987-bt"; + }; +}; + +/* WiFi */ +&usdhc2 { + /delete-property/ #address-cells; + /delete-property/ #size-cells; + mmc-pwrseq =3D <&wifi_pwrseq>; + /delete-node/ wifi@1; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-var-som-wm8731.dtsi b/arch/arm= /boot/dts/nxp/imx/imx7d-var-som-wm8731.dtsi new file mode 100644 index 000000000000..ab05de43cc53 --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-wm8731.dtsi @@ -0,0 +1,102 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Common dtsi for WM8731 support on Variscite VAR-SOM-MX7 + * + * Link: https://variscite.com/system-on-module-som/i-mx-7/var-som-mx7/ + * + * Copyright (C) 2026 Variscite Ltd. - https://www.variscite.com/ + * + */ + +/ { + codec_wm8731: sound { + compatible =3D "simple-audio-card"; + simple-audio-card,bitclock-master =3D <&sound_master>; + simple-audio-card,format =3D "i2s"; + simple-audio-card,frame-master =3D <&sound_master>; + simple-audio-card,name =3D "wm8731audio"; + simple-audio-card,routing =3D + "Headphone Jack", "RHPOUT", + "Headphone Jack", "LHPOUT", + "LLINEIN", "Line Jack", + "RLINEIN", "Line Jack", + "MICIN", "Mic Bias", + "Mic Bias", "Mic Jack"; + simple-audio-card,widgets =3D + "Headphone", "Headphone Jack", + "Line", "Line Jack", + "Microphone", "Mic Jack"; + + sound_master: simple-audio-card,cpu { + sound-dai =3D <&sai1>; + }; + + simple-audio-card,codec { + sound-dai =3D <&wm8731>; + system-clock-frequency =3D <12288000>; + }; + }; +}; + +&i2c2 { + wm8731: audio-codec@1a { + compatible =3D "wlf,wm8731"; + reg =3D <0x1a>; + #sound-dai-cells =3D <0>; + AVDD-supply =3D <&vgen6_reg>; + DBVDD-supply =3D <&vgen6_reg>; + DCVDD-supply =3D <&vgen6_reg>; + HPVDD-supply =3D <&vgen6_reg>; + clocks =3D <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>; + clock-names =3D "mclk"; + assigned-clocks =3D <&clks IMX7D_AUDIO_MCLK_ROOT_SRC>, + <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>; + assigned-clock-parents =3D <&clks IMX7D_PLL_AUDIO_POST_DIV>; + assigned-clock-rates =3D <0>, <12288000>; + }; +}; + +&sai1 { + pinctrl-names =3D "default", "sleep"; + pinctrl-0 =3D <&pinctrl_sai1>, <&pinctrl_sai1_mclk>; + pinctrl-1 =3D <&pinctrl_sai1_sleep>, <&pinctrl_sai1_mclk_sleep>; + assigned-clocks =3D <&clks IMX7D_SAI1_ROOT_SRC>, + <&clks IMX7D_SAI1_ROOT_CLK>; + assigned-clock-parents =3D <&clks IMX7D_PLL_AUDIO_POST_DIV>; + assigned-clock-rates =3D <0>, <36864000>; + status =3D "okay"; +}; + +&iomuxc { + pinctrl_sai1: sai1grp { + fsl,pins =3D < + MX7D_PAD_ENET1_RX_CLK__SAI1_TX_BCLK 0x1f + MX7D_PAD_ENET1_CRS__SAI1_TX_SYNC 0x1f + MX7D_PAD_ENET1_COL__SAI1_TX_DATA0 0x30 + MX7D_PAD_ENET1_TX_CLK__SAI1_RX_DATA0 0x1f + >; + }; + + pinctrl_sai1_sleep: sai1-sleepgrp { + fsl,pins =3D < + MX7D_PAD_ENET1_RX_CLK__GPIO7_IO13 0x10 + MX7D_PAD_ENET1_CRS__GPIO7_IO14 0x10 + MX7D_PAD_ENET1_COL__GPIO7_IO15 0x10 + MX7D_PAD_ENET1_TX_CLK__GPIO7_IO12 0x10 + >; + }; +}; + +&iomuxc_lpsr { + pinctrl_sai1_mclk: sai1-mclkgrp { + fsl,pins =3D < + MX7D_PAD_LPSR_GPIO1_IO01__SAI1_MCLK 0x1f + >; + }; + + pinctrl_sai1_mclk_sleep: sai1-mclksleepgrp { + fsl,pins =3D < + MX7D_PAD_LPSR_GPIO1_IO01__GPIO1_IO1 0x10 + >; + }; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-var-som-wm8904.dtsi b/arch/arm= /boot/dts/nxp/imx/imx7d-var-som-wm8904.dtsi new file mode 100644 index 000000000000..b56f3680edcf --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-wm8904.dtsi @@ -0,0 +1,118 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Common dtsi for WM8904 support on Variscite VAR-SOM-MX7 + * + * Link: https://variscite.com/system-on-module-som/i-mx-7/var-som-mx7/ + * + * Copyright (C) 2026 Variscite Ltd. - https://www.variscite.com/ + * + */ + +/ { + codec_wm8904: sound { + compatible =3D "simple-audio-card"; + simple-audio-card,bitclock-master =3D <&dailink_master>; + simple-audio-card,format =3D "i2s"; + simple-audio-card,frame-master =3D <&dailink_master>; + simple-audio-card,name =3D "wm8904-audio"; + simple-audio-card,routing =3D + "Headphone Jack", "HPOUTL", + "Headphone Jack", "HPOUTR", + "IN2L", "Line In Jack", + "IN2R", "Line In Jack", + "IN1L", "Microphone Jack", + "IN1R", "Microphone Jack", + "Microphone Jack", "MICBIAS"; + simple-audio-card,widgets =3D + "Microphone", "Microphone Jack", + "Headphone", "Headphone Jack", + "Line", "Line In Jack"; + simple-audio-card,mclk-fs =3D <256>; + + dailink_master: simple-audio-card,codec { + sound-dai =3D <&wm8904>; + }; + + simple-audio-card,cpu { + sound-dai =3D <&sai1>; + }; + }; +}; + +&i2c2 { + wm8904: audio-codec@1a { + compatible =3D "wlf,wm8904"; + reg =3D <0x1a>; + #sound-dai-cells =3D <0>; + clocks =3D <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>; + clock-names =3D "mclk"; + AVDD-supply =3D <&vgen6_reg>; + CPVDD-supply =3D <&vgen6_reg>; + DCVDD-supply =3D <&vgen6_reg>; + DBVDD-supply =3D <&vgen6_reg>; + MICVDD-supply =3D <&vgen6_reg>; + wlf,drc-cfg-names =3D "default", "peaklimiter", "tradition", + "soft", "music"; + /* + * Config registers per name, respectively: + * KNEE_IP =3D 0, KNEE_OP =3D 0, HI_COMP =3D 1, LO_COMP =3D 1 + * KNEE_IP =3D -24, KNEE_OP =3D -6, HI_COMP =3D 1/4, LO_COMP =3D 1 + * KNEE_IP =3D -42, KNEE_OP =3D -3, HI_COMP =3D 0, LO_COMP =3D 1 + * KNEE_IP =3D -45, KNEE_OP =3D -9, HI_COMP =3D 1/8, LO_COMP =3D 1 + * KNEE_IP =3D -30, KNEE_OP =3D -10.5, HI_COMP =3D 1/4, LO_COMP =3D 1 + */ + wlf,drc-cfg-regs =3D /bits/ 16 <0x01af 0x3248 0x0000 0x0000>, + /bits/ 16 <0x04af 0x324b 0x0010 0x0408>, + /bits/ 16 <0x04af 0x324b 0x0028 0x0704>, + /bits/ 16 <0x04af 0x324b 0x0018 0x078c>, + /bits/ 16 <0x04af 0x324b 0x0010 0x050e>; + /* GPIO1 =3D DMIC_CLK, don't touch others */ + wlf,gpio-cfg =3D <0x0018>, <0xffff>, <0xffff>, <0xffff>; + }; +}; + +&sai1 { + pinctrl-names =3D "default", "sleep"; + pinctrl-0 =3D <&pinctrl_sai1>, <&pinctrl_sai1_mclk>; + pinctrl-1 =3D <&pinctrl_sai1_sleep>, <&pinctrl_sai1_mclk_sleep>; + assigned-clocks =3D <&clks IMX7D_SAI1_ROOT_SRC>, + <&clks IMX7D_SAI1_ROOT_CLK>; + assigned-clock-parents =3D <&clks IMX7D_PLL_AUDIO_POST_DIV>; + assigned-clock-rates =3D <0>, <12288000>; + fsl,sai-mclk-direction-output; + status =3D "okay"; +}; + +&iomuxc { + pinctrl_sai1: sai1grp { + fsl,pins =3D < + MX7D_PAD_ENET1_RX_CLK__SAI1_TX_BCLK 0x1f + MX7D_PAD_ENET1_CRS__SAI1_TX_SYNC 0x1f + MX7D_PAD_ENET1_COL__SAI1_TX_DATA0 0x30 + MX7D_PAD_ENET1_TX_CLK__SAI1_RX_DATA0 0x1f + >; + }; + + pinctrl_sai1_sleep: sai1-sleepgrp { + fsl,pins =3D < + MX7D_PAD_ENET1_RX_CLK__GPIO7_IO13 0x10 + MX7D_PAD_ENET1_CRS__GPIO7_IO14 0x10 + MX7D_PAD_ENET1_COL__GPIO7_IO15 0x10 + MX7D_PAD_ENET1_TX_CLK__GPIO7_IO12 0x10 + >; + }; +}; + +&iomuxc_lpsr { + pinctrl_sai1_mclk: sai1-mclkgrp { + fsl,pins =3D < + MX7D_PAD_LPSR_GPIO1_IO01__SAI1_MCLK 0x1f + >; + }; + + pinctrl_sai1_mclk_sleep: sai1-mclksleepgrp { + fsl,pins =3D < + MX7D_PAD_LPSR_GPIO1_IO01__GPIO1_IO1 0x10 + >; + }; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-var-som.dtsi b/arch/arm/boot/d= ts/nxp/imx/imx7d-var-som.dtsi new file mode 100644 index 000000000000..255cf4490077 --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx7d-var-som.dtsi @@ -0,0 +1,533 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Common dtsi for Variscite VAR-SOM-MX7 + * + * Link: https://variscite.com/system-on-module-som/i-mx-7/var-som-mx7/ + * + * Copyright (C) 2026 Variscite Ltd. - https://www.variscite.com/ + * + */ + +#include +#include "imx7d.dtsi" + +/ { + model =3D "Variscite i.MX7 Dual VAR-SOM-MX7"; + compatible =3D "variscite,var-som-imx7d", "fsl,imx7d"; + + memory@80000000 { + device_type =3D "memory"; + reg =3D <0x80000000 0x80000000>; + }; + + reg_phy_vddio: regulator-phy-vddio { + compatible =3D "regulator-fixed"; + regulator-name =3D "vddio-1v8"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + }; + + reg_vmmc_wl: regulator-vmmc-wl { + compatible =3D "regulator-fixed"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + regulator-name =3D "wlreg_on"; + }; + + reg_vref_1v8: regulator-vref-1v8 { + compatible =3D "regulator-fixed"; + regulator-name =3D "vref-1v8"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + }; + +}; + +&adc1 { + vref-supply =3D <®_vref_1v8>; + status =3D "okay"; +}; + +&adc2 { + vref-supply =3D <®_vref_1v8>; + status =3D "okay"; +}; + +&cpu0 { + cpu-supply =3D <&sw1a_reg>; +}; + +&cpu1 { + cpu-supply =3D <&sw1a_reg>; +}; + +&ecspi1 { + pinctrl-names =3D "default", "sleep"; + pinctrl-0 =3D <&pinctrl_ecspi1>; + pinctrl-1 =3D <&pinctrl_ecspi1_sleep>; + cs-gpios =3D <&gpio4 19 GPIO_ACTIVE_LOW>; + status =3D "okay"; + + /* Resistive touch controller */ + ads7846_ts: touchscreen@0 { + reg =3D <0>; + compatible =3D "ti,ads7846"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_restouch>; + interrupt-parent =3D <&gpio1>; + interrupts =3D <9 IRQ_TYPE_EDGE_FALLING>; + spi-max-frequency =3D <1500000>; + pendown-gpio =3D <&gpio1 9 GPIO_ACTIVE_LOW>; + ti,x-min =3D /bits/ 16 <125>; + ti,x-max =3D /bits/ 16 <4008>; + ti,y-min =3D /bits/ 16 <282>; + ti,y-max =3D /bits/ 16 <3864>; + ti,x-plate-ohms =3D /bits/ 16 <180>; + ti,pressure-max =3D /bits/ 16 <255>; + ti,debounce-max =3D /bits/ 16 <10>; + ti,debounce-tol =3D /bits/ 16 <3>; + ti,debounce-rep =3D /bits/ 16 <1>; + ti,settle-delay-usec =3D /bits/ 16 <150>; + ti,keep-vref-on; + }; +}; + +&fec1 { + pinctrl-names =3D "default", "sleep"; + pinctrl-0 =3D <&pinctrl_enet1>, + <&pinctrl_enet1_rst>, + <&pinctrl_enet2_rst>; + pinctrl-1 =3D <&pinctrl_enet1_sleep>, + <&pinctrl_enet1_rst_sleep>, + <&pinctrl_enet2_rst_sleep>; + phy-supply =3D <&vgen3_reg>; + assigned-clocks =3D <&clks IMX7D_ENET_PHY_REF_ROOT_SRC>, + <&clks IMX7D_ENET_AXI_ROOT_SRC>, + <&clks IMX7D_ENET1_TIME_ROOT_SRC>, + <&clks IMX7D_ENET1_TIME_ROOT_CLK>, + <&clks IMX7D_ENET_AXI_ROOT_CLK>; + assigned-clock-parents =3D <&clks IMX7D_PLL_ENET_MAIN_25M_CLK>, + <&clks IMX7D_PLL_ENET_MAIN_250M_CLK>, + <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>; + assigned-clock-rates =3D <0>, <0>, <0>, <100000000>, <250000000>; + phy-mode =3D "rgmii-id"; + phy-handle =3D <ðphy0>; + status =3D "okay"; + + mdio { + #address-cells =3D <1>; + #size-cells =3D <0>; + + ethphy0: ethernet-phy@0 { + compatible =3D "ethernet-phy-ieee802.3-c22"; + reg =3D <0>; + reset-gpios =3D <&gpio5 11 GPIO_ACTIVE_LOW>; + reset-assert-us =3D <20000>; + reset-deassert-us =3D <80000>; + vddio-supply =3D <®_phy_vddio>; + }; + + ethphy1: ethernet-phy@1 { + compatible =3D "ethernet-phy-ieee802.3-c22"; + reg =3D <1>; + reset-gpios =3D <&gpio4 3 GPIO_ACTIVE_LOW>; + reset-assert-us =3D <20000>; + reset-deassert-us =3D <80000>; + vddio-supply =3D <®_phy_vddio>; + }; + }; +}; + +&fec2 { + pinctrl-names =3D "default", "sleep"; + pinctrl-0 =3D <&pinctrl_enet2>; + pinctrl-1 =3D <&pinctrl_enet2_sleep>; + phy-supply =3D <&vgen3_reg>; + assigned-clocks =3D <&clks IMX7D_ENET_PHY_REF_ROOT_SRC>, + <&clks IMX7D_ENET_AXI_ROOT_SRC>, + <&clks IMX7D_ENET2_TIME_ROOT_SRC>, + <&clks IMX7D_ENET2_TIME_ROOT_CLK>, + <&clks IMX7D_ENET_AXI_ROOT_CLK>; + assigned-clock-parents =3D <&clks IMX7D_PLL_ENET_MAIN_25M_CLK>, + <&clks IMX7D_PLL_ENET_MAIN_250M_CLK>, + <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>; + assigned-clock-rates =3D <0>, <0>, <0>, <100000000>, <250000000>; + phy-mode =3D "rgmii-id"; + phy-handle =3D <ðphy1>; + status =3D "okay"; +}; + +&i2c1 { + clock-frequency =3D <100000>; + pinctrl-names =3D "default", "gpio"; + pinctrl-0 =3D <&pinctrl_i2c1>; + pinctrl-1 =3D <&pinctrl_i2c1_gpio>; + scl-gpios =3D <&gpio4 8 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + sda-gpios =3D <&gpio4 9 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + status =3D "okay"; + + pfuze300: pmic@8 { + compatible =3D "fsl,pfuze3000"; + reg =3D <0x08>; + + regulators { + sw1a_reg: sw1a { + regulator-min-microvolt =3D <700000>; + regulator-max-microvolt =3D <3300000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay =3D <6250>; + }; + + /* use sw1c_reg to align with pfuze100/pfuze200 */ + sw1c_reg: sw1b { + regulator-min-microvolt =3D <700000>; + regulator-max-microvolt =3D <1475000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay =3D <6250>; + }; + + sw2_reg: sw2 { + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-boot-on; + regulator-always-on; + }; + + sw3a_reg: sw3 { + regulator-min-microvolt =3D <900000>; + regulator-max-microvolt =3D <1650000>; + regulator-boot-on; + regulator-always-on; + }; + + swbst_reg: swbst { + regulator-min-microvolt =3D <5000000>; + regulator-max-microvolt =3D <5150000>; + }; + + snvs_reg: vsnvs { + regulator-min-microvolt =3D <1000000>; + regulator-max-microvolt =3D <3000000>; + regulator-boot-on; + regulator-always-on; + }; + + vref_reg: vrefddr { + regulator-boot-on; + regulator-always-on; + }; + + vgen1_reg: vldo1 { + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <3300000>; + regulator-always-on; + }; + + vgen2_reg: vldo2 { + status =3D "disabled"; + }; + + vgen3_reg: vccsd { + regulator-min-microvolt =3D <2850000>; + regulator-max-microvolt =3D <3300000>; + regulator-boot-on; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vgen4_reg: v33 { + regulator-min-microvolt =3D <2850000>; + regulator-max-microvolt =3D <2850000>; + regulator-always-on; + }; + + vgen5_reg: vldo3 { + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <3300000>; + regulator-always-on; + }; + + vgen6_reg: vldo4 { + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <3300000>; + regulator-always-on; + }; + }; + }; +}; + +&i2c2 { + clock-frequency =3D <100000>; + pinctrl-names =3D "default", "gpio"; + pinctrl-0 =3D <&pinctrl_i2c2>; + pinctrl-1 =3D <&pinctrl_i2c2_gpio>; + scl-gpios =3D <&gpio4 10 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + sda-gpios =3D <&gpio4 11 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + status =3D "okay"; +}; + +®_1p0d { + vin-supply =3D <&sw2_reg>; +}; + +®_1p2 { + vin-supply =3D <&sw2_reg>; +}; + +/* BT */ +&uart3 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_uart3>, <&pinctrl_bt>; + assigned-clocks =3D <&clks IMX7D_UART3_ROOT_SRC>; + assigned-clock-parents =3D <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>; + uart-has-rtscts; + status =3D "okay"; +}; + +/* WiFi */ +&usdhc2 { + #address-cells =3D <1>; + #size-cells =3D <0>; + pinctrl-names =3D "default", "state_100mhz", "state_200mhz", "sleep"; + pinctrl-0 =3D <&pinctrl_usdhc2>, <&pinctrl_wlan>; + pinctrl-1 =3D <&pinctrl_usdhc2_100mhz>, <&pinctrl_wlan>; + pinctrl-2 =3D <&pinctrl_usdhc2_200mhz>, <&pinctrl_wlan>; + pinctrl-3 =3D <&pinctrl_usdhc2_sleep>, <&pinctrl_wlan_sleep>; + keep-power-in-suspend; + non-removable; + vmmc-supply =3D <®_vmmc_wl>; + status =3D "okay"; + + brcmf: wifi@1 { + compatible =3D "brcm,bcm4329-fmac"; + reg =3D <1>; + }; +}; + +&iomuxc { + /* GPIO Used in User Space init script */ + pinctrl_bt: btgrp { + fsl,pins =3D < + MX7D_PAD_GPIO1_IO14__GPIO1_IO14 0x80000000 + >; + }; + + pinctrl_ecspi1: ecspi1grp { + fsl,pins =3D < + MX7D_PAD_ECSPI1_MISO__ECSPI1_MISO 0x2 + MX7D_PAD_ECSPI1_MOSI__ECSPI1_MOSI 0x2 + MX7D_PAD_ECSPI1_SCLK__ECSPI1_SCLK 0x2 + MX7D_PAD_ECSPI1_SS0__GPIO4_IO19 0x2 + >; + }; + + pinctrl_ecspi1_sleep: ecspi1-sleepgrp { + fsl,pins =3D < + MX7D_PAD_ECSPI1_MISO__GPIO4_IO18 0x10 + MX7D_PAD_ECSPI1_MOSI__GPIO4_IO17 0x10 + MX7D_PAD_ECSPI1_SCLK__GPIO4_IO16 0x10 + >; + }; + + pinctrl_enet1: enet1grp { + fsl,pins =3D < + MX7D_PAD_SD2_CD_B__ENET1_MDIO 0x3 + MX7D_PAD_SD2_WP__ENET1_MDC 0x3 + MX7D_PAD_ENET1_RGMII_TXC__ENET1_RGMII_TXC 0x1 + MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0 0x1 + MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1 0x1 + MX7D_PAD_ENET1_RGMII_TD2__ENET1_RGMII_TD2 0x1 + MX7D_PAD_ENET1_RGMII_TD3__ENET1_RGMII_TD3 0x1 + MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL 0x1 + MX7D_PAD_ENET1_RGMII_RXC__ENET1_RGMII_RXC 0x1 + MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0 0x1 + MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1 0x1 + MX7D_PAD_ENET1_RGMII_RD2__ENET1_RGMII_RD2 0x1 + MX7D_PAD_ENET1_RGMII_RD3__ENET1_RGMII_RD3 0x1 + MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL 0x1 + >; + }; + + pinctrl_enet1_rst: enet1rstgrp { + fsl,pins =3D < + MX7D_PAD_SD2_RESET_B__GPIO5_IO11 0x59 + >; + }; + + pinctrl_enet1_sleep: enet1-sleepgrp { + fsl,pins =3D < + MX7D_PAD_SD2_CD_B__GPIO5_IO9 0x10 + MX7D_PAD_SD2_WP__GPIO5_IO10 0x10 + MX7D_PAD_ENET1_RGMII_TXC__GPIO7_IO11 0x10 + MX7D_PAD_ENET1_RGMII_TD0__GPIO7_IO6 0x10 + MX7D_PAD_ENET1_RGMII_TD1__GPIO7_IO7 0x10 + MX7D_PAD_ENET1_RGMII_TD2__GPIO7_IO8 0x10 + MX7D_PAD_ENET1_RGMII_TD3__GPIO7_IO9 0x10 + MX7D_PAD_ENET1_RGMII_TX_CTL__GPIO7_IO10 0x10 + MX7D_PAD_ENET1_RGMII_RXC__GPIO7_IO5 0x10 + MX7D_PAD_ENET1_RGMII_RD0__GPIO7_IO0 0x10 + MX7D_PAD_ENET1_RGMII_RD1__GPIO7_IO1 0x10 + MX7D_PAD_ENET1_RGMII_RD2__GPIO7_IO2 0x10 + MX7D_PAD_ENET1_RGMII_RD3__GPIO7_IO3 0x10 + MX7D_PAD_ENET1_RGMII_RX_CTL__GPIO7_IO4 0x10 + >; + }; + + pinctrl_enet1_rst_sleep: enet1-rstsleepgrp { + fsl,pins =3D < + MX7D_PAD_SD2_RESET_B__GPIO5_IO11 0x10 + >; + }; + + pinctrl_enet2: enet2grp { + fsl,pins =3D < + MX7D_PAD_EPDC_GDSP__ENET2_RGMII_TXC 0x1 + MX7D_PAD_EPDC_SDCE2__ENET2_RGMII_TD0 0x1 + MX7D_PAD_EPDC_SDCE3__ENET2_RGMII_TD1 0x1 + MX7D_PAD_EPDC_GDCLK__ENET2_RGMII_TD2 0x1 + MX7D_PAD_EPDC_GDOE__ENET2_RGMII_TD3 0x1 + MX7D_PAD_EPDC_GDRL__ENET2_RGMII_TX_CTL 0x1 + MX7D_PAD_EPDC_SDCE1__ENET2_RGMII_RXC 0x1 + MX7D_PAD_EPDC_SDCLK__ENET2_RGMII_RD0 0x1 + MX7D_PAD_EPDC_SDLE__ENET2_RGMII_RD1 0x1 + MX7D_PAD_EPDC_SDOE__ENET2_RGMII_RD2 0x1 + MX7D_PAD_EPDC_SDSHR__ENET2_RGMII_RD3 0x1 + MX7D_PAD_EPDC_SDCE0__ENET2_RGMII_RX_CTL 0x1 + >; + }; + + pinctrl_enet2_rst: enet2rstgrp { + fsl,pins =3D < + MX7D_PAD_UART2_TX_DATA__GPIO4_IO3 0x59 + >; + }; + + pinctrl_enet2_sleep: enet2-sleepgrp { + fsl,pins =3D < + MX7D_PAD_EPDC_GDSP__GPIO2_IO27 0x10 + MX7D_PAD_EPDC_SDCE2__GPIO2_IO22 0x10 + MX7D_PAD_EPDC_SDCE3__GPIO2_IO23 0x10 + MX7D_PAD_EPDC_GDCLK__GPIO2_IO24 0x10 + MX7D_PAD_EPDC_GDOE__GPIO2_IO25 0x10 + MX7D_PAD_EPDC_GDRL__GPIO2_IO26 0x10 + MX7D_PAD_EPDC_SDCE1__GPIO2_IO21 0x10 + MX7D_PAD_EPDC_SDCLK__GPIO2_IO16 0x10 + MX7D_PAD_EPDC_SDLE__GPIO2_IO17 0x10 + MX7D_PAD_EPDC_SDOE__GPIO2_IO18 0x10 + MX7D_PAD_EPDC_SDSHR__GPIO2_IO19 0x10 + MX7D_PAD_EPDC_SDCE0__GPIO2_IO20 0x10 + >; + }; + + pinctrl_enet2_rst_sleep: enet2-rstsleepgrp { + fsl,pins =3D < + MX7D_PAD_UART2_TX_DATA__GPIO4_IO3 0x10 + >; + }; + + pinctrl_i2c1: i2c1grp { + fsl,pins =3D < + MX7D_PAD_I2C1_SDA__I2C1_SDA 0x4000007f + MX7D_PAD_I2C1_SCL__I2C1_SCL 0x4000007f + >; + }; + + pinctrl_i2c1_gpio: i2c1gpiogrp { + fsl,pins =3D < + MX7D_PAD_I2C1_SDA__GPIO4_IO9 0x4000007f + MX7D_PAD_I2C1_SCL__GPIO4_IO8 0x4000007f + >; + }; + + pinctrl_i2c2: i2c2grp { + fsl,pins =3D < + MX7D_PAD_I2C2_SDA__I2C2_SDA 0x4000007f + MX7D_PAD_I2C2_SCL__I2C2_SCL 0x4000007f + >; + }; + + pinctrl_i2c2_gpio: i2c2gpiogrp { + fsl,pins =3D < + MX7D_PAD_I2C2_SDA__GPIO4_IO11 0x4000007f + MX7D_PAD_I2C2_SCL__GPIO4_IO10 0x4000007f + >; + }; + + pinctrl_restouch: restouchgrp { + fsl,pins =3D < + MX7D_PAD_GPIO1_IO09__GPIO1_IO9 0x59 + >; + }; + + pinctrl_uart3: uart3grp { + fsl,pins =3D < + MX7D_PAD_UART3_TX_DATA__UART3_DCE_TX 0x79 + MX7D_PAD_UART3_RX_DATA__UART3_DCE_RX 0x79 + MX7D_PAD_UART3_CTS_B__UART3_DCE_CTS 0x79 + MX7D_PAD_UART3_RTS_B__UART3_DCE_RTS 0x79 + >; + }; + + pinctrl_usdhc2: usdhc2grp { + fsl,pins =3D < + MX7D_PAD_SD2_CMD__SD2_CMD 0x59 + MX7D_PAD_SD2_CLK__SD2_CLK 0x19 + MX7D_PAD_SD2_DATA0__SD2_DATA0 0x59 + MX7D_PAD_SD2_DATA1__SD2_DATA1 0x59 + MX7D_PAD_SD2_DATA2__SD2_DATA2 0x59 + MX7D_PAD_SD2_DATA3__SD2_DATA3 0x59 + >; + }; + + pinctrl_usdhc2_sleep: usdhc2-sleepgrp { + fsl,pins =3D < + MX7D_PAD_SD2_CMD__GPIO5_IO13 0x10 + MX7D_PAD_SD2_CLK__GPIO5_IO12 0x10 + MX7D_PAD_SD2_DATA0__GPIO5_IO14 0x10 + MX7D_PAD_SD2_DATA1__GPIO5_IO15 0x10 + MX7D_PAD_SD2_DATA2__GPIO5_IO16 0x10 + MX7D_PAD_SD2_DATA3__GPIO5_IO17 0x10 + >; + }; + + pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp { + fsl,pins =3D < + MX7D_PAD_SD2_CMD__SD2_CMD 0x5a + MX7D_PAD_SD2_CLK__SD2_CLK 0x1a + MX7D_PAD_SD2_DATA0__SD2_DATA0 0x5a + MX7D_PAD_SD2_DATA1__SD2_DATA1 0x5a + MX7D_PAD_SD2_DATA2__SD2_DATA2 0x5a + MX7D_PAD_SD2_DATA3__SD2_DATA3 0x5a + >; + }; + + pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp { + fsl,pins =3D < + MX7D_PAD_SD2_CMD__SD2_CMD 0x5b + MX7D_PAD_SD2_CLK__SD2_CLK 0x1b + MX7D_PAD_SD2_DATA0__SD2_DATA0 0x5b + MX7D_PAD_SD2_DATA1__SD2_DATA1 0x5b + MX7D_PAD_SD2_DATA2__SD2_DATA2 0x5b + MX7D_PAD_SD2_DATA3__SD2_DATA3 0x5b + >; + }; +}; + +&iomuxc_lpsr { + /* GPIO Used in User Space init script */ + pinctrl_wlan: wlangrp { + fsl,pins =3D < + MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4 0x09 + >; + }; + + pinctrl_wlan_sleep: wlan-sleepgrp { + fsl,pins =3D < + MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4 0x10 + >; + }; +}; --=20 2.47.3 From nobody Sat Sep 26 13:46:41 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 90CD83C0A1F for ; Mon, 31 Aug 2026 22:56:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788216962; cv=none; b=auU/3Iie0JwYA9zPzAxz2Iix3/wJJYDsTIFhDmbUSrhSq7DhD3eDP8lg72t4KxNIhmjGHCwW/rdtkYhZ7CB0VE/yyNvdlU3yfxDzbS5taoPrLSgw/cHcoRzgHL0Foid1OJuxEL8+KSzgU8iTHVYWQ4i1GjQgrDNp8rzE5zeBIjk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788216962; c=relaxed/simple; bh=LWV1yslNrR6exy8zvIULRFrm97CATe1aucUaM+2p7ng=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jNbBzSzjMnD7YFy1pYOdpGTyhFRuVa8XGiNXs0vxP7AEo+dqXuGU888xZ3NRx88DIJUMTg+bY7hxHreERq8K0fuIG+p28mEGx8hWcoChTzuE3zIjBcmoYaepnxkwWG/F6wyXYH7fjFFJ/KksWyeoEowCd1+mxmc1RK/l/ZUSt2Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=gsgpodDg; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="gsgpodDg" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-495590dde14so40693405e9.0 for ; Mon, 31 Aug 2026 15:56:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788216958; x=1788821758; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Fh21ClYtU+oMC8asyGsbESdj8juYcsuSGAhDaVF8sqY=; b=gsgpodDgbRN3fuYgVzU88PjLO76L5Js7c+SSlZ8nHOnRKmEhpwCtANT7OZ2NAXFI1u zwbpNEBsDgea7WJZYf/ukO1KS/Q1Xnbo2NzUpIOs5d0e1jxR1EoNEJ8QlYt5yZ65bVFd OM/VYqB9Juc9C4oYyV7k/4JE06Mng1YWFPk8A1+GiRTqDk8L9LL6cHproOGgtMgpWjcx ioL0ZfWd7HOb6LFgkj7nuHaLJz/uc2iwGQajRy831Mcd9L9Ee0eLpqQjg0ZXgzSEQch9 55gM54L37N8YGYkNhEBF5elzR8cu5bQ3Otz2mzQuDTZY/fIckKGTOMh8QRlC4x1TizV9 8nEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788216958; x=1788821758; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=Fh21ClYtU+oMC8asyGsbESdj8juYcsuSGAhDaVF8sqY=; b=E2+x8lnwRAdz7LyFbODfp3IXDexgNxJZA57/anIqE1BCVY62Mc3dGlddZKkImGcLUN ljnp8qrJlm4jG+X9PjhEwZbTnZhwYTeJQHJldV8zKorvg7NLJk1gsJDwQokz8vwa7vr0 DjoriUlGR3xk7+uXeZ7LFRW32OH0/G2IFUWIYBnxe4eKajoCjRVykBKlB65OROunEsX4 AoB6SFm5SOepUNNjS5ivpEufAVNklFhdIzqEgLtaVF60TIgHNksrRH+8PQbA5uv3iw1I Ci2P51Cs13dQFfbVUFoxwb60Z+NNX0JWrYyXJACBqRA+TrF3XtholKM+dgXOebEdRit5 CMKA== X-Forwarded-Encrypted: i=1; AHgh+RpgYPKI81RMuf0MPW1aT7bKLk5nyGA/PJiHoITPR6qo+VYJX6NsnYwlMBAsYDU5Yp+eroQF28jD/q2MZ9I=@vger.kernel.org X-Gm-Message-State: AFuF++nF8E3D06TCbpYJf0NruAJml6NLDgNK5+EMOw9BA0B0FNy1it6j PZdsmpbALxkpUCzCZplbsopYKPRqdl7bUT/4FcRoViXEaFFuNI/5TYVC X-Gm-Gg: AR+sD12ePVtyWTDw/d8umO9oDJOEXUq9i1WmaqmNxpseXmzKa7pG27n9vhAV4O+oIGc QuMnxQ/5Lx0goihaeIDk8KQH646JRn6EqrajcnTA3w/JikU8Ju2/ZhhQzuTmyDZyTFS/oTeBqbo LzHZBDNCqLY2FDwwJ4HaBsRG8YQF9QXLajl3i7l07KsRI/MDlwx2jVa33sN/oOjzDeBxkVOoaEv 9VdMrJySb9sE7dk+zhLIqCXFTxqBRq6h0XaxPF+AokktoA6MeYIAcV+uEsj/kGm/uYkYdei9Y6g oaE3OoK4FS6ITd6UaeEkh2Iybh/+kQI8No56cxgdnH5tzHGLFTjLtfCgCehdYC31l/EeRNxDixa W7eGLcTZHD9JhBYqpK7SK/KecHhCztj2A9aIdv2Ith9zQ0SSCKFetpgdhOH2/d92MADgnsaSbRN 7fERqFiM8FXtTaa/dF9UYNc22wCF9sShp83AUrF1lEYpl9QOoZXXs43lmQmuq6nVhFJ94S1JAnB wVhtFI4I2tCzGQcxRCMWnLBofI= X-Received: by 2002:a05:600c:3f0a:b0:49b:8c63:dfdf with SMTP id 5b1f17b1804b1-49cdc560110mr78518675e9.15.1788216958381; Mon, 31 Aug 2026 15:55:58 -0700 (PDT) Received: from GLaDOS.station ([187.14.102.81]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49cdce10153sm24452615e9.4.2026.08.31.15.55.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Aug 2026 15:55:57 -0700 (PDT) From: Stefano Radaelli X-Google-Original-From: Stefano Radaelli To: Frank Li , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org Cc: pierluigi.p@variscite.com, Stefano Radaelli , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Shawn Guo , Daniel Baluta , Josua Mayer , Alexander Stein , Ernest Van Hoecke , Maud Spierings , Francesco Dolcini , Markus Niebel , Hugo Villeneuve , Marek Vasut Subject: [PATCH v8 3/3] ARM: dts: imx7d: add Variscite MX7CustomBoard support Date: Tue, 1 Sep 2026 00:55:20 +0200 Message-ID: <0cb7621279b199c28be92c338ecf07e60f16e574.1788184274.git.stefano.r@variscite.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Stefano Radaelli Add device tree support for the Variscite MX7CustomBoard carrier board with the VAR-SOM-MX7 system on module. This includes supported board configurations for both VAR-SOM-MX7 hardware revisions, with eMMC and NAND variants, and WM8731 variants for the first hardware revision. Also add the resulting DTBs to the i.MX7D device tree Makefile. Link: https://www.variscite.com/carrier-boards/var-mx7customboard/ Signed-off-by: Stefano Radaelli --- v7->v8: -=20 v6->v7: - Added common dtsi for wm8904 codec removing it from base dtsi v5->v6: -=20 v4->v5: -=20 v3->v4: -=20 v2->v3: -=20 v1->v2: - Fixed commit message - Fixed model names arch/arm/boot/dts/nxp/imx/Makefile | 6 +++++ .../imx/imx7d-var-som-emmc-mx7customboard.dts | 23 ++++++++++++++++++ ...x7d-var-som-emmc-wm8731-mx7customboard.dts | 23 ++++++++++++++++++ .../imx/imx7d-var-som-nand-mx7customboard.dts | 23 ++++++++++++++++++ ...x7d-var-som-nand-wm8731-mx7customboard.dts | 23 ++++++++++++++++++ .../imx7d-var-som-v2-emmc-mx7customboard.dts | 24 +++++++++++++++++++ .../imx7d-var-som-v2-nand-mx7customboard.dts | 24 +++++++++++++++++++ 7 files changed, 146 insertions(+) create mode 100644 arch/arm/boot/dts/nxp/imx/imx7d-var-som-emmc-mx7customb= oard.dts create mode 100644 arch/arm/boot/dts/nxp/imx/imx7d-var-som-emmc-wm8731-mx7= customboard.dts create mode 100644 arch/arm/boot/dts/nxp/imx/imx7d-var-som-nand-mx7customb= oard.dts create mode 100644 arch/arm/boot/dts/nxp/imx/imx7d-var-som-nand-wm8731-mx7= customboard.dts create mode 100644 arch/arm/boot/dts/nxp/imx/imx7d-var-som-v2-emmc-mx7cust= omboard.dts create mode 100644 arch/arm/boot/dts/nxp/imx/imx7d-var-som-v2-nand-mx7cust= omboard.dts diff --git a/arch/arm/boot/dts/nxp/imx/Makefile b/arch/arm/boot/dts/nxp/imx= /Makefile index 1a2539fa19b4..37da667f9ffb 100644 --- a/arch/arm/boot/dts/nxp/imx/Makefile +++ b/arch/arm/boot/dts/nxp/imx/Makefile @@ -444,6 +444,12 @@ dtb-$(CONFIG_SOC_IMX7D) +=3D \ imx7d-sdb-reva.dtb \ imx7d-sdb-sht11.dtb \ imx7d-smegw01.dtb \ + imx7d-var-som-emmc-mx7customboard.dtb \ + imx7d-var-som-emmc-wm8731-mx7customboard.dtb \ + imx7d-var-som-nand-mx7customboard.dtb \ + imx7d-var-som-nand-wm8731-mx7customboard.dtb \ + imx7d-var-som-v2-emmc-mx7customboard.dtb \ + imx7d-var-som-v2-nand-mx7customboard.dtb \ imx7d-zii-rmu2.dtb \ imx7d-zii-rpu2.dtb \ imx7s-colibri-aster.dtb \ diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-var-som-emmc-mx7customboard.dt= s b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-emmc-mx7customboard.dts new file mode 100644 index 000000000000..594ee2d2d23a --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-emmc-mx7customboard.dts @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * VAR-MX7CustomBoard for VAR-SOM-MX7 with eMMC + * + * Link: https://variscite.com/carrier-boards/var-mx7customboard/ + * + * Copyright (C) 2026 Variscite Ltd. - https://www.variscite.com/ + * + */ + +/dts-v1/; + +#include "imx7d-var-som.dtsi" +#include "imx7d-var-som-emmc.dtsi" +#include "imx7d-var-som-wm8904.dtsi" +#include "imx7d-var-som-mx7customboard.dtsi" + +/ { + model =3D "Variscite VAR-SOM-MX7 with eMMC & WM8904 on VAR-MX7CustomBoard= "; + compatible =3D "variscite,var-som-imx7d-emmc-mx7customboard", + "variscite,var-som-imx7d", + "fsl,imx7d"; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-var-som-emmc-wm8731-mx7customb= oard.dts b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-emmc-wm8731-mx7customboa= rd.dts new file mode 100644 index 000000000000..94c4b1fa5d6c --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-emmc-wm8731-mx7customboard.dts @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * VAR-MX7CustomBoard for VAR-SOM-MX7 with eMMC and WM8731 + * + * Link: https://variscite.com/carrier-boards/var-mx7customboard/ + * + * Copyright (C) 2026 Variscite Ltd. - https://www.variscite.com/ + * + */ + +/dts-v1/; + +#include "imx7d-var-som.dtsi" +#include "imx7d-var-som-emmc.dtsi" +#include "imx7d-var-som-wm8731.dtsi" +#include "imx7d-var-som-mx7customboard.dtsi" + +/ { + model =3D "Variscite VAR-SOM-MX7 with eMMC & WM8731 on VAR-MX7CustomBoard= "; + compatible =3D "variscite,var-som-imx7d-emmc-wm8731-mx7customboard", + "variscite,var-som-imx7d", + "fsl,imx7d"; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-var-som-nand-mx7customboard.dt= s b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-nand-mx7customboard.dts new file mode 100644 index 000000000000..d3fbf3b4b5a3 --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-nand-mx7customboard.dts @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * VAR-MX7CustomBoard for VAR-SOM-MX7 with NAND + * + * Link: https://variscite.com/carrier-boards/var-mx7customboard/ + * + * Copyright (C) 2026 Variscite Ltd. - https://www.variscite.com/ + * + */ + +/dts-v1/; + +#include "imx7d-var-som.dtsi" +#include "imx7d-var-som-nand.dtsi" +#include "imx7d-var-som-wm8904.dtsi" +#include "imx7d-var-som-mx7customboard.dtsi" + +/ { + model =3D "Variscite VAR-SOM-MX7 with NAND flash & WM8904 on VAR-MX7Custo= mBoard"; + compatible =3D "variscite,var-som-imx7d-nand-mx7customboard", + "variscite,var-som-imx7d", + "fsl,imx7d"; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-var-som-nand-wm8731-mx7customb= oard.dts b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-nand-wm8731-mx7customboa= rd.dts new file mode 100644 index 000000000000..603b2dbf4c8e --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-nand-wm8731-mx7customboard.dts @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * VAR-MX7CustomBoard for VAR-SOM-MX7 with NAND and WM8731 + * + * Link: https://variscite.com/carrier-boards/var-mx7customboard/ + * + * Copyright (C) 2026 Variscite Ltd. - https://www.variscite.com/ + * + */ + +/dts-v1/; + +#include "imx7d-var-som.dtsi" +#include "imx7d-var-som-nand.dtsi" +#include "imx7d-var-som-wm8731.dtsi" +#include "imx7d-var-som-mx7customboard.dtsi" + +/ { + model =3D "Variscite VAR-SOM-MX7 with NAND flash & WM8731 on VAR-MX7Custo= mBoard"; + compatible =3D "variscite,var-som-imx7d-nand-wm8731-mx7customboard", + "variscite,var-som-imx7d", + "fsl,imx7d"; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-var-som-v2-emmc-mx7customboard= .dts b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-v2-emmc-mx7customboard.dts new file mode 100644 index 000000000000..1c419251bedd --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-v2-emmc-mx7customboard.dts @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * VAR-MX7CustomBoard for VAR-SOM-MX7 V2 with eMMC + * + * Link: https://variscite.com/carrier-boards/var-mx7customboard/ + * + * Copyright (C) 2026 Variscite Ltd. - https://www.variscite.com/ + * + */ + +/dts-v1/; + +#include "imx7d-var-som.dtsi" +#include "imx7d-var-som-v2.dtsi" +#include "imx7d-var-som-emmc.dtsi" +#include "imx7d-var-som-wm8904.dtsi" +#include "imx7d-var-som-mx7customboard.dtsi" + +/ { + model =3D "Variscite VAR-SOM-MX7-5G_V2 with eMMC & WM8904 on VAR-MX7Custo= mBoard"; + compatible =3D "variscite,var-som-imx7d-v2-emmc-mx7customboard", + "variscite,var-som-imx7d-v2", + "fsl,imx7d"; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-var-som-v2-nand-mx7customboard= .dts b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-v2-nand-mx7customboard.dts new file mode 100644 index 000000000000..68569111f3a3 --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-v2-nand-mx7customboard.dts @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * VAR-MX7CustomBoard for VAR-SOM-MX7 V2 with NAND + * + * Link: https://variscite.com/carrier-boards/var-mx7customboard/ + * + * Copyright (C) 2026 Variscite Ltd. - https://www.variscite.com/ + * + */ + +/dts-v1/; + +#include "imx7d-var-som.dtsi" +#include "imx7d-var-som-v2.dtsi" +#include "imx7d-var-som-nand.dtsi" +#include "imx7d-var-som-wm8904.dtsi" +#include "imx7d-var-som-mx7customboard.dtsi" + +/ { + model =3D "Variscite VAR-SOM-MX7-5G_V2 with NAND flash & WM8904 on VAR-MX= 7CustomBoard"; + compatible =3D "variscite,var-som-imx7d-v2-nand-mx7customboard", + "variscite,var-som-imx7d-v2", + "fsl,imx7d"; +}; --=20 2.47.3