mirror of
https://github.com/torvalds/linux.git
synced 2026-07-29 18:51:21 +02:00
arm64: dts: freescale: add Aquila iMX95 support
Add support for the Toradex Aquila iMX95 and its development carrier board. The module consists of an NXP i.MX95 family SoC, up to 16GB LPDDR5 RAM, up to 128GB of storage, a USB 3.2 OTG and USB 2.0 Host, a Gigabit Ethernet PHY, a 10 Gigabit Ethernet interface, an I2C EEPROM and Temperature Sensor, an RX8130 RTC, one Quad lane CSI interface, one Quad lane DSI or CSI interface, one LVDS interface (one or two channels), and some optional addons: DisplayPort (through a DSI-DP bridge), TPM 2.0, and a WiFi/BT module. Link: https://www.toradex.com/computer-on-modules/aquila-arm-family/nxp-imx95 Link: https://www.toradex.com/products/carrier-board/aquila-development-board-kit Signed-off-by: João Paulo Gonçalves <joao.goncalves@toradex.com> Co-developed-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com> Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com> Co-developed-by: Francesco Dolcini <francesco.dolcini@toradex.com> Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com> Co-developed-by: Antoine Gouby <antoine.gouby@toradex.com> Signed-off-by: Antoine Gouby <antoine.gouby@toradex.com> Co-developed-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com> Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com> Co-developed-by: Franz Schnyder <franz.schnyder@toradex.com> Signed-off-by: Franz Schnyder <franz.schnyder@toradex.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
This commit is contained in:
parent
7858ac80e2
commit
d5c082ba23
|
|
@ -637,6 +637,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-frdm.dtb
|
|||
dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-evk.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-evk-sof.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-frdm-pro.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx95-aquila-dev.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx95-toradex-smarc-dev.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx95-tqma9596sa-mb-smarc-2.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx95-var-dart-sonata.dtb
|
||||
|
|
|
|||
389
arch/arm64/boot/dts/freescale/imx95-aquila-dev.dts
Normal file
389
arch/arm64/boot/dts/freescale/imx95-aquila-dev.dts
Normal file
|
|
@ -0,0 +1,389 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/*
|
||||
* Copyright (c) Toradex
|
||||
*
|
||||
* https://www.toradex.com/computer-on-modules/aquila-arm-family/nxp-imx95
|
||||
* https://www.toradex.com/products/carrier-board/aquila-development-board-kit
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/pwm/pwm.h>
|
||||
#include <dt-bindings/usb/pd.h>
|
||||
#include "imx95-aquila.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Aquila iMX95 on Aquila Development Board";
|
||||
compatible = "toradex,aquila-imx95-dev",
|
||||
"toradex,aquila-imx95",
|
||||
"fsl,imx95";
|
||||
|
||||
aliases {
|
||||
eeprom1 = &carrier_eeprom;
|
||||
};
|
||||
|
||||
dp_1_connector: dp0-connector {
|
||||
compatible = "dp-connector";
|
||||
dp-pwr-supply = <®_dp_3p3v>;
|
||||
type = "full-size";
|
||||
|
||||
port {
|
||||
dp_1_connector_in: endpoint {
|
||||
remote-endpoint = <&dsi2dp_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
reg_carrier_1p8v: regulator-carrier-1p8v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-name = "On-carrier 1V8";
|
||||
};
|
||||
|
||||
reg_dp_3p3v: regulator-dp-3p3v {
|
||||
compatible = "regulator-fixed";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_gpio_21_dp>;
|
||||
/* Aquila GPIO_21_DP */
|
||||
gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-name = "DP_3V3";
|
||||
startup-delay-us = <10000>;
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "simple-audio-card";
|
||||
simple-audio-card,bitclock-master = <&codec_dai>;
|
||||
simple-audio-card,format = "i2s";
|
||||
simple-audio-card,frame-master = <&codec_dai>;
|
||||
simple-audio-card,mclk-fs = <256>;
|
||||
simple-audio-card,name = "aquila-wm8904";
|
||||
simple-audio-card,routing =
|
||||
"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 =
|
||||
"Microphone", "Microphone Jack",
|
||||
"Microphone", "Digital Mic",
|
||||
"Headphone", "Headphone Jack",
|
||||
"Line", "Line In Jack";
|
||||
|
||||
codec_dai: simple-audio-card,codec {
|
||||
sound-dai = <&wm8904_1a>;
|
||||
};
|
||||
|
||||
simple-audio-card,cpu {
|
||||
sound-dai = <&sai2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* Aquila ADC_[1-4] */
|
||||
&adc1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila CTRL_WAKE1_MICO# */
|
||||
&aquila_key_wake {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&dsi2dp_out {
|
||||
remote-endpoint = <&dp_1_connector_in>;
|
||||
};
|
||||
|
||||
/* Aquila ETH_1 */
|
||||
&enetc_port0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila CAN_1 */
|
||||
&flexcan1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila CAN_2 */
|
||||
&flexcan2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila CAN_3 */
|
||||
&flexcan3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila CAN_4 */
|
||||
&flexcan4 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila QSPI_1 */
|
||||
&flexspi1 {
|
||||
pinctrl-0 = <&pinctrl_flexspi1_4bit>,
|
||||
<&pinctrl_qspi_cs1>;
|
||||
|
||||
status = "okay";
|
||||
|
||||
flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0x0>;
|
||||
spi-max-frequency = <66000000>;
|
||||
spi-rx-bus-width = <4>;
|
||||
spi-tx-bus-width = <4>;
|
||||
};
|
||||
};
|
||||
|
||||
&gpio1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_gpio_8>;
|
||||
};
|
||||
|
||||
&gpio4 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_gpio_1>,
|
||||
<&pinctrl_gpio_2>,
|
||||
<&pinctrl_gpio_3>,
|
||||
<&pinctrl_gpio_4>,
|
||||
<&pinctrl_gpio_5>,
|
||||
<&pinctrl_gpio_6>,
|
||||
<&pinctrl_gpio_7>;
|
||||
};
|
||||
|
||||
/* Aquila I2C_1 */
|
||||
&lpi2c2 {
|
||||
status = "okay";
|
||||
|
||||
fan_controller: fan@18 {
|
||||
compatible = "ti,amc6821";
|
||||
reg = <0x18>;
|
||||
#pwm-cells = <2>;
|
||||
|
||||
fan {
|
||||
cooling-levels = <255>;
|
||||
pwms = <&fan_controller 40000 PWM_POLARITY_INVERTED>;
|
||||
};
|
||||
};
|
||||
|
||||
wm8904_1a: audio-codec@1a {
|
||||
compatible = "wlf,wm8904";
|
||||
reg = <0x1a>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_sai2_mclk>;
|
||||
clocks = <&scmi_clk IMX95_CLK_SAI2>;
|
||||
clock-names = "mclk";
|
||||
#sound-dai-cells = <0>;
|
||||
AVDD-supply = <®_carrier_1p8v>;
|
||||
CPVDD-supply = <®_carrier_1p8v>;
|
||||
DBVDD-supply = <®_carrier_1p8v>;
|
||||
DCVDD-supply = <®_carrier_1p8v>;
|
||||
MICVDD-supply = <®_carrier_1p8v>;
|
||||
wlf,drc-cfg-names = "default", "peaklimiter";
|
||||
/*
|
||||
* Config registers per name, respectively:
|
||||
* KNEE_IP = 0, KNEE_OP = 0, HI_COMP = 1, LO_COMP = 1
|
||||
* KNEE_IP = -24, KNEE_OP = -6, HI_COMP = 1/4, LO_COMP = 1
|
||||
*/
|
||||
wlf,drc-cfg-regs = /bits/ 16 <0x01af 0x3248 0x0000 0x0000>,
|
||||
/bits/ 16 <0x04af 0x324b 0x0010 0x0408>;
|
||||
/* GPIO1 = DMIC_CLK, don't touch others */
|
||||
wlf,gpio-cfg = <0x0018>, <0xffff>, <0xffff>, <0xffff>;
|
||||
wlf,in1r-as-dmicdat2;
|
||||
};
|
||||
|
||||
/* Current measurement into module VCC */
|
||||
hwmon@41 {
|
||||
compatible = "ti,ina226";
|
||||
reg = <0x41>;
|
||||
shunt-resistor = <5000>;
|
||||
};
|
||||
|
||||
temperature-sensor@4f {
|
||||
compatible = "ti,tmp1075";
|
||||
reg = <0x4f>;
|
||||
};
|
||||
|
||||
/* USB-C OTG (TCPC USB PD PHY) */
|
||||
tcpc@52 {
|
||||
compatible = "nxp,ptn5110", "tcpci";
|
||||
reg = <0x52>;
|
||||
interrupt-parent = <&som_gpio_expander_1>;
|
||||
interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
|
||||
|
||||
connector {
|
||||
compatible = "usb-c-connector";
|
||||
data-role = "dual";
|
||||
op-sink-microwatt = <0>;
|
||||
power-role = "dual";
|
||||
self-powered;
|
||||
sink-pdos = <PDO_FIXED(5000, 0, PDO_FIXED_USB_COMM)>;
|
||||
source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
|
||||
try-power-role = "sink";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
typec_con_hs: endpoint {
|
||||
remote-endpoint = <&usb1_con_hs>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
typec_con_ss: endpoint {
|
||||
remote-endpoint = <&usb1_con_ss>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
carrier_eeprom: eeprom@57 {
|
||||
compatible = "st,24c02", "atmel,24c02";
|
||||
reg = <0x57>;
|
||||
pagesize = <16>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Aquila I2C_2 */
|
||||
&i3c2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila I2C_4_CSI1 */
|
||||
&lpi2c4 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila I2C_6 */
|
||||
&lpi2c5 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila I2C_3_DSI1/I2C_5_CSI2 */
|
||||
&lpi2c8 {
|
||||
status = "okay";
|
||||
|
||||
i2c-mux@70 {
|
||||
compatible = "nxp,pca9543";
|
||||
reg = <0x70>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
/* I2C on DSI Connector Pin #4 and #6 */
|
||||
i2c_dsi_0: i2c@0 {
|
||||
reg = <0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
/* I2C on DSI Connector Pin #52 and #54 */
|
||||
i2c_dsi_1: i2c@1 {
|
||||
reg = <1>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* Aquila SPI_1 */
|
||||
&lpspi6 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila UART_3, used as the Linux Console */
|
||||
&lpuart1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila UART_4 */
|
||||
&lpuart2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila UART_1 */
|
||||
&lpuart3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila UART_2 as RS485 */
|
||||
&lpuart7 {
|
||||
linux,rs485-enabled-at-boot-time;
|
||||
rs485-rts-active-low;
|
||||
rs485-rx-during-tx;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila PCIE_1 */
|
||||
&pcie0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila I2S_1 */
|
||||
&sai2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila PWM_1 */
|
||||
&tpm3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila PWM_2 */
|
||||
&tpm6 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila PWM_3_DSI and PWM_4_DP */
|
||||
&tpm5 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila USB_2, optional Bluetooth USB */
|
||||
&usb2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Aquila USB_1 */
|
||||
&usb3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb3_dwc3 {
|
||||
status = "okay";
|
||||
|
||||
port {
|
||||
usb1_con_hs: endpoint {
|
||||
remote-endpoint = <&typec_con_hs>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&usb3_phy {
|
||||
orientation-switch;
|
||||
|
||||
status = "okay";
|
||||
|
||||
port {
|
||||
usb1_con_ss: endpoint {
|
||||
remote-endpoint = <&typec_con_ss>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* Aquila SD_1 */
|
||||
&usdhc2 {
|
||||
status = "okay";
|
||||
};
|
||||
1160
arch/arm64/boot/dts/freescale/imx95-aquila.dtsi
Normal file
1160
arch/arm64/boot/dts/freescale/imx95-aquila.dtsi
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user