From nobody Sat Jun 13 16:26:31 2026 Received: from mail-lf1-f46.google.com (mail-lf1-f46.google.com [209.85.167.46]) (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 047E54266B3 for ; Wed, 6 May 2026 13:02:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778072539; cv=none; b=rl++X2oxZqAfGJVcgRpgo5xxEkTIksMsLPMPvX4XlWoGsgIEJLAJ1mnZ0d7Lufumq3WWI5yppCVMK+wVYzciiAirTY1a7QJF9080rp6yB3lVCt5CqjiI0RBVo3/DGtLhcvVMT9DkcoKUF61zTGruWS0PeAEXqRRyAvzWEdpZQVY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778072539; c=relaxed/simple; bh=utTy2N5m6iLLqToduaQBSAYCHJiDkqInO3VstDOPoxI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YGKfykh/y3Y0MdfUg9QvV0v8B2YB+WC2t1JWe8xsQWOj5LJ1oBJ0ONB6tjIrPuvexWrP5cGei4yRtsIOdK1MV6OBoxb76hipkTCxHacen8KD0B85QViDowSbIpgXt5TUeu3FghniaH97xfUC1TC5hwIWIc9BlDIY508i2btQJ+w= 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=EZmhMJFN; arc=none smtp.client-ip=209.85.167.46 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="EZmhMJFN" Received: by mail-lf1-f46.google.com with SMTP id 2adb3069b0e04-5a8891febd2so741756e87.1 for ; Wed, 06 May 2026 06:02:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778072531; x=1778677331; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=gMeTRBDmDnSb/6bNUDbfXXIg58i3yRtlbEoK09izD2M=; b=EZmhMJFNJNNVMTZ+7PcOF4SmSdCKTkD7UdnayT02OPLJYAvaYrKcyPedUpGli/MNr/ U9VXBBEZkB/YbOPQejkloXvnm6LQo8nPmG4G1JamXvhO5wsiJyoxW9OPX+Ig1fIa3A/q s2TLzCuw+f66lplZ1yjTlo1zHtFT0isc1lKeEpHQk3A+ADa0vFLETy2edBs+1u9nRFgh GCeFPPVxWjqeZJNxD2GSG0p9gg1/fb/o7OTwC0W9aia6iFaQ3xXUgc1oM/b1Vi44r2Rh 8pX5OuoCq6a9dBQD+sVjPpEeW/ypaKZPde/vMbXOk4gRUrdnSLe5PLP9Phin0pbp6NV/ zfnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778072531; x=1778677331; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=gMeTRBDmDnSb/6bNUDbfXXIg58i3yRtlbEoK09izD2M=; b=naIlDydcBGBu5NWKjivv/mYoRyHgZSBtCB5l4irfXftS4OYXPsCzAZM6qWdE7OJ8d8 uJV4YjspsqEeLFGEabLz2MTe3eyCFYF/0D3IBoJxT7+j/ozn9Wqdizs/XSdqAdg9i7UT emND1YQ3QIYcZEtliFvAm3Mq3JReNZKSW5NWJHHktpuTOJCGXGyCkshjTowHF0vRr1qI fMwbOmWt07mfZ/eIqi2TnJLdVYhvdQn0AJiDMfY40uTGxm4NlAxDg8EANGkM5ZCNgoXU Qml7tGFSkQhdccCmxyueNIHptUL82GFo6muqQ/Cj8YByXhvAwwI1NLN5REv8LSsQtcfG wMSA== X-Forwarded-Encrypted: i=1; AFNElJ82f/Z+R2aqILGxXvWhS9Uecv65ap9plJGq0Ao9KbewkGLf7Se/R25wimoOh3a90kHRUw26lM+LhQFScNg=@vger.kernel.org X-Gm-Message-State: AOJu0YwO3BmsoU0MWcFAhBw67IxgvQ2cfW8M2U5wdPczilhh2bWYXS6a Jg6JN37+AfZ/YsVJ+t2APXHEYwNeRc1XV0NFLYGwmDVSend4Pvq6nPOXKwukZ1TM X-Gm-Gg: AeBDieuDYmTV3XfkQBUV9FotzH1Sl0rXIpDPJD6FTSd4x0XDLQCbMyV0dgGhO2GYIVm 1bFy6OEr8LYw+v8K5wpJcjYbHn4ZNTx9DDCFo61rh9EfMgcdvs8HVhbNOUnTozMhwWRqpvz7PLY rnBxaKRQgCSAYH53J2x7ROzoWEUTKY8V/ulxrQF6oAcaYt0MD7tk+QE3thxDm1y19X7f/gIvA06 GOwEX/pCBjoNqeCJP8CaEKiNS8mKlb4P5OTeM3tHvUGbvcsX7PYOy+UJRViaczyiq9aX67T+Y9x K6t8yLfDuWVPXXrsnvVgjfq892op3Rgkzjac26SHvcPpwWkfeCNLEzxprD8+YhApnA5NHyq0cMm 3AFNuxKoWMhDW3T/xkkqBWCPZKK8GoG+OSYXOlv/A3QrBz8B18ZusHsAmnjnFF3W/HKWAvhJfC8 Ec3WTxlrQO/Pp2k1bst1D0UEoCxUJVKyNro/ggb4ou6lvuGB1jxorAsSlJ61qcPD8l4Lk2KEklc zUFovfJV1Wuc/mdviAVa1owlV5Q2QJwjFnbXVIgogkCSHWoGVaR+AZRhcw7BC0b64QsChmXyJBw TOCxa0CWi2k= X-Received: by 2002:a05:6512:6c7:b0:5a8:9135:127e with SMTP id 2adb3069b0e04-5a891351b19mr136583e87.18.1778072530001; Wed, 06 May 2026 06:02:10 -0700 (PDT) Received: from [127.0.1.1] (248.201.173.83.static.wline.lns.sme.cust.swisscom.ch. [83.173.201.248]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45052a488d8sm12288076f8f.12.2026.05.06.06.02.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 06:02:09 -0700 (PDT) From: Franz Schnyder Date: Wed, 06 May 2026 15:01:55 +0200 Subject: [PATCH 1/3] dt-bindings: arm: fsl: add Aquila iMX95 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260506-add-aquila-imx95-v1-1-69c8ee1c5413@toradex.com> References: <20260506-add-aquila-imx95-v1-0-69c8ee1c5413@toradex.com> In-Reply-To: <20260506-add-aquila-imx95-v1-0-69c8ee1c5413@toradex.com> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, Franz Schnyder X-Mailer: b4 0.14.3 From: Franz Schnyder Add DT compatible strings for the Aquila i.MX95 SoM and its supported carrier boards: the Aquila Development Board and the Clover carrier board. Link: https://www.toradex.com/computer-on-modules/aquila-arm-family/nxp-imx= 95 Link: https://www.toradex.com/products/carrier-board/aquila-development-boa= rd-kit Link: https://www.toradex.com/products/carrier-board/clover Signed-off-by: Franz Schnyder Acked-by: Conor Dooley --- Documentation/devicetree/bindings/arm/fsl.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation= /devicetree/bindings/arm/fsl.yaml index 59f7f168bf7c4..ea4cc98dadebc 100644 --- a/Documentation/devicetree/bindings/arm/fsl.yaml +++ b/Documentation/devicetree/bindings/arm/fsl.yaml @@ -1507,6 +1507,14 @@ properties: - const: phytec,imx95-phycore-fpsc # phyCORE-i.MX 95 FPSC - const: fsl,imx95 =20 + - description: Toradex Boards with Aquila iMX95 Modules + items: + - enum: + - toradex,aquila-imx95-clover # Aquila iMX95 Module on Clove= r Board + - toradex,aquila-imx95-dev # Aquila iMX95 Module on Aquil= a Development Board + - const: toradex,aquila-imx95 # Aquila iMX95 Module + - const: fsl,imx95 + - description: Toradex Boards with SMARC iMX95 Modules items: - const: toradex,smarc-imx95-dev # Toradex SMARC iMX95 on Torade= x SMARC Development Board --=20 2.43.0 From nobody Sat Jun 13 16:26:31 2026 Received: from mail-lf1-f44.google.com (mail-lf1-f44.google.com [209.85.167.44]) (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 B96C044DB68 for ; Wed, 6 May 2026 13:02:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778072546; cv=none; b=os1Mkhv3oAPnbRp9bOtAHLJWDgYJBEkDAD+f1VIvX1lQBRCtM9JJhBondPiLKvBNIx+rH7oeUEiUTe7nQNvmUriVBomwEc+KTo6ql1jeUu/nWZ/lDDPqqU31IfJpEj6tMx9EjORlh0WSbIqQUOzaRlMbCl2Di6y7q9pp/ZvHwPI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778072546; c=relaxed/simple; bh=L2jy+0reP6zNSONVwnuo2JAFnagtqPlZQpI3Tp563jU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uFGg8oJzn72sD8ZPctjZKPqXsV5wOwWnzD9UZCtz/utXgvPV0Qea1LNsJC7wigZ/qKXgYtFh6wh4jRkdrp709xN/aWwJTMzIlPd5kQKvY3ljGm6HyLneS7wn8FyNLcxxPkXs8A40+GOJfEDMRBCSvt4vJhIYTIHYvpEnh7JuADw= 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=ND5ZnkCh; arc=none smtp.client-ip=209.85.167.44 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="ND5ZnkCh" Received: by mail-lf1-f44.google.com with SMTP id 2adb3069b0e04-5a62f43b76aso5879262e87.3 for ; Wed, 06 May 2026 06:02:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778072532; x=1778677332; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=ydXuYS7A38K2JjNQxIw2yfJ0NFs18KlbibJIzhnXGmg=; b=ND5ZnkChodZy9+yO5OuHVmKwV4ZUBomIfHQcqK2K8cSD9BeJOPdd+L3hG/JMsDIuvK cJ14/9mP2c++HK2AwczRAnu3LxngCaGzf2AmCnNQWxajsTZtbFM4X9FPRkMo6UKZvk8H y0w2vEo4YiWQLqACezchG9pKJ8e0cLEpIe3RfH4JHyiNKCsmGFKqoJSK38p85Jz5AUCZ 2WT9SB7WlKH1ITcAbba8/olAodSTo0mNxpilpv/3X+lFXJB11BwJRQm0xtZahWmvUPa8 bYz/zgolBbpwpK8urDcgO40v43ZEd6AmTMRSlf3wN+ky2UdiZuwr7bZ4pwBx0CDJfj+8 YZyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778072532; x=1778677332; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=ydXuYS7A38K2JjNQxIw2yfJ0NFs18KlbibJIzhnXGmg=; b=UMP/LFXabhJyyT7dvXb5Qsn5mwIsjY2fV+B2DyFU0+oDFxHBcubHj2bn4lLc4SMEt+ XHWwzMXJ+2xAFoyDQ3nI7mba/3gTtu/MRXngZccUngTn6BFkYY+yxEwJnpTPDdKy3VI+ 8EUpUGjfx5G8RufV5iVkvjqFcGrtMNBtaHrM3ME+qgM8V70vRm9con6ytkalISi1ldp/ 37IDmiqoS8jaHbzEqcEBv++5HMrvixgeS24BF2DUM/vwV6T5X05AYWf6MYZVT9N6X6ug mzoB0UZgOQtltHDb2sA9/4XZekDs2jBsbCNrNufsQN1KzJT6BRPXitjm7Ror690kPlNP jZtQ== X-Forwarded-Encrypted: i=1; AFNElJ9EnZBZulql+MSfoML2yI8hy4+XKH7S+sYRFQAFmjhCtBhnKb6a9G8M/PXvGd8HaRbGDmkA91cHREfxF+w=@vger.kernel.org X-Gm-Message-State: AOJu0YxqBdwuLzyWgXzXdpw8dsHJa9lqRnXyggy9FpLY5Mt/o4hxVJK0 NopmGTWnrGZYImX8Aoq293mGrMuTpckAM5aMJsGzDXzVVe6Pn5pPWEL8GviqTkej X-Gm-Gg: AeBDietgxpdl0nSxGiRYpQsYoQWSjZuGIROVX1FK94D84qA9sqdeVUzIwVx3RX8MAcg KiWYY1/ZxHKihqjAsXoqBPAsdHf2HOrKsdUMcH5pm/JAKPVMTwAw/h5nBRQYqbCwcu0HT5NvOdb OGydNDNp07T1tK0CkrccOZl3z3/Xs+n5tJH+wwUUn83tyEhYjB3ArL062FS581npV5bmHEsNuBU xjyAMceGc1/OQ/hY7Sp3IZ2n5fETCoeB3sdZtrkxaDy/te/rV3vvNoJhrpd2/HXPlRMCN6LfAy4 XozDkwJnkJttqt7N9Y5No5f/eT1XeBXrKRUTGGt/I/Dnx5fBhuYUzdTxwzUlE+qXu7Z72V1HRgN Eu3IzSq9zxtcyJTrw/lmZG3Ycjsj3X8KB3OdZ4MRE0c6ncUEsNgY9TzImSCxSL+rIBnq0mWxZsz rAJTCd8u7iGtXllFn02mHaao5G3c+In5/BYfH9WOSBWiakBvzYNZoMN2+A81n6OwkDkKuD3VyTk ekdO7002i5Xtiy3+oJ8jkwYCOKZxLGfIgXskUI/5RJHdZoLf3OtMtrGJPfh1Ina83tJjZpsTjC/ pedMO9yGK+o= X-Received: by 2002:a05:6512:15a3:b0:5a8:72e2:db83 with SMTP id 2adb3069b0e04-5a887cdea7dmr1383827e87.19.1778072531260; Wed, 06 May 2026 06:02:11 -0700 (PDT) Received: from [127.0.1.1] (248.201.173.83.static.wline.lns.sme.cust.swisscom.ch. [83.173.201.248]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45052a488d8sm12288076f8f.12.2026.05.06.06.02.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 06:02:10 -0700 (PDT) From: Franz Schnyder Date: Wed, 06 May 2026 15:01:56 +0200 Subject: [PATCH 2/3] arm64: dts: freescale: add Aquila iMX95 support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260506-add-aquila-imx95-v1-2-69c8ee1c5413@toradex.com> References: <20260506-add-aquila-imx95-v1-0-69c8ee1c5413@toradex.com> In-Reply-To: <20260506-add-aquila-imx95-v1-0-69c8ee1c5413@toradex.com> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, Franz Schnyder , =?utf-8?q?Jo=C3=A3o_Paulo_Gon=C3=A7alves?= , Emanuele Ghidoli , Francesco Dolcini , Antoine Gouby , Ernest Van Hoecke X-Mailer: b4 0.14.3 From: Jo=C3=A3o Paulo Gon=C3=A7alves Add support for the Toradex Aquila iMX95 and its development carrier board. The module consists of an NXP i.MX95 family SoC, up to 16GB LPDDR5 RAM, up to 128GB of storage, a USB 3.2 OTG and USB 2.0 Host, a Gigabit Ethernet PHY, a 10 Gigabit Ethernet interface, an I2C EEPROM and Temperature Sensor, an RX8130 RTC, one Quad lane CSI interface, one Quad lane DSI or CSI interface, one LVDS interface (one or two channels), and some optional addons: DisplayPort (through a DSI-DP bridge), TPM 2.0, and a WiFi/BT module. Link: https://www.toradex.com/computer-on-modules/aquila-arm-family/nxp-imx= 95 Link: https://www.toradex.com/products/carrier-board/aquila-development-boa= rd-kit Signed-off-by: Jo=C3=A3o Paulo Gon=C3=A7alves Co-developed-by: Emanuele Ghidoli Signed-off-by: Emanuele Ghidoli Co-developed-by: Francesco Dolcini Signed-off-by: Francesco Dolcini Co-developed-by: Antoine Gouby Signed-off-by: Antoine Gouby Co-developed-by: Ernest Van Hoecke Signed-off-by: Ernest Van Hoecke Co-developed-by: Franz Schnyder Signed-off-by: Franz Schnyder --- arch/arm64/boot/dts/freescale/Makefile | 1 + arch/arm64/boot/dts/freescale/imx95-aquila-dev.dts | 398 +++++++ arch/arm64/boot/dts/freescale/imx95-aquila.dtsi | 1160 ++++++++++++++++= ++++ 3 files changed, 1559 insertions(+) diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/f= reescale/Makefile index d8378ae070939..178f55255dc14 100644 --- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile @@ -514,6 +514,7 @@ dtb-$(CONFIG_ARCH_MXC) +=3D imx95-15x15-evk.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx95-15x15-frdm.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx95-19x19-evk.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx95-19x19-evk-sof.dtb +dtb-$(CONFIG_ARCH_MXC) +=3D imx95-aquila-dev.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx95-toradex-smarc-dev.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx95-tqma9596sa-mb-smarc-2.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx95-var-dart-sonata.dtb diff --git a/arch/arm64/boot/dts/freescale/imx95-aquila-dev.dts b/arch/arm6= 4/boot/dts/freescale/imx95-aquila-dev.dts new file mode 100644 index 0000000000000..b2a53847d5079 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx95-aquila-dev.dts @@ -0,0 +1,398 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright (c) Toradex + * + * https://www.toradex.com/computer-on-modules/aquila-arm-family/nxp-imx95 + * https://www.toradex.com/products/carrier-board/aquila-development-board= -kit + */ + +/dts-v1/; + +#include +#include +#include "imx95-aquila.dtsi" + +/ { + model =3D "Aquila iMX95 on Aquila Development Board"; + compatible =3D "toradex,aquila-imx95-dev", + "toradex,aquila-imx95", + "fsl,imx95"; + + aliases { + eeprom1 =3D &carrier_eeprom; + }; + + dp_1_connector: dp0-connector { + compatible =3D "dp-connector"; + dp-pwr-supply =3D <®_dp_3p3v>; + type =3D "full-size"; + + port { + dp_1_connector_in: endpoint { + remote-endpoint =3D <&dsi2dp_out>; + }; + }; + }; + + reg_carrier_1p8v: regulator-carrier-1p8v { + compatible =3D "regulator-fixed"; + regulator-max-microvolt =3D <1800000>; + regulator-min-microvolt =3D <1800000>; + regulator-name =3D "On-carrier 1V8"; + }; + + reg_dp_3p3v: regulator-dp-3p3v { + compatible =3D "regulator-fixed"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio_21_dp>; + /* Aquila GPIO_21_DP */ + gpios =3D <&gpio3 21 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-max-microvolt =3D <3300000>; + regulator-min-microvolt =3D <3300000>; + regulator-name =3D "DP_3V3"; + startup-delay-us =3D <10000>; + }; + + sound { + compatible =3D "simple-audio-card"; + simple-audio-card,bitclock-master =3D <&codec_dai>; + simple-audio-card,format =3D "i2s"; + simple-audio-card,frame-master =3D <&codec_dai>; + simple-audio-card,mclk-fs =3D <256>; + simple-audio-card,name =3D "aquila-wm8904"; + simple-audio-card,routing =3D + "Headphone Jack", "HPOUTL", + "Headphone Jack", "HPOUTR", + "IN2L", "Line In Jack", + "IN2R", "Line In Jack", + "Microphone Jack", "MICBIAS", + "IN1L", "Microphone Jack", + "IN1R", "Digital Mic"; + simple-audio-card,widgets =3D + "Microphone", "Microphone Jack", + "Microphone", "Digital Mic", + "Headphone", "Headphone Jack", + "Line", "Line In Jack"; + + codec_dai: simple-audio-card,codec { + sound-dai =3D <&wm8904_1a>; + }; + + simple-audio-card,cpu { + sound-dai =3D <&sai2>; + }; + }; +}; + +/* Aquila ADC_[1-4] */ +&adc1 { + status =3D "okay"; +}; + +/* Aquila CTRL_WAKE1_MICO# */ +&aquila_key_wake { + status =3D "okay"; +}; + +&dsi2dp_out { + remote-endpoint =3D <&dp_1_connector_in>; +}; + +/* Aquila ETH_1 */ +&enetc_port0 { + status =3D "okay"; +}; + +/* Aquila CAN_1 */ +&flexcan1 { + status =3D "okay"; +}; + +/* Aquila CAN_2 */ +&flexcan2 { + status =3D "okay"; +}; + +/* Aquila CAN_3 */ +&flexcan3 { + status =3D "okay"; +}; + +/* Aquila CAN_4 */ +&flexcan4 { + status =3D "okay"; +}; + +/* Aquila QSPI_1 */ +&flexspi1 { + pinctrl-0 =3D <&pinctrl_flexspi1_4bit>, + <&pinctrl_qspi_cs1>; + + status =3D "okay"; + + flash@0 { + compatible =3D "jedec,spi-nor"; + reg =3D <0x0>; + spi-max-frequency =3D <66000000>; + spi-rx-bus-width =3D <4>; + spi-tx-bus-width =3D <4>; + cdns,read-delay =3D <0>; + cdns,tchsh-ns =3D <3>; + cdns,tsd2d-ns =3D <10>; + cdns,tshsl-ns =3D <30>; + cdns,tslch-ns =3D <8>; + }; +}; + +&gpio1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio_8>; +}; + +&gpio4 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio_1>, + <&pinctrl_gpio_2>, + <&pinctrl_gpio_3>, + <&pinctrl_gpio_4>, + <&pinctrl_gpio_5>, + <&pinctrl_gpio_6>, + <&pinctrl_gpio_7>; +}; + +/* Aquila I2C_1 */ +&lpi2c2 { + status =3D "okay"; + + fan_controller: fan@18 { + compatible =3D "ti,amc6821"; + reg =3D <0x18>; + #pwm-cells =3D <2>; + + fan { + cooling-levels =3D <255>; + pwms =3D <&fan_controller 40000 PWM_POLARITY_INVERTED>; + }; + }; + + wm8904_1a: audio-codec@1a { + compatible =3D "wlf,wm8904"; + reg =3D <0x1a>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_sai2_mclk>; + clocks =3D <&scmi_clk IMX95_CLK_SAI2>; + clock-names =3D "mclk"; + #sound-dai-cells =3D <0>; + AVDD-supply =3D <®_carrier_1p8v>; + CPVDD-supply =3D <®_carrier_1p8v>; + DBVDD-supply =3D <®_carrier_1p8v>; + DCVDD-supply =3D <®_carrier_1p8v>; + MICVDD-supply =3D <®_carrier_1p8v>; + wlf,drc-cfg-names =3D "default", "peaklimiter"; + /* + * 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 + */ + wlf,drc-cfg-regs =3D /bits/ 16 <0x01af 0x3248 0x0000 0x0000>, + /bits/ 16 <0x04af 0x324b 0x0010 0x0408>; + /* GPIO1 =3D DMIC_CLK, don't touch others */ + wlf,gpio-cfg =3D <0x0018>, <0xffff>, <0xffff>, <0xffff>; + wlf,in1r-as-dmicdat2; + }; + + /* Current measurement into module VCC */ + hwmon@41 { + compatible =3D "ti,ina226"; + reg =3D <0x41>; + shunt-resistor =3D <5000>; + }; + + temperature-sensor@4f { + compatible =3D "ti,tmp1075"; + reg =3D <0x4f>; + }; + + /* USB-C OTG (TCPC USB PD PHY) */ + tcpc@52 { + compatible =3D "nxp,ptn5110", "tcpci"; + reg =3D <0x52>; + interrupt-parent =3D <&som_gpio_expander_1>; + interrupts =3D <5 IRQ_TYPE_EDGE_FALLING>; + + connector { + compatible =3D "usb-c-connector"; + data-role =3D "dual"; + op-sink-microwatt =3D <0>; + power-role =3D "dual"; + self-powered; + sink-pdos =3D ; + source-pdos =3D ; + try-power-role =3D "sink"; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + + typec_con_hs: endpoint { + remote-endpoint =3D <&usb1_con_hs>; + }; + }; + + port@1 { + reg =3D <1>; + + typec_con_ss: endpoint { + remote-endpoint =3D <&usb1_con_ss>; + }; + }; + }; + }; + }; + + carrier_eeprom: eeprom@57 { + compatible =3D "st,24c02", "atmel,24c02"; + reg =3D <0x57>; + pagesize =3D <16>; + }; +}; + +/* Aquila I2C_2 */ +&i3c2 { + status =3D "okay"; +}; + +/* Aquila I2C_4_CSI1 */ +&lpi2c4 { + status =3D "okay"; +}; + +/* Aquila I2C_6 */ +&lpi2c5 { + status =3D "okay"; +}; + +/* Aquila I2C_3_DSI1/I2C_5_CSI2 */ +&lpi2c8 { + status =3D "okay"; + + i2c-mux@70 { + compatible =3D "nxp,pca9543"; + reg =3D <0x70>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + /* I2C on DSI Connector Pin #4 and #6 */ + i2c_dsi_0: i2c@0 { + reg =3D <0>; + #address-cells =3D <1>; + #size-cells =3D <0>; + }; + + /* I2C on DSI Connector Pin #52 and #54 */ + i2c_dsi_1: i2c@1 { + reg =3D <1>; + #address-cells =3D <1>; + #size-cells =3D <0>; + }; + }; +}; + +/* Aquila SPI_1 */ +&lpspi6 { + status =3D "okay"; +}; + +/* Aquila UART_3, used as the Linux Console */ +&lpuart1 { + status =3D "okay"; +}; + +/* Aquila UART_4 */ +&lpuart2 { + status =3D "okay"; +}; + +/* Aquila UART_1 */ +&lpuart3 { + status =3D "okay"; +}; + +/* Aquila UART_2 as RS485 */ +&lpuart7 { + linux,rs485-enabled-at-boot-time; + rs485-rts-active-low; + rs485-rx-during-tx; + + status =3D "okay"; +}; + +/* Aquila PCIE_1 */ +&pcie0 { + status =3D "okay"; +}; + +/* Aquila I2S_1 */ +&sai2 { + status =3D "okay"; +}; + +&som_dsi2dp_bridge { + status =3D "okay"; +}; + +/* Aquila PWM_1 */ +&tpm3 { + status =3D "okay"; +}; + +/* Aquila PWM_2 */ +&tpm6 { + status =3D "okay"; +}; + +/* Aquila PWM_3_DSI and PWM_4_DP */ +&tpm5 { + status =3D "okay"; +}; + +/* Aquila USB_2, optional Bluetooth USB */ +&usb2 { + status =3D "okay"; +}; + +/* Aquila USB_1 */ +&usb3 { + status =3D "okay"; +}; + +&usb3_dwc3 { + status =3D "okay"; + + port { + usb1_con_hs: endpoint { + remote-endpoint =3D <&typec_con_hs>; + }; + }; +}; + +&usb3_phy { + orientation-switch; + + status =3D "okay"; + + port { + usb1_con_ss: endpoint { + remote-endpoint =3D <&typec_con_ss>; + }; + }; +}; + +/* Aquila SD_1 */ +&usdhc2 { + status =3D "okay"; +}; diff --git a/arch/arm64/boot/dts/freescale/imx95-aquila.dtsi b/arch/arm64/b= oot/dts/freescale/imx95-aquila.dtsi new file mode 100644 index 0000000000000..369bf1914e9f3 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx95-aquila.dtsi @@ -0,0 +1,1160 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright (c) Toradex + * + * https://www.toradex.com/computer-on-modules/aquila-arm-family/nxp-imx95 + */ + +#include +#include "imx95.dtsi" + +/ { + aliases { + can0 =3D &flexcan1; + can1 =3D &flexcan2; + can2 =3D &flexcan3; + can3 =3D &flexcan4; + eeprom0 =3D &som_eeprom; + ethernet0 =3D &enetc_port0; + i2c0 =3D &lpi2c3; + i2c1 =3D &lpi2c2; + i2c2 =3D &i3c2; + i2c3 =3D &lpi2c8; + i2c4 =3D &lpi2c4; + i2c6 =3D &lpi2c5; + mmc0 =3D &usdhc1; + mmc1 =3D &usdhc2; + rtc0 =3D &rtc_i2c; + rtc1 =3D &scmi_bbm; + serial0 =3D &lpuart3; + serial1 =3D &lpuart7; + serial2 =3D &lpuart1; + serial3 =3D &lpuart2; + usb0 =3D &usb3; + usb1 =3D &usb2; + }; + + chosen { + stdout-path =3D "serial2:115200n8"; + }; + + aquila_key_wake: gpio-key-wakeup { + compatible =3D "gpio-keys"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_ctrl_wake1_mico>; + + status =3D "disabled"; + + key-wakeup { + /* Aquila CTRL_WAKE1_MICO# */ + gpios =3D <&gpio5 11 GPIO_ACTIVE_LOW>; + label =3D "Wake Up"; + wakeup-source; + linux,code =3D ; + }; + }; + + clk_dsi2dp_refclk: clock-dsi2dp-refclk { + compatible =3D "fixed-clock"; + #clock-cells =3D <0>; + clock-frequency =3D <27000000>; + }; + + clk_dsi2dp_refclk_en: clock-dsi2dp-refclk-en { + compatible =3D "gpio-gate-clock"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_ctrl_dp_clk_en>; + clocks =3D <&clk_dsi2dp_refclk>; + #clock-cells =3D <0>; + /* CTRL_DP_CLK_EN */ + enable-gpios =3D <&gpio1 11 GPIO_ACTIVE_HIGH>; + }; + + clk_serdes_eth_ref: clock-serdes-eth-ref { + compatible =3D "gpio-gate-clock"; + #clock-cells =3D <0>; + /* CTRL_ETH_REF_CLK_STBY */ + enable-gpios =3D <&som_gpio_expander_0 6 GPIO_ACTIVE_LOW>; + }; + + reg_1p8v: regulator-1p8v { + compatible =3D "regulator-fixed"; + regulator-max-microvolt =3D <1800000>; + regulator-min-microvolt =3D <1800000>; + regulator-name =3D "On-module +V1.8"; + }; + + reg_dp_1p2v: regulator-dp-1p2v { + compatible =3D "regulator-fixed"; + /* CTRL_DP_BRIDGE_EN */ + gpios =3D <&som_gpio_expander_0 7 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-always-on; + regulator-max-microvolt =3D <1200000>; + regulator-min-microvolt =3D <1200000>; + regulator-name =3D "On-module +V1.2_DP"; + vin-supply =3D <®_1p8v>; + }; + + reg_usb1_vbus: regulator-usb1-vbus { + compatible =3D "regulator-fixed"; + /* Aquila USB_1_EN */ + gpios =3D <&som_gpio_expander_0 2 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-name =3D "USB_1_EN"; + }; + + reg_usb2_vbus: regulator-usb2-vbus { + compatible =3D "regulator-fixed"; + /* Aquila USB_2_EN */ + gpios =3D <&som_gpio_expander_0 3 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-name =3D "USB_2_H_EN"; + }; + + reg_usdhc2_vmmc: regulator-usdhc2-vmmc { + compatible =3D "regulator-fixed"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_sd1_pwr_en>; + /* Aquila SD_1_PWR_EN */ + gpios =3D <&gpio3 7 GPIO_ACTIVE_HIGH>; + enable-active-high; + off-on-delay-us =3D <100000>; + regulator-max-microvolt =3D <3300000>; + regulator-min-microvolt =3D <3300000>; + regulator-name =3D "SD_1_PWR_EN"; + startup-delay-us =3D <20000>; + }; + + reg_usdhc2_vqmmc: regulator-usdhc2-vqmmc { + compatible =3D "regulator-gpio"; + /* PMIC_SD_1_VSEL */ + gpios =3D <&som_gpio_expander_1 9 GPIO_ACTIVE_HIGH>; + regulator-max-microvolt =3D <3300000>; + regulator-min-microvolt =3D <1800000>; + regulator-name =3D "PMIC_SD_1_VSEL"; + states =3D <1800000 0x1>, + <3300000 0x0>; + }; + + remoteproc-cm7 { + compatible =3D "fsl,imx95-cm7"; + mboxes =3D <&mu7 0 1 &mu7 1 1 &mu7 3 1>; + mbox-names =3D "tx", "rx", "rxdb"; + memory-region =3D <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>, + <&vdev1vring0>, <&vdev1vring1>, <&rsc_table>, <&m7_reserved>; + }; + + reserved-memory { + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges; + + linux_cma: linux,cma { + compatible =3D "shared-dma-pool"; + reusable; + size =3D <0 0x3c000000>; + alloc-ranges =3D <0 0x80000000 0 0x7f000000>; + linux,cma-default; + }; + + m7_reserved: memory@80000000 { + reg =3D <0 0x80000000 0 0x1000000>; + no-map; + }; + + rsc_table: rsc-table@88220000 { + reg =3D <0 0x88220000 0 0x1000>; + no-map; + }; + + vdev0vring0: vdev0vring0@88000000 { + reg =3D <0 0x88000000 0 0x8000>; + no-map; + }; + + vdev0vring1: vdev0vring1@88008000 { + reg =3D <0 0x88008000 0 0x8000>; + no-map; + }; + + vdev1vring0: vdev1vring0@88010000 { + reg =3D <0 0x88010000 0 0x8000>; + no-map; + }; + + vdev1vring1: vdev1vring1@88018000 { + reg =3D <0 0x88018000 0 0x8000>; + no-map; + }; + + vdevbuffer: vdevbuffer@88020000 { + compatible =3D "shared-dma-pool"; + reg =3D <0 0x88020000 0 0x100000>; + no-map; + }; + }; +}; + +/* Aquila ADC_[1-4] */ +&adc1 { + vref-supply =3D <®_1p8v>; +}; + +/* Aquila ETH_1 */ +&enetc_port0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_enetc0>; + phy-handle =3D <ðphy1>; + phy-mode =3D "rgmii-id"; +}; + +/* Aquila CAN_1 */ +&flexcan1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_flexcan1>; +}; + +/* Aquila CAN_2 */ +&flexcan2 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_flexcan2>; +}; + +/* Aquila CAN_3 */ +&flexcan3 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_flexcan3>; +}; + +/* Aquila CAN_4 */ +&flexcan4 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_flexcan4>; +}; + +/* Aquila QSPI_1 */ +&flexspi1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_flexspi1_8bit>, + <&pinctrl_qspi_cs1>; +}; + +&gpio1 { + gpio-line-names =3D "", /* 0 */ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "AQUILA_C24", /* 10 */ + "", + "AQUILA_B17", + "CTRL_GPIO_EXP_INT#", + "AQUILA_B18"; + + status =3D "okay"; +}; + +&gpio2 { + gpio-line-names =3D "", /* 0 */ + "", + "", + "", + "", + "", + "", + "AQUILA_B42", + "", + "AQUILA_B43"; +}; + +&gpio3 { + gpio-line-names =3D "", /* 0 */ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", /* 10 */ + "", + "", + "", + "", + "", + "", + "", + "", + "AQUILA_A11", + "", /* 20 */ + "AQUILA_B57", + "AQUILA_B19"; +}; + +&gpio4 { + gpio-line-names =3D "", /* 0 */ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", /* 10 */ + "", + "", + "", + "", + "", + "", + "AQUILA_C22", + "AQUILA_C21", + "AQUILA_C20", + "", /* 20 */ + "", + "", + "AQUILA_C23", + "AQUILA_D23", + "AQUILA_D24", + "", + "AQUILA_D25"; +}; + +&gpio5 { + gpio-line-names =3D "", /* 0 */ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", /* 10 */ + "", + "", + "AQUILA_B44", + "AQUILA_B45"; +}; + +/* Aquila I2C_2 */ +&i3c2 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_i3c2>; + i2c-scl-hz =3D <100000>; +}; + +/* Aquila I2C_1 */ +&lpi2c2 { + pinctrl-names =3D "default", "gpio"; + pinctrl-0 =3D <&pinctrl_lpi2c2>; + pinctrl-1 =3D <&pinctrl_lpi2c2_gpio>; + #address-cells =3D <1>; + #size-cells =3D <0>; + clock-frequency =3D <100000>; + scl-gpios =3D <&gpio1 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + sda-gpios =3D <&gpio1 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; +}; + +/* On-module I2C - I2C_SOM */ +&lpi2c3 { + pinctrl-names =3D "default", "gpio"; + pinctrl-0 =3D <&pinctrl_lpi2c3>, <&pinctrl_ctrl_gpio_exp_int>; + pinctrl-1 =3D <&pinctrl_lpi2c3_gpio>, <&pinctrl_ctrl_gpio_exp_int>; + #address-cells =3D <1>; + #size-cells =3D <0>; + clock-frequency =3D <400000>; + scl-gpios =3D <&gpio2 29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + sda-gpios =3D <&gpio2 28 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + + status =3D "okay"; + + som_gpio_expander_0: gpio@20 { + compatible =3D "nxp,pcal6408"; + reg =3D <0x20>; + #gpio-cells =3D <2>; + gpio-controller; + gpio-line-names =3D + "AQUILA_C38", /* 0 */ + "PCIE_2_RESET#", + "AQUILA_B77", + "USB_2_H_EN", + "BT_DISABLE#", + "WIFI_DISABLE#", + "CTRL_ETH_REF_CLK_STBY", + "CTRL_DP_BRIDGE_EN"; + }; + + som_gpio_expander_1: gpio@21 { + compatible =3D "nxp,pcal6416"; + reg =3D <0x21>; + #interrupt-cells =3D <2>; + interrupt-controller; + interrupt-parent =3D <&gpio1>; + interrupts =3D <13 IRQ_TYPE_LEVEL_LOW>; + #gpio-cells =3D <2>; + gpio-controller; + gpio-line-names =3D + "AQUILA_C1", /* 0 */ + "AQUILA_C2", + "AQUILA_C3", + "AQUILA_C4", + "AQUILA_C36", + "AQUILA_B74", + "AQUILA_B75", + "USB_2_H_OC#", + "AQUILA_B81", + "PMIC_SD_1_VSEL", + "ETH_1_INT#", /* 10 */ + "CTRL_TPM_INT#", + "SPI_2_CS2_TPM", + "PCIE_WAKE_WIFI#", + "WIFI_WAKE_BT", + "WIFI_WAKEUP_HOST"; + }; + + som_dsi2dp_bridge: bridge@2c { + compatible =3D "ti,sn65dsi86"; + reg =3D <0x2c>; + clocks =3D <&clk_dsi2dp_refclk_en>; + clock-names =3D "refclk"; + vcc-supply =3D <®_dp_1p2v>; + vcca-supply =3D <®_dp_1p2v>; + vccio-supply =3D <®_1p8v>; + vpll-supply =3D <®_1p8v>; + + status =3D "disabled"; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + + dsi2dp_in: endpoint { + }; + }; + + port@1 { + reg =3D <1>; + + dsi2dp_out: endpoint { + data-lanes =3D <3 2 1 0>; + }; + }; + }; + }; + + rtc_i2c: rtc@32 { + compatible =3D "epson,rx8130"; + reg =3D <0x32>; + }; + + temperature-sensor@48 { + compatible =3D "ti,tmp1075"; + reg =3D <0x48>; + }; + + som_eeprom: eeprom@50 { + compatible =3D "st,24c02", "atmel,24c02"; + reg =3D <0x50>; + pagesize =3D <16>; + }; +}; + +/* Aquila I2C_4_CSI1 */ +&lpi2c4 { + pinctrl-names =3D "default", "gpio"; + pinctrl-0 =3D <&pinctrl_lpi2c4>; + pinctrl-1 =3D <&pinctrl_lpi2c4_gpio>; + #address-cells =3D <1>; + #size-cells =3D <0>; + clock-frequency =3D <100000>; + scl-gpios =3D <&gpio2 31 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + sda-gpios =3D <&gpio2 30 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; +}; + +/* Aquila I2C_6 */ +&lpi2c5 { + pinctrl-names =3D "default", "gpio"; + pinctrl-0 =3D <&pinctrl_lpi2c5>; + pinctrl-1 =3D <&pinctrl_lpi2c5_gpio>; + #address-cells =3D <1>; + #size-cells =3D <0>; + clock-frequency =3D <100000>; + scl-gpios =3D <&gpio2 23 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + sda-gpios =3D <&gpio2 22 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; +}; + +/* Aquila I2C_3_DSI1/I2C_5_CSI2 */ +&lpi2c8 { + pinctrl-names =3D "default", "gpio"; + pinctrl-0 =3D <&pinctrl_lpi2c8>; + pinctrl-1 =3D <&pinctrl_lpi2c8_gpio>; + #address-cells =3D <1>; + #size-cells =3D <0>; + clock-frequency =3D <100000>; + scl-gpios =3D <&gpio2 13 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + sda-gpios =3D <&gpio2 12 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; +}; + +/* Aquila SPI_2 */ +&lpspi4 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_lpspi4>; + cs-gpios =3D <&gpio2 18 GPIO_ACTIVE_LOW>, + <&som_gpio_expander_1 12 GPIO_ACTIVE_LOW>; + + status =3D "okay"; + + som_tpm: tpm@1 { + compatible =3D "infineon,slb9670", "tcg,tpm_tis-spi"; + reg =3D <0x1>; + interrupt-parent =3D <&som_gpio_expander_1>; + interrupts =3D <11 IRQ_TYPE_EDGE_FALLING>; + /* + * Maximum TPM-supported speed is 18.5 MHz, limited to 12 MHz + * here as lpspi4's per-clock (2x the max speed) is 24 MHz. + */ + spi-max-frequency =3D <12000000>; + }; +}; + +/* Aquila SPI_1 */ +&lpspi6 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_lpspi6>; + cs-gpios =3D <&gpio2 0 GPIO_ACTIVE_LOW>; +}; + +/* Aquila UART_3, used as the Linux Console */ +&lpuart1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_uart1>; +}; + +/* Aquila UART_4 */ +&lpuart2 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_uart2>; +}; + +/* Aquila UART_1 */ +&lpuart3 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_uart3>; + uart-has-rtscts; +}; + +/* Aquila UART_2 */ +&lpuart7 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_uart7>; + uart-has-rtscts; +}; + +&mu7 { + status =3D "okay"; +}; + +/* Aquila ETH_2_XGMII_MDIO, shared between all ethernet ports */ +&netc_emdio { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_emdio>; + + status =3D "okay"; + + ethphy1: ethernet-phy@1 { + reg =3D <1>; + interrupt-parent =3D <&som_gpio_expander_1>; + interrupts =3D <10 IRQ_TYPE_EDGE_FALLING>; + ti,rx-internal-delay =3D ; + ti,tx-internal-delay =3D ; + }; +}; + +&netcmix_blk_ctrl { + status =3D "okay"; +}; + +&netc_blk_ctrl { + status =3D "okay"; +}; + +&netc_timer { + status =3D "okay"; +}; + +/* Aquila PCIE_1 */ +&pcie0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_pcie0>; + reset-gpios =3D <&som_gpio_expander_0 0 GPIO_ACTIVE_LOW>; +}; + +/* On-module Wi-Fi or Aquila PCIE_2 */ +&pcie1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_pcie1>; + reset-gpios =3D <&som_gpio_expander_0 1 GPIO_ACTIVE_LOW>; + + status =3D "okay"; +}; + +/* Aquila I2S_1 */ +&sai2 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_sai2>; + assigned-clocks =3D <&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_SAI2>; + assigned-clock-parents =3D <0>, <0>, <0>, <0>, + <&scmi_clk IMX95_CLK_AUDIOPLL1>; + assigned-clock-rates =3D <3932160000>, + <3612672000>, <393216000>, + <361267200>, <12288000>; + #sound-dai-cells =3D <0>; + fsl,sai-mclk-direction-output; +}; + +&scmi_bbm { + linux,code =3D ; +}; + +&thermal_zones { + /* PF09 Main PMIC */ + pf09-thermal { + polling-delay =3D <2000>; + polling-delay-passive =3D <250>; + thermal-sensors =3D <&scmi_sensor 2>; + + trips { + trip0 { + hysteresis =3D <2000>; + temperature =3D <155000>; + type =3D "critical"; + }; + }; + }; + + /* PF53 VDD_ARM PMIC */ + pf53-arm-thermal { + polling-delay =3D <2000>; + polling-delay-passive =3D <250>; + thermal-sensors =3D <&scmi_sensor 4>; + + trips { + trip0 { + hysteresis =3D <2000>; + temperature =3D <155000>; + type =3D "critical"; + }; + }; + }; + + /* PF53 VDD_SOC PMIC */ + pf53-soc-thermal { + polling-delay =3D <2000>; + polling-delay-passive =3D <250>; + thermal-sensors =3D <&scmi_sensor 3>; + + trips { + trip0 { + hysteresis =3D <2000>; + temperature =3D <155000>; + type =3D "critical"; + }; + }; + }; +}; + +/* Aquila PWM_1 */ +&tpm3 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_pwm1>; +}; + +/* Aquila PWM_2 */ +&tpm6 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_pwm2>; +}; + +/* Aquila PWM_3_DSI and PWM_4_DP */ +&tpm5 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_pwm3_dsi>, <&pinctrl_pwm4_dp>; +}; + +/* Aquila USB_2, optional Bluetooth USB */ +&usb2 { + dr_mode =3D "host"; + vbus-supply =3D <®_usb2_vbus>; +}; + +/* Aquila USB_1 */ +&usb3 { + fsl,disable-port-power-control; +}; + +&usb3_dwc3 { + dr_mode =3D "otg"; + adp-disable; + hnp-disable; + srp-disable; + usb-role-switch; +}; + +&usb3_phy { + vbus-supply =3D <®_usb1_vbus>; +}; + +/* On-module eMMC */ +&usdhc1 { + pinctrl-names =3D "default", "state_100mhz", "state_200mhz"; + pinctrl-0 =3D <&pinctrl_usdhc1>; + pinctrl-1 =3D <&pinctrl_usdhc1>; + pinctrl-2 =3D <&pinctrl_usdhc1_200mhz>; + bus-width =3D <8>; + non-removable; + no-sdio; + no-sd; + + status =3D "okay"; +}; + +/* Aquila SD_1 */ +&usdhc2 { + pinctrl-names =3D "default", "state_100mhz", "state_200mhz", "sleep"; + pinctrl-0 =3D <&pinctrl_usdhc2>, <&pinctrl_sd1_cd_gpio>; + pinctrl-1 =3D <&pinctrl_usdhc2>, <&pinctrl_sd1_cd_gpio>; + pinctrl-2 =3D <&pinctrl_usdhc2_200mhz>,<&pinctrl_sd1_cd_gpio>; + pinctrl-3 =3D <&pinctrl_usdhc2_sleep>, <&pinctrl_sd1_cd_gpio>; + cd-gpios =3D <&gpio3 0 GPIO_ACTIVE_LOW>; + vmmc-supply =3D <®_usdhc2_vmmc>; + vqmmc-supply =3D <®_usdhc2_vqmmc>; +}; + +&wdog3 { + fsl,ext-reset-output; + + status =3D "okay"; +}; + +&scmi_iomuxc { + /* Aquila ETH_2_XGMII_MDIO */ + pinctrl_emdio: emdiogrp { + fsl,pins =3D , /* Aquil= a B90 */ + ; /* Aquila B89 */ + }; + + /* Aquila ETH_1 */ + pinctrl_enetc0: enetc0grp { + fsl,pins =3D , /* ENET1_TX_CTL */ + , /* ENET= 1_TXC */ + , /* ENET1_T= DO */ + , /* ENET1_T= D1 */ + , /* ENET1_T= D2 */ + , /* ENET1_T= D3 */ + , /* EN= ET1_RX_CTL */ + , /* ENET= 1_RXC */ + , /* ENET1_R= D0 */ + , /* ENET1_R= D1 */ + , /* ENET1_R= D2 */ + ; /* ENET1_R= D3 */ + }; + + pinctrl_ctrl_dp_clk_en: dpclkengrp { + fsl,pins =3D ; /* = CTRL_DP_CLK_EN */ + }; + + pinctrl_ctrl_gpio_exp_int: gpioexpintgrp { + fsl,pins =3D ; /* = CTRL_GPIO_EXP_INT# */ + }; + + /* Aquila CTRL_WAKE1_MICO# */ + pinctrl_ctrl_wake1_mico: ctrlwake1micogrp { + fsl,pins =3D ; /* Aquila D6= */ + }; + + /* Aquila CAN_1 */ + pinctrl_flexcan1: flexcan1grp { + fsl,pins =3D , /* Aquila B= 48 */ + ; /* Aquila B49= */ + }; + + /* Aquila CAN_2 */ + pinctrl_flexcan2: flexcan2grp { + fsl,pins =3D , /* Aquila B50 */ + ; /* Aquila B51 */ + }; + + /* Aquila CAN_3 */ + pinctrl_flexcan3: flexcan3grp { + fsl,pins =3D , /* Aquila B53 */ + ; /* Aquila B54 */ + }; + + /* Aquila CAN_4 */ + pinctrl_flexcan4: flexcan4grp { + fsl,pins =3D , /* Aquila B55 */ + ; /* Aquila B56 */ + }; + + /* Aquila QSPI_1 (8 bit) */ + pinctrl_flexspi1_8bit: flexspi18bitgrp { + fsl,pins =3D , /* Aquila B6= 5 */ + , /* Aquila B68 */ + , /* Aquila B67 */ + , /* Aquila B61 */ + , /* Aquila B60 */ + , /* Aquila B70 */ + , /* Aquila B71 */ + , /* Aquila B72 */ + , /* Aquila B73 */ + ; /* Aquila B63 */ + }; + + /* Aquila QSPI_1 (4 bit) */ + pinctrl_flexspi1_4bit: flexspi18bitgrp { + fsl,pins =3D , /* Aquila B6= 5 */ + , /* Aquila B68 */ + , /* Aquila B67 */ + , /* Aquila B61 */ + , /* Aquila B60 */ + ; /* Aquila B63 */ + }; + + /* Aquila GPIO_01 */ + pinctrl_gpio_1: gpio1grp { + fsl,pins =3D ; /* Aquila D23 = */ + }; + + /* Aquila GPIO_02 */ + pinctrl_gpio_2: gpio2grp { + fsl,pins =3D ; /* Aquila D24 = */ + }; + + /* Aquila GPIO_03 */ + pinctrl_gpio_3: gpio3grp { + fsl,pins =3D ; /* Aquila D25 = */ + }; + + /* Aquila GPIO_04 */ + pinctrl_gpio_4: gpio4grp { + fsl,pins =3D ; /* Aquila C20 = */ + }; + + /* Aquila GPIO_05 */ + pinctrl_gpio_5: gpio5grp { + fsl,pins =3D ; /* Aquila C21 = */ + }; + + /* Aquila GPIO_06 */ + pinctrl_gpio_6: gpio6grp { + fsl,pins =3D ; /* Aquila C22 = */ + }; + + /* Aquila GPIO_07 */ + pinctrl_gpio_7: gpio7grp { + fsl,pins =3D ; /* Aquila C23 = */ + }; + + /* Aquila GPIO_08 */ + pinctrl_gpio_8: gpio8grp { + fsl,pins =3D ; /* Aquila C24 */ + }; + + /* Aquila GPIO_09_CSI_1 */ + pinctrl_gpio_9_csi_1: gpio9csi1grp { + fsl,pins =3D ; /* A= quila B17 */ + }; + + /* Aquila GPIO_10_CSI_1 */ + pinctrl_gpio_10_csi_1: gpio10csi1grp { + fsl,pins =3D ; /* = Aquila B18 */ + }; + + /* Aquila GPIO_11_CSI_1 */ + pinctrl_gpio_11_csi_1: gpio11csi1grp { + fsl,pins =3D ; /* Aquila A1= 1*/ + }; + + /* Aquila GPIO_12_CSI_1 */ + pinctrl_gpio_12_csi_1: gpio12csi1grp { + fsl,pins =3D ; /* Aquila B19 = */ + }; + + /* Aquila GPIO_17_DSI_1 */ + pinctrl_gpio_17_dsi_1: gpio17dsi1grp { + fsl,pins =3D ; /* Aquila B42 */ + }; + + /* Aquila GPIO_18_DSI_1 */ + pinctrl_gpio_18_dsi_1: gpio18dsi1grp { + fsl,pins =3D ; /* Aquila B43 */ + }; + + /* Aquila GPIO_19_DSI_1 */ + pinctrl_gpio_19_dsi_1: gpio19dsi1grp { + fsl,pins =3D ; /* Aquila B44 = */ + }; + + /* Aquila GPIO_20_DSI_1 */ + pinctrl_gpio_20_dsi_1: gpio20dsi1grp { + fsl,pins =3D ; /* Aquila B45 = */ + }; + + /* Aquila GPIO_21_DP */ + pinctrl_gpio_21_dp: gpio21dpgrp { + fsl,pins =3D ; /* Aquila B57 */ + }; + + /* Aquila I2C_2 */ + pinctrl_i3c2: i3c2cgrp { + fsl,pins =3D , /* Aquila C17 */ + ; /* Aquila C16 */ + }; + + /* Aquila I2C_1 */ + pinctrl_lpi2c2: lpi2c2grp { + fsl,pins =3D , /* = Aquila D8 */ + ; /* Aquila D7= */ + }; + + /* Aquila I2C_1 as GPIOs */ + pinctrl_lpi2c2_gpio: lpi2c2gpiogrp { + fsl,pins =3D , = /* Aquila D8 */ + ; /* Aquila= D7 */ + }; + + /* On-module I2C */ + pinctrl_lpi2c3: lpi2c3grp { + fsl,pins =3D , /* I2C_SOM_SD= A */ + ; /* I2C_SOM_SCL */ + }; + + /* On-module I2C as GPIOs */ + pinctrl_lpi2c3_gpio: lpi2c3gpiogrp { + fsl,pins =3D , /* I2C_SO= M_SDA */ + ; /* I2C_SOM_SCL */ + }; + + /* Aquila I2C_4_CSI1 */ + pinctrl_lpi2c4: lpi2c4grp { + fsl,pins =3D , /* Aquila A12= */ + ; /* Aquila A13 */ + }; + + /* Aquila I2C_4_CSI1 as GPIO */ + pinctrl_lpi2c4_gpio: lpi2c4gpiogrp { + fsl,pins =3D , /* Aquila= A12 */ + ; /* Aquila A13 */ + }; + + /* Aquila I2C_6 */ + pinctrl_lpi2c5: lpi2c5grp { + fsl,pins =3D , /* Aquila C18= */ + ; /* Aquila C19 */ + }; + + /* Aquila I2C_6 as GPIO */ + pinctrl_lpi2c5_gpio: lpi2c5gpiogrp { + fsl,pins =3D , /* Aquila= C18 */ + ; /* Aquila C19 */ + }; + + /* Aquila I2C_3_DSI1/I2C_5_CSI2 */ + pinctrl_lpi2c8: lpi2c8grp { + fsl,pins =3D , /* Aquila C5/= B40 */ + ; /* Aquila C6/B41 */ + }; + + /* Aquila I2C_3_DSI1/I2C_5_CSI2 as GPIO */ + pinctrl_lpi2c8_gpio: lpi2c8gpiogrp { + fsl,pins =3D , /* Aquila= C5/B40 */ + ; /* Aquila C6/B41 */ + }; + + /* Aquila SPI_2 */ + pinctrl_lpspi4: lpspi4grp { + fsl,pins =3D , /* Aquila D16 = */ + , /* Aquila D15 */ + , /* Aquila D17 */ + ; /* Aquila D14 */ + }; + + /* Aquila SPI_1 */ + pinctrl_lpspi6: lpspi6grp { + fsl,pins =3D , /* Aquila D9 */ + , /* Aquila D10 */ + , /* Aquila D11 */ + ; /* Aquila D12 */ + }; + + /* Aquila PCIE_1 */ + pinctrl_pcie0: pcie0grp { + fsl,pins =3D ; /* Aquila C37 */ + }; + + /* Aquila PCIE_2 */ + pinctrl_pcie1: pcie1grp { + fsl,pins =3D ; /* Aquila C34 */ + }; + + /* Aquila QSPI_1_CS1# */ + pinctrl_qspi_cs1: qspics1grp { + fsl,pins =3D ; /* Aquila = B66 */ + }; + + /* Aquila QSPI_1_CS2# as GPIO */ + pinctrl_qspi_cs2_gpio: qspics2gpiogrp { + fsl,pins =3D ; /* Aquila B62 = */ + }; + + /* Aquila I2S_1 */ + pinctrl_sai2: sai2grp { + fsl,pins =3D , = /* Aquila B21 */ + , /* Aquila B2= 0 */ + , /* Aqui= la B23 */ + ; /* Aq= uila B22 */ + }; + + pinctrl_sai2_mclk: sai2mclkgrp { + fsl,pins =3D ; /* Aqui= la B24 */ + }; + + /* Aquila SD_1_CD# as GPIO */ + pinctrl_sd1_cd_gpio: sd1cdgpiogrp { + fsl,pins =3D ; /* Aquila A1 */ + }; + + /* Aquila SD_1_PWR_EN */ + pinctrl_sd1_pwr_en: sd1pwrengpiogrp { + fsl,pins =3D ; /* Aquila A6 = */ + }; + + /* Aquila PWM_1 */ + pinctrl_pwm1: tpm3ch3grp { + fsl,pins =3D ; /* Aquila C25 */ + }; + + /* Aquila PWM_3_DSI */ + pinctrl_pwm3_dsi: tpm5ch0grp { + fsl,pins =3D ; /* Aquila B46 */ + }; + + /* Aquila PWM_3_DSI as GPIO */ + pinctrl_pwm3_dsi_gpio: tpm5ch0gpiogrp { + fsl,pins =3D ; /* Aquila B46 */ + }; + + /* Aquila PWM_4_DP */ + pinctrl_pwm4_dp: tpm5ch3grp { + fsl,pins =3D ; /* Aquila B58 */ + }; + + /* Aquila PWM_2 */ + pinctrl_pwm2: tpm6ch0grp { + fsl,pins =3D ; /* Aquila C26 */ + }; + + /* Aquila UART_3 */ + pinctrl_uart1: uart1grp { + fsl,pins =3D , /* Aqui= la D20 */ + ; /* Aquila D19 */ + }; + + /* Aquila UART_4 */ + pinctrl_uart2: uart2grp { + fsl,pins =3D , /* Aqui= la D22 */ + ; /* Aquila D21 */ + }; + + /* Aquila UART_1 */ + pinctrl_uart3: uart3grp { + fsl,pins =3D , /* Aquila B37 */ + , /* Aquila B35 */ + , /* Aquila B36 */ + ; /* Aquila B38 */ + }; + + /* Aquila UART_2 */ + pinctrl_uart7: uart7grp { + fsl,pins =3D , /* Aquila B33 */ + , /* Aquila B31 */ + , /* Aquila B32 */ + ; /* Aquila B34 */ + }; + + /* On-module eMMC */ + pinctrl_usdhc1: usdhc1grp { + fsl,pins =3D , /* eMMC_CLK */ + , /* eMMC_CMD */ + , /* eMMC_DATA0 */ + , /* eMMC_DATA1 */ + , /* eMMC_DATA2 */ + , /* eMMC_DATA3 */ + , /* eMMC_DATA4 */ + , /* eMMC_DATA5 */ + , /* eMMC_DATA6 */ + , /* eMMC_DATA7 */ + ; /* eMMC_STROBE */ + }; + + pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp { + fsl,pins =3D , /* eMMC_CLK */ + , /* eMMC_CMD */ + , /* eMMC_DATA0 */ + , /* eMMC_DATA1 */ + , /* eMMC_DATA2 */ + , /* eMMC_DATA3 */ + , /* eMMC_DATA4 */ + , /* eMMC_DATA5 */ + , /* eMMC_DATA6 */ + , /* eMMC_DATA7 */ + ; /* eMMC_STROBE */ + }; + + /* Aquila SD_1 */ + pinctrl_usdhc2: usdhc2grp { + fsl,pins =3D , /* Aquila A5 */ + , /* Aquila A7 */ + , /* Aquila A3 */ + , /* Aquila A2 */ + , /* Aquila A10 */ + ; /* Aquila A8 */ + }; + + pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp { + fsl,pins =3D , /* Aquila A5 */ + , /* Aquila A7 */ + , /* Aquila A3 */ + , /* Aquila A2 */ + , /* Aquila A10 */ + ; /* Aquila A8 */ + }; + + pinctrl_usdhc2_sleep: usdhc2-sleepgrp { + fsl,pins =3D , /* Aquila A5 */ + , /* Aquila A7 */ + , /* Aquila A3 */ + , /* Aquila A2 */ + , /* Aquila A10 */ + ; /* Aquila A8 */ + }; +}; --=20 2.43.0 From nobody Sat Jun 13 16:26:31 2026 Received: from mail-lf1-f46.google.com (mail-lf1-f46.google.com [209.85.167.46]) (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 298B346AF17 for ; Wed, 6 May 2026 13:02:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778072547; cv=none; b=lkJDlpBODbRfLPY2SxtfXq8LoFgrE5zPjwKZxTO54I45jgvPpaMmhy7ZFMSdMGXPPyqMyLEsb3giLyll5OOmZnOKhUSnB8QE0re6PXFFPTYS53mMghRvghDsFCzWjXvqV6CWXzDr5/Ws5CnfB+W5Se01SclSZHaaTLXWfr73u0Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778072547; c=relaxed/simple; bh=YWHhGANNZCht1FcmjMje+ZQnQK1/7kwmI+Rwli/9bew=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KfezTplS2IN15nWzU81FF4Zq07GleQd9f0qyeHwZ0wSOAIP+ZbMlH9J/S+HyjaqcgaCa7M8Rn2u3wuxGWYv5+Jjl5uxRd2EL/CzzxoF7xZVae7WcdgO5MTnWYAfY+KlWLeBurpnhy6aww5eCHWiHa8WWOgb6pbxIbShM8OiGqGM= 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=sWxFp+v8; arc=none smtp.client-ip=209.85.167.46 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="sWxFp+v8" Received: by mail-lf1-f46.google.com with SMTP id 2adb3069b0e04-59dcdf60427so6143013e87.3 for ; Wed, 06 May 2026 06:02:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778072535; x=1778677335; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=w6H69yYIu0ZRZpt5cxy6DiaQQJZWlk3GmWB+9Tjsp8E=; b=sWxFp+v8aVSKRKJt1rMDYtVOeG/L1MS6D4Xfmg33B6YZ9YrFS0WEz4aCgEAYj8W071 oBbwMHcBSUVKvsc48zf+cNFafu6pDs/YNrvwRZ0Y5sshbUjBt3jMUn3OyMMi4paXdlQV ssZFoE6dYAZsA96p3hI7nOV54CHUt5wKMHbWBgLv/SG4pH99IoXlhInqwfSY7G0PyRRw A16WiXVBs3LtPtle5gMYujpYaycENmkSz3lKPgCEpNKuGfZnzT89r40rq1hkUUmFXbt0 cZamDpLWROyoQu+EQC5m7XAUkocjnvowQy67JrBOMUR63APpxel3nlph4dUuJa8/pl7k 9Diw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778072535; x=1778677335; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=w6H69yYIu0ZRZpt5cxy6DiaQQJZWlk3GmWB+9Tjsp8E=; b=okOFqSpTnPm8kJOU6u4kTKgGd2t9RTavl38axrK/Kj9eeDReDZ87Ik6bEO3vWDWBpz 3iuawk4LbYVuADvoBvxI0KxI1aG1lmv6HBXR/wGhuxIbypphCmHbU0s9GkXSt6Db/eeW 8x6NO8+weKjNpdfCilRNWB9RYtPDLYNYzugUGQ2oFgfxr1jON7zmk40WWuVudbno4PPT g5b88u+nP/eSkQt0vd/ZCdLUhKRGEPtsaYsM0eSsESk2ebl1PMw+h6CwFjPtsarfq8fD UGU9iy+l0EcV9bAAlCiyWvcTCShoPv0fT8oZgWwquhOyrQiLB+2m3hukajf5mawM5APy h+EA== X-Forwarded-Encrypted: i=1; AFNElJ/cO3/rPrdToTlBhcwsVr4Md655C59fJYDcSRyVRr9h7M4gTWaspH1F93MhTWrHdjXXhue7hvaKUh6ajb8=@vger.kernel.org X-Gm-Message-State: AOJu0YzWYPQAh5awLWtT/Ul12KPQSFt6yIIRk7Tf/fjHzNVzIE7QPO2e sncnaK9C7EkiHFSQU2NMxZymdk/x9waGZArlyIiIVcUMbZu2i7KEGcFScZacSmj5 X-Gm-Gg: AeBDieu112IxkXBgfQF9LHY9QpZrOoOndbqxcA0VpSQVz+xbOpSoIcVmDnsABJSzYb0 uRsv2kiEuELRLiqg2anjcoQLWHPTak4YzVZzO4E9CTW4s6sMGzo5H7Mx987QU9cbSgSctxPOhr/ tLRrLyxh6WMag5zXZ5+EqVoiQLSGgxe/O17P5GLiWxXwf4lxuSTj+hFy4TXl1GOCR8Wy8o8mcxj LPwCWKt1/JJVTMdXuVVYweH2bkNhFhozTi+CszKYzOv6qdVZp7db80lVhlaNFpvhMWebv9bu9et fLswrX9mlyneHtCPRwO0WtSlDzgDeoaUJWYzhWVTCpXp1D6nPbL5u6y78/2YDhB3pZZXHGckN4v iZme3HO25AJIWLoQ/eqvsYt9LEyum1d8pfq4QZrvoxe20fSd4fGXyVXN1RnCsnAmaNx7sVdRWoo Mk96ksJ+9nlHI00jMkDPhYvp7RT4TICcvUc9UjKX6r5FAG+4ceium+IBABtUlpYDgv/mpsuhLre WmcszrZENCPQ5gjCu3dKmNyJb5kx2R2t1j42z/dzuEHHLxlrY9fkXas0F8MLVqoyKEW5lsULuxu kPR9ToOzMKw8uKbBdZ72UQ== X-Received: by 2002:a05:6512:400f:b0:5a4:1902:3d17 with SMTP id 2adb3069b0e04-5a887adfda4mr1167554e87.12.1778072532373; Wed, 06 May 2026 06:02:12 -0700 (PDT) Received: from [127.0.1.1] (248.201.173.83.static.wline.lns.sme.cust.swisscom.ch. [83.173.201.248]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45052a488d8sm12288076f8f.12.2026.05.06.06.02.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 06:02:11 -0700 (PDT) From: Franz Schnyder Date: Wed, 06 May 2026 15:01:57 +0200 Subject: [PATCH 3/3] arm64: dts: freescale: imx95-aquila: Add Clover carrier board Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260506-add-aquila-imx95-v1-3-69c8ee1c5413@toradex.com> References: <20260506-add-aquila-imx95-v1-0-69c8ee1c5413@toradex.com> In-Reply-To: <20260506-add-aquila-imx95-v1-0-69c8ee1c5413@toradex.com> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, Franz Schnyder , Antoine Gouby X-Mailer: b4 0.14.3 From: Antoine Gouby Add support for the Aquila i.MX95 SoM mated with the Clover carrier board. Clover is a low-cost carrier board for the Aquila family featuring a small form factor (Nano-ITX 120mm x 120mm) and built for volume production. Link: https://www.toradex.com/computer-on-modules/aquila-arm-family/nxp-imx= 95 Link: https://www.toradex.com/products/carrier-board/clover Signed-off-by: Antoine Gouby Signed-off-by: Franz Schnyder --- arch/arm64/boot/dts/freescale/Makefile | 1 + .../boot/dts/freescale/imx95-aquila-clover.dts | 294 +++++++++++++++++= ++++ 2 files changed, 295 insertions(+) diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/f= reescale/Makefile index 178f55255dc14..55fb5f9f561ee 100644 --- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile @@ -514,6 +514,7 @@ dtb-$(CONFIG_ARCH_MXC) +=3D imx95-15x15-evk.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx95-15x15-frdm.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx95-19x19-evk.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx95-19x19-evk-sof.dtb +dtb-$(CONFIG_ARCH_MXC) +=3D imx95-aquila-clover.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx95-aquila-dev.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx95-toradex-smarc-dev.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx95-tqma9596sa-mb-smarc-2.dtb diff --git a/arch/arm64/boot/dts/freescale/imx95-aquila-clover.dts b/arch/a= rm64/boot/dts/freescale/imx95-aquila-clover.dts new file mode 100644 index 0000000000000..021d437763412 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx95-aquila-clover.dts @@ -0,0 +1,294 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright (c) Toradex + * + * https://www.toradex.com/computer-on-modules/aquila-arm-family/nxp-imx95 + * https://www.toradex.com/products/carrier-board/clover + */ + +/dts-v1/; + +#include +#include +#include "imx95-aquila.dtsi" + +/ { + model =3D "Aquila iMX95 on Aquila Clover Board"; + compatible =3D "toradex,aquila-imx95-clover", + "toradex,aquila-imx95", + "fsl,imx95"; + + aliases { + eeprom1 =3D &carrier_eeprom; + }; + + dp_1_connector: dp0-connector { + compatible =3D "dp-connector"; + dp-pwr-supply =3D <®_dp_3p3v>; + type =3D "full-size"; + + port { + dp_1_connector_in: endpoint { + remote-endpoint =3D <&dsi2dp_out>; + }; + }; + }; + + reg_dp_3p3v: regulator-dp-3p3v { + compatible =3D "regulator-fixed"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio_21_dp>; + /* Aquila GPIO_21_DP */ + gpios =3D <&gpio3 21 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-max-microvolt =3D <3300000>; + regulator-min-microvolt =3D <3300000>; + regulator-name =3D "DP_3V3"; + startup-delay-us =3D <10000>; + }; +}; + +/* Aquila ADC_[1-4] */ +&adc1 { + status =3D "okay"; +}; + +/* Aquila CTRL_WAKE1_MICO# */ +&aquila_key_wake { + status =3D "okay"; +}; + +&dsi2dp_out { + remote-endpoint =3D <&dp_1_connector_in>; +}; + +/* Aquila ETH_1 */ +&enetc_port0 { + status =3D "okay"; +}; + +/* Aquila CAN_1 */ +&flexcan1 { + status =3D "okay"; +}; + +/* Aquila CAN_2 */ +&flexcan2 { + status =3D "okay"; +}; + +/* Aquila CAN_3 */ +&flexcan3 { + status =3D "okay"; +}; + +/* Aquila CAN_4 */ +&flexcan4 { + status =3D "okay"; +}; + +/* Aquila QSPI_1 */ +&flexspi1 { + pinctrl-0 =3D <&pinctrl_flexspi1_4bit>, + <&pinctrl_qspi_cs1>; + + status =3D "okay"; + + flash@0 { + compatible =3D "jedec,spi-nor"; + reg =3D <0x0>; + spi-max-frequency =3D <66000000>; + spi-rx-bus-width =3D <4>; + spi-tx-bus-width =3D <4>; + cdns,read-delay =3D <0>; + cdns,tchsh-ns =3D <3>; + cdns,tsd2d-ns =3D <10>; + cdns,tshsl-ns =3D <30>; + cdns,tslch-ns =3D <8>; + }; +}; + +&gpio4 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio_1>, + <&pinctrl_gpio_2>, + <&pinctrl_gpio_3>, + <&pinctrl_gpio_4>; +}; + +/* Aquila I2C_2 */ +&i3c2 { + status =3D "okay"; +}; + +/* Aquila I2C_1 */ +&lpi2c2 { + status =3D "okay"; + + fan_controller: fan@18 { + compatible =3D "ti,amc6821"; + reg =3D <0x18>; + #pwm-cells =3D <2>; + + fan { + cooling-levels =3D <255>; + pwms =3D <&fan_controller 40000 PWM_POLARITY_INVERTED>; + }; + }; + + temperature-sensor@4f { + compatible =3D "ti,tmp1075"; + reg =3D <0x4f>; + }; + + /* USB-C OTG (TCPC USB PD PHY) */ + tcpc@52 { + compatible =3D "nxp,ptn5110", "tcpci"; + reg =3D <0x52>; + interrupt-parent =3D <&som_gpio_expander_1>; + interrupts =3D <5 IRQ_TYPE_EDGE_FALLING>; + + connector { + compatible =3D "usb-c-connector"; + data-role =3D "dual"; + op-sink-microwatt =3D <0>; + power-role =3D "dual"; + self-powered; + sink-pdos =3D ; + source-pdos =3D ; + try-power-role =3D "sink"; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + + typec_con_hs: endpoint { + remote-endpoint =3D <&usb1_con_hs>; + }; + }; + + port@1 { + reg =3D <1>; + + typec_con_ss: endpoint { + remote-endpoint =3D <&usb1_con_ss>; + }; + }; + }; + }; + }; + + carrier_eeprom: eeprom@57 { + compatible =3D "st,24c02", "atmel,24c02"; + reg =3D <0x57>; + pagesize =3D <16>; + }; +}; + +/* Aquila I2C_6 */ +&lpi2c5 { + status =3D "okay"; +}; + +/* Aquila SPI_1 */ +&lpspi6 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_lpspi6 &pinctrl_gpio_5>; + cs-gpios =3D <&gpio2 0 GPIO_ACTIVE_LOW>, <&gpio4 18 GPIO_ACTIVE_LOW>; + + status =3D "okay"; + + tpm@1 { + compatible =3D "infineon,slb9670", "tcg,tpm_tis-spi"; + reg =3D <1>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio_6>; + interrupt-parent =3D <&gpio4>; + interrupts =3D <17 IRQ_TYPE_LEVEL_LOW>; + spi-max-frequency =3D <12000000>; + }; +}; + +/* Aquila UART_3, used as the Linux Console */ +&lpuart1 { + status =3D "okay"; +}; + +/* Aquila UART_4 */ +&lpuart2 { + status =3D "okay"; +}; + +/* Aquila UART_1 */ +&lpuart3 { + status =3D "okay"; +}; + +/* Aquila UART_2 */ +&lpuart7 { + status =3D "okay"; +}; + +/* Aquila PCIE_1 */ +&pcie0 { + status =3D "okay"; +}; + +&som_dsi2dp_bridge { + status =3D "okay"; +}; + +/* Aquila PWM_1 */ +&tpm3 { + status =3D "okay"; +}; + +/* Aquila PWM_3_DSI and PWM_4_DP */ +&tpm5 { + status =3D "okay"; +}; + +/* Aquila PWM_2 */ +&tpm6 { + status =3D "okay"; +}; + +/* Aquila USB_2, optional Bluetooth USB */ +&usb2 { + status =3D "okay"; +}; + +/* Aquila USB_1 */ +&usb3 { + status =3D "okay"; +}; + +&usb3_dwc3 { + status =3D "okay"; + + port { + usb1_con_hs: endpoint { + remote-endpoint =3D <&typec_con_hs>; + }; + }; +}; + +&usb3_phy { + orientation-switch; + + status =3D "okay"; + + port { + usb1_con_ss: endpoint { + remote-endpoint =3D <&typec_con_ss>; + }; + }; +}; + +/* Aquila SD_1 */ +&usdhc2 { + status =3D "okay"; +}; --=20 2.43.0