arm64: dts: imx93-11x11-frdm: enable additional devices

Enable additional devices on the i.MX93 FRDM board:

  - CAN port and associated transceiver
  - Bluetooth portion of the IW612 chipset
  - WiFi SDIO port
  - user buttons

The WiFi portion of the on-board IW612 chipset is still not supported
upstream, but since SDIO is a discoverable bus it will be probed once it
is.

Signed-off-by: Francesco Valla <francesco@valla.it>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
This commit is contained in:
Francesco Valla 2026-01-15 18:11:34 +01:00 committed by Shawn Guo
parent 8c89886980
commit 1a7d97c2d3

View File

@ -9,6 +9,7 @@ / {
model = "NXP i.MX93 11X11 FRDM board";
aliases {
can0 = &flexcan2;
ethernet0 = &fec;
ethernet1 = &eqos;
i2c0 = &lpi2c1;
@ -18,12 +19,40 @@ aliases {
mmc1 = &usdhc2; /* uSD */
rtc0 = &pcf2131;
serial0 = &lpuart1;
serial4 = &lpuart5;
};
chosen {
stdout-path = &lpuart1;
};
flexcan2_phy: can-phy {
compatible = "nxp,tja1051";
#phy-cells = <0>;
max-bitrate = <5000000>;
silent-gpios = <&pcal6524 23 GPIO_ACTIVE_HIGH>;
};
gpio-keys {
compatible = "gpio-keys";
button-k2 {
label = "Button K2";
linux,code = <BTN_1>;
gpios = <&pcal6524 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
interrupt-parent = <&pcal6524>;
interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
};
button-k3 {
label = "Button K3";
linux,code = <BTN_2>;
gpios = <&pcal6524 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
interrupt-parent = <&pcal6524>;
interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
};
};
reg_usdhc2_vmmc: regulator-usdhc2 {
compatible = "regulator-fixed";
off-on-delay-us = <12000>;
@ -37,6 +66,16 @@ reg_usdhc2_vmmc: regulator-usdhc2 {
enable-active-high;
};
reg_usdhc3_vmmc: regulator-usdhc3 {
compatible = "regulator-fixed";
regulator-name = "VPCIe_3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
startup-delay-us = <20000>;
gpio = <&pcal6524 13 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
reserved-memory {
ranges;
#address-cells = <2>;
@ -88,6 +127,11 @@ sound-mqs {
audio-cpu = <&sai1>;
audio-codec = <&mqs1>;
};
usdhc3_pwrseq: mmc-pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&pcal6524 12 GPIO_ACTIVE_LOW>;
};
};
&adc1 {
@ -157,11 +201,27 @@ ethphy2: ethernet-phy@2 {
};
};
&flexcan2 {
phys = <&flexcan2_phy>;
pinctrl-0 = <&pinctrl_flexcan2>;
pinctrl-1 = <&pinctrl_flexcan2_sleep>;
pinctrl-names = "default", "sleep";
status = "okay";
};
&lpi2c1 {
clock-frequency = <400000>;
pinctrl-0 = <&pinctrl_lpi2c1>;
pinctrl-names = "default";
status = "okay";
pcal6408: gpio@20 {
compatible = "nxp,pcal6408";
reg = <0x20>;
#gpio-cells = <2>;
gpio-controller;
reset-gpios = <&pcal6524 20 GPIO_ACTIVE_LOW>;
};
};
&lpi2c2 {
@ -322,6 +382,21 @@ &lpuart1 { /* console */
status = "okay";
};
&lpuart5 {
pinctrl-0 = <&pinctrl_uart5>;
pinctrl-names = "default";
status = "okay";
uart-has-rtscts;
bluetooth {
compatible = "nxp,88w8987-bt";
device-wakeup-gpios = <&pcal6408 3 GPIO_ACTIVE_HIGH>;
reset-gpios = <&pcal6524 19 GPIO_ACTIVE_LOW>;
vcc-supply = <&reg_usdhc3_vmmc>;
};
};
&mqs1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_mqs1>;
@ -394,6 +469,20 @@ &usdhc2 {
status = "okay";
};
&usdhc3 {
bus-width = <4>;
keep-power-in-suspend;
mmc-pwrseq = <&usdhc3_pwrseq>;
non-removable;
pinctrl-0 = <&pinctrl_usdhc3>;
pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
pinctrl-3 = <&pinctrl_usdhc3_sleep>;
pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
vmmc-supply = <&reg_usdhc3_vmmc>;
status = "okay";
};
&wdog3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_wdog>;
@ -486,6 +575,13 @@ MX93_PAD_GPIO_IO27__CAN2_RX 0x139e
>;
};
pinctrl_flexcan2_sleep: flexcan2sleepgrp {
fsl,pins = <
MX93_PAD_GPIO_IO25__GPIO2_IO25 0x31e
MX93_PAD_GPIO_IO27__GPIO2_IO27 0x31e
>;
};
pinctrl_lpi2c1: lpi2c1grp {
fsl,pins = <
MX93_PAD_I2C1_SCL__LPI2C1_SCL 0x40000b9e
@ -533,6 +629,15 @@ MX93_PAD_UART1_TXD__LPUART1_TX 0x31e
>;
};
pinctrl_uart5: uart5grp {
fsl,pins = <
MX93_PAD_DAP_TDO_TRACESWO__LPUART5_TX 0x31e
MX93_PAD_DAP_TDI__LPUART5_RX 0x31e
MX93_PAD_DAP_TMS_SWDIO__LPUART5_RTS_B 0x31e
MX93_PAD_DAP_TCLK_SWCLK__LPUART5_CTS_B 0x31e
>;
};
/* need to config the SION for data and cmd pad, refer to ERR052021 */
pinctrl_usdhc1: usdhc1grp {
fsl,pins = <
@ -647,6 +752,53 @@ MX93_PAD_SD2_VSELECT__GPIO3_IO19 0x51e
>;
};
/* need to config the SION for data and cmd pad, refer to ERR052021 */
pinctrl_usdhc3: usdhc3grp {
fsl,pins = <
MX93_PAD_SD3_CLK__USDHC3_CLK 0x1582
MX93_PAD_SD3_CMD__USDHC3_CMD 0x40001382
MX93_PAD_SD3_DATA0__USDHC3_DATA0 0x40001382
MX93_PAD_SD3_DATA1__USDHC3_DATA1 0x40001382
MX93_PAD_SD3_DATA2__USDHC3_DATA2 0x40001382
MX93_PAD_SD3_DATA3__USDHC3_DATA3 0x40001382
>;
};
/* need to config the SION for data and cmd pad, refer to ERR052021 */
pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
fsl,pins = <
MX93_PAD_SD3_CLK__USDHC3_CLK 0x158e
MX93_PAD_SD3_CMD__USDHC3_CMD 0x4000138e
MX93_PAD_SD3_DATA0__USDHC3_DATA0 0x4000138e
MX93_PAD_SD3_DATA1__USDHC3_DATA1 0x4000138e
MX93_PAD_SD3_DATA2__USDHC3_DATA2 0x4000138e
MX93_PAD_SD3_DATA3__USDHC3_DATA3 0x4000138e
>;
};
/* need to config the SION for data and cmd pad, refer to ERR052021 */
pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
fsl,pins = <
MX93_PAD_SD3_CLK__USDHC3_CLK 0x15fe
MX93_PAD_SD3_CMD__USDHC3_CMD 0x400013fe
MX93_PAD_SD3_DATA0__USDHC3_DATA0 0x400013fe
MX93_PAD_SD3_DATA1__USDHC3_DATA1 0x400013fe
MX93_PAD_SD3_DATA2__USDHC3_DATA2 0x400013fe
MX93_PAD_SD3_DATA3__USDHC3_DATA3 0x400013fe
>;
};
pinctrl_usdhc3_sleep: usdhc3grpsleepgrp {
fsl,pins = <
MX93_PAD_SD3_CLK__GPIO3_IO20 0x31e
MX93_PAD_SD3_CMD__GPIO3_IO21 0x31e
MX93_PAD_SD3_DATA0__GPIO3_IO22 0x31e
MX93_PAD_SD3_DATA1__GPIO3_IO23 0x31e
MX93_PAD_SD3_DATA2__GPIO3_IO24 0x31e
MX93_PAD_SD3_DATA3__GPIO3_IO25 0x31e
>;
};
pinctrl_wdog: wdoggrp {
fsl,pins = <
MX93_PAD_WDOG_ANY__WDOG1_WDOG_ANY 0x31e