Skip to content

Commit 1a7d97c

Browse files
WallaceITShawn Guo
authored andcommitted
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>
1 parent 8c89886 commit 1a7d97c

1 file changed

Lines changed: 152 additions & 0 deletions

File tree

arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
model = "NXP i.MX93 11X11 FRDM board";
1010

1111
aliases {
12+
can0 = &flexcan2;
1213
ethernet0 = &fec;
1314
ethernet1 = &eqos;
1415
i2c0 = &lpi2c1;
@@ -18,12 +19,40 @@
1819
mmc1 = &usdhc2; /* uSD */
1920
rtc0 = &pcf2131;
2021
serial0 = &lpuart1;
22+
serial4 = &lpuart5;
2123
};
2224

2325
chosen {
2426
stdout-path = &lpuart1;
2527
};
2628

29+
flexcan2_phy: can-phy {
30+
compatible = "nxp,tja1051";
31+
#phy-cells = <0>;
32+
max-bitrate = <5000000>;
33+
silent-gpios = <&pcal6524 23 GPIO_ACTIVE_HIGH>;
34+
};
35+
36+
gpio-keys {
37+
compatible = "gpio-keys";
38+
39+
button-k2 {
40+
label = "Button K2";
41+
linux,code = <BTN_1>;
42+
gpios = <&pcal6524 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
43+
interrupt-parent = <&pcal6524>;
44+
interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
45+
};
46+
47+
button-k3 {
48+
label = "Button K3";
49+
linux,code = <BTN_2>;
50+
gpios = <&pcal6524 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
51+
interrupt-parent = <&pcal6524>;
52+
interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
53+
};
54+
};
55+
2756
reg_usdhc2_vmmc: regulator-usdhc2 {
2857
compatible = "regulator-fixed";
2958
off-on-delay-us = <12000>;
@@ -37,6 +66,16 @@
3766
enable-active-high;
3867
};
3968

69+
reg_usdhc3_vmmc: regulator-usdhc3 {
70+
compatible = "regulator-fixed";
71+
regulator-name = "VPCIe_3V3";
72+
regulator-min-microvolt = <3300000>;
73+
regulator-max-microvolt = <3300000>;
74+
startup-delay-us = <20000>;
75+
gpio = <&pcal6524 13 GPIO_ACTIVE_HIGH>;
76+
enable-active-high;
77+
};
78+
4079
reserved-memory {
4180
ranges;
4281
#address-cells = <2>;
@@ -88,6 +127,11 @@
88127
audio-cpu = <&sai1>;
89128
audio-codec = <&mqs1>;
90129
};
130+
131+
usdhc3_pwrseq: mmc-pwrseq {
132+
compatible = "mmc-pwrseq-simple";
133+
reset-gpios = <&pcal6524 12 GPIO_ACTIVE_LOW>;
134+
};
91135
};
92136

93137
&adc1 {
@@ -157,11 +201,27 @@
157201
};
158202
};
159203

204+
&flexcan2 {
205+
phys = <&flexcan2_phy>;
206+
pinctrl-0 = <&pinctrl_flexcan2>;
207+
pinctrl-1 = <&pinctrl_flexcan2_sleep>;
208+
pinctrl-names = "default", "sleep";
209+
status = "okay";
210+
};
211+
160212
&lpi2c1 {
161213
clock-frequency = <400000>;
162214
pinctrl-0 = <&pinctrl_lpi2c1>;
163215
pinctrl-names = "default";
164216
status = "okay";
217+
218+
pcal6408: gpio@20 {
219+
compatible = "nxp,pcal6408";
220+
reg = <0x20>;
221+
#gpio-cells = <2>;
222+
gpio-controller;
223+
reset-gpios = <&pcal6524 20 GPIO_ACTIVE_LOW>;
224+
};
165225
};
166226

167227
&lpi2c2 {
@@ -322,6 +382,21 @@
322382
status = "okay";
323383
};
324384

385+
&lpuart5 {
386+
pinctrl-0 = <&pinctrl_uart5>;
387+
pinctrl-names = "default";
388+
status = "okay";
389+
390+
uart-has-rtscts;
391+
392+
bluetooth {
393+
compatible = "nxp,88w8987-bt";
394+
device-wakeup-gpios = <&pcal6408 3 GPIO_ACTIVE_HIGH>;
395+
reset-gpios = <&pcal6524 19 GPIO_ACTIVE_LOW>;
396+
vcc-supply = <&reg_usdhc3_vmmc>;
397+
};
398+
};
399+
325400
&mqs1 {
326401
pinctrl-names = "default";
327402
pinctrl-0 = <&pinctrl_mqs1>;
@@ -394,6 +469,20 @@
394469
status = "okay";
395470
};
396471

472+
&usdhc3 {
473+
bus-width = <4>;
474+
keep-power-in-suspend;
475+
mmc-pwrseq = <&usdhc3_pwrseq>;
476+
non-removable;
477+
pinctrl-0 = <&pinctrl_usdhc3>;
478+
pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
479+
pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
480+
pinctrl-3 = <&pinctrl_usdhc3_sleep>;
481+
pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
482+
vmmc-supply = <&reg_usdhc3_vmmc>;
483+
status = "okay";
484+
};
485+
397486
&wdog3 {
398487
pinctrl-names = "default";
399488
pinctrl-0 = <&pinctrl_wdog>;
@@ -486,6 +575,13 @@
486575
>;
487576
};
488577

578+
pinctrl_flexcan2_sleep: flexcan2sleepgrp {
579+
fsl,pins = <
580+
MX93_PAD_GPIO_IO25__GPIO2_IO25 0x31e
581+
MX93_PAD_GPIO_IO27__GPIO2_IO27 0x31e
582+
>;
583+
};
584+
489585
pinctrl_lpi2c1: lpi2c1grp {
490586
fsl,pins = <
491587
MX93_PAD_I2C1_SCL__LPI2C1_SCL 0x40000b9e
@@ -533,6 +629,15 @@
533629
>;
534630
};
535631

632+
pinctrl_uart5: uart5grp {
633+
fsl,pins = <
634+
MX93_PAD_DAP_TDO_TRACESWO__LPUART5_TX 0x31e
635+
MX93_PAD_DAP_TDI__LPUART5_RX 0x31e
636+
MX93_PAD_DAP_TMS_SWDIO__LPUART5_RTS_B 0x31e
637+
MX93_PAD_DAP_TCLK_SWCLK__LPUART5_CTS_B 0x31e
638+
>;
639+
};
640+
536641
/* need to config the SION for data and cmd pad, refer to ERR052021 */
537642
pinctrl_usdhc1: usdhc1grp {
538643
fsl,pins = <
@@ -647,6 +752,53 @@
647752
>;
648753
};
649754

755+
/* need to config the SION for data and cmd pad, refer to ERR052021 */
756+
pinctrl_usdhc3: usdhc3grp {
757+
fsl,pins = <
758+
MX93_PAD_SD3_CLK__USDHC3_CLK 0x1582
759+
MX93_PAD_SD3_CMD__USDHC3_CMD 0x40001382
760+
MX93_PAD_SD3_DATA0__USDHC3_DATA0 0x40001382
761+
MX93_PAD_SD3_DATA1__USDHC3_DATA1 0x40001382
762+
MX93_PAD_SD3_DATA2__USDHC3_DATA2 0x40001382
763+
MX93_PAD_SD3_DATA3__USDHC3_DATA3 0x40001382
764+
>;
765+
};
766+
767+
/* need to config the SION for data and cmd pad, refer to ERR052021 */
768+
pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
769+
fsl,pins = <
770+
MX93_PAD_SD3_CLK__USDHC3_CLK 0x158e
771+
MX93_PAD_SD3_CMD__USDHC3_CMD 0x4000138e
772+
MX93_PAD_SD3_DATA0__USDHC3_DATA0 0x4000138e
773+
MX93_PAD_SD3_DATA1__USDHC3_DATA1 0x4000138e
774+
MX93_PAD_SD3_DATA2__USDHC3_DATA2 0x4000138e
775+
MX93_PAD_SD3_DATA3__USDHC3_DATA3 0x4000138e
776+
>;
777+
};
778+
779+
/* need to config the SION for data and cmd pad, refer to ERR052021 */
780+
pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
781+
fsl,pins = <
782+
MX93_PAD_SD3_CLK__USDHC3_CLK 0x15fe
783+
MX93_PAD_SD3_CMD__USDHC3_CMD 0x400013fe
784+
MX93_PAD_SD3_DATA0__USDHC3_DATA0 0x400013fe
785+
MX93_PAD_SD3_DATA1__USDHC3_DATA1 0x400013fe
786+
MX93_PAD_SD3_DATA2__USDHC3_DATA2 0x400013fe
787+
MX93_PAD_SD3_DATA3__USDHC3_DATA3 0x400013fe
788+
>;
789+
};
790+
791+
pinctrl_usdhc3_sleep: usdhc3grpsleepgrp {
792+
fsl,pins = <
793+
MX93_PAD_SD3_CLK__GPIO3_IO20 0x31e
794+
MX93_PAD_SD3_CMD__GPIO3_IO21 0x31e
795+
MX93_PAD_SD3_DATA0__GPIO3_IO22 0x31e
796+
MX93_PAD_SD3_DATA1__GPIO3_IO23 0x31e
797+
MX93_PAD_SD3_DATA2__GPIO3_IO24 0x31e
798+
MX93_PAD_SD3_DATA3__GPIO3_IO25 0x31e
799+
>;
800+
};
801+
650802
pinctrl_wdog: wdoggrp {
651803
fsl,pins = <
652804
MX93_PAD_WDOG_ANY__WDOG1_WDOG_ANY 0x31e

0 commit comments

Comments
 (0)