1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2/* 3 * Copyright (c) Toradex 4 * 5 * https://www.toradex.com/computer-on-modules/aquila-arm-family/nxp-imx95 6 * https://www.toradex.com/products/carrier-board/clover 7 */ 8 9/dts-v1/; 10 11#include <dt-bindings/pwm/pwm.h> 12#include <dt-bindings/usb/pd.h> 13#include "imx95-aquila.dtsi" 14 15/ { 16 model = "Aquila iMX95 on Aquila Clover Board"; 17 compatible = "toradex,aquila-imx95-clover", 18 "toradex,aquila-imx95", 19 "fsl,imx95"; 20 21 aliases { 22 eeprom1 = &carrier_eeprom; 23 }; 24 25 dp_1_connector: dp0-connector { 26 compatible = "dp-connector"; 27 dp-pwr-supply = <®_dp_3p3v>; 28 type = "full-size"; 29 30 port { 31 dp_1_connector_in: endpoint { 32 remote-endpoint = <&dsi2dp_out>; 33 }; 34 }; 35 }; 36 37 reg_dp_3p3v: regulator-dp-3p3v { 38 compatible = "regulator-fixed"; 39 pinctrl-names = "default"; 40 pinctrl-0 = <&pinctrl_gpio_21_dp>; 41 /* Aquila GPIO_21_DP */ 42 gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>; 43 enable-active-high; 44 regulator-max-microvolt = <3300000>; 45 regulator-min-microvolt = <3300000>; 46 regulator-name = "DP_3V3"; 47 startup-delay-us = <10000>; 48 }; 49}; 50 51/* Aquila ADC_[1-4] */ 52&adc1 { 53 status = "okay"; 54}; 55 56/* Aquila CTRL_WAKE1_MICO# */ 57&aquila_key_wake { 58 status = "okay"; 59}; 60 61&dsi2dp_out { 62 remote-endpoint = <&dp_1_connector_in>; 63}; 64 65/* Aquila ETH_1 */ 66&enetc_port0 { 67 status = "okay"; 68}; 69 70/* Aquila CAN_1 */ 71&flexcan1 { 72 status = "okay"; 73}; 74 75/* Aquila CAN_2 */ 76&flexcan2 { 77 status = "okay"; 78}; 79 80/* Aquila CAN_3 */ 81&flexcan3 { 82 status = "okay"; 83}; 84 85/* Aquila CAN_4 */ 86&flexcan4 { 87 status = "okay"; 88}; 89 90/* Aquila QSPI_1 */ 91&flexspi1 { 92 pinctrl-0 = <&pinctrl_flexspi1_4bit>, 93 <&pinctrl_qspi_cs1>; 94 95 status = "okay"; 96 97 flash@0 { 98 compatible = "jedec,spi-nor"; 99 reg = <0x0>; 100 spi-max-frequency = <66000000>; 101 spi-rx-bus-width = <4>; 102 spi-tx-bus-width = <4>; 103 }; 104}; 105 106&gpio4 { 107 pinctrl-names = "default"; 108 pinctrl-0 = <&pinctrl_gpio_1>, 109 <&pinctrl_gpio_2>, 110 <&pinctrl_gpio_3>, 111 <&pinctrl_gpio_4>; 112}; 113 114/* Aquila I2C_2 */ 115&i3c2 { 116 status = "okay"; 117}; 118 119/* Aquila I2C_1 */ 120&lpi2c2 { 121 status = "okay"; 122 123 fan_controller: fan@18 { 124 compatible = "ti,amc6821"; 125 reg = <0x18>; 126 #pwm-cells = <2>; 127 128 fan { 129 cooling-levels = <255>; 130 pwms = <&fan_controller 40000 PWM_POLARITY_INVERTED>; 131 }; 132 }; 133 134 temperature-sensor@4f { 135 compatible = "ti,tmp1075"; 136 reg = <0x4f>; 137 }; 138 139 /* USB-C OTG (TCPC USB PD PHY) */ 140 tcpc@52 { 141 compatible = "nxp,ptn5110", "tcpci"; 142 reg = <0x52>; 143 interrupt-parent = <&som_gpio_expander_1>; 144 interrupts = <5 IRQ_TYPE_EDGE_FALLING>; 145 146 connector { 147 compatible = "usb-c-connector"; 148 data-role = "dual"; 149 op-sink-microwatt = <0>; 150 power-role = "dual"; 151 self-powered; 152 sink-pdos = <PDO_FIXED(5000, 0, PDO_FIXED_USB_COMM)>; 153 source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>; 154 try-power-role = "sink"; 155 156 ports { 157 #address-cells = <1>; 158 #size-cells = <0>; 159 160 port@0 { 161 reg = <0>; 162 163 typec_con_hs: endpoint { 164 remote-endpoint = <&usb1_con_hs>; 165 }; 166 }; 167 168 port@1 { 169 reg = <1>; 170 171 typec_con_ss: endpoint { 172 remote-endpoint = <&usb1_con_ss>; 173 }; 174 }; 175 }; 176 }; 177 }; 178 179 carrier_eeprom: eeprom@57 { 180 compatible = "st,24c02", "atmel,24c02"; 181 reg = <0x57>; 182 pagesize = <16>; 183 }; 184}; 185 186/* Aquila I2C_6 */ 187&lpi2c5 { 188 status = "okay"; 189}; 190 191/* Aquila SPI_1 */ 192&lpspi6 { 193 pinctrl-names = "default"; 194 pinctrl-0 = <&pinctrl_lpspi6 &pinctrl_gpio_5>; 195 cs-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>, <&gpio4 18 GPIO_ACTIVE_LOW>; 196 197 status = "okay"; 198 199 tpm@1 { 200 compatible = "infineon,slb9670", "tcg,tpm_tis-spi"; 201 reg = <1>; 202 pinctrl-names = "default"; 203 pinctrl-0 = <&pinctrl_gpio_6>; 204 interrupt-parent = <&gpio4>; 205 interrupts = <17 IRQ_TYPE_LEVEL_LOW>; 206 spi-max-frequency = <12000000>; 207 }; 208}; 209 210/* Aquila UART_3, used as the Linux Console */ 211&lpuart1 { 212 status = "okay"; 213}; 214 215/* Aquila UART_4 */ 216&lpuart2 { 217 status = "okay"; 218}; 219 220/* Aquila UART_1 */ 221&lpuart3 { 222 status = "okay"; 223}; 224 225/* Aquila UART_2 */ 226&lpuart7 { 227 status = "okay"; 228}; 229 230/* Aquila PCIE_1 */ 231&pcie0 { 232 status = "okay"; 233}; 234 235/* Aquila PWM_1 */ 236&tpm3 { 237 status = "okay"; 238}; 239 240/* Aquila PWM_3_DSI and PWM_4_DP */ 241&tpm5 { 242 status = "okay"; 243}; 244 245/* Aquila PWM_2 */ 246&tpm6 { 247 status = "okay"; 248}; 249 250/* Aquila USB_2, optional Bluetooth USB */ 251&usb2 { 252 status = "okay"; 253}; 254 255/* Aquila USB_1 */ 256&usb3 { 257 status = "okay"; 258}; 259 260&usb3_dwc3 { 261 status = "okay"; 262 263 port { 264 usb1_con_hs: endpoint { 265 remote-endpoint = <&typec_con_hs>; 266 }; 267 }; 268}; 269 270&usb3_phy { 271 orientation-switch; 272 273 status = "okay"; 274 275 port { 276 usb1_con_ss: endpoint { 277 remote-endpoint = <&typec_con_ss>; 278 }; 279 }; 280}; 281 282/* Aquila SD_1 */ 283&usdhc2 { 284 status = "okay"; 285}; 286