xref: /linux/scripts/dtc/include-prefixes/arm64/freescale/imx8mp-phyboard-pollux-peb-wlbt-05.dtso (revision 6589b3d76db2d6adbf8f2084c303fb24252a0dc6)
1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2/*
3 * Copyright (C) 2025 PHYTEC Messtechnik GmbH
4 */
5
6#include <dt-bindings/clock/imx8mp-clock.h>
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/interrupt-controller/irq.h>
9#include "imx8mp-pinfunc.h"
10
11/dts-v1/;
12/plugin/;
13
14&{/} {
15	wlbt_clock: clock-32768 {
16		compatible = "fixed-clock";
17		clock-accuracy = <20000>;
18		clock-frequency = <32768>;
19		clock-output-names = "WIFIBT_SLOW_CLK";
20		#clock-cells = <0>;
21	};
22
23	usdhc1_pwrseq: pwr-seq {
24		compatible = "mmc-pwrseq-simple";
25		post-power-on-delay-ms = <250>;
26		reset-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>;
27	};
28};
29
30&iomuxc {
31	pinctrl_uart3: uart3grp {
32		fsl,pins = <
33			MX8MP_IOMUXC_SD1_RESET_B__UART3_DCE_RTS	0x140	/* RTS */
34			MX8MP_IOMUXC_SD1_STROBE__UART3_DCE_CTS	0x140	/* CTS */
35			MX8MP_IOMUXC_UART3_RXD__UART3_DCE_RX	0x140	/* RX */
36			MX8MP_IOMUXC_UART3_TXD__UART3_DCE_TX	0x140	/* TX */
37		>;
38	};
39
40	pinctrl_bluetooth: bluetoothgrp {
41		fsl,pins = <
42			MX8MP_IOMUXC_SD1_DATA4__GPIO2_IO06	0x106	/* BT_DEV_WAKE_EXP */
43			MX8MP_IOMUXC_SD1_DATA5__GPIO2_IO07	0x106	/* BT_REG_ON_EXP */
44			MX8MP_IOMUXC_SD1_DATA7__GPIO2_IO09	0x106	/* BT_HOST_WAKE_EXP */
45		>;
46	};
47
48	pinctrl_usdhc1: usdhc1grp {
49		fsl,pins = <
50			MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK	0x190	/* SDIO_CLK */
51			MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD	0x1d0	/* SDIO_CMD */
52			MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0	0x1d0	/* SDIO_D0 */
53			MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1	0x1d0	/* SDIO_D1 */
54			MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2	0x1d0	/* SDIO_D2 */
55			MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3	0x1d0	/* SDIO_D3 */
56		>;
57	};
58
59	pinctrl_wifi: wifigrp {
60		fsl,pins = <
61			MX8MP_IOMUXC_SPDIF_EXT_CLK__GPIO5_IO05	0x106	/* WL_REG_ON_EXP */
62		>;
63	};
64};
65
66&uart3 {
67	assigned-clocks = <&clk IMX8MP_CLK_UART3>;
68	assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>;
69	pinctrl-0 = <&pinctrl_uart3>;
70	pinctrl-names = "default";
71	uart-has-rtscts;
72	status = "okay";
73
74	bluetooth {
75		compatible = "brcm,bcm43438-bt";
76		pinctrl-0 = <&pinctrl_bluetooth>;
77		pinctrl-names = "default";
78		clock-names = "lpo";
79		clocks = <&wlbt_clock>;
80		device-wakeup-gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>;
81		host-wakeup-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>;
82		max-speed = <3000000>;
83		shutdown-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
84		vbat-supply = <&reg_vcc_3v3_sw>;
85		vddio-supply = <&reg_vcc_1v8_exp_con>;
86	};
87};
88
89&usdhc1 {
90	#address-cells = <1>;
91	#size-cells = <0>;
92	pinctrl-0 = <&pinctrl_usdhc1>;
93	pinctrl-names = "default";
94	bus-width = <4>;
95	max-frequency = <50000000>;
96	mmc-pwrseq = <&usdhc1_pwrseq>;
97	non-removable;
98	vmmc-supply = <&reg_vcc_3v3_sw>;
99	status = "okay";
100
101	wifi@1 {
102		compatible = "brcm,bcm4329-fmac";
103		reg = <1>;
104		pinctrl-0 = <&pinctrl_wifi>;
105		pinctrl-names = "default";
106		reset-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>;
107	};
108};
109