cc0f32ad432b18ad3be906f8e4fea989855d6031
[wilink8-wlan/build-utilites.git] / patches / kernel_patches / am65xx-kernel / 0003-arm64-dts-am654-base-board-add-wl18xx-support.patch
1 From 35777e26beb77c7d0f51ac4af866b52e09a19232 Mon Sep 17 00:00:00 2001
2 From: Eyal Reizer <eyalr@ti.com>
3 Date: Mon, 29 Oct 2018 09:50:31 +0200
4 Subject: [PATCH 3/3] arm64: dts: am654-base-board: add wl18xx support
6 the am654 base board doesn't have a com8 connector for conencting
7 a standard wl18xx com8 module so a wl118xx module can be connected to the
8 evm only using a com2sdmmc adapter board plugged into the SD Card slot.
9 As a result boot-images/root-filesystem have to move to emmc.
11 Additional IOs are required for wl18xx control pins (wlan_enable,
12 wlan_irq and bluetooth_enable). the SPI1 header (j20) of the base board
13 is used for connecting these IOs to the wl18xx adapter board.
15 Lastly, the mcu uart1 header (J30) is used for uart connection to the
16 adapter board (bluetooth subsystem of wl18xx).
18 Signed-off-by: Eyal Reizer <eyalr@ti.com>
19 ---
20 arch/arm64/boot/dts/ti/k3-am654-base-board.dts | 81 +++++++++++++++++++++++---
21 1 file changed, 73 insertions(+), 8 deletions(-)
23 diff --git a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
24 index c1d4d39..81095d0 100644
25 --- a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
26 +++ b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
27 @@ -126,6 +126,20 @@
28 gpios = <&wkup_gpio0 27 GPIO_ACTIVE_LOW>;
29 };
30 };
31 +
32 + wlan_en_reg: fixedregulator {
33 + compatible = "regulator-fixed";
34 + regulator-name = "wlan-en-regulator";
35 + regulator-min-microvolt = <3300000>;
36 + regulator-max-microvolt = <3300000>;
37 +
38 + /* WLAN_EN GPIO for this board - Bank1, pin23 */
39 + gpio = <&main_gpio1 23 0>;
40 +
41 + /* WLAN card specific delay */
42 + startup-delay-us = <70000>;
43 + enable-active-high;
44 + };
45 };
47 &mcu_r5f0 {
48 @@ -184,13 +198,11 @@
49 main_mmc1_pins_default: main_mmc1_pins_default {
50 pinctrl-single,pins = <
51 AM65X_IOPAD(0x02d4, PIN_INPUT_PULLDOWN | MUX_MODE0) /* (C27) MMC1_CLK */
52 - AM65X_IOPAD(0x02d8, PIN_INPUT_PULLUP | MUX_MODE0) /* (C28) MMC1_CMD */
53 - AM65X_IOPAD(0x02d0, PIN_INPUT_PULLUP | MUX_MODE0) /* (D28) MMC1_DAT0 */
54 - AM65X_IOPAD(0x02cc, PIN_INPUT_PULLUP | MUX_MODE0) /* (E27) MMC1_DAT1 */
55 - AM65X_IOPAD(0x02c8, PIN_INPUT_PULLUP | MUX_MODE0) /* (D26) MMC1_DAT2 */
56 - AM65X_IOPAD(0x02c4, PIN_INPUT_PULLUP | MUX_MODE0) /* (D27) MMC1_DAT3 */
57 - AM65X_IOPAD(0x02dc, PIN_INPUT_PULLUP | MUX_MODE0) /* (B24) MMC1_SDCD */
58 - AM65X_IOPAD(0x02e0, PIN_INPUT | MUX_MODE0) /* (C24) MMC1_SDWP */
59 + AM65X_IOPAD(0x02d8, PIN_INPUT_PULLDOWN | MUX_MODE0) /* (C28) MMC1_CMD */
60 + AM65X_IOPAD(0x02d0, PIN_INPUT_PULLDOWN | MUX_MODE0) /* (D28) MMC1_DAT0 */
61 + AM65X_IOPAD(0x02cc, PIN_INPUT_PULLDOWN | MUX_MODE0) /* (E27) MMC1_DAT1 */
62 + AM65X_IOPAD(0x02c8, PIN_INPUT_PULLDOWN | MUX_MODE0) /* (D26) MMC1_DAT2 */
63 + AM65X_IOPAD(0x02c4, PIN_INPUT_PULLDOWN | MUX_MODE0) /* (D27) MMC1_DAT3 */
64 >;
65 };
67 @@ -230,6 +242,19 @@
68 AM65X_IOPAD(0x0088, PIN_INPUT | MUX_MODE2) /* (AG17) PRG2_PRU0_GPO4.PRG2_RGMII1_RX_CTL */
69 >;
70 };
71 +
72 + main_wlan_pins_default: main_wlan_pins_default {
73 + pinctrl-single,pins = <
74 + AM65X_IOPAD(0x01dc, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (AE12) GPIO1_23 */
75 + AM65X_IOPAD(0x01e0, PIN_INPUT | MUX_MODE7) /* (AF12) GPIO1_24 */
76 + >;
77 + };
78 +
79 + main_bt_pins_default: main_bt_pins_default {
80 + pinctrl-single,pins = <
81 + AM65X_IOPAD(0x01d8, PIN_OUTPUT | MUX_MODE7) /* (AH12) GPIO1_22 */
82 + >;
83 + };
84 };
86 &main_pmx1 {
87 @@ -314,6 +339,15 @@
88 AM65X_WKUP_IOPAD(0x0088, PIN_INPUT | MUX_MODE0) /* (L4) MCU_MDIO0_MDIO */
89 >;
90 };
91 +
92 + mcu_uart0_pins_default: mcu_uart0_pins_default {
93 + pinctrl-single,pins = <
94 + AM65X_WKUP_IOPAD(0x0044, PIN_INPUT | MUX_MODE4) /* (P4) MCU_OSPI1_D1.MCU_UART0_RXD */
95 + AM65X_WKUP_IOPAD(0x0048, PIN_OUTPUT | MUX_MODE4) /* (P5) MCU_OSPI1_D2.MCU_UART0_TXD */
96 + AM65X_WKUP_IOPAD(0x004C, PIN_INPUT | MUX_MODE4) /* (P1) MCU_OSPI1_D3.MCU_UART0_CTSn */
97 + AM65X_WKUP_IOPAD(0x0054, PIN_OUTPUT | MUX_MODE4) /* (N3) MCU_OSPI1_CSn1.MCU_UART0_RTSn */
98 + >;
99 + };
100 };
102 &wkup_i2c0 {
103 @@ -352,6 +386,12 @@
104 reg = <0x21>;
105 gpio-controller;
106 #gpio-cells = <2>;
107 + p1 {
108 + gpio-hog;
109 + gpios = <14 GPIO_ACTIVE_HIGH>;
110 + output-low;
111 + line-name = "uart_sel";
112 + };
113 };
114 };
116 @@ -443,7 +483,21 @@
117 &sdhci1 {
118 status = "okay";
119 pinctrl-names = "default";
120 - pinctrl-0 = <&main_mmc1_pins_default>;
121 + vmmc-supply = <&wlan_en_reg>;
122 + pinctrl-0 = <&main_mmc1_pins_default &main_wlan_pins_default>;
123 + non-removable;
124 + cap-power-off-card;
125 + keep-power-in-suspend;
126 + max-frequency = <20000000>;
127 +
128 + #address-cells = <1>;
129 + #size-cells = <0>;
130 + wlcore: wlcore@0 {
131 + compatible = "ti,wl1835";
132 + reg = <2>;
133 + interrupt-parent = <&main_gpio1>;
134 + interrupts = <24 IRQ_TYPE_EDGE_RISING>;
135 + };
136 };
138 &mmc_phy1 {
139 @@ -490,3 +544,14 @@
140 ti,adc-channels = <0 1 2 3 4 5 6 7>;
141 };
142 };
143 +
144 +&mcu_uart0 {
145 + status = "okay";
146 + pinctrl-names = "default";
147 + pinctrl-0 = <&mcu_uart0_pins_default &main_bt_pins_default>;
148 + bluetooth {
149 + compatible = "ti,wl1837-st";
150 + enable-gpios = <&main_gpio1 22 GPIO_ACTIVE_HIGH>;
151 + max-speed = <3000000>;
152 + };
153 +};
154 --
155 2.7.4