From nobody Mon Feb 9 16:45:17 2026 Received: from mx-relay99-hz1.antispameurope.com (mx-relay99-hz1.antispameurope.com [94.100.132.95]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5F9C3345740 for ; Thu, 18 Dec 2025 15:46:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=94.100.132.95 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766072778; cv=pass; b=R9l0TiI5aU6NX9Fg1ANJGIYaZw/wyM/ljz5XKILrEhLulPRNqUWyUsL9ON2st571QLXTfMYCA3b8UIgMzHidCnil4JAf1M8vPEoZnPiouzKH7uMDjNM2/FxpYhpzY9JPn4w3Wwpkta+Bpd32h/0ML+fTbQ1oRm2HNqsEmsZ696k= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766072778; c=relaxed/simple; bh=TjirjVRMeNN724W3cnJ8MpH4cln0KMXng+KgG/ZeZ/s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BGbCd8aoEY83LJvgB5xU2ywmKwU7C1Dx8cNzvI7QW/yKvyxZjR4L+q9JC2lSROFwb6GP4o3PJJAH+1JuMCMBceTcZSmAmr6ooqPIYH+yMhG1ywrV3CCFnPUX41JJKHO39cmEUb7v4V9RwW/mZ2dKW4ygUuK177zahD2P9ItO/kM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ew.tq-group.com; spf=pass smtp.mailfrom=ew.tq-group.com; dkim=pass (2048-bit key) header.d=ew.tq-group.com header.i=@ew.tq-group.com header.b=kHfugehc; arc=pass smtp.client-ip=94.100.132.95 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ew.tq-group.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ew.tq-group.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ew.tq-group.com header.i=@ew.tq-group.com header.b="kHfugehc" ARC-Authentication-Results: i=1; mx-gate99-hz1.hornetsecurity.com 1; spf=pass reason=mailfrom (ip=94.100.132.6, headerfrom=ew.tq-group.com) smtp.mailfrom=ew.tq-group.com smtp.helo=hmail-p-smtp01-out04-hz1.hornetsecurity.com; dmarc=pass header.from=ew.tq-group.com orig.disposition=pass ARC-Message-Signature: a=rsa-sha256; bh=k7TywXsty9WvrmnHMsjtMRzkHHELHfro4OivmozlV88=; c=relaxed/relaxed; d=hornetsecurity.com; h=from:to:date:subject:mime-version:; i=1; s=hse1; t=1766072685; b=J00crMM7xsX+oVIf15opSA0OHcKqHuu+jzEVn+K2Clfso0mCqOmsckdxXH9nWceckD42vZer 5oXPcfaelVRFUgOCZWVRuJUskBb8mxVFC3QElVGBqbmEp/PoTH19+2xndw54VzzuhX1qEHpQeX8 BG5EtthyH9WS/BEjCSIFuLL2cO5D3/c3iXMkZeW6JCwe2OVvweyleXEYmbqcveX1pllVJh/7UsC 3KFdz7KPCynq0PWZjX/kbp1XPGkDmNYMOQw9i9gBizt9HGPZU10e97okoM9rKhXPJcfg6gG3Pzi SqIYT24RhOTKFY21N9ZP9+VaK4JS9JQlD/DISutvfeNIA== ARC-Seal: a=rsa-sha256; cv=none; d=hornetsecurity.com; i=1; s=hse1; t=1766072685; b=hUKVZVAaXzQJi8AaN6OmWrT+CGa3HMclyyQIUMjY177xeYqcCUyv3xLsTEoLWp8VuYtheHtB f8JTjyzgldtR++OntqRgxcC6ydhdHzFI6/pebmQuuFLuJEhry42hQ2PKUNGjVy4qQjcU82/LicL z98rYxuVHTkCfB1+YSwtz7dli5hPco8bLk2I7IVy3aUpR0ldsK4fzTWptXiR1TjKMMJbODFbv1F XNJnzeSHFtuvjXIgKLb0KsNdf5OoY6FF0atLTXcM0ystCp6697KfD4FiuZ3wL+AKxJDixAEufTk aC4pkBAuPNRd9tAPRNiFsrQFl2F+rtyFUuczVVBkCBZvw== Received: from he-nlb01-hz1.hornetsecurity.com ([94.100.132.6]) by mx-relay99-hz1.antispameurope.com; Thu, 18 Dec 2025 16:44:45 +0100 Received: from steina-w.tq-net.de (host-82-135-125-110.customer.m-online.net [82.135.125.110]) (Authenticated sender: alexander.stein@ew.tq-group.com) by hmail-p-smtp01-out04-hz1.hornetsecurity.com (Postfix) with ESMTPSA id A4C8F220C31; Thu, 18 Dec 2025 16:44:23 +0100 (CET) From: Alexander Stein To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Michael Turquette , Stephen Boyd , Peter Chen , Pawel Laszczak , Roger Quadros , Greg Kroah-Hartman , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Magnus Damm , Marek Vasut Cc: Alexander Stein , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-usb@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux@ew.tq-group.com Subject: [PATCH 5/6] arm64: dts: Add TQ imx8qm based board Date: Thu, 18 Dec 2025 16:44:07 +0100 Message-ID: <20251218154412.1524249-1-alexander.stein@ew.tq-group.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251218152058.1521806-1-alexander.stein@ew.tq-group.com> References: <20251218152058.1521806-1-alexander.stein@ew.tq-group.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-cloud-security-sender: alexander.stein@ew.tq-group.com X-cloud-security-recipient: linux-kernel@vger.kernel.org X-cloud-security-crypt: load encryption module X-cloud-security-Mailarchiv: E-Mail archived for: alexander.stein@ew.tq-group.com X-cloud-security-Mailarchivtype: outbound X-cloud-security-Virusscan: CLEAN X-cloud-security-disclaimer: This E-Mail was scanned by E-Mailservice on mx-relay99-hz1.antispameurope.com with 4dXFMr5zdzz1X6lj X-cloud-security-connect: he-nlb01-hz1.hornetsecurity.com[94.100.132.6], TLS=1, IP=94.100.132.6 X-cloud-security-Digest: f7be90e32b4445bc325fe1cec35ca314 X-cloud-security: scantime:2.092 DKIM-Signature: a=rsa-sha256; bh=k7TywXsty9WvrmnHMsjtMRzkHHELHfro4OivmozlV88=; c=relaxed/relaxed; d=ew.tq-group.com; h=content-type:mime-version:subject:from:to:message-id:date; s=hse1; t=1766072684; v=1; b=kHfugehcPoH3T2LDe9M18XVwUtuoDmX1/S5DHBz9Ll7jNZtpbJjb3EmjQDoqk0G5N6qG2TaC hW4I/HOn88yb1nuUk/mFpo/WWQR5lACkOXJ+ItI94PsXBJghFyxe/hTVaP43Y4QaiwY3mEkQr+D MPhbEuucYJO2eDnC6XmwhzOeBdooN3FM8gkWJ8lLQ2qpTL6wlxqIUMJ1xUALa2Em4G7Nebaog79 HWpV8pUzwCZ9Cp5Fm+bemB/Ylmd5pqzZArPtlAj4vFX3FhFQtNKlzdmlF70Sh2YSP73PXJqC9me 2r2vbwMAJWGY9TjwWxEORFUS51WMJcCdJMUh58GBH4TRA== Content-Type: text/plain; charset="utf-8" * TQMa8QM on MBa8x Signed-off-by: Alexander Stein --- arch/arm64/boot/dts/freescale/Makefile | 1 + .../dts/freescale/imx8qm-tqma8qm-mba8x.dts | 908 ++++++++++++++++++ .../boot/dts/freescale/imx8qm-tqma8qm.dtsi | 315 ++++++ 3 files changed, 1224 insertions(+) create mode 100644 arch/arm64/boot/dts/freescale/imx8qm-tqma8qm-mba8x.dts create mode 100644 arch/arm64/boot/dts/freescale/imx8qm-tqma8qm.dtsi diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/f= reescale/Makefile index dabc84be0c2e8..72f151a0cccfd 100644 --- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile @@ -344,6 +344,7 @@ dtb-$(CONFIG_ARCH_MXC) +=3D imx8qm-apalis-v1.1-eval-v1.= 2.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx8qm-apalis-v1.1-ixora-v1.1.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx8qm-apalis-v1.1-ixora-v1.2.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx8qm-mek.dtb +dtb-$(CONFIG_ARCH_MXC) +=3D imx8qm-tqma8qm-mba8x.dtb =20 imx8qm-mek-ov5640-csi0-dtbs :=3D imx8qm-mek.dtb imx8qm-mek-ov5640-csi0.dtbo dtb-${CONFIG_ARCH_MXC} +=3D imx8qm-mek-ov5640-csi0.dtb diff --git a/arch/arm64/boot/dts/freescale/imx8qm-tqma8qm-mba8x.dts b/arch/= arm64/boot/dts/freescale/imx8qm-tqma8qm-mba8x.dts new file mode 100644 index 0000000000000..ba19c3c17c496 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8qm-tqma8qm-mba8x.dts @@ -0,0 +1,908 @@ +// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT) +/* + * Copyright (c) 2019-2025 TQ-Systems GmbH , + * D-82229 Seefeld, Germany. + * Author: Alexander Stein + */ + +/dts-v1/; + +#include +#include +#include +#include + +#include "imx8qm-tqma8qm.dtsi" + +/ { + model =3D "TQ-Systems i.MX8QM TQMa8QM on MBa8x"; + compatible =3D "tq,imx8qm-tqma8qm-mba8x", "tq,imx8qm-tqma8qm", "fsl,imx8q= m"; + + aliases { + rtc0 =3D &pcf85063; + rtc1 =3D &rtc; + }; + + chosen { + stdout-path =3D &lpuart0; + }; + + adc { + compatible =3D "iio-hwmon"; + io-channels =3D <&adc0 0>, <&adc0 1>, <&adc0 2>; + }; + + clk_xtal25: clk-xtal25 { + compatible =3D "fixed-clock"; + #clock-cells =3D <0>; + clock-frequency =3D <25000000>; + }; + + fan0: pwm-fan { + compatible =3D "pwm-fan"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_pwmfan>; + fan-supply =3D <®_pwm_fan>; + #cooling-cells =3D <2>; + /* typical 25 kHz -> 40.000 nsec */ + pwms =3D <&lsio_pwm3 0 40000 PWM_POLARITY_INVERTED>; + cooling-levels =3D <0 32 64 128 196 240>; + pulses-per-revolution =3D <2>; + interrupt-parent =3D <&lsio_gpio2>; + interrupts =3D <20 IRQ_TYPE_EDGE_FALLING>; + status =3D "disabled"; + }; + + gpio-keys { + compatible =3D "gpio-keys"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpiokeys>; + autorepeat; + + switch-1 { + label =3D "SWITCH_A"; + linux,code =3D ; + gpios =3D <&lsio_gpio2 11 GPIO_ACTIVE_LOW>; + wakeup-source; + }; + + switch-2 { + label =3D "SWITCH_B"; + linux,code =3D ; + gpios =3D <&lsio_gpio1 0 GPIO_ACTIVE_LOW>; + wakeup-source; + }; + }; + + gpio-leds { + compatible =3D "gpio-leds"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpioled>; + + user-led0 { + color =3D ; + function =3D LED_FUNCTION_HEARTBEAT; + gpios =3D <&lsio_gpio5 20 GPIO_ACTIVE_HIGH>; + linux,default-trigger =3D "heartbeat"; + }; + + user-led1 { + color =3D ; + function =3D LED_FUNCTION_STATUS; + gpios =3D <&lsio_gpio5 19 GPIO_ACTIVE_HIGH>; + default-state =3D "on"; + }; + }; + + reg_mba8x_v3v3: regulator-mba8x-v3v3 { + compatible =3D "regulator-fixed"; + regulator-name =3D "V_3V3_MB"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + regulator-always-on; + }; + + reg_mba8x_12v: regulator-mba8x-12v { + compatible =3D "regulator-fixed"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_reg_mba8x_12v>; + regulator-name =3D "MBa8x-V12"; + regulator-min-microvolt =3D <12000000>; + regulator-max-microvolt =3D <12000000>; + enable-active-high; + gpio =3D <&lsio_gpio1 2 GPIO_ACTIVE_HIGH>; + }; + + reg_pwm_fan: regulator-pwm-fan { + compatible =3D "regulator-fixed"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_regpwmfan>; + regulator-name =3D "FAN_PWR"; + regulator-min-microvolt =3D <12000000>; + regulator-max-microvolt =3D <12000000>; + gpio =3D <&lsio_gpio2 12 GPIO_ACTIVE_HIGH>; + enable-active-high; + vin-supply =3D <®_mba8x_12v>; + }; + + reg_usb_phy: regulator-usb-phy { + compatible =3D "regulator-fixed"; + regulator-max-microvolt =3D <3000000>; + regulator-min-microvolt =3D <3000000>; + regulator-name =3D "usb-phy-dummy"; + }; + + reg_v1v5_pcie: regulator-v1v5-pcie { + compatible =3D "regulator-fixed"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_reg_pcie_v1v5>; + regulator-name =3D "V_1V5_MPCIE"; + regulator-min-microvolt =3D <1500000>; + regulator-max-microvolt =3D <1500000>; + vin-supply =3D <®_mba8x_v3v3>; + enable-active-high; + gpio =3D <&lsio_gpio0 31 GPIO_ACTIVE_HIGH>; + regulator-always-on; + }; + + reg_vref_v1v8: regulator-vref-v1v8 { + compatible =3D "regulator-fixed"; + regulator-name =3D "VREF_V1V8"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-always-on; + }; + + reg_v1v8: regulator-v1v8 { + compatible =3D "regulator-fixed"; + regulator-name =3D "MBa8x-V1V8"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-always-on; + }; + + reg_v3v3_pcie: regulator-v3v3-pcie { + compatible =3D "regulator-fixed"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_reg_pcie_v3v3>; + regulator-name =3D "V_3V3_MPCIE"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + vin-supply =3D <®_mba8x_v3v3>; + enable-active-high; + gpio =3D <&lsio_gpio1 1 GPIO_ACTIVE_HIGH>; + regulator-always-on; + }; + + reg_v3v3_sd: regulator-v3v3-sd { + compatible =3D "regulator-fixed"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_reg_v3v3_sd>; + regulator-name =3D "V3V3_SD"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + vin-supply =3D <®_mba8x_v3v3>; + gpio =3D <&lsio_gpio4 7 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-boot-on; + off-on-delay-us =3D <200000>; + }; + + reserved-memory { + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges; + + decoder_boot: decoder-boot@84000000 { + reg =3D <0 0x84000000 0 0x2000000>; + no-map; + }; + + encoder1_boot: encoder1-boot@86000000 { + reg =3D <0 0x86000000 0 0x200000>; + no-map; + }; + + encoder2_boot: encoder2-boot@86200000 { + reg =3D <0 0x86200000 0 0x200000>; + no-map; + }; + + decoder_rpc: decoder-rpc@92000000 { + reg =3D <0 0x92000000 0 0x100000>; + no-map; + }; + + encoder1_rpc: encoder1-rpc@92100000 { + reg =3D <0 0x92100000 0 0x700000>; + no-map; + }; + + encoder2_rpc: encoder1-rpc@92800000 { + reg =3D <0 0x92800000 0 0x700000>; + no-map; + }; + + /* + * global autoconfigured region for contiguous allocations + * must not exceed memory size and region + */ + linux,cma { + compatible =3D "shared-dma-pool"; + reusable; + size =3D <0 0x3c000000>; + alloc-ranges =3D <0 0x96000000 0 0x3c000000>; + linux,cma-default; + }; + }; + + sound { + compatible =3D "fsl,imx-audio-tlv320aic32x4"; + model =3D "tqm-tlv320aic32"; + ssi-controller =3D <&sai1>; + audio-codec =3D <&tlv320aic3x04>; + audio-routing =3D + "IN3_L", "Mic Jack", + "Mic Jack", "Mic Bias", + "IN1_L", "Line In Jack", + "IN1_R", "Line In Jack", + "Line Out Jack", "LOL", + "Line Out Jack", "LOR"; + }; + + sound-hdmi { + compatible =3D "fsl,imx-audio-hdmi"; + model =3D "imx-audio-dp"; + audio-cpu =3D <&sai5>; + hdmi-out; + }; + + thermal-zones { + cpu0-thermal { + trips { + soc_active0_0: trip-active0 { + temperature =3D <40000>; + hysteresis =3D <5000>; + type =3D "active"; + }; + + soc_active0_1: trip-active1 { + temperature =3D <48000>; + hysteresis =3D <3000>; + type =3D "active"; + }; + + soc_active0_2: trip-active2 { + temperature =3D <60000>; + hysteresis =3D <10000>; + type =3D "active"; + }; + }; + + cooling-maps { + map1 { + trip =3D <&soc_active0_0>; + cooling-device =3D <&fan0 1 1>; + }; + + map2 { + trip =3D <&soc_active0_1>; + cooling-device =3D <&fan0 2 2>; + }; + + map3 { + trip =3D <&soc_active0_2>; + cooling-device =3D <&fan0 3 3>; + }; + }; + }; + + cpu1-thermal { + trips { + soc_active1_0: trip-active0 { + temperature =3D <40000>; + hysteresis =3D <5000>; + type =3D "active"; + }; + + soc_active1_1: trip-active1 { + temperature =3D <48000>; + hysteresis =3D <3000>; + type =3D "active"; + }; + + soc_active1_2: trip-active2 { + temperature =3D <60000>; + hysteresis =3D <10000>; + type =3D "active"; + }; + }; + + cooling-maps { + map1 { + trip =3D <&soc_active1_0>; + cooling-device =3D <&fan0 1 1>; + }; + + map2 { + trip =3D <&soc_active1_1>; + cooling-device =3D <&fan0 2 2>; + }; + + map3 { + trip =3D <&soc_active1_2>; + cooling-device =3D <&fan0 3 3>; + }; + }; + }; + }; +}; + +&fec1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_fec1>; + phy-mode =3D "rgmii-id"; + phy-handle =3D <ðphy0>; + nvmem-cells =3D <&fec_mac0>; + nvmem-cell-names =3D "mac-address"; + fsl,magic-packet; + status =3D "okay"; + + mdio { + #address-cells =3D <1>; + #size-cells =3D <0>; + + ethphy0: ethernet-phy@0 { + compatible =3D "ethernet-phy-ieee802.3-c22"; + reg =3D <0>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_ethphy0>; + ti,rx-internal-delay =3D ; + ti,tx-internal-delay =3D ; + ti,fifo-depth =3D ; + ti,dp83867-rxctrl-strap-quirk; + ti,clk-output-sel =3D ; + reset-gpios =3D <&lsio_gpio2 6 GPIO_ACTIVE_LOW>; + reset-assert-us =3D <500000>; + reset-deassert-us =3D <50000>; + enet-phy-lane-no-swap; + interrupt-parent =3D <&lsio_gpio2>; + interrupts =3D <8 IRQ_TYPE_LEVEL_LOW>; + }; + }; +}; + +&fec2 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_fec2>; + phy-mode =3D "rgmii-id"; + phy-handle =3D <ðphy3>; + nvmem-cells =3D <&fec_mac1>; + nvmem-cell-names =3D "mac-address"; + fsl,magic-packet; + status =3D "okay"; + + mdio { + #address-cells =3D <1>; + #size-cells =3D <0>; + + ethphy3: ethernet-phy@3 { + compatible =3D "ethernet-phy-ieee802.3-c22"; + reg =3D <3>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_ethphy3>; + ti,rx-internal-delay =3D ; + ti,tx-internal-delay =3D ; + ti,fifo-depth =3D ; + ti,dp83867-rxctrl-strap-quirk; + ti,clk-output-sel =3D ; + reset-gpios =3D <&lsio_gpio2 4 GPIO_ACTIVE_LOW>; + reset-assert-us =3D <500000>; + reset-deassert-us =3D <50000>; + enet-phy-lane-no-swap; + }; + }; +}; + +&flexcan1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_flexcan1>; + xceiver-supply =3D <®_mba8x_v3v3>; + status =3D "okay"; +}; + +&flexcan2 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_flexcan2>; + xceiver-supply =3D <®_mba8x_v3v3>; + status =3D "okay"; +}; + +&hsio_phy { + fsl,hsio-cfg =3D "pciea-pcieb-sata"; + fsl,refclk-pad-mode =3D "input"; + status =3D "okay"; +}; + +/* no refclock gating */ +&hsio_refa_clk { + status =3D "disabled"; +}; + +&hsio_refb_clk { + status =3D "disabled"; +}; + +&i2c1 { + tlv320aic3x04: audio-codec@18 { + compatible =3D "ti,tlv320aic32x4"; + reg =3D <0x18>; + clocks =3D <&mclkout0_lpcg IMX_LPCG_CLK_0>; + clock-names =3D "mclk"; + assigned-clocks =3D <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, + <&mclkout0_lpcg IMX_LPCG_CLK_0>; + assigned-clock-rates =3D <786432000>, <49152000>, <12288000>, <12288000>; + ldoin-supply =3D <®_mba8x_v3v3>; + iov-supply =3D <®_v1v8>; + }; + + sensor1: temperature-sensor@1c { + compatible =3D "nxp,se97b", "jedec,jc-42.4-temp"; + reg =3D <0x1c>; + }; + + eeprom2: eeprom@54 { + compatible =3D "nxp,se97b", "atmel,24c02"; + reg =3D <0x54>; + pagesize =3D <16>; + vcc-supply =3D <®_mba8x_v3v3>; + }; + + pcieclk: clock-generator@68 { + compatible =3D "renesas,9fgv0441"; + reg =3D <0x68>; + clocks =3D <&clk_xtal25>; + #clock-cells =3D <1>; + clock-output-names =3D "DIF0", "DIF1", "DIF2", "DIF3"; + }; +}; + +&lpspi0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_lpspi0 &pinctrl_lpspi0_cs>; + cs-gpios =3D <&lsio_gpio3 5 GPIO_ACTIVE_LOW>, <&lsio_gpio3 6 GPIO_ACTIVE_= LOW>; + status =3D "okay"; +}; + +&lpspi1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_lpspi1 &pinctrl_lpspi1_cs>; + cs-gpios =3D <&lsio_gpio3 24 GPIO_ACTIVE_LOW>, <&lsio_gpio3 25 GPIO_ACTIV= E_LOW>; + status =3D "okay"; +}; + +&lpspi2 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_lpspi2 &pinctrl_lpspi2_cs>; + cs-gpios =3D <&lsio_gpio3 10 GPIO_ACTIVE_LOW>, <&lsio_gpio3 11 GPIO_ACTIV= E_LOW>; + status =3D "okay"; +}; + +&lpuart0 { /* console */ + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_lpuart0>; + status =3D "okay"; +}; + +&lpuart1 { /* X62 pin header */ + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_lpuart1>; + status =3D "okay"; +}; + +&lpuart2 { /* mikroBUS */ + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_lpuart2>; + status =3D "okay"; +}; + +&lsio_gpio2 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio2>; + gpio-line-names =3D "", "", "", "", + "", "PCIE0_DISABLE#", "", ""; + + pcie0-wdisable1-hog { + gpio-hog; + gpios =3D <5 0>; + output-high; + line-name =3D "PCIE0_DISABLE#"; + }; + + pcie-clk-pd-hog { + gpio-hog; + gpios =3D <10 0>; + output-high; + line-name =3D "PCIE_CLK_PD#"; + }; +}; + +&lsio_pwm3 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_lsio_pwm3>; + status =3D "okay"; +}; + +&pciea { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_pciea>; + phys =3D <&hsio_phy 0 PHY_TYPE_PCIE 0>; + phy-names =3D "pcie-phy"; + reset-gpio =3D <&lsio_gpio4 29 GPIO_ACTIVE_LOW>; + status =3D "okay"; +}; + +&pcieb { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_pcieb>; + phys =3D <&hsio_phy 1 PHY_TYPE_PCIE 1>; + phy-names =3D "pcie-phy"; + reset-gpio =3D <&lsio_gpio5 0 GPIO_ACTIVE_LOW>; + status =3D "okay"; +}; + +&phyx1_lpcg { + clocks =3D <&pcieclk 0>, <&hsio_per_clk>, + <&pcieclk 0>, <&hsio_per_clk>; +}; + +&phyx2_lpcg { + clocks =3D <&pcieclk 0>, <&hsio_per_clk>, + <&pcieclk 0>, <&hsio_per_clk>; +}; + +&sai1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_sai1>; + assigned-clocks =3D <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, + <&sai1_lpcg IMX_LPCG_CLK_0>; + assigned-clock-rates =3D <786432000>, <49152000>, <12288000>, <49152000>; + status =3D "okay"; +}; + +&sai5 { + status =3D "okay"; +}; + +&sai5_lpcg { + status =3D "okay"; +}; + +&usbphy1 { + phy-3p0-supply =3D <®_usb_phy>; + status =3D "okay"; +}; + +&usbotg1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_usbotg1>; + srp-disable; + hnp-disable; + adp-disable; + power-active-high; + over-current-active-low; + dr_mode =3D "otg"; + status =3D "okay"; +}; + +&usb3_phy { + status =3D "okay"; +}; + +&usbotg3 { + /* over-current disabled by default */ + status =3D "okay"; +}; + +&usbotg3_cdns3 { + dr_mode =3D "host"; + #address-cells =3D <1>; + #size-cells =3D <0>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_usbhub>; + status =3D "okay"; + + hub_2_0: hub@1 { + compatible =3D "usb451,8142"; + reg =3D <1>; + peer-hub =3D <&hub_3_0>; + reset-gpios =3D <&lsio_gpio2 7 GPIO_ACTIVE_LOW>; + vdd-supply =3D <®_mba8x_v3v3>; + }; + + hub_3_0: hub@2 { + compatible =3D "usb451,8140"; + reg =3D <2>; + peer-hub =3D <&hub_2_0>; + reset-gpios =3D <&lsio_gpio2 7 GPIO_ACTIVE_LOW>; + vdd-supply =3D <®_mba8x_v3v3>; + }; +}; + +&usdhc2 { + pinctrl-names =3D "default", "state_100mhz", "state_200mhz"; + pinctrl-0 =3D <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>; + pinctrl-1 =3D <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>; + pinctrl-2 =3D <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>; + bus-width =3D <4>; + cd-gpios =3D <&lsio_gpio5 22 GPIO_ACTIVE_LOW>; + wp-gpios =3D <&lsio_gpio5 21 GPIO_ACTIVE_HIGH>; + vmmc-supply =3D <®_v3v3_sd>; + no-mmc; + no-sdio; + status =3D "okay"; +}; + +&iomuxc { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio>; + + pinctrl_adc0: adc0grp { + fsl,pins =3D , + ; + }; + + pinctrl_ethphy0: ethphy0grp { + fsl,pins =3D , + ; + }; + + pinctrl_ethphy3: ethphy3grp { + fsl,pins =3D ; + }; + + pinctrl_fec1: fec1grp { + fsl,pins =3D , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + }; + + pinctrl_fec2: fec2grp { + fsl,pins =3D , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + }; + + pinctrl_flexcan1: flexcan0grp { + fsl,pins =3D , + ; + }; + + pinctrl_flexcan2: flexcan1grp { + fsl,pins =3D , + ; + }; + + pinctrl_gpio: pingpiogrp { + fsl,pins =3D /* GPIO0_05 on X62:26 */ + , + /* GPIO1_14 on X64:21 */ + , + /* GPIO1_15 on X64:23 */ + , + /* GPIO2_17 on X63:37 */ + , + /* GPIO2_21 on X63:39 */ + , + /* GPIO4_12 on X61:24 */ + , + /* GPIO4_11 on X61:26 */ + , + /* GPIO4_10 on X61:28 */ + , + /* GPIO4_09 on X61:30 */ + , + /* GPIO5_23 on X62:24 */ + , + /* GPIO5_24 on X61:15 */ + , + /* GPIO5_25 on X61:17 */ + , + /* GPIO5_26 on X61:19 */ + , + /* GPIO5_27 on X61:21 */ + , + /* GPIO5_28 on X61:23 */ + , + /* GPIO5_29 on X61:25 */ + ; + }; + + pinctrl_gpio2: gpio2grp { + fsl,pins =3D , + ; + }; + + pinctrl_gpiokeys: gpiokeysgrp { + fsl,pins =3D , + ; + }; + + pinctrl_gpioled: gpioledgrp { + fsl,pins =3D , + ; + }; + + pinctrl_lpspi0: lpspi0grp { + fsl,pins =3D , + , + ; + }; + + pinctrl_lpspi0_cs: lpspi0csgrp { + fsl,pins =3D , + ; + }; + + pinctrl_lpspi1: lpspi1grp { + fsl,pins =3D , + , + ; + }; + + pinctrl_lpspi1_cs: lpspi1csgrp { + fsl,pins =3D , + ; + }; + + pinctrl_lpspi2: lpspi2grp { + fsl,pins =3D , + , + ; + }; + + pinctrl_lpspi2_cs: lpspi2sgrp { + fsl,pins =3D , + ; + }; + + pinctrl_lpuart0: lpuart0grp { + fsl,pins =3D , + , + , + ; + }; + + pinctrl_lpuart1: lpuart1grp { + fsl,pins =3D , + , + , + ; + }; + + pinctrl_lpuart2: lpuart2grp { + fsl,pins =3D , + ; + }; + + pinctrl_lsio_pwm3: lsiopwm3grp { + fsl,pins =3D ; + }; + + pinctrl_pciea: pcieagrp { + fsl,pins =3D , + , + ; + }; + + pinctrl_pcieb: pciebgrp { + fsl,pins =3D , + , + ; + }; + + pinctrl_pwmfan: pwmfangrp { + fsl,pins =3D ; + }; + + pinctrl_reg_mba8x_12v: mba12vgrp { + fsl,pins =3D ; + }; + + pinctrl_reg_pcie_v1v5: regpcie1v5grp { + fsl,pins =3D ; + }; + + pinctrl_reg_pcie_v3v3: regpcie3v3grp { + fsl,pins =3D ; + }; + + pinctrl_regpwmfan: regpwmfangrp { + fsl,pins =3D ; + }; + + pinctrl_reg_v3v3_sd: reg3v3sdgrp { + fsl,pins =3D ; + }; + + pinctrl_sai1: sai1grp { + fsl,pins =3D , + , + , + , + , + ; + }; + + pinctrl_usbotg1: usbotg1grp { + fsl,pins =3D , + ; + }; + + pinctrl_usbhub: usbhubgrp { + fsl,pins =3D ; + }; + + pinctrl_usdhc2_gpio: usdhc2-gpiogrp { + fsl,pins =3D , + ; + }; + + pinctrl_usdhc2: usdhc2grp { + fsl,pins =3D , + , + , + , + , + , + ; + }; + + pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp { + fsl,pins =3D , + , + , + , + , + , + ; + }; + + pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp { + fsl,pins =3D , + , + , + , + , + , + ; + }; +}; diff --git a/arch/arm64/boot/dts/freescale/imx8qm-tqma8qm.dtsi b/arch/arm64= /boot/dts/freescale/imx8qm-tqma8qm.dtsi new file mode 100644 index 0000000000000..718c792259a65 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8qm-tqma8qm.dtsi @@ -0,0 +1,315 @@ +// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT) +/* + * Copyright (c) 2019-2025 TQ-Systems GmbH , + * D-82229 Seefeld, Germany. + * Author: Alexander Stein + */ + +#include "imx8qm.dtsi" + +/ { + model =3D "TQ-Systems i.MX8QM TQMa8QM"; + compatible =3D "tq,imx8qm-tqma8qm", "fsl,imx8qm"; + + memory@80000000 { + device_type =3D "memory"; + /* + * DRAM base addr, size : 1024 MiB DRAM + * should be corrected by bootloader + */ + reg =3D <0x00000000 0x80000000 0 0x40000000>; + }; + + reg_tqma8x_v3v3: regulator-tqma8x-v3v3 { + compatible =3D "regulator-fixed"; + regulator-name =3D "V_3V3"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + regulator-always-on; + }; + + /* SW7 controlled by SCU */ + reg_1v8_io1: regulator-v1v8-io1 { + compatible =3D "regulator-fixed"; + regulator-name =3D "V_1V8_IO1"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-always-on; + }; + + /* LDO4 controlled by SCU */ + reg_3v3_emmc: regulator-v3v3-emmc { + compatible =3D "regulator-fixed"; + regulator-name =3D "V_3V3_EMMC"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + regulator-always-on; + }; +}; + +&acm { + status =3D "okay"; +}; + +&adc0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_adc0>; + vref-supply =3D <®_vref_v1v8>; + status =3D "okay"; +}; + +/* TQMa8QM only uses industrial grade, reduce trip points accordingly */ +&cpu_alert0 { + temperature =3D <95000>; +}; + +&cpu_crit0 { + temperature =3D <100000>; +}; + +&cpu_alert1 { + temperature =3D <95000>; +}; + +&cpu_crit1 { + temperature =3D <100000>; +}; + +&gpu_alert0 { + temperature =3D <95000>; +}; + +&gpu_crit0 { + temperature =3D <100000>; +}; + +&gpu_alert1 { + temperature =3D <95000>; +}; + +&gpu_crit1 { + temperature =3D <100000>; +}; + +&drc_alert0 { + temperature =3D <95000>; +}; + +&drc_crit0 { + temperature =3D <100000>; +}; +/* end of temperature grade adjustments */ + +&flexspi0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_flexspi0>; + status =3D "okay"; + + flash0: flash@0 { + compatible =3D "jedec,spi-nor"; + reg =3D <0>; + spi-max-frequency =3D <66000000>; + spi-tx-bus-width =3D <4>; + spi-rx-bus-width =3D <4>; + vcc-supply =3D <®_1v8_io1>; + + partitions { + compatible =3D "fixed-partitions"; + #address-cells =3D <1>; + #size-cells =3D <1>; + }; + }; +}; + +&i2c1 { + clock-frequency =3D <400000>; + pinctrl-names =3D "default", "gpio"; + pinctrl-0 =3D <&pinctrl_lpi2c1>; + pinctrl-1 =3D <&pinctrl_lpi2c1gpio>; + scl-gpios =3D <&lsio_gpio0 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + sda-gpios =3D <&lsio_gpio0 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + status =3D "okay"; + + /* NXP SE97BTP with temperature sensor + eeprom */ + se97: temperature-sensor@1b { + compatible =3D "nxp,se97b", "jedec,jc-42.4-temp"; + reg =3D <0x1b>; + }; + + pcf85063: rtc@51 { + compatible =3D "nxp,pcf85063a"; + reg =3D <0x51>; + quartz-load-femtofarads =3D <7000>; + }; + + at24c02: eeprom@53 { + compatible =3D "nxp,se97b", "atmel,24c02"; + reg =3D <0x53>; + pagesize =3D <16>; + read-only; + vcc-supply =3D <®_tqma8x_v3v3>; + }; + + m24c64: eeprom@57 { + compatible =3D "atmel,24c64"; + reg =3D <0x57>; + pagesize =3D <32>; + vcc-supply =3D <®_tqma8x_v3v3>; + }; +}; + +&mu_m0 { + status =3D "okay"; +}; + +&mu1_m0 { + status =3D "okay"; +}; + +&mu2_m0 { + status =3D "okay"; +}; + +&thermal_zones { + pmic0-thermal { + polling-delay-passive =3D <250>; + polling-delay =3D <2000>; + thermal-sensors =3D <&tsens IMX_SC_R_PMIC_0>; + + trips { + pmic_alert0: trip0 { + temperature =3D <110000>; + hysteresis =3D <2000>; + type =3D "passive"; + }; + pmic_crit0: trip1 { + temperature =3D <125000>; + hysteresis =3D <2000>; + type =3D "critical"; + }; + }; + + cooling-maps { + map0 { + trip =3D <&pmic_alert0>; + cooling-device =3D + <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&A72_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&A72_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; + }; +}; + +&usdhc1 { + pinctrl-names =3D "default", "state_100mhz", "state_200mhz"; + pinctrl-0 =3D <&pinctrl_usdhc1>; + pinctrl-1 =3D <&pinctrl_usdhc1_100mhz>; + pinctrl-2 =3D <&pinctrl_usdhc1_200mhz>; + bus-width =3D <8>; + vmmc-supply =3D <®_3v3_emmc>; + vqmmc-supply =3D <®_1v8_io1>; + no-sd; + no-sdio; + non-removable; + status =3D "okay"; +}; + +&vpu { + compatible =3D "nxp,imx8qm-vpu"; + status =3D "okay"; +}; + +&vpu_core0 { + memory-region =3D <&decoder_boot>, <&decoder_rpc>; + status =3D "okay"; +}; + +&vpu_core1 { + memory-region =3D <&encoder1_boot>, <&encoder1_rpc>; + status =3D "okay"; +}; + +&vpu_core2 { + memory-region =3D <&encoder2_boot>, <&encoder2_rpc>; + status =3D "okay"; +}; + +&iomuxc { + pinctrl_lpi2c1: lpi2c1grp { + fsl,pins =3D , + ; + }; + + pinctrl_lpi2c1gpio: lpi2c1gpiogrp { + fsl,pins =3D , + ; + }; + + pinctrl_usdhc1: usdhc1grp { + fsl,pins =3D , + , + , + , + , + , + , + , + , + , + , + ; + }; + + pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp { + fsl,pins =3D , + , + , + , + , + , + , + , + , + , + , + ; + }; + + pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp { + fsl,pins =3D , + , + , + , + , + , + , + , + , + , + , + ; + }; + + pinctrl_flexspi0: flexspi0grp { + fsl,pins =3D , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + }; +}; --=20 2.43.0