From nobody Sun Feb 8 12:20:00 2026 Received: from mail11.truemail.it (mail11.truemail.it [217.194.8.81]) (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 6C49C2DEA79; Tue, 11 Nov 2025 17:55:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.194.8.81 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762883725; cv=none; b=He7T/sz4gF598Bz1wWI6KllHROZChswm8eofnNWq0pv0qVFND01kF/x/Od2NhwTS8SoG94Yi697DYyAnqQz5feY2FIv5O1sEojK6ltr+trdhM4Y5EnzYKg/vEikBWfz0UyjxAmNqrumZI4qvyLTxla4uAclf/zAEjl8PRqLEqhk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762883725; c=relaxed/simple; bh=sccEkvsrP08tsolU2dqChqaJahI2j7W3BR6Qr2t4IJY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=dQ5QEIt/0DN6YFW6x03VUhxLRld+szLzc10qLVTuKL4W4t3MedxtkPFXfi/Z2Gqq5G5ePOjuumTQch4pvWSi9zxr3NeSuv8h2Y4GkInTC+RViB4yrE1kSECjJgfBLoGM+mH+snYlXAHMKxtERBFczrUbDB2YCq5lfdXLJF5306s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=dolcini.it; spf=pass smtp.mailfrom=dolcini.it; dkim=pass (2048-bit key) header.d=dolcini.it header.i=@dolcini.it header.b=kp1Ewgr9; arc=none smtp.client-ip=217.194.8.81 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=dolcini.it Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=dolcini.it Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=dolcini.it header.i=@dolcini.it header.b="kp1Ewgr9" Received: from localhost.localdomain (93-49-2-63.ip317.fastwebnet.it [93.49.2.63]) by mail11.truemail.it (Postfix) with ESMTPA id EFAE41FE49; Tue, 11 Nov 2025 18:55:20 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dolcini.it; s=default; t=1762883721; bh=Lc4prR/NRmqGKWAu+uVdSjtexRWIrS4oe1SpF5Crh2Q=; h=From:To:Subject; b=kp1Ewgr9MmL+UCnCFdMl3c6gW86+uQrCbK/AM7Henkbe/haZMpGJBHaqsXiETkqKY mbKzfaigcq4/iSqH6oinnGtzCq+Bki/Tv7jtajtvgzqmOzvLWmQn7DoSx7GuzYx86i h+HCl4Mb4hDLSIXyJN3ecbds76iI/IsV3/r7N49gcTrF9tXu1VdCBuJNmYZaSerDRD PC62EVPnmsM1hZhwOnUWay4bdJ36xUaihoJFz3gMg70qma+x3M/bQmDDu/XCOH3bQq suZU0vsphlXt8WDcdu9Zc6Oq17jqwIqtu6BFgy5aBljQ3sGl/0hH24XtHgYRsAGTGx 69jDxLyAOzITw== From: Francesco Dolcini To: Nishanth Menon , Vignesh Raghavendra , Tero Kristo , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Gon=C3=A7alves?= , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Francesco Dolcini , Conor Dooley Subject: [PATCH v2 1/3] dt-bindings: arm: ti: add Toradex Aquila AM69 Date: Tue, 11 Nov 2025 18:54:57 +0100 Message-ID: <20251111175502.8847-2-francesco@dolcini.it> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251111175502.8847-1-francesco@dolcini.it> References: <20251111175502.8847-1-francesco@dolcini.it> 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 From: Jo=C3=A3o Paulo Gon=C3=A7alves Add DT compatible strings for the Toradex Aquila AM69 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/ti-am69 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: Jo=C3=A3o Paulo Gon=C3=A7alves Signed-off-by: Francesco Dolcini Acked-by: Conor Dooley --- v2: add conor acked-by --- Documentation/devicetree/bindings/arm/ti/k3.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/ti/k3.yaml b/Documentati= on/devicetree/bindings/arm/ti/k3.yaml index 2e15029dbc67..c6eb72462bef 100644 --- a/Documentation/devicetree/bindings/arm/ti/k3.yaml +++ b/Documentation/devicetree/bindings/arm/ti/k3.yaml @@ -158,6 +158,14 @@ properties: - ti,am654-evm - const: ti,am654 =20 + - description: K3 AM69 SoC Toradex Aquila Modules and Carrier Boards + items: + - enum: + - toradex,aquila-am69-clover # Aquila AM69 Module on Clove= r Board + - toradex,aquila-am69-dev # Aquila AM69 Module on Aquil= a Development Board + - const: toradex,aquila-am69 # Aquila AM69 Module + - const: ti,j784s4 + - description: K3 J7200 SoC oneOf: - const: ti,j7200 --=20 2.47.3 From nobody Sun Feb 8 12:20:00 2026 Received: from mail11.truemail.it (mail11.truemail.it [217.194.8.81]) (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 66D7633DEFB; Tue, 11 Nov 2025 17:55:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.194.8.81 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762883729; cv=none; b=c6gBd/hBxVeY9aLXLd+Jwy4RZXUc27FfXw2fyvpBuyhXIGqOZ9IYfjmbmmvzH2uJb4OoAjV3pG9pvV+51uRgDrQ/XmREsSzg2C44/04mOVDZzTiyjE9I7y2QXOvZOx8JOVxbk3I+EQvIOKUztS8FJIzeZsH+OpLtfDi7gu91ah0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762883729; c=relaxed/simple; bh=4tBdVh/k+YBxP5zz+uVT3sN7B9tP9ADi2AncubNe8H0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=uC290HSPAu16K2/9SinwXeabgCU9dIcevTFm9g8dNISRX5pUwYMZRYJEiihzOw2KiU1yhrNNcbJEBBlx5R/R/soMO77vHJqG7kIFgzC1VhTC8qbvEeCzPFl5UinysASWRi751DjFUIYN3NgL3To/js8fHaUqJpLXpSJ/vehRZXo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=dolcini.it; spf=pass smtp.mailfrom=dolcini.it; dkim=pass (2048-bit key) header.d=dolcini.it header.i=@dolcini.it header.b=qv0KMUL7; arc=none smtp.client-ip=217.194.8.81 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=dolcini.it Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=dolcini.it Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=dolcini.it header.i=@dolcini.it header.b="qv0KMUL7" Received: from localhost.localdomain (93-49-2-63.ip317.fastwebnet.it [93.49.2.63]) by mail11.truemail.it (Postfix) with ESMTPA id C122620015; Tue, 11 Nov 2025 18:55:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dolcini.it; s=default; t=1762883722; bh=rtB7aDW6Fozp7+rTqnefo6f2+O9JvwUSgocADYQi82s=; h=From:To:Subject; b=qv0KMUL7ai+3hpVhLz5LnjwW9WaIM3aqWf/xA0bVp2gwUsrK1tY5uQh4ZwCxl3vkX 2+Q1aBM2WyDeE0a+6e15hLiGHiv0qVP0pCdLtkEd/5jPYUoeDKzpGMHUpG0vuB23wH yT+gwrVZNcPCo5iMCLdoXtFkD9bSR6exIc0PuxRwMUkgkpaKPTZXxeUSTAyIif05Gy 0yCLqAGQgaZI33gaajGx7KBlwzHeMxmfBNp1Gu3p1LUjriMNBllfhp9uevHMQXCyUZ FloHCCqreuTT3mAEOWLr9SXH9JYe3JHaSurYh/R3+UXDs5oHu9/siDAogqS/EfkAUT sWhlebttDisqw== From: Francesco Dolcini To: Nishanth Menon , Vignesh Raghavendra , Tero Kristo , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Parth Pancholi , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Emanuele Ghidoli , Ernest Van Hoecke , =?UTF-8?q?Jo=C3=A3o=20Paulo=20Gon=C3=A7alves?= , Francesco Dolcini Subject: [PATCH v2 2/3] arm64: dts: ti: Add Aquila AM69 Support Date: Tue, 11 Nov 2025 18:54:58 +0100 Message-ID: <20251111175502.8847-3-francesco@dolcini.it> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251111175502.8847-1-francesco@dolcini.it> References: <20251111175502.8847-1-francesco@dolcini.it> 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 From: Parth Pancholi Add support for the Toradex Aquila AM69 and its Development Carrier Board. The Aquila AM69 SoM is based on the TI AM69 SoC from the Jacinto 7 family and is designed for high-end embedded computing, featuring up to 32GB of LPDDR4 and 256GB eMMC storage, extensive multimedia support (3x Quad CSI, 2x Quad DSI, DisplayPort, 5x Audio I2S/TDM), six Ethernet interfaces (1x 1G, 4x 2.5G SGMII, 1x 10G), USB 3.2 Host/DRD support, and a Wi-Fi 7/BT 5.3 module, alongside an RX8130 RTC, I2C EEPROM and Temperature Sensor, and optional TPM 2.0 module. Various nodes, inherited from the SoC dtsi, are explicitly disabled in the SoM dtsi file (`status =3D disabled`) even if already disabled. These nodes need to be disabled in the SoM, given that the node is not complete there, explicitly disabling it limits the dependency on the SoC dtsi allowing for refactoring without no impact on this file. Link: https://www.toradex.com/computer-on-modules/aquila-arm-family/ti-am69 Link: https://www.toradex.com/products/carrier-board/aquila-development-boa= rd-kit Signed-off-by: Parth Pancholi Co-developed-by: Emanuele Ghidoli Signed-off-by: Emanuele Ghidoli Co-developed-by: Ernest Van Hoecke Signed-off-by: Ernest Van Hoecke Co-developed-by: Jo=C3=A3o Paulo Gon=C3=A7alves Signed-off-by: Jo=C3=A3o Paulo Gon=C3=A7alves Co-developed-by: Francesco Dolcini Signed-off-by: Francesco Dolcini --- v2: add comment on disabled nodes in the commit message. --- arch/arm64/boot/dts/ti/Makefile | 1 + arch/arm64/boot/dts/ti/k3-am69-aquila-dev.dts | 576 ++++++ arch/arm64/boot/dts/ti/k3-am69-aquila.dtsi | 1840 +++++++++++++++++ 3 files changed, 2417 insertions(+) create mode 100644 arch/arm64/boot/dts/ti/k3-am69-aquila-dev.dts create mode 100644 arch/arm64/boot/dts/ti/k3-am69-aquila.dtsi diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makef= ile index 361248dcfff4..6ce652fe98fa 100644 --- a/arch/arm64/boot/dts/ti/Makefile +++ b/arch/arm64/boot/dts/ti/Makefile @@ -153,6 +153,7 @@ dtb-$(CONFIG_ARCH_K3) +=3D k3-j722s-evm-csi2-quad-rpi-c= am-imx219.dtbo dtb-$(CONFIG_ARCH_K3) +=3D k3-j722s-evm-csi2-quad-tevi-ov5640.dtbo =20 # Boards with J784s4 SoC +dtb-$(CONFIG_ARCH_K3) +=3D k3-am69-aquila-dev.dtb dtb-$(CONFIG_ARCH_K3) +=3D k3-am69-sk.dtb dtb-$(CONFIG_ARCH_K3) +=3D k3-am69-sk-pcie0-ep.dtbo dtb-$(CONFIG_ARCH_K3) +=3D k3-j784s4-evm.dtb diff --git a/arch/arm64/boot/dts/ti/k3-am69-aquila-dev.dts b/arch/arm64/boo= t/dts/ti/k3-am69-aquila-dev.dts new file mode 100644 index 000000000000..c7ce804eac70 --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am69-aquila-dev.dts @@ -0,0 +1,576 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright (C) 2025 Toradex + * + * https://www.toradex.com/computer-on-modules/aquila-arm-family/ti-am69 + * https://www.toradex.com/products/carrier-board/aquila-development-board= -kit + */ + +/dts-v1/; + +#include +#include "k3-am69-aquila.dtsi" + +/ { + model =3D "Toradex Aquila AM69 on Aquila Development Board"; + compatible =3D "toradex,aquila-am69-dev", + "toradex,aquila-am69", + "ti,j784s4"; + + aliases { + eeprom1 =3D &carrier_eeprom; + }; + + reg_1v8_sw: regulator-1v8-sw { + compatible =3D "regulator-fixed"; + regulator-max-microvolt =3D <1800000>; + regulator-min-microvolt =3D <1800000>; + regulator-name =3D "Carrier_1V8"; + }; + + reg_3v3_dp: regulator-3v3-dp { + compatible =3D "regulator-fixed"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio_21_dp>; + /* Aquila GPIO_21_DP (AQUILA B57) */ + gpio =3D <&main_gpio0 37 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>; + }; + + dp0-connector { + compatible =3D "dp-connector"; + dp-pwr-supply =3D <®_3v3_dp>; + label =3D "Display Port"; + type =3D "full-size"; + + port { + dp0_connector_in: endpoint { + remote-endpoint =3D <&dp0_out>; + }; + }; + }; + + 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,name =3D "aquila-wm8904"; + simple-audio-card,mclk-fs =3D <256>; + 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 <&mcasp4>; + }; + }; +}; + +/* Aquila CTRL_PWR_BTN_MICO# */ +&aquila_key_power { + status =3D "okay"; +}; + +/* Aquila CTRL_WAKE1_MICO# */ +&aquila_key_wake { + status =3D "okay"; +}; + +/* On-module ETH_1 MDIO */ +&davinci_mdio { + status =3D "okay"; +}; + +&dp0_ports { + port@4 { + reg =3D <4>; + dp0_out: endpoint { + remote-endpoint =3D <&dp0_connector_in>; + }; + }; +}; + +&dss { + status =3D "okay"; +}; + +&main0_thermal { + cooling-maps { + map0 { + cooling-device =3D <&fan 1 1>; + trip =3D <&main0_alert0>; + }; + + map1 { + cooling-device =3D <&fan 2 2>; + trip =3D <&main0_alert1>; + }; + }; +}; + +&main1_thermal { + cooling-maps { + map0 { + cooling-device =3D <&fan 1 1>; + trip =3D <&main1_alert0>; + }; + + map1 { + cooling-device =3D <&fan 2 2>; + trip =3D <&main1_alert1>; + }; + }; +}; + +&main2_thermal { + cooling-maps { + map0 { + cooling-device =3D <&fan 1 1>; + trip =3D <&main2_alert0>; + }; + + map1 { + cooling-device =3D <&fan 2 2>; + trip =3D <&main2_alert1>; + }; + }; +}; + +&main3_thermal { + cooling-maps { + map0 { + cooling-device =3D <&fan 1 1>; + trip =3D <&main3_alert0>; + }; + + map1 { + cooling-device =3D <&fan 2 2>; + trip =3D <&main3_alert1>; + }; + }; +}; + +&main4_thermal { + cooling-maps { + map0 { + cooling-device =3D <&fan 1 1>; + trip =3D <&main4_alert0>; + }; + + map1 { + cooling-device =3D <&fan 2 2>; + trip =3D <&main4_alert1>; + }; + }; +}; + +/* Aquila ETH_2 */ +&main_cpsw0 { + status =3D "okay"; +}; + +/* Aquila ETH_2 SGMII PHY */ +&main_cpsw0_port8 { + phy-handle =3D <&cpsw0_port8_phy4>; + status =3D "okay"; +}; + +/* Aquila ETH_2_XGMII_MDIO */ +&main_cpsw0_mdio { + status =3D "okay"; + + cpsw0_port8_phy4: ethernet-phy@4 { + reg =3D <4>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_eth2_int>; + interrupt-parent =3D <&main_gpio0>; + interrupts =3D <44 IRQ_TYPE_EDGE_FALLING>; + }; +}; + +/* Aquila PWM_1 */ +&main_ehrpwm0 { + status =3D "okay"; +}; + +/* Aquila PWM_4_DP */ +&main_ehrpwm2 { + status =3D "okay"; +}; + +/* Aquila PWM_2 */ +&main_ehrpwm1 { + status =3D "okay"; +}; + +/* Aquila PWM_3_DSI */ +&main_ehrpwm5 { + status =3D "okay"; +}; + +&main_gpio0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio_01>, /* Aquila GPIO_01 */ + <&pinctrl_gpio_02>, /* Aquila GPIO_02 */ + <&pinctrl_gpio_03>; /* Aquila GPIO_03 */ +}; + +/* Aquila I2C_3_DSI1 */ +&main_i2c0 { + 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 I2C_4_CSI1 */ +&main_i2c1 { + status =3D "okay"; +}; + +/* Aquila I2C_5_CSI2 */ +&main_i2c2 { + status =3D "okay"; +}; + +/* Aquila I2C_6 */ +&main_i2c5 { + status =3D "okay"; +}; + +/* Aquila CAN_1 */ +&main_mcan10 { + status =3D "okay"; +}; + +/* Aquila CAN_3 */ +&main_mcan13 { + status =3D "okay"; +}; + +/* Aquila SD_1 */ +&main_sdhci1 { + status =3D "okay"; +}; + +/* Aquila SPI_2 */ +&main_spi0 { + status =3D "okay"; +}; + +/* Aquila SPI_1 */ +&main_spi2 { + status =3D "okay"; +}; + +/* Aquila UART_1 */ +&main_uart4 { + status =3D "okay"; +}; + +/* Aquila UART_3, used as the Linux console */ +&main_uart8 { + status =3D "okay"; +}; + +/* Aquila I2S_1 */ +&mcasp4 { + status =3D "okay"; +}; + +&mcu_cpsw { + status =3D "okay"; +}; + +/* On-module ETH_1 RGMII */ +&mcu_cpsw_port1 { + status =3D "okay"; +}; + +/* Aquila I2C_1 */ +&mcu_i2c0 { + clock-frequency =3D <100000>; + status =3D "okay"; + + fan_controller: fan@18 { + compatible =3D "ti,amc6821"; + reg =3D <0x18>; + #pwm-cells =3D <2>; + + fan: fan { + cooling-levels =3D <102 179 255>; + #cooling-cells =3D <2>; + 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_audio_extrefclk1>; + #sound-dai-cells =3D <0>; + clocks =3D <&audio_refclk1>; + clock-names =3D "mclk"; + AVDD-supply =3D <®_1v8_sw>; + CPVDD-supply =3D <®_1v8_sw>; + DBVDD-supply =3D <®_1v8_sw>; + DCVDD-supply =3D <®_1v8_sw>; + MICVDD-supply =3D <®_1v8_sw>; + + 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>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_usb1_int>; + interrupt-parent =3D <&main_gpio0>; + interrupts =3D <28 IRQ_TYPE_EDGE_FALLING>; + + connector { + compatible =3D "usb-c-connector"; + data-role =3D "dual"; + label =3D "USB-C OTG"; + power-role =3D "dual"; + try-power-role =3D "sink"; + self-powered; + source-pdos =3D ; + sink-pdos =3D ; + op-sink-microwatt =3D <1000000>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + + usb_1_con_hs: endpoint { + remote-endpoint =3D <&usb0_hs>; + }; + }; + + port@1 { + reg =3D <1>; + + usb_1_con_ss: endpoint { + remote-endpoint =3D <&usb0_ss_mux>; + }; + }; + }; + }; + }; + + carrier_eeprom: eeprom@57 { + compatible =3D "st,24c02", "atmel,24c02"; + reg =3D <0x57>; + pagesize =3D <16>; + }; +}; + +/* Aquila I2C_2 */ +&mcu_i2c1 { + status =3D "okay"; +}; + +/* Aquila CAN_2 */ +&mcu_mcan0 { + status =3D "okay"; +}; + +/* Aquila CAN_4 */ +&mcu_mcan1 { + status =3D "okay"; +}; + +/* Aquila UART_4 */ +&mcu_uart0 { + status =3D "okay"; +}; + +&mhdp { + status =3D "okay"; +}; + +/* Aquila QSPI_1 */ +&ospi0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_mcu_ospi0_4bit>, <&pinctrl_mcu_ospi0_cs0>; + 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>; + }; +}; + +/* Aquila PCIE_1 */ +&pcie0_rc { + status =3D "okay"; +}; + +/* Aquila PCIE_2 */ +&pcie1_rc { + status =3D "okay"; +}; + +&serdes2 { + status =3D "okay"; +}; + +&serdes4 { + status =3D "okay"; +}; + +&serdes_wiz2 { + status =3D "okay"; +}; + +&serdes_wiz4 { + status =3D "okay"; +}; + +/* Aquila ADC_[1-4] */ +&tscadc0 { + status =3D "okay"; +}; + +&usbss0 { + status =3D "okay"; +}; + +&usb0ss_mux { + status =3D "okay"; + + port { + usb0_ss_mux: endpoint { + remote-endpoint =3D <&usb_1_con_ss>; + }; + }; +}; + +&usb0 { + status =3D "okay"; + + port { + usb0_hs: endpoint { + remote-endpoint =3D <&usb_1_con_hs>; + }; + }; +}; + +&wkup0_thermal { + cooling-maps { + map0 { + cooling-device =3D <&fan 1 1>; + trip =3D <&wkup0_alert0>; + }; + + map1 { + cooling-device =3D <&fan 2 2>; + trip =3D <&wkup0_alert1>; + }; + }; +}; + +&wkup1_thermal { + cooling-maps { + map0 { + cooling-device =3D <&fan 1 1>; + trip =3D <&wkup1_alert0>; + }; + + map1 { + cooling-device =3D <&fan 2 2>; + trip =3D <&wkup1_alert1>; + }; + }; +}; + +&wkup_gpio0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio_04>, /* Aquila GPIO_04 */ + <&pinctrl_gpio_05>, /* Aquila GPIO_05 */ + <&pinctrl_gpio_06>, /* Aquila GPIO_06 */ + <&pinctrl_gpio_07>, /* Aquila GPIO_07 */ + <&pinctrl_gpio_08>; /* Aquila GPIO_08 */ +}; + +/* Aquila UART_2, through RS485 transceiver */ +&wkup_uart0 { + linux,rs485-enabled-at-boot-time; + rs485-rx-during-tx; + status =3D "okay"; +}; diff --git a/arch/arm64/boot/dts/ti/k3-am69-aquila.dtsi b/arch/arm64/boot/d= ts/ti/k3-am69-aquila.dtsi new file mode 100644 index 000000000000..0866eb8a6f34 --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am69-aquila.dtsi @@ -0,0 +1,1840 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright (C) 2025 Toradex + * + * https://www.toradex.com/computer-on-modules/aquila-arm-family/ti-am69 + */ + +#include +#include +#include +#include +#include +#include "k3-j784s4.dtsi" + +/ { + chosen { + stdout-path =3D "serial2:115200n8"; + }; + + aliases { + can0 =3D &main_mcan10; + can1 =3D &mcu_mcan0; + can2 =3D &main_mcan13; + can3 =3D &mcu_mcan1; + eeprom0 =3D &som_eeprom; + ethernet0 =3D &mcu_cpsw_port1; + ethernet1 =3D &main_cpsw0_port8; + i2c0 =3D &wkup_i2c0; + i2c1 =3D &mcu_i2c0; + i2c2 =3D &mcu_i2c1; + i2c3 =3D &main_i2c0; + i2c4 =3D &main_i2c1; + i2c5 =3D &main_i2c2; + i2c6 =3D &main_i2c5; + mmc0 =3D &main_sdhci0; + mmc1 =3D &main_sdhci1; + rtc0 =3D &rtc_i2c; + serial0 =3D &main_uart4; + serial1 =3D &wkup_uart0; + serial2 =3D &main_uart8; + serial3 =3D &mcu_uart0; + usb0 =3D &usb0; + }; + + aquila_key_power: gpio-key-power { + compatible =3D "gpio-keys"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_pwr_btn_int>; + status =3D "disabled"; + + key-power { + /* Aquila CTRL_PWR_BTN_MICO# (AQUILA B93) */ + gpios =3D <&wkup_gpio0 36 GPIO_ACTIVE_LOW>; + label =3D "Power Button"; + linux,code =3D ; + }; + }; + + 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# (AQUILA D6) */ + gpios =3D <&wkup_gpio0 49 GPIO_ACTIVE_LOW>; + label =3D "Wake Up"; + linux,code =3D ; + wakeup-source; + }; + }; + + /* Aquila CTRL_RESET_MICO# (AQUILA B92) */ + gpio-restart { + compatible =3D "gpio-restart"; + /* COLD_RESET_REQ */ + gpios =3D <&som_gpio_expander 1 GPIO_ACTIVE_HIGH>; + priority =3D <192>; + }; + + /* PWR_DOWN_REQ */ + gpio-poweroff { + compatible =3D "gpio-poweroff"; + /* PWR_DOWN_REQ */ + gpios =3D <&som_gpio_expander 2 GPIO_ACTIVE_HIGH>; + timeout-ms =3D <3000>; + }; + + memory@80000000 { + device_type =3D "memory"; + /* 32G RAM */ + reg =3D <0x00 0x80000000 0x00 0x80000000>, + <0x08 0x80000000 0x07 0x80000000>; + }; + + reserved_memory: reserved-memory { + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges; + + secure_ddr: optee@9e800000 { + reg =3D <0x00 0x9e800000 0x00 0x01800000>; + no-map; + }; + + mcu_r5fss0_core0_dma_memory_region: memory@a0000000 { + compatible =3D "shared-dma-pool"; + reg =3D <0x00 0xa0000000 0x00 0x100000>; + no-map; + }; + + mcu_r5fss0_core0_memory_region: memory@a0100000 { + compatible =3D "shared-dma-pool"; + reg =3D <0x00 0xa0100000 0x00 0xf00000>; + no-map; + }; + }; + + /* Module Power Supply (VCC) */ + reg_vin: regulator-vin { + compatible =3D "regulator-fixed"; + regulator-name =3D "+V_IN"; + }; + + /* Enabled by EN_3V3_VIO (PMIC_GPIO_9) */ + reg_1v1_usb_bridge: regulator-1v1-vio { + compatible =3D "regulator-fixed"; + regulator-max-microvolt =3D <1100000>; + regulator-min-microvolt =3D <1100000>; + regulator-name =3D "+V1.1_VIO"; + vin-supply =3D <®_vin>; + }; + + reg_3v3_wifi: regulator-3v3-wifi { + compatible =3D "regulator-fixed"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_en_3v3_wifi>; + gpio =3D <&wkup_gpio0 57 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt =3D <3300000>; + regulator-min-microvolt =3D <3300000>; + regulator-name =3D "+V3.3_WIFI"; + startup-delay-us =3D <20000>; + vin-supply =3D <®_vin>; + }; + + reg_1v8_stby: regulator-1v8-stby { + compatible =3D "regulator-fixed"; + regulator-max-microvolt =3D <1800000>; + regulator-min-microvolt =3D <1800000>; + regulator-name =3D "+V1.8_STBY"; + vin-supply =3D <®_vin>; + }; + + /* Aquila SD_1_PWR_EN */ + reg_sdhc1_vmmc: regulator-sdhci1 { + compatible =3D "regulator-fixed"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_sd1_pwr_en>; + /* Aquila SD_1_PWR_EN (AQUILA A6) */ + gpio =3D <&main_gpio0 52 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 "+3V3_SD"; + startup-delay-us =3D <20000>; + }; + + reg_sdhc1_vqmmc: regulator-sdhci1-vqmmc { + compatible =3D "regulator-gpio"; + /* SDIO_PWR_SEL_3.3V */ + gpios =3D <&som_gpio_expander 7 GPIO_ACTIVE_HIGH>; + regulator-max-microvolt =3D <3300000>; + regulator-min-microvolt =3D <1800000>; + regulator-name =3D "+VDD_SD_DV"; + states =3D <1800000 0x0>, + <3300000 0x1>; + }; + + /* On-module USB_1_SS mux */ + usb0ss_mux: gpio-sbu-mux { + compatible =3D "ti,tmuxhs4212", "gpio-sbu-mux"; + orientation-switch; + /* USB_MUX_SEL */ + select-gpios =3D <&som_gpio_expander 0 GPIO_ACTIVE_HIGH>; + status =3D "disabled"; + }; +}; + +&main_pmx0 { + /* Aquila DP_1_HPD */ + pinctrl_main_dp0_hpd: main-dp0-hpd-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x014, PIN_INPUT, 13) /* (AG33) MCAN14_TX.DP0_HPD */ /* AQ= UILA B59 */ + >; + }; + + /* Aquila PWM_1 */ + pinctrl_main_ehrpwm0_b: main-ehrpwm0b-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x064, PIN_OUTPUT, 9) /* (AF38) MCAN0_TX.EHRPWM0_B */ /* A= QUILA C25 */ + >; + }; + + /* Aquila PWM_2 */ + pinctrl_main_ehrpwm1_a: main-ehrpwm1a-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x060, PIN_OUTPUT, 9) /* (AE36) MCASP2_AXR1.EHRPWM1_A */ /= * AQUILA C26 */ + >; + }; + + /* Aquila PWM_3_DSI */ + pinctrl_main_ehrpwm5_a: main-ehrpwm5a-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x084, PIN_OUTPUT, 9) /* (AG38) MCASP0_AXR5.EHRPWM5_A */ /= * AQUILA B46 */ + >; + }; + + /* Aquila PWM_4_DP */ + pinctrl_main_ehrpwm2_a: main-ehrpwm2a-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x040, PIN_INPUT, 9) /* (AF37) MCASP0_AXR0.EHRPWM2_A */ /*= AQUILA B58 */ + >; + }; + + /* PMIC_INT# */ + pinctrl_pmic_int: main-gpio0-0-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x000, PIN_INPUT, 7) /* (AN35) EXTINTn.GPIO0_0 */ + >; + }; + + /* Aquila GPIO_09_CSI_1 */ + pinctrl_gpio_09_csi_1: main-gpio0-1-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x004, PIN_INPUT, 7) /* (AG36) MCAN12_TX.GPIO0_1 */ /* AQU= ILA B17 */ + >; + }; + + /* Aquila GPIO_10_CSI_1 */ + pinctrl_gpio_10_csi_1: main-gpio0-2-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x008, PIN_INPUT, 7) /* (AJ33) MCAN12_RX.GPIO0_2 */ /* AQU= ILA B18 */ + >; + }; + + /* Aquila USB_1_OC# */ + pinctrl_usb1_oc: main-gpio0-10-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x028, PIN_INPUT, 7) /* (AE33) MCAN16_RX.GPIO0_10 */ /* AQ= UILA B75 */ + >; + }; + + /* Aquila USB_1_EN */ + pinctrl_usb1_en_gpio: main-gpio0-11-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x02c, PIN_INPUT, 7) /* (AL32) GPIO0_11 */ /* AQUILA B77 */ + >; + }; + + /* Aquila GPIO_17_DSI_1 */ + pinctrl_gpio_17_dsi_1: main-gpio0-12-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x030, PIN_INPUT, 7) /* (AK37) GPIO0_12 */ /* AQUILA B42 */ + >; + }; + + /* Aquila GPIO_19_DSI_1 */ + pinctrl_gpio_19_dsi_1: main-gpio0-13-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x034, PIN_INPUT, 7) /* (AJ34) PMIC_WAKE0n.GPIO0_13 */ /* = AQUILA B44 */ + >; + }; + + /* Aquila GPIO_02 */ + pinctrl_gpio_02: main-gpio0-17-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x044, PIN_INPUT, 7) /* (AG37) MCASP0_AXR1.GPIO0_17 */ /* = AQUILA D24 */ + >; + }; + + /* Aquila GPIO_20_DSI_1 */ + pinctrl_gpio_20_dsi_1: main-gpio0-18-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x048, PIN_INPUT, 7) /* (AK33) MCASP0_AXR2.GPIO0_18 */ /* = AQUILA B45 */ + >; + }; + + /* Aquila GPIO_21_DP */ + pinctrl_gpio_21_dp: main-gpio0-21-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x054, PIN_INPUT, 7) /* (AD37) MCASP2_ACLKX.GPIO0_21 */ /*= AQUILA B57 */ + >; + }; + + /* Aquila USB_1_INT# */ + pinctrl_usb1_int: main-gpio0-28-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x070, PIN_INPUT, 7) /* (AH38) MCAN1_RX.GPIO0_28 */ /* AQU= ILA B74 */ + >; + }; + + /* Aquila GPIO_03 */ + pinctrl_gpio_03: main-gpio0-29-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x074, PIN_INPUT, 7) /* (AC33) MCAN2_TX.GPIO0_29 */ /* AQU= ILA D25 */ + >; + }; + + /* Aquila GPIO_18_DSI_1 */ + pinctrl_gpio_18_dsi_1: main-gpio0-31-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x07c, PIN_INPUT, 7) /* (AJ38) MCASP0_AXR3.GPIO0_31 */ /* = AQUILA B43 */ + >; + }; + + /* Aquila PCIE_1_RESET# */ + pinctrl_pcie0_reset: main-gpio0-32-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x080, PIN_INPUT, 7) /* (AK34) MCASP0_AXR4.GPIO0_32 */ /* = AQUILA C38 */ + >; + }; + + /* Aquila PWM_3_DSI as GPIO */ + pinctrl_pwm3_dsi_gpio: main-gpio0-33-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x084, PIN_INPUT, 7) /* (AG38) MCASP0_AXR5.GPIO0_33 */ /* = AQUILA B46 */ + >; + }; + + /* Aquila GPIO_01 */ + pinctrl_gpio_01: main-gpio0-34-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x088, PIN_INPUT, 7) /* (AF36) MCASP0_AXR6.GPIO0_34 */ /* = AQUILA D23 */ + >; + }; + + /* Aquila PCIE_2_RESET# */ + pinctrl_pcie1_reset: main-gpio0-41-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x0a4, PIN_INPUT, 7) /* (AJ36) MCASP0_AXR13.GPIO0_41 */ /*= AQUILA C35 */ + >; + }; + + /* Aquila ETH_2_xGMII_INT# */ + pinctrl_eth2_int: main-gpio0-44-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x0b0, PIN_INPUT_PULLUP, 7) /* (AL33) MCASP1_AXR3.GPIO0_44= */ /* AQUILA B81 */ + >; + }; + + /* Aquila GPIO_11_CSI_1 */ + pinctrl_gpio_11_csi_1: main-gpio0-47-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x0bc, PIN_INPUT, 7) /* (AD33) MCASP1_AFSX.GPIO0_47 */ /* = AQUILA A11 */ + >; + }; + + /* Aquila GPIO_12_CSI_1 */ + pinctrl_gpio_12_csi_1: main-gpio0-48-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x0c0, PIN_INPUT, 7) /* (AD38) MCASP1_AXR0.GPIO0_48 */ /* = AQUILA B19 */ + >; + }; + + /* Aquila SD_1_PWR_EN */ + pinctrl_sd1_pwr_en: main-gpio0-52-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x0d0, PIN_INPUT, 7) /* (AP38) SPI0_CS1.GPIO0_52 */ /* AQU= ILA A6 */ + >; + }; + + /* Aquila SD_1_CD# as GPIO */ + pinctrl_sd1_cd_gpio: main-gpio0-58-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x0e8, PIN_INPUT_PULLUP, 7) /* (AR38) TIMER_IO0.GPIO0_58 *= / /* AQUILA A1 */ + >; + }; + + /* Aquila I2C_3_DSI1 */ + pinctrl_main_i2c0: main-i2c0-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x0e0, PIN_INPUT, 0) /* (AN36) I2C0_SCL */ /* AQUILA B41 */ + J784S4_IOPAD(0x0e4, PIN_INPUT, 0) /* (AP37) I2C0_SDA */ /* AQUILA B40 */ + >; + }; + + /* Aquila I2C_4_CSI1 */ + pinctrl_main_i2c1: main-i2c1-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x020, PIN_INPUT_PULLUP, 12) /* (AJ35) MCAN15_RX.I2C1_SCL = */ /* AQUILA A13 */ + J784S4_IOPAD(0x024, PIN_INPUT_PULLUP, 12) /* (AH34) MCAN16_TX.I2C1_SDA = */ /* AQUILA A12 */ + >; + }; + + /* Aquila I2C_5_CSI2 */ + pinctrl_main_i2c2: main-i2c2-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x04c, PIN_INPUT_PULLUP, 13) /* (AC32) MCASP1_AXR1.I2C2_SC= L */ /* AQUILA C6 */ + J784S4_IOPAD(0x050, PIN_INPUT_PULLUP, 13) /* (AC37) MCASP1_AXR2.I2C2_SD= A */ /* AQUILA C5 */ + >; + }; + + /* Aquila I2C_6 */ + pinctrl_main_i2c5: main-i2c5-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x01c, PIN_INPUT_PULLUP, 8) /* (AG34) MCAN15_TX.I2C5_SCL *= / /* AQUILA C19 */ + J784S4_IOPAD(0x018, PIN_INPUT_PULLUP, 8) /* (AK36) MCAN14_RX.I2C5_SDA *= / /* AQUILA C18 */ + >; + }; + + /* Aquila I2S_1_MCLK */ + pinctrl_audio_extrefclk1: audio-extrefclk1-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x078, PIN_OUTPUT, 1) /* (AH37) MCAN2_RX.AUDIO_EXT_REFCLK1= */ /* AQUILA B24 */ + >; + }; + + /* Aquila CAN_1 */ + pinctrl_main_mcan10: main-mcan10-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x0b8, PIN_INPUT, 0) /* (AC34) MCASP1_ACLKX.MCAN10_RX */ = /* AQUILA B49 */ + J784S4_IOPAD(0x0b4, PIN_OUTPUT, 0) /* (AL34) MCASP1_AXR4.MCAN10_TX */ = /* AQUILA B48 */ + >; + }; + + /* Aquila CAN_3 */ + pinctrl_main_mcan13: main-mcan13-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x010, PIN_INPUT, 0) /* (AH33) MCAN13_RX */ /* AQUILA B54= */ + J784S4_IOPAD(0x00c, PIN_OUTPUT, 0) /* (AF33) MCAN13_TX */ /* AQUILA B53= */ + >; + }; + + /* Aquila I2S_1 */ + pinctrl_main_mcasp4: main-mcasp4-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x0c8, PIN_INPUT, 1) /* (AJ32) EXT_REFCLK1.MCASP4_ACLKX = */ /* AQUILA B20 */ + J784S4_IOPAD(0x06c, PIN_INPUT, 1) /* (AJ37) MCAN1_TX.MCASP4_AFSX = */ /* AQUILA B21 */ + J784S4_IOPAD(0x068, PIN_OUTPUT, 1) /* (AE38) MCAN0_RX.MCASP4_AXR1 = */ /* AQUILA B22 */ + J784S4_IOPAD(0x0c4, PIN_INPUT, 1) /* (AD36) ECAP0_IN_APWM_OUT.MCASP4_A= XR2 */ /* AQUILA B23 */ + >; + }; + + /* Aquila ETH_2_XGMII_MDIO */ + pinctrl_main_mdio1: main-mdio1-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x058, PIN_OUTPUT, 4) /* (AE37) MCASP2_AFSX.MDIO1_MDC */ = /* AQUILA B90 */ + J784S4_IOPAD(0x05c, PIN_INPUT, 4) /* (AC36) MCASP2_AXR0.MDIO1_MDIO */ = /* AQUILA B89 */ + >; + }; + + /* Aquila SD_1 */ + pinctrl_main_mmc1: main-mmc1-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x104, PIN_INPUT, 0) /* (AB38) MMC1_CLK */ /* AQUILA A5 = */ + J784S4_IOPAD(0x108, PIN_INPUT, 0) /* (AB36) MMC1_CMD */ /* AQUILA A7 = */ + J784S4_IOPAD(0x100, PIN_INPUT, 0) /* (No Pin) MMC1_CLKLB */ + J784S4_IOPAD(0x0fc, PIN_INPUT, 0) /* (AA33) MMC1_DAT0 */ /* AQUILA A3 = */ + J784S4_IOPAD(0x0f8, PIN_INPUT, 0) /* (AB34) MMC1_DAT1 */ /* AQUILA A2 = */ + J784S4_IOPAD(0x0f4, PIN_INPUT, 0) /* (AA32) MMC1_DAT2 */ /* AQUILA A10 = */ + J784S4_IOPAD(0x0f0, PIN_INPUT, 0) /* (AC38) MMC1_DAT3 */ /* AQUILA A8 = */ + >; + }; + + /* Aquila SPI_2 */ + pinctrl_main_spi0: main-spi0-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x0d4, PIN_OUTPUT, 0) /* (AN38) SPI0_CLK */ /* AQUILA D14 = */ + J784S4_IOPAD(0x0d8, PIN_INPUT, 0) /* (AM35) SPI0_D0 */ /* AQUILA D15 = */ + J784S4_IOPAD(0x0dc, PIN_OUTPUT, 0) /* (AM36) SPI0_D1 */ /* AQUILA D17 = */ + >; + }; + + /* Aquila SPI_2 CS */ + pinctrl_main_spi0_cs0: main-spi0-cs0-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x0cc, PIN_OUTPUT, 0) /* (AM37) SPI0_CS0 */ /* AQUILA D16 = */ + >; + }; + + /* Aquila SPI_1 */ + pinctrl_main_spi2: main-spi2-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x0a0, PIN_OUTPUT, 10) /* (AD34) MCASP0_AXR12.SPI2_CLK */ = /* AQUILA D12 */ + J784S4_IOPAD(0x0a8, PIN_INPUT, 10) /* (AF34) MCASP0_AXR14.SPI2_D0 */ = /* AQUILA D10 */ + J784S4_IOPAD(0x0ac, PIN_OUTPUT, 10) /* (AE34) MCASP0_AXR15.SPI2_D1 */ = /* AQUILA D11 */ + >; + }; + + /* Aquila SPI_1 CS */ + pinctrl_main_spi2_cs0: main-spi2-cs0-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x09c, PIN_OUTPUT, 10) /* (AF35) MCASP0_AXR11.SPI2_CS1 */ = /* AQUILA D9 */ + >; + }; + + /* Aquila UART_1 */ + pinctrl_main_uart4: main-uart4-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x094, PIN_INPUT, 11) /* (AG35) MCASP0_AXR9.UART4_CTSn *= / /* AQUILA B36 */ + J784S4_IOPAD(0x098, PIN_OUTPUT, 11) /* (AH36) MCASP0_AXR10.UART4_RTSn *= / /* AQUILA B38 */ + J784S4_IOPAD(0x08c, PIN_INPUT, 11) /* (AE35) MCASP0_AXR7.UART4_RXD *= / /* AQUILA B35 */ + J784S4_IOPAD(0x090, PIN_OUTPUT, 11) /* (AC35) MCASP0_AXR8.UART4_TXD *= / /* AQUILA B37 */ + >; + }; + + /* Aquila UART_3, used as the Linux console */ + pinctrl_main_uart8: main-uart8-default-pins { + pinctrl-single,pins =3D < + J784S4_IOPAD(0x038, PIN_INPUT, 11) /* (AK35) MCASP0_ACLKX.UART8_RXD */= /* AQUILA D19 */ + J784S4_IOPAD(0x03c, PIN_OUTPUT, 11) /* (AK38) MCASP0_AFSX.UART8_TXD */= /* AQUILA D20 */ + >; + }; +}; + +&wkup_pmx0 { + /* Aquila QSPI_1 (4-bit) */ + pinctrl_mcu_ospi0_4bit: mcu-ospi0-4bit-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x000, PIN_OUTPUT, 0) /* (E32) MCU_OSPI0_CLK */ /* A= QUILA B65 */ + J784S4_WKUP_IOPAD(0x00c, PIN_INPUT, 0) /* (B33) MCU_OSPI0_D0 */ /* A= QUILA B68 */ + J784S4_WKUP_IOPAD(0x010, PIN_INPUT, 0) /* (B32) MCU_OSPI0_D1 */ /* A= QUILA B67 */ + J784S4_WKUP_IOPAD(0x014, PIN_INPUT, 0) /* (C33) MCU_OSPI0_D2 */ /* A= QUILA B61 */ + J784S4_WKUP_IOPAD(0x018, PIN_INPUT, 0) /* (C35) MCU_OSPI0_D3 */ /* A= QUILA B60 */ + J784S4_WKUP_IOPAD(0x008, PIN_INPUT, 0) /* (C34) MCU_OSPI0_DQS */ /* A= QUILA B63 */ + >; + }; + + /* Aquila QSPI_1 (8-bit) */ + pinctrl_mcu_ospi0_8bit: mcu-ospi0-8bit-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x000, PIN_OUTPUT, 0) /* (E32) MCU_OSPI0_CLK */ /* A= QUILA B65 */ + J784S4_WKUP_IOPAD(0x00c, PIN_INPUT, 0) /* (B33) MCU_OSPI0_D0 */ /* A= QUILA B68 */ + J784S4_WKUP_IOPAD(0x010, PIN_INPUT, 0) /* (B32) MCU_OSPI0_D1 */ /* A= QUILA B67 */ + J784S4_WKUP_IOPAD(0x014, PIN_INPUT, 0) /* (C33) MCU_OSPI0_D2 */ /* A= QUILA B61 */ + J784S4_WKUP_IOPAD(0x018, PIN_INPUT, 0) /* (C35) MCU_OSPI0_D3 */ /* A= QUILA B60 */ + J784S4_WKUP_IOPAD(0x01c, PIN_INPUT, 0) /* (D33) MCU_OSPI0_D4 */ /* A= QUILA B70 */ + J784S4_WKUP_IOPAD(0x020, PIN_INPUT, 0) /* (D34) MCU_OSPI0_D5 */ /* A= QUILA B71 */ + J784S4_WKUP_IOPAD(0x024, PIN_INPUT, 0) /* (E34) MCU_OSPI0_D6 */ /* A= QUILA B72 */ + J784S4_WKUP_IOPAD(0x028, PIN_INPUT, 0) /* (E33) MCU_OSPI0_D7 */ /* A= QUILA B73 */ + J784S4_WKUP_IOPAD(0x008, PIN_INPUT, 0) /* (C34) MCU_OSPI0_DQS */ /* A= QUILA B63 */ + >; + }; + + /* Aquila QSPI_1_CS1# */ + pinctrl_mcu_ospi0_cs0: mcu-ospi0-cs0-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x02c, PIN_OUTPUT, 0) /* (A32) MCU_OSPI0_CSn0 */ /* A= QUILA B66 */ + >; + }; + + /* Aquila QSPI_1_CS2# */ + pinctrl_mcu_ospi0_cs1: mcu-ospi0-cs1-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x030, PIN_OUTPUT, 0) /* (A33) MCU_OSPI0_CSn1 */ /* A= QUILA B62 */ + >; + }; + + /* Aquila QSPI_1_SCK as GPIO */ + pinctrl_wkup_gpio_16: wkup-gpio0-16-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x000, PIN_INPUT, 7) /* (E32) MCU_OSPI0_CLK.WKUP_GPIO= 0_16 */ /* AQUILA B65 */ + >; + }; + + /* Aquila GPIO_04 */ + pinctrl_gpio_04: wkup-gpio0-17-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x004, PIN_INPUT, 7) /* (D32) MCU_OSPI0_LBCLKO.WKUP_G= PIO0_17 */ /* AQUILA C20 */ + >; + }; + + /* Aquila QSPI_1_DQS as GPIO */ + pinctrl_wkup_gpio_18: wkup-gpio0-18-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x008, PIN_INPUT, 7) /* (C34) MCU_OSPI0_DQS.WKUP_GPIO= 0_18 */ /* AQUILA B63 */ + >; + }; + + /* Aquila QSPI_1_IO0 as GPIO */ + pinctrl_wkup_gpio_19: wkup-gpio0-19-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x00c, PIN_INPUT, 7) /* (B33) MCU_OSPI0_D0.WKUP_GPIO0= _19 */ /* AQUILA B68 */ + >; + }; + + /* Aquila QSPI_1_IO1 as GPIO */ + pinctrl_wkup_gpio_20: wkup-gpio0-20-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x010, PIN_INPUT, 7) /* (B32) MCU_OSPI0_D1.WKUP_GPIO0= _20 */ /* AQUILA B67 */ + >; + }; + + /* Aquila QSPI_1_IO2 as GPIO */ + pinctrl_wkup_gpio_21: wkup-gpio0-21-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x014, PIN_INPUT, 7) /* (C33) MCU_OSPI0_D2.WKUP_GPIO0= _21 */ /* AQUILA B61 */ + >; + }; + + /* Aquila QSPI_1_IO3 as GPIO */ + pinctrl_wkup_gpio_22: wkup-gpio0-22-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x018, PIN_INPUT, 7) /* (C35) MCU_OSPI0_D3.WKUP_GPIO0= _22 */ /* AQUILA B60 */ + >; + }; + + /* Aquila QSPI_1_IO4 as GPIO */ + pinctrl_wkup_gpio_23: wkup-gpio0-23-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x01c, PIN_INPUT, 7) /* (D33) MCU_OSPI0_D4.WKUP_GPIO0= _23 */ /* AQUILA B70 */ + >; + }; + + /* Aquila QSPI_1_IO5 as GPIO */ + pinctrl_wkup_gpio_24: wkup-gpio0-24-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x020, PIN_INPUT, 7) /* (D34) MCU_OSPI0_D5.WKUP_GPIO0= _24 */ /* AQUILA B71 */ + >; + }; + + /* Aquila QSPI_1_IO6 as GPIO */ + pinctrl_wkup_gpio_25: wkup-gpio0-25-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x024, PIN_INPUT, 7) /* (E34) MCU_OSPI0_D6.WKUP_GPIO0= _25 */ /* AQUILA B72 */ + >; + }; + + /* Aquila QSPI_1_IO7 as GPIO */ + pinctrl_wkup_gpio_26: wkup-gpio0-26-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x028, PIN_INPUT, 7) /* (E33) MCU_OSPI0_D7.WKUP_GPIO0= _26 */ /* AQUILA B73 */ + >; + }; + + /* Aquila QSPI_1_CS#1 as GPIO */ + pinctrl_wkup_gpio_27: wkup-gpio0-27-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x02c, PIN_INPUT, 7) /* (A32) MCU_OSPI0_CSn0.WKUP_GPI= O0_27 */ /* AQUILA B66 */ + >; + }; + + /* Aquila QSPI_1_CS#2 as GPIO */ + pinctrl_wkup_gpio_28: wkup-gpio0-28-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x030, PIN_INPUT, 7) /* (A33) MCU_OSPI0_CSn1.WKUP_GPI= O0_28 */ /* AQUILA B62 */ + >; + }; +}; + +&wkup_pmx1 { + /* Aquila UART_4 (RXD) */ + pinctrl_mcu_uart0_rx: mcu-uart0-rx-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x018, PIN_INPUT, 4) /* (D31) MCU_OSPI1_D1.MCU_UART0= _RXD */ /* AQUILA D21 */ + >; + }; + + /* Aquila GPIO_05 */ + pinctrl_gpio_05: wkup-gpio0-29-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x000, PIN_INPUT, 7) /* (B34) MCU_OSPI0_CSn2.WKUP_GPI= O0_29 */ /* AQUILA C21 */ + >; + }; + + /* Aquila GPIO_06 */ + pinctrl_gpio_06: wkup-gpio0-30-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x004, PIN_INPUT, 7) /* (C32) MCU_OSPI0_CSn3.WKUP_GPI= O0_30 */ /* AQUILA C22 */ + >; + }; + + /* Aquila GPIO_07 */ + pinctrl_gpio_07: wkup-gpio0-31-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x008, PIN_INPUT, 7) /* (F32) MCU_OSPI1_CLK.WKUP_GPIO= 0_31 */ /* AQUILA C23 */ + >; + }; + + /* Aquila GPIO_13_CSI_2 */ + pinctrl_gpio_13_csi_2: wkup-gpio0-32-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x00c, PIN_INPUT, 7) /* (C31) MCU_OSPI1_LBCLKO.WKUP_G= PIO0_32 */ /* AQUILA C1 */ + >; + }; + + /* Aquila GPIO_14_CSI_2 */ + pinctrl_gpio_14_csi_2: wkup-gpio0-33-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x010, PIN_INPUT, 7) /* (F31) MCU_OSPI1_DQS.WKUP_GPIO= 0_33 */ /* AQUILA C2 */ + >; + }; + + /* RTC_IRQ# */ + pinctrl_rtc_irq: wkup-gpio0-34-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x014, PIN_INPUT, 7) /* (E35) MCU_OSPI1_D0.WKUP_GPIO0= _34 */ + >; + }; + + /* Aquila CTRL_PWR_BTN_MICO# (PWR_BTN_INT#) */ + pinctrl_pwr_btn_int: wkup-gpio0-36-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x01c, PIN_INPUT_PULLUP, 7) /* (G31) MCU_OSPI1_D2.WKU= P_GPIO0_36 */ /* AQUILA B92 */ + >; + }; + + /* Aquila GPIO_15_CSI_2 */ + pinctrl_gpio_15_csi_2: wkup-gpio0-37-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x020, PIN_INPUT, 7) /* (F33) MCU_OSPI1_D3.WKUP_GPIO0= _37 */ /* AQUILA C3 */ + >; + }; + + /* Aquila GPIO_08 */ + pinctrl_gpio_08: wkup-gpio0-38-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x024, PIN_INPUT, 7) /* (G32) MCU_OSPI1_CSn0.WKUP_GPI= O0_38 */ /* AQUILA C24 */ + >; + }; + + /* Aquila GPIO_16_CSI_2 */ + pinctrl_gpio_16_csi_2: wkup-gpio0-39-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x028, PIN_INPUT, 7) /* (G33) MCU_OSPI1_CSn1.WKUP_GPI= O0_39 */ /* AQUILA C4 */ + >; + }; +}; + +&wkup_pmx2 { + /* Aquila ADC_[1-4] */ + pinctrl_mcu_adc0: mcu-adc0-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x0cc, PIN_OUTPUT, 0) /* (P36) MCU_ADC0_AIN0 */ /* AQ= UILA D1 */ + J784S4_WKUP_IOPAD(0x0d0, PIN_OUTPUT, 0) /* (V36) MCU_ADC0_AIN1 */ /* AQ= UILA D2 */ + J784S4_WKUP_IOPAD(0x0d4, PIN_OUTPUT, 0) /* (T34) MCU_ADC0_AIN2 */ /* AQ= UILA D3 */ + J784S4_WKUP_IOPAD(0x0d8, PIN_OUTPUT, 0) /* (T36) MCU_ADC0_AIN3 */ /* AQ= UILA D4 */ + >; + }; + + /* Aquila CTRL_MCLK_MOCI */ + pinctrl_mcu_clkout0: mcu-clkout0-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x084, PIN_OUTPUT, 6) /* (M38) WKUP_GPIO0_11.MCU_CLKO= UT0 */ /* AQUILA A14 */ + >; + }; + + /* Aquila I2C_1 */ + pinctrl_mcu_i2c0: mcu-i2c0-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x0a0, PIN_INPUT, 0) /* (M35) MCU_I2C0_SCL */ /* AQUI= LA D8 */ + J784S4_WKUP_IOPAD(0x0a4, PIN_INPUT, 0) /* (G34) MCU_I2C0_SDA */ /* AQUI= LA D7 */ + >; + }; + + /* Aquila I2C_2 */ + pinctrl_mcu_i2c1: mcu-i2c1-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x078, PIN_INPUT_PULLUP, 0) /* (L35) WKUP_GPIO0_8.MCU= _I2C1_SCL */ /* AQUILA C17 */ + J784S4_WKUP_IOPAD(0x07c, PIN_INPUT_PULLUP, 0) /* (L34) WKUP_GPIO0_9.MCU= _I2C1_SDA */ /* AQUILA C16 */ + >; + }; + + /* Aquila CAN_2 */ + pinctrl_mcu_mcan0: mcu-mcan0-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x054, PIN_INPUT, 0) /* (F38) MCU_MCAN0_RX */ /* AQ= UILA B51 */ + J784S4_WKUP_IOPAD(0x050, PIN_OUTPUT, 0) /* (K33) MCU_MCAN0_TX */ /* AQ= UILA B50 */ + >; + }; + + /* Aquila CAN_4 */ + pinctrl_mcu_mcan1: mcu-mcan1-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x06c, PIN_INPUT, 0) /* (K36) WKUP_GPIO0_5.MCU_MCAN1= _RX */ /* AQUILA B56 */ + J784S4_WKUP_IOPAD(0x068, PIN_OUTPUT, 0) /* (H35) WKUP_GPIO0_4.MCU_MCAN1= _TX */ /* AQUILA B55 */ + >; + }; + + /* On-module ETH_1 MDIO */ + pinctrl_mcu_mdio: mcu-mdio-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x034, PIN_OUTPUT, 0) /* (A36) MCU_MDIO0_MDC */ + J784S4_WKUP_IOPAD(0x030, PIN_INPUT, 0) /* (B35) MCU_MDIO0_MDIO */ + >; + }; + + /* On-module ETH_1 RGMII */ + pinctrl_mcu_rgmii1: mcu-rgmii1-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x02c, PIN_INPUT, 0) /* (A35) MCU_RGMII1_RD0 */ + J784S4_WKUP_IOPAD(0x028, PIN_INPUT, 0) /* (B36) MCU_RGMII1_RD1 */ + J784S4_WKUP_IOPAD(0x024, PIN_INPUT, 0) /* (C36) MCU_RGMII1_RD2 */ + J784S4_WKUP_IOPAD(0x020, PIN_INPUT, 0) /* (D36) MCU_RGMII1_RD3 */ + J784S4_WKUP_IOPAD(0x01c, PIN_INPUT, 0) /* (B37) MCU_RGMII1_RXC */ + J784S4_WKUP_IOPAD(0x004, PIN_INPUT, 0) /* (C37) MCU_RGMII1_RX_CTL */ + J784S4_WKUP_IOPAD(0x014, PIN_OUTPUT, 0) /* (D37) MCU_RGMII1_TD0 */ + J784S4_WKUP_IOPAD(0x010, PIN_OUTPUT, 0) /* (D38) MCU_RGMII1_TD1 */ + J784S4_WKUP_IOPAD(0x00c, PIN_OUTPUT, 0) /* (E37) MCU_RGMII1_TD2 */ + J784S4_WKUP_IOPAD(0x008, PIN_OUTPUT, 0) /* (E38) MCU_RGMII1_TD3 */ + J784S4_WKUP_IOPAD(0x018, PIN_OUTPUT, 0) /* (E36) MCU_RGMII1_TXC */ + J784S4_WKUP_IOPAD(0x000, PIN_OUTPUT, 0) /* (C38) MCU_RGMII1_TX_CTL */ + >; + }; + + /* On-module SPI (TPM_SPI) */ + pinctrl_mcu_spi0: mcu-spi0-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x038, PIN_OUTPUT, 0) /* (G38) MCU_SPI0_CLK */ + J784S4_WKUP_IOPAD(0x044, PIN_OUTPUT, 0) /* (F37) MCU_SPI0_CS0 */ + J784S4_WKUP_IOPAD(0x03c, PIN_INPUT, 0) /* (H36) MCU_SPI0_D0 */ + J784S4_WKUP_IOPAD(0x040, PIN_OUTPUT, 0) /* (J38) MCU_SPI0_D1 */ + >; + }; + + /* Aquila UART_4 (TX) */ + pinctrl_mcu_uart0_tx: mcu-uart0-tx-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x080, PIN_OUTPUT, 2) /* (L33) WKUP_GPIO0_10.MCU_UART= 0_TXD */ /* AQUILA D22 */ + >; + }; + + /* On-module Wi-Fi Power Enable */ + pinctrl_en_3v3_wifi: wkup-gpio0-57-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x114, PIN_INPUT, 7) /* (M36) WKUP_GPIO0_57 */ + >; + }; + + /* On-module TPM IRQ# */ + pinctrl_tpm_irq: wkup-gpio0-81-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x0f4, PIN_INPUT, 7) /* (V34) MCU_ADC1_AIN2.WKUP_GPIO= 0_81 */ + >; + }; + + /* On-module I2C - WKUP_I2C0 */ + pinctrl_wkup_i2c0: wkup-i2c0-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x098, PIN_INPUT, 0) /* (N33) WKUP_I2C0_SCL */ + J784S4_WKUP_IOPAD(0x09c, PIN_INPUT, 0) /* (N35) WKUP_I2C0_SDA */ + >; + }; + + /* Aquila UART_2 */ + pinctrl_wkup_uart0: wkup-uart0-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x070, PIN_INPUT, 0) /* (L37) WKUP_GPIO0_6.WKUP_UART= 0_CTSn */ /* AQUILA B32 */ + J784S4_WKUP_IOPAD(0x074, PIN_OUTPUT, 0) /* (L36) WKUP_GPIO0_7.WKUP_UART= 0_RTSn */ /* AQUILA B34 */ + J784S4_WKUP_IOPAD(0x048, PIN_INPUT, 0) /* (K35) WKUP_UART0_RXD = */ /* AQUILA B31 */ + J784S4_WKUP_IOPAD(0x04c, PIN_OUTPUT, 0) /* (K34) WKUP_UART0_TXD = */ /* AQUILA B33 */ + >; + }; +}; + +&wkup_pmx3 { + /* Aquila CTRL_WAKE1_MICO# */ + pinctrl_ctrl_wake1_mico: wkup-gpio0-49-default-pins { + pinctrl-single,pins =3D < + J784S4_WKUP_IOPAD(0x000, PIN_INPUT_PULLUP, 7) /* (M33) WKUP_GPIO0_49 */= /* AQUILA D6 */ + >; + }; +}; + +/* Aquila I2S_1_MCLK */ +&audio_refclk1 { + assigned-clock-rates =3D <24576000>; +}; + +/* On-module ETH_1 MDIO */ +&davinci_mdio { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_mcu_mdio>; + status =3D "disabled"; + + mcu_phy0: ethernet-phy@0 { + reg =3D <0>; + interrupt-parent =3D <&wkup_gpio0>; + interrupts =3D <79 IRQ_TYPE_EDGE_FALLING>; + ti,rx-internal-delay =3D ; + ti,fifo-depth =3D ; + }; +}; + +&dss { + assigned-clocks =3D <&k3_clks 218 2>, + <&k3_clks 218 5>; + assigned-clock-parents =3D <&k3_clks 218 3>, + <&k3_clks 218 7>; + status =3D "disabled"; +}; + +&dss_ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + dpi0_out: endpoint { + remote-endpoint =3D <&dp0_in>; + }; + }; +}; + +&dp0_ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + dp0_in: endpoint { + remote-endpoint =3D <&dpi0_out>; + }; + }; +}; + +&main0_crit { + temperature =3D <105000>; +}; + +&main0_thermal { + trips { + main0_alert0: trip-point0 { + temperature =3D <70000>; + hysteresis =3D <2000>; + type =3D "active"; + }; + + main0_alert1: trip-point1 { + temperature =3D <85000>; + hysteresis =3D <2000>; + type =3D "active"; + }; + }; +}; + +&main1_crit { + temperature =3D <105000>; +}; + +&main1_thermal { + trips { + main1_alert0: trip-point0 { + temperature =3D <70000>; + hysteresis =3D <2000>; + type =3D "active"; + }; + + main1_alert1: trip-point1 { + temperature =3D <85000>; + hysteresis =3D <2000>; + type =3D "active"; + }; + }; +}; + +&main2_crit { + temperature =3D <105000>; +}; + +&main2_thermal { + trips { + main2_alert0: trip-point0 { + temperature =3D <70000>; + hysteresis =3D <2000>; + type =3D "active"; + }; + + main2_alert1: trip-point1 { + temperature =3D <85000>; + hysteresis =3D <2000>; + type =3D "active"; + }; + }; +}; + +&main3_crit { + temperature =3D <105000>; +}; + +&main3_thermal { + trips { + main3_alert0: trip-point0 { + temperature =3D <70000>; + hysteresis =3D <2000>; + type =3D "active"; + }; + + main3_alert1: trip-point1 { + temperature =3D <85000>; + hysteresis =3D <2000>; + type =3D "active"; + }; + }; +}; + +&main4_crit { + temperature =3D <105000>; +}; + +&main4_thermal { + trips { + main4_alert0: trip-point0 { + temperature =3D <70000>; + hysteresis =3D <2000>; + type =3D "active"; + }; + + main4_alert1: trip-point1 { + temperature =3D <85000>; + hysteresis =3D <2000>; + type =3D "active"; + }; + }; +}; + +/* Aquila ETH_2 SGMII PHY */ +&main_cpsw0_port8 { + phy-mode =3D "sgmii"; + phys =3D <&cpsw0_phy_gmii_sel 8>, <&serdes2_sgmii_link>; + phy-names =3D "mac", "serdes"; + status =3D "disabled"; +}; + +/* Aquila ETH_2_XGMII_MDIO */ +&main_cpsw0_mdio { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_main_mdio1>; +}; + +/* Aquila PWM_1 */ +&main_ehrpwm0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_main_ehrpwm0_b>; + status =3D "disabled"; +}; + +/* Aquila PWM_2 */ +&main_ehrpwm1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_main_ehrpwm1_a>; + status =3D "disabled"; +}; + +/* Aquila PWM_4_DP */ +&main_ehrpwm2 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_main_ehrpwm2_a>; + status =3D "disabled"; +}; + +/* Aquila PWM_3_DSI */ +&main_ehrpwm5 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_main_ehrpwm5_a>; + status =3D "disabled"; +}; + +&main_gpio0 { + gpio-line-names =3D + "", /* 0 */ + "AQUILA_B17", + "AQUILA_B18", + "AQUILA_B53", + "AQUILA_B54", + "AQUILA_B59", + "AQUILA_C18", + "AQUILA_C19", + "AQUILA_A13", + "AQUILA_A12", + "AQUILA_B75", /* 10 */ + "AQUILA_B77", + "AQUILA_B42", + "AQUILA_B44", + "AQUILA_D19", + "AQUILA_D20", + "AQUILA_B58", + "AQUILA_D24", + "AQUILA_B45", + "AQUILA_C06", + "AQUILA_C05", /* 20 */ + "AQUILA_B57", + "AQUILA_B90", + "AQUILA_B89", + "AQUILA_C26", + "AQUILA_C25", + "AQUILA_B22", + "AQUILA_B21", + "AQUILA_B74", + "AQUILA_D25", + "AQUILA_B24", /* 30 */ + "AQUILA_B43", + "AQUILA_C38", + "AQUILA_B46", + "AQUILA_D23", + "AQUILA_B35", + "AQUILA_B37", + "AQUILA_B36", + "AQUILA_B38", + "AQUILA_D09", + "AQUILA_D12", /* 40 */ + "AQUILA_C35", + "AQUILA_D10", + "AQUILA_D11", + "AQUILA_B81", + "AQUILA_B48", + "AQUILA_B49", + "AQUILA_A11", + "AQUILA_B19", + "AQUILA_B23", + "AQUILA_B20", /* 50 */ + "AQUILA_D16", + "AQUILA_A06", + "AQUILA_D14", + "AQUILA_D15", + "AQUILA_D17", + "AQUILA_B41", + "AQUILA_B40", + "AQUILA_A01", + "", + "AQUILA_A08", /* 60 */ + "AQUILA_A10", + "AQUILA_A02", + "AQUILA_A03", + "AQUILA_A05", + "AQUILA_A07"; + + status =3D "okay"; +}; + +/* Aquila I2C_3_DSI1 */ +&main_i2c0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_main_i2c0>; + clock-frequency =3D <100000>; + status =3D "disabled"; +}; + +/* Aquila I2C_4_CSI1 */ +&main_i2c1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_main_i2c1>; + clock-frequency =3D <400000>; + status =3D "disabled"; +}; + +/* Aquila I2C_5_CSI2 */ +&main_i2c2 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_main_i2c2>; + clock-frequency =3D <400000>; + status =3D "disabled"; +}; + +/* Aquila I2C_6 */ +&main_i2c5 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_main_i2c5>; + clock-frequency =3D <400000>; + status =3D "disabled"; +}; + +/* Aquila CAN_1 */ +&main_mcan10 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_main_mcan10>; + status =3D "disabled"; +}; + +/* Aquila CAN_3 */ +&main_mcan13 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_main_mcan13>; + status =3D "disabled"; +}; + +/* On-module eMMC */ +&main_sdhci0 { + disable-wp; + non-removable; + ti,driver-strength-ohm =3D <50>; + status =3D "okay"; +}; + +/* Aquila SD_1 */ +&main_sdhci1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_main_mmc1>, <&pinctrl_sd1_cd_gpio>; + cd-gpios =3D <&main_gpio0 58 GPIO_ACTIVE_LOW>; + disable-wp; + vmmc-supply =3D <®_sdhc1_vmmc>; + vqmmc-supply =3D <®_sdhc1_vqmmc>; + ti,driver-strength-ohm =3D <50>; + ti,fails-without-test-cd; + status =3D "disabled"; +}; + +/* Aquila SPI_2 */ +&main_spi0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_main_spi0>, <&pinctrl_main_spi0_cs0>; + status =3D "disabled"; +}; + +/* Aquila SPI_1 */ +&main_spi2 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_main_spi2>, <&pinctrl_main_spi2_cs0>; + status =3D "disabled"; +}; + +/* Aquila UART_1 */ +&main_uart4 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_main_uart4>; + status =3D "disabled"; +}; + +/* Aquila UART_3, used as the Linux console */ +&main_uart8 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_main_uart8>; + status =3D "disabled"; +}; + +/* Aquila I2S_1 */ +&mcasp4 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_main_mcasp4>; + op-mode =3D <0>; /* MCASP_I2S_MODE */ + serial-dir =3D < /* 0: INACTIVE, 1: TX, 2: RX */ + 0 1 2 0 + 0 0 0 0 + 0 0 0 0 + 0 0 0 0 + >; + tdm-slots =3D <2>; + #sound-dai-cells =3D <0>; + status =3D "disabled"; +}; + +&mcu_cpsw { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_mcu_rgmii1>; + status =3D "disabled"; +}; + +/* On-module ETH_1 RGMII */ +&mcu_cpsw_port1 { + phy-handle =3D <&mcu_phy0>; + phy-mode =3D "rgmii-id"; + status =3D "disabled"; +}; + +/* Aquila I2C_1 */ +&mcu_i2c0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_mcu_i2c0>; + clock-frequency =3D <400000>; + status =3D "disabled"; +}; + +/* Aquila I2C_2 */ +&mcu_i2c1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_mcu_i2c1>; + clock-frequency =3D <400000>; + status =3D "disabled"; +}; + +/* Aquila CAN_2 */ +&mcu_mcan0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_mcu_mcan0>; + status =3D "disabled"; +}; + +/* Aquila CAN_4 */ +&mcu_mcan1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_mcu_mcan1>; + status =3D "disabled"; +}; + +/* On-module SPI (TPM_SPI) */ +&mcu_spi0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_mcu_spi0>; + status =3D "okay"; + + tpm@0 { + compatible =3D "st,st33htpm-spi", "tcg,tpm_tis-spi"; + reg =3D <0>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_tpm_irq>; + interrupt-parent =3D <&wkup_gpio0>; + interrupts =3D <81 IRQ_TYPE_EDGE_FALLING>; + spi-max-frequency =3D <33000000>; + }; +}; + +/* Aquila UART_4 */ +&mcu_uart0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_mcu_uart0_rx>, <&pinctrl_mcu_uart0_tx>; + status =3D "disabled"; +}; + +&mhdp { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_main_dp0_hpd>; + phy-names =3D "dpphy"; + phys =3D <&serdes4_dp0_link>; + status =3D "disabled"; +}; + +/* Aquila QSPI_1 */ +&ospi0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_mcu_ospi0_8bit>, <&pinctrl_mcu_ospi0_cs0>; + status =3D "disabled"; +}; + +/* Aquila PCIE_1 */ +&pcie0_rc { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_pcie0_reset>; + clocks =3D <&k3_clks 332 0>, <&serdes1 CDNS_TORRENT_REFCLK_DRIVER>; + clock-names =3D "fck", "pcie_refclk"; + num-lanes =3D <2>; + phy-names =3D "pcie-phy"; + phys =3D <&serdes1_pcie0_2l_link>; + reset-gpios =3D <&main_gpio0 32 GPIO_ACTIVE_HIGH>; + ti,syscon-acspcie-proxy-ctrl =3D <&acspcie1_proxy_ctrl 0x3>; + status =3D "disabled"; +}; + +/* Aquila PCIE_2 */ +&pcie1_rc { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_pcie1_reset>; + clocks =3D <&k3_clks 333 0>, <&serdes0 CDNS_TORRENT_REFCLK_DRIVER>; + clock-names =3D "fck", "pcie_refclk"; + num-lanes =3D <2>; + phy-names =3D "pcie-phy"; + phys =3D <&serdes0_pcie1_2l_link>; + reset-gpios =3D <&main_gpio0 41 GPIO_ACTIVE_HIGH>; + ti,syscon-acspcie-proxy-ctrl =3D <&acspcie0_proxy_ctrl 0x3>; + status =3D "disabled"; +}; + +/* On-module PCIe USB Bridge */ +&pcie2_rc { + clocks =3D <&k3_clks 334 0>, <&serdes1 CDNS_TORRENT_REFCLK_DRIVER>; + clock-names =3D "fck", "pcie_refclk"; + num-lanes =3D <1>; + phy-names =3D "pcie-phy"; + phys =3D <&serdes1_pcie2_1l_link>; + reset-gpios =3D <&som_gpio_expander 3 GPIO_ACTIVE_HIGH>; + ti,syscon-acspcie-proxy-ctrl =3D <&acspcie1_proxy_ctrl 0x3>; + status =3D "okay"; + + pci@0,0 { + device_type =3D "pci"; + reg =3D <0x0 0x0 0x0 0x0 0x0>; + + #address-cells =3D <3>; + #size-cells =3D <2>; + ranges; + + usb@0 { + compatible =3D "pci104c,8241"; + reg =3D <0x0 0x0 0x0 0x0 0x0>; + ti,pwron-active-high; + }; + }; +}; + +/* PCIE for On-module Wi-Fi */ +&pcie3_rc { + clocks =3D <&k3_clks 335 0>, <&serdes0 CDNS_TORRENT_REFCLK_DRIVER>; + clock-names =3D "fck", "pcie_refclk"; + num-lanes =3D <1>; + phy-names =3D "pcie-phy"; + phys =3D <&serdes0_pcie3_1l_link>; + reset-gpios =3D <&som_gpio_expander 4 GPIO_ACTIVE_HIGH>; + ti,syscon-acspcie-proxy-ctrl =3D <&acspcie0_proxy_ctrl 0x3>; + status =3D "okay"; +}; + +&serdes0 { + status =3D "okay"; + + /* Aquila PCIE_2 */ + serdes0_pcie1_2l_link: phy@0 { + reg =3D <0>; + #phy-cells =3D <0>; + resets =3D <&serdes_wiz0 1>, <&serdes_wiz0 2>; + cdns,num-lanes =3D <2>; + cdns,phy-type =3D ; + }; + + /* On-module PCIe Wi-Fi */ + serdes0_pcie3_1l_link: phy@2 { + reg =3D <2>; + #phy-cells =3D <0>; + resets =3D <&serdes_wiz0 3>; + cdns,num-lanes =3D <1>; + cdns,phy-type =3D ; + }; + + /* Aquila USB0 SS */ + serdes0_usb0_ss_link: phy@3 { + reg =3D <3>; + #phy-cells =3D <0>; + resets =3D <&serdes_wiz0 4>; + cdns,num-lanes =3D <1>; + cdns,phy-type =3D ; + }; +}; + +&serdes1 { + status =3D "okay"; + + /* Aquila PCIE_1 */ + serdes1_pcie0_2l_link: phy@0 { + reg =3D <0>; + #phy-cells =3D <0>; + resets =3D <&serdes_wiz1 1>, <&serdes_wiz1 2>; + cdns,num-lanes =3D <2>; + cdns,phy-type =3D ; + }; + + /* On-module PCIe USB Bridge */ + serdes1_pcie2_1l_link: phy@2 { + reg =3D <2>; + #phy-cells =3D <0>; + resets =3D <&serdes_wiz1 3>; + cdns,num-lanes =3D <1>; + cdns,phy-type =3D ; + }; +}; + +&serdes2 { + status =3D "disabled"; + + /* Aquila ETH_2 xGMII */ + serdes2_sgmii_link: phy@3 { + reg =3D <3>; + #phy-cells =3D <0>; + resets =3D <&serdes_wiz2 4>; + cdns,num-lanes =3D <1>; + cdns,phy-type =3D ; + }; +}; + +&serdes4 { + status =3D "disabled"; + + /* Aquila DP_1 */ + serdes4_dp0_link: phy@0 { + reg =3D <0>; + #phy-cells =3D <0>; + resets =3D <&serdes_wiz4 1>, <&serdes_wiz4 2>, + <&serdes_wiz4 3>, <&serdes_wiz4 4>; + cdns,max-bit-rate =3D <5400>; + cdns,num-lanes =3D <4>; + cdns,phy-type =3D ; + }; +}; + +&serdes_refclk { + clock-frequency =3D <100000000>; + status =3D "okay"; +}; + +&serdes_ln_ctrl { + idle-states =3D , /* Aquila PCIE_2 = L0 */ + , /* Aquila PCIE_2 L1 = */ + , /* On-module PCIe Wi-Fi = */ + , /* Aquila USB0 SS = */ + , /* Aquila PCIE_1 L0 = */ + , /* Aquila PCIE_1 L1 = */ + , /* On-module PCIe USB Brid= ge */ + , /* Aquila SGMII MSP_9 = */ + , /* Aquila SGMII MSP_6 = */ + , /* Aquila SGMII MSP_7 = */ + , /* Aquila SGMII MSP_8 = */ + , /* Aquila ETH_2 xGMII = */ + , /* Aquila DP L0 = */ + , /* Aquila DP L1 = */ + , /* Aquila DP L2 = */ + ; /* Aquila DP L3 = */ +}; + +&serdes_wiz0 { + status =3D "okay"; +}; + +&serdes_wiz1 { + status =3D "okay"; +}; + +&serdes_wiz2 { + status =3D "disabled"; +}; + +&serdes_wiz4 { + status =3D "disabled"; +}; + +/* Aquila ADC_[1-4] */ +&tscadc0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_mcu_adc0>; + status =3D "disabled"; + + adc { + ti,adc-channels =3D <0 1 2 3>; + }; +}; + +&usb0 { + phys =3D <&serdes0_usb0_ss_link>; + phy-names =3D "cdns3,usb3-phy"; + dr_mode =3D "otg"; + maximum-speed =3D "super-speed"; + usb-role-switch; + status =3D "disabled"; +}; + +&usb_serdes_mux { + idle-states =3D <0>; /* USB0 to SERDES lane 3 */ +}; + +&usbss0 { + ti,vbus-divider; + status =3D "disabled"; +}; + +&wkup_gpio0 { + gpio-line-names =3D + "", /* 0 */ + "", + "", + "AQUILA_C53", + "AQUILA_B55", + "AQUILA_B56", + "AQUILA_B32", + "AQUILA_B34", + "AQUILA_C17", + "AQUILA_C16", + "AQUILA_D22", /* 10 */ + "", + "", + "", + "", + "", + "AQUILA_B65", + "AQUILA_C20", + "AQUILA_B63", + "AQUILA_B68", + "AQUILA_B67", /* 20 */ + "AQUILA_B61", + "AQUILA_B60", + "AQUILA_B70", + "AQUILA_B71", + "AQUILA_B72", + "AQUILC_B73", + "AQUILA_B66", + "AQUILA_B62", + "AQUILA_C21", + "AQUILA_C22", /* 30 */ + "AQUILA_C23", + "AQUILA_C01", + "AQUILA_C02", + "", + "AQUILA_D21", + "", + "AQUILA_C03", + "AQUILA_C24", + "AQUILA_C04", + "AQUILA_B84", /* 40 */ + "", + "AQUILA_B86", + "AQUILA_B87", + "", + "", + "AQUILA_B83", + "", + "", + "", + "", /* 50 */ + "", + "", + "", + "", + "", + "", + "", + "AQUILA_B31", + "AQUILA_B33", + "AQUILA_B50", /* 60 */ + "AQUILA_B51", + "", + "", + "", + "AQUILA_D08", + "", + "", + "", + "", + "", /* 70 */ + "AQUILA_D01", + "AQUILA_D02", + "AQUILA_D03", + "AQUILA_D04", + "AQUILA_D54", + "AQUILA_D55", + "AQUILA_C55", + "AQUILA_C56", + "", + "AQUILA_C36", /* 80 */ + "", + "", + "", + "", + "", + "", + "AQUILA_D07", + ""; + + status =3D "okay"; +}; + +/* On-module I2C - WKUP_I2C0 */ +&wkup_i2c0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_wkup_i2c0>; + clock-frequency =3D <400000>; + status =3D "okay"; + + som_gpio_expander: gpio@21 { + compatible =3D "ti,tca6408"; + reg =3D <0x21>; + #gpio-cells =3D <2>; + gpio-controller; + gpio-line-names =3D + "USB_MUX_SEL", + "COLD_RESET_REQ", + "PWR_DOWN_REQ", + "PCIE_3_RESET#", + "PCIE_4_RESET#", + "WIFI_DISABLE", + "BT_DISABLE", + "SDIO_PWR_SEL_3.3V"; + }; + + rtc_i2c: rtc@32 { + compatible =3D "epson,rx8130"; + reg =3D <0x32>; + }; + + tps62873a: regulator@40 { + compatible =3D "ti,tps62873"; + reg =3D <0x40>; + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt =3D <900000>; + regulator-min-microvolt =3D <600000>; + regulator-name =3D "+VDD_CPU_AVS"; + }; + + tps62873b: regulator@43 { + compatible =3D "ti,tps62873"; + reg =3D <0x43>; + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt =3D <840000>; + regulator-min-microvolt =3D <760000>; + regulator-name =3D "+V0.8_VDD_CORE"; + }; + + pmic_tps6594: pmic@48 { + compatible =3D "ti,tps6594-q1"; + reg =3D <0x48>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_pmic_int>; + interrupt-parent =3D <&main_gpio0>; + interrupts =3D <0 IRQ_TYPE_EDGE_FALLING>; + #gpio-cells =3D <2>; + gpio-controller; + buck12-supply =3D <®_vin>; + buck3-supply =3D <®_vin>; + buck4-supply =3D <®_vin>; + buck5-supply =3D <®_vin>; + ldo1-supply =3D <®_vin>; + ldo2-supply =3D <®_vin>; + ldo3-supply =3D <®_vin>; + ldo4-supply =3D <®_vin>; + system-power-controller; + ti,primary-pmic; + + regulators { + reg_vdd_ddr: buck12 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt =3D <1100000>; + regulator-min-microvolt =3D <1100000>; + regulator-name =3D "+V1.1_VDD_DDR (PMIC BUCK12)"; + }; + + reg_vdd_ram: buck3 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt =3D <850000>; + regulator-min-microvolt =3D <850000>; + regulator-name =3D "+V0.85_VDD_RAM (PMIC BUCK3)"; + }; + + reg_vdd_io: buck4 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt =3D <1800000>; + regulator-min-microvolt =3D <1800000>; + regulator-name =3D "+V1.8_VDD_IO (PMIC BUCK4)"; + }; + + reg_3v3_vio: buck5 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt =3D <3300000>; + regulator-min-microvolt =3D <3300000>; + regulator-name =3D "+V3.3_VIO (PMIC BUCK5)"; + }; + + reg_vda_phy: ldo1 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt =3D <1800000>; + regulator-min-microvolt =3D <1800000>; + regulator-name =3D "+V1.8_VDA_PHY (PMIC LDO1)"; + }; + + reg_2v5_eth: ldo2 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt =3D <2500000>; + regulator-min-microvolt =3D <2500000>; + regulator-name =3D "+V2.5_ETH (PMIC LDO2)"; + }; + + reg_vda_dll: ldo3 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt =3D <800000>; + regulator-min-microvolt =3D <800000>; + regulator-name =3D "+V0.8_VDA_DLL (PMIC LDO3)"; + }; + + reg_vda_pll: ldo4 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt =3D <1800000>; + regulator-min-microvolt =3D <1800000>; + regulator-name =3D "+V0.8_VDA_PLL (PMIC LDO4)"; + }; + }; + }; + + temperature-sensor@4f { + compatible =3D "ti,tmp1075"; + reg =3D <0x4f>; + }; + + som_eeprom: eeprom@50 { + compatible =3D "st,24c02", "atmel,24c02"; + reg =3D <0x50>; + pagesize =3D <16>; + }; +}; + +&wkup0_crit { + temperature =3D <105000>; +}; + +&wkup0_thermal { + trips { + wkup0_alert0: trip-point0 { + temperature =3D <70000>; + hysteresis =3D <2000>; + type =3D "active"; + }; + + wkup0_alert1: trip-point1 { + temperature =3D <85000>; + hysteresis =3D <2000>; + type =3D "active"; + }; + }; +}; + +&wkup1_crit { + temperature =3D <105000>; +}; + +&wkup1_thermal { + trips { + wkup1_alert0: trip-point0 { + temperature =3D <70000>; + hysteresis =3D <2000>; + type =3D "active"; + }; + + wkup1_alert1: trip-point1 { + temperature =3D <85000>; + hysteresis =3D <2000>; + type =3D "active"; + }; + }; +}; + +&wkup_gpio_intr { + status =3D "okay"; +}; + +/* Aquila UART_2 */ +&wkup_uart0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_wkup_uart0>; + status =3D "disabled"; +}; + +#include "k3-j784s4-j742s2-ti-ipc-firmware-common.dtsi" +#include "k3-j784s4-ti-ipc-firmware.dtsi" --=20 2.47.3 From nobody Sun Feb 8 12:20:00 2026 Received: from mail11.truemail.it (mail11.truemail.it [217.194.8.81]) (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 45F893491D5; Tue, 11 Nov 2025 17:55:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.194.8.81 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762883727; cv=none; b=dlZ7WtGsCZZo/xQW89LJp9PiIDYNSmzb8F+P79P3LL5Y9o/rjQLQiaDVXfrpH/5tWu1c1wp+1bhm2dtKX6A03x9SMlvkhi1xcfyNI694TfXccQyBjrzWDXc4AkI6Q7BklIx5yxSqaUYcj1mrUq16Lf+hMfypzQ7sbMeF77kXfz0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762883727; c=relaxed/simple; bh=S3CR/rmWKIuSpNmdeh2++bl9oPDtVQyELsrTudhf3bY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=IfpddJVZcMl3sM8gXVtOfG+7RKWosyePh9sLNaEBAVk3sM36CzmKorCsiFfbI9HvStuqBcbcqwsfUUklGU8YAWkMdypsz0vRZyK8lumKqnIctkRcFTTGiZt2i0o4lAVGzj62ZP8kCY8oJtccQBJ089y0+R3Gveg8pszaiZM0B3E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=dolcini.it; spf=pass smtp.mailfrom=dolcini.it; dkim=pass (2048-bit key) header.d=dolcini.it header.i=@dolcini.it header.b=T+fuFweA; arc=none smtp.client-ip=217.194.8.81 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=dolcini.it Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=dolcini.it Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=dolcini.it header.i=@dolcini.it header.b="T+fuFweA" Received: from localhost.localdomain (93-49-2-63.ip317.fastwebnet.it [93.49.2.63]) by mail11.truemail.it (Postfix) with ESMTPA id C9B032066A; Tue, 11 Nov 2025 18:55:22 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dolcini.it; s=default; t=1762883723; bh=Eaip8AdhOCbRHgTWtwEuZ3MgJilgQehobKZmsLCH+jk=; h=From:To:Subject; b=T+fuFweACLg2cZyxBZkq1GWczh31MR+AqTLj1QNnPm7wDaa/DEyiKwThSXr/q6tOp dIhibU2EB2fSggrcMmDL0YBFzXq0jbG7HizJizpZyxzAgFU4TtYyqbcrRqsx4IGL4R kfWw/Sru8deUAVHOfnpMYLfz214K5BuxlRG9xSr6SiRTVMqnQ0aq/1J5QCMspAtEcv d40cYKnpm2vK5q2wO6Sj2XQ/Kls8g5ABrxFkLvtMtuXkedXHJA6yMebEAVShcpfCxL zNAvE+z/B2Fr9S4MVoD0mRt4FwyKyf2aAuPZpFIkQUSZSUUmcfxWX8v8G2hhWlP2dD 8k9rnOe8RrWQg== From: Francesco Dolcini To: Nishanth Menon , Vignesh Raghavendra , Tero Kristo , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Gon=C3=A7alves?= , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Francesco Dolcini Subject: [PATCH v2 3/3] arm64: dts: ti: am69-aquila: Add Clover Date: Tue, 11 Nov 2025 18:54:59 +0100 Message-ID: <20251111175502.8847-4-francesco@dolcini.it> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251111175502.8847-1-francesco@dolcini.it> References: <20251111175502.8847-1-francesco@dolcini.it> 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 From: Jo=C3=A3o Paulo Gon=C3=A7alves Add support for Aquila AM69 mated with Clover carrier board. Link: https://www.toradex.com/computer-on-modules/aquila-arm-family/ti-am69 Link: https://www.toradex.com/products/carrier-board/clover Signed-off-by: Jo=C3=A3o Paulo Gon=C3=A7alves Signed-off-by: Francesco Dolcini --- v2: no changes --- arch/arm64/boot/dts/ti/Makefile | 1 + .../boot/dts/ti/k3-am69-aquila-clover.dts | 451 ++++++++++++++++++ 2 files changed, 452 insertions(+) create mode 100644 arch/arm64/boot/dts/ti/k3-am69-aquila-clover.dts diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makef= ile index 6ce652fe98fa..38a93b689fe7 100644 --- a/arch/arm64/boot/dts/ti/Makefile +++ b/arch/arm64/boot/dts/ti/Makefile @@ -153,6 +153,7 @@ dtb-$(CONFIG_ARCH_K3) +=3D k3-j722s-evm-csi2-quad-rpi-c= am-imx219.dtbo dtb-$(CONFIG_ARCH_K3) +=3D k3-j722s-evm-csi2-quad-tevi-ov5640.dtbo =20 # Boards with J784s4 SoC +dtb-$(CONFIG_ARCH_K3) +=3D k3-am69-aquila-clover.dtb dtb-$(CONFIG_ARCH_K3) +=3D k3-am69-aquila-dev.dtb dtb-$(CONFIG_ARCH_K3) +=3D k3-am69-sk.dtb dtb-$(CONFIG_ARCH_K3) +=3D k3-am69-sk-pcie0-ep.dtbo diff --git a/arch/arm64/boot/dts/ti/k3-am69-aquila-clover.dts b/arch/arm64/= boot/dts/ti/k3-am69-aquila-clover.dts new file mode 100644 index 000000000000..55fd214a82e4 --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am69-aquila-clover.dts @@ -0,0 +1,451 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright (C) 2025 Toradex + * + * https://www.toradex.com/computer-on-modules/aquila-arm-family/ti-am69 + * https://www.toradex.com/products/carrier-board/clover + */ + +/dts-v1/; + +#include +#include "k3-am69-aquila.dtsi" + +/ { + model =3D "Toradex Aquila AM69 on Clover Board"; + compatible =3D "toradex,aquila-am69-clover", + "toradex,aquila-am69", + "ti,j784s4"; + + aliases { + eeprom1 =3D &carrier_eeprom; + }; + + reg_3v3_dp: regulator-3v3-dp { + compatible =3D "regulator-fixed"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio_21_dp>; + /* Aquila GPIO_21_DP (AQUILA B57) */ + gpio =3D <&main_gpio0 37 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 DP_1 */ + dp-connector { + compatible =3D "dp-connector"; + dp-pwr-supply =3D <®_3v3_dp>; + label =3D "Display Port"; + type =3D "full-size"; + + port { + dp_connector_in: endpoint { + remote-endpoint =3D <&dp0_out>; + }; + }; + }; +}; + +/* On-module ETH_1 MDIO */ +&davinci_mdio { + status =3D "okay"; +}; + +&dp0_ports { + port@4 { + reg =3D <4>; + dp0_out: endpoint { + remote-endpoint =3D <&dp_connector_in>; + }; + }; +}; + +&dss { + status =3D "okay"; +}; + +&main0_thermal { + cooling-maps { + map0 { + cooling-device =3D <&fan 1 1>; + trip =3D <&main0_alert0>; + }; + + map1 { + cooling-device =3D <&fan 2 2>; + trip =3D <&main0_alert1>; + }; + }; +}; + +&main1_thermal { + cooling-maps { + map0 { + cooling-device =3D <&fan 1 1>; + trip =3D <&main1_alert0>; + }; + + map1 { + cooling-device =3D <&fan 2 2>; + trip =3D <&main1_alert1>; + }; + }; +}; + +&main2_thermal { + cooling-maps { + map0 { + cooling-device =3D <&fan 1 1>; + trip =3D <&main2_alert0>; + }; + + map1 { + cooling-device =3D <&fan 2 2>; + trip =3D <&main2_alert1>; + }; + }; +}; + +&main3_thermal { + cooling-maps { + map0 { + cooling-device =3D <&fan 1 1>; + trip =3D <&main3_alert0>; + }; + + map1 { + cooling-device =3D <&fan 2 2>; + trip =3D <&main3_alert1>; + }; + }; +}; + +&main4_thermal { + cooling-maps { + map0 { + cooling-device =3D <&fan 1 1>; + trip =3D <&main4_alert0>; + }; + + map1 { + cooling-device =3D <&fan 2 2>; + trip =3D <&main4_alert1>; + }; + }; +}; + +/* Aquila ETH_2 */ +&main_cpsw0 { + status =3D "okay"; +}; + +/* Aquila ETH_2 SGMII PHY */ +&main_cpsw0_port8 { + phy-handle =3D <&cpsw0_port8_phy4>; + status =3D "okay"; +}; + +/* Aquila ETH_2_XGMII_MDIO */ +&main_cpsw0_mdio { + status =3D "okay"; + + cpsw0_port8_phy4: ethernet-phy@4 { + reg =3D <4>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_eth2_int>; + interrupt-parent =3D <&main_gpio0>; + interrupts =3D <44 IRQ_TYPE_EDGE_FALLING>; + }; +}; + +/* Aquila PWM_1 */ +&main_ehrpwm0 { + status =3D "okay"; +}; + +/* Aquila PWM_2 */ +&main_ehrpwm1 { + status =3D "okay"; +}; + +&main_gpio0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio_01>, /* Aquila GPIO_01 */ + <&pinctrl_gpio_02>, /* Aquila GPIO_02 */ + <&pinctrl_gpio_03>; /* Aquila GPIO_03 */ +}; + +/* Aquila I2C_6 */ +&main_i2c5 { + status =3D "okay"; +}; + +/* Aquila CAN_1 */ +&main_mcan10 { + status =3D "okay"; +}; + +/* Aquila CAN_3 */ +&main_mcan13 { + status =3D "okay"; +}; + +/* Aquila SD_1 */ +&main_sdhci1 { + status =3D "okay"; +}; + +/* Aquila SPI_2 */ +&main_spi0 { + status =3D "okay"; +}; + +/* Aquila SPI_1 */ +&main_spi2 { + pinctrl-0 =3D <&pinctrl_main_spi2>, + <&pinctrl_main_spi2_cs0>, + <&pinctrl_gpio_05>; + cs-gpios =3D <0>, <&wkup_gpio0 29 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_06>; + interrupt-parent =3D <&wkup_gpio0>; + interrupts =3D <30 IRQ_TYPE_EDGE_FALLING>; + spi-max-frequency =3D <18500000>; + }; +}; + +/* Aquila UART_1 */ +&main_uart4 { + status =3D "okay"; +}; + +/* Aquila UART_3, used as the Linux console */ +&main_uart8 { + status =3D "okay"; +}; + +&mcu_cpsw { + status =3D "okay"; +}; + +/* On-module ETH_1 RGMII */ +&mcu_cpsw_port1 { + status =3D "okay"; +}; + +/* Aquila I2C_1 */ +&mcu_i2c0 { + clock-frequency =3D <100000>; + status =3D "okay"; + + fan_controller: fan@18 { + compatible =3D "ti,amc6821"; + reg =3D <0x18>; + #pwm-cells =3D <2>; + + fan: fan { + cooling-levels =3D <102 179 255>; + #cooling-cells =3D <2>; + 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>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_usb1_int>; + interrupt-parent =3D <&main_gpio0>; + interrupts =3D <28 IRQ_TYPE_EDGE_FALLING>; + + connector { + compatible =3D "usb-c-connector"; + data-role =3D "dual"; + label =3D "USB-C OTG"; + power-role =3D "dual"; + try-power-role =3D "sink"; + self-powered; + source-pdos =3D ; + sink-pdos =3D ; + op-sink-microwatt =3D <1000000>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + + usb_1_con_hs: endpoint { + remote-endpoint =3D <&usb0_hs>; + }; + }; + + port@1 { + reg =3D <1>; + + usb_1_con_ss: endpoint { + remote-endpoint =3D <&usb0_ss_mux>; + }; + }; + }; + }; + }; + + carrier_eeprom: eeprom@57 { + compatible =3D "st,24c02", "atmel,24c02"; + reg =3D <0x57>; + pagesize =3D <16>; + }; +}; + +/* Aquila I2C_2 */ +&mcu_i2c1 { + status =3D "okay"; +}; + +/* Aquila CAN_2 */ +&mcu_mcan0 { + status =3D "okay"; +}; + +/* Aquila CAN_4 */ +&mcu_mcan1 { + status =3D "okay"; +}; + +/* Aquila UART_4 */ +&mcu_uart0 { + status =3D "okay"; +}; + +&mhdp { + status =3D "okay"; +}; + +/* Aquila QSPI_1 */ +&ospi0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_mcu_ospi0_4bit>, <&pinctrl_mcu_ospi0_cs0>; + status =3D "okay"; + + flash@0 { + compatible =3D "jedec,spi-nor"; + reg =3D <0>; + 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>; + }; +}; + +/* Aquila PCIE_1 */ +&pcie0_rc { + status =3D "okay"; +}; + +/* Aquila PCIE_2 */ +&pcie1_rc { + status =3D "okay"; +}; + +&serdes2 { + status =3D "okay"; +}; + +&serdes4 { + status =3D "okay"; +}; + +&serdes_wiz2 { + status =3D "okay"; +}; + +&serdes_wiz4 { + status =3D "okay"; +}; + +/* Aquila ADC_[1-4] */ +&tscadc0 { + status =3D "okay"; +}; + +&usbss0 { + status =3D "okay"; +}; + +&usb0ss_mux { + status =3D "okay"; + + port { + usb0_ss_mux: endpoint { + remote-endpoint =3D <&usb_1_con_ss>; + }; + }; +}; + +&usb0 { + status =3D "okay"; + + port { + usb0_hs: endpoint { + remote-endpoint =3D <&usb_1_con_hs>; + }; + }; +}; + +&wkup0_thermal { + cooling-maps { + map0 { + cooling-device =3D <&fan 1 1>; + trip =3D <&wkup0_alert0>; + }; + + map1 { + cooling-device =3D <&fan 2 2>; + trip =3D <&wkup0_alert1>; + }; + }; +}; + +&wkup1_thermal { + cooling-maps { + map0 { + cooling-device =3D <&fan 1 1>; + trip =3D <&wkup1_alert0>; + }; + + map1 { + cooling-device =3D <&fan 2 2>; + trip =3D <&wkup1_alert1>; + }; + }; +}; + +&wkup_gpio0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio_04>; /* Aquila GPIO_04 */ +}; + +/* Aquila UART_2 */ +&wkup_uart0 { + status =3D "okay"; +}; --=20 2.47.3