summaryrefslogtreecommitdiff
path: root/arch/arm/boot/dts/imx6sx-sdb-btwifi.dts
blob: e6386401cb7b60cadca716f0a5d7937e89466dc2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/*
 * Copyright (C) 2015 Freescale Semiconductor, Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

/*
 * NOTE: This DTS file is written for plugging in Murata Wi-Fi/BT EVK into SD3
 * slot using Murata i.MX InterConnect Ver 1.0 Adapter AND SD Card Extender on
 * SD2 slot. Bluetooth UART connects via SD3 EMMC/MMC Plus pinout.
 * WL_REG_ON/BT_REG_ON/WL_HOST_WAKE connect via SD Card Extender.
 */

#include "imx6sx-sdb.dts"

/ {
	modem_reset: modem-reset {
		compatible = "gpio-reset";
		reset-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
		reset-delay-us = <1000>;
		#reset-cells = <0>;
	};

	usdhc3_pwrseq: usdhc3_pwrseq {
		compatible = "mmc-pwrseq-simple";
		reset-gpios = <&gpio6 10 GPIO_ACTIVE_LOW>;
	};
};

&iomuxc {
	imx6sx-sdb-murata-v1_sdext {
		pinctrl_bt: btgrp {
			fsl,pins = <
				MX6SX_PAD_SD2_DATA3__GPIO6_IO_11	0x13069 /* BT_REG_ON */
			>;
		};

		pinctrl_uart3: uart3grp {
			fsl,pins = <
				MX6SX_PAD_SD3_DATA4__UART3_RX		0x1b0b1
				MX6SX_PAD_SD3_DATA5__UART3_TX		0x1b0b1
				MX6SX_PAD_SD3_DATA7__UART3_CTS_B	0x1b0b1
				MX6SX_PAD_SD3_DATA6__UART3_RTS_B	0x1b0b1
			>;
		};

		/* change MUXing on SD2 slot for control signals. */
		pinctrl_usdhc2_1: usdhc2grp-1 {
			fsl,pins = <
				MX6SX_PAD_SD2_CMD__USDHC2_CMD		0x17059
				MX6SX_PAD_SD2_CLK__USDHC2_CLK		0x10059
				MX6SX_PAD_SD2_DATA0__USDHC2_DATA0	0x17059
			>;
		};

		/* Murata change SD3 to 4-bit SDIO only; use upper 4-bits for UART. */
		pinctrl_wifi: wifigrp {
			fsl,pins = <
				MX6SX_PAD_SD3_CMD__USDHC3_CMD		0x17069
				MX6SX_PAD_SD3_CLK__USDHC3_CLK		0x10071
				MX6SX_PAD_SD3_DATA0__USDHC3_DATA0	0x17069
				MX6SX_PAD_SD3_DATA1__USDHC3_DATA1	0x17069
				MX6SX_PAD_SD3_DATA2__USDHC3_DATA2	0x17069
				MX6SX_PAD_SD3_DATA3__USDHC3_DATA3	0x17069
				MX6SX_PAD_KEY_COL0__GPIO2_IO_10		0x17059 /* CD */
				MX6SX_PAD_KEY_ROW0__GPIO2_IO_15		0x17059 /* WP */
				/* Murata Module control signals */
				MX6SX_PAD_SD2_DATA1__GPIO6_IO_9         0x13069 /* WL_HOST_WAKE */
				MX6SX_PAD_SD2_DATA2__GPIO6_IO_10	0x13069 /* WL_REG_ON */
			>;
		};
	};
};

&uart3 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart3
		     &pinctrl_bt>;
	fsl,uart-has-rtscts;
	resets = <&modem_reset>;
	status = "okay";
};

&usdhc2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc2_1>;
	bus-width = <1>;
};

&vcc_sd3 {
	regulator-always-on;
};

&usdhc3 {
	#address-cells = <1>;
	#size-cells = <0>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_wifi>;
	bus-width = <4>;
	no-1-8-v;	/* force 3.3V VIO */
	non-removable;
	mmc-pwrseq = <&usdhc3_pwrseq>;
	pm-ignore-notify;
	cap-power-off-card;
	status = "okay";

	brcmf: bcrmf@1 {
		reg = <1>;
		compatible = "brcm,bcm4329-fmac";
	};
};