summaryrefslogtreecommitdiffstats
path: root/meta-agl-refhw-gen3/recipes-kernel/linux/files/0001-Add-support-for-TI-WL1837.patch
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2021-09-07 11:03:24 -0400
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2021-09-15 10:34:06 +0000
commit2f89119bd5b08da539650893e5659f11c86390d0 (patch)
tree6436239ab9158cee4ea8915d6ebe1992126ae9fa /meta-agl-refhw-gen3/recipes-kernel/linux/files/0001-Add-support-for-TI-WL1837.patch
parent438c014047d2523878cf6a9dc0063ed8145c8969 (diff)
Add WLAN card support
This is loosely based on the contents of the tar file provided with the WLAN cards (AGL_Refhw_sample_software_KK_20210225.tar.gz) with updates for BSP v4.7.0 and other fixes. Changes: - Kernel patches and configuration update to enable the TI WL1837 module. As opposed to the original changes from Panasonic or the Kingfisher support, the HCI LL driver is used instead of the older ti-st + btwilink combination, since the the latter are deprecated and are removed in kernel 5.5. - As part of the above the sound configuration in the devicetree has been reworked to support the WL1837 BT audio. This includes dropping the HDMI1 audio configuration from the original Salvator-X devicetree, as it conflicts with the SSI used for the ak4613 in the reference hardware. - Recipes added for wlconf (from meta-ti) and ti-bt-firmware (loosely derived from the meta-rcar-gen3-adas version). The TI-TFL license used by ti-bt-firmware has been added in a top-level "licenses" directory and that added to LICENSE_PATH in layer.conf to satisfy the license packaging QA checking. Bug-AGL: SPEC-4071 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ib17fc01331efe0f49a90f7a8b223ec88b33b44f7 (cherry picked from commit a0117f8c0d614a2d15111db312eebfe9378c868e)
Diffstat (limited to 'meta-agl-refhw-gen3/recipes-kernel/linux/files/0001-Add-support-for-TI-WL1837.patch')
-rw-r--r--meta-agl-refhw-gen3/recipes-kernel/linux/files/0001-Add-support-for-TI-WL1837.patch233
1 files changed, 233 insertions, 0 deletions
diff --git a/meta-agl-refhw-gen3/recipes-kernel/linux/files/0001-Add-support-for-TI-WL1837.patch b/meta-agl-refhw-gen3/recipes-kernel/linux/files/0001-Add-support-for-TI-WL1837.patch
new file mode 100644
index 0000000..cfd1276
--- /dev/null
+++ b/meta-agl-refhw-gen3/recipes-kernel/linux/files/0001-Add-support-for-TI-WL1837.patch
@@ -0,0 +1,233 @@
+Add support for TI WL1837
+
+This patch adds description of TI WL1837 and links interfaces
+to communicate with the IC.
+
+Signed-off-by: ito.yoshiki001 <ito.yoshiki001@jp.panasonic.com>
+
+Reworked:
+- WL1837 specific devicetree configuration moved to the board
+ specific r8a7795-agl-refhw.dts from agl-refhw-common.dtsi.
+- Switched to HCI_LL driver for BT support to match other upstream
+ users and prepare for btwilink driver going away (dropped in 5.5
+ upstream).
+- WLAN_PWR_EN enabling moved to GPIO initialization to work around
+ BT initialization problems.
+- Update sound configuration to enable WL1837 BT audio, and disable
+ the HDMI1 audio left over from the original Salvator-X devicetree.
+ The latter is clean up, as HDMI1 as defined uses a SSI that
+ conflicts with the ak4613 configuration.
+
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+---
+ arch/arm64/boot/dts/renesas/agl-refhw-common.dtsi | 37 +++++++---
+ arch/arm64/boot/dts/renesas/r8a7795-agl-refhw.dts | 84 ++++++++++++++++++-----
+ 2 files changed, 94 insertions(+), 27 deletions(-)
+
+diff --git a/arch/arm64/boot/dts/renesas/agl-refhw-common.dtsi b/arch/arm64/boot/dts/renesas/agl-refhw-common.dtsi
+index 796ac4c078e0..6f34b54c6ce1 100644
+--- a/arch/arm64/boot/dts/renesas/agl-refhw-common.dtsi
++++ b/arch/arm64/boot/dts/renesas/agl-refhw-common.dtsi
+@@ -183,6 +183,18 @@
+ 1800000 0>;
+ };
+
++ wlan_en: regulator-wlan_en {
++ compatible = "regulator-fixed";
++
++ regulator-name = "wlan-en-regulator";
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
++
++ gpio = <&gpio7 2 GPIO_ACTIVE_HIGH>;
++ startup-delay-us = <70000>;
++ enable-active-high;
++ };
++
+ hdmi0-out {
+ compatible = "hdmi-connector";
+ label = "HDMI0 OUT";
+@@ -672,7 +684,8 @@
+ };
+
+ sound_pins: sound {
+- groups = "ssi349_ctrl", "ssi3_data", "ssi4_data";
++ groups = "ssi349_ctrl", "ssi3_data", "ssi4_data",
++ "ssi78_ctrl", "ssi7_data", "ssi8_data";
+ function = "ssi";
+ };
+
+@@ -827,24 +840,28 @@
+ };
+
+ &sdhi3 {
++ /* Default WLAN card configuration */
+ pinctrl-0 = <&sdhi3_pins>;
+- pinctrl-1 = <&sdhi3_pins_uhs>;
+- pinctrl-names = "default", "state_uhs";
++ pinctrl-names = "default";
+
+- vmmc-supply = <&vcc_sdhi3>;
+- vqmmc-supply = <&vccq_sdhi3>;
+- cd-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;
+- wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>;
++ vmmc-supply = <&wlan_en>;
+ bus-width = <4>;
+- sd-uhs-sdr50;
+- sd-uhs-sdr104;
+- status = "okay";
++ no-1-8-v;
++ non-removable;
++ cap-power-off-card;
++ keep-power-in-suspend;
++
++ /* leave disabled by default */
+ };
+
+ &ssi4 {
+ shared-pin;
+ };
+
++&ssi8 {
++ shared-pin;
++};
++
+ &usb_extal_clk {
+ clock-frequency = <50000000>;
+ };
+diff --git a/arch/arm64/boot/dts/renesas/r8a7795-agl-refhw.dts b/arch/arm64/boot/dts/renesas/r8a7795-agl-refhw.dts
+index 83638a6228c0..97cc6e08ee8f 100644
+--- a/arch/arm64/boot/dts/renesas/r8a7795-agl-refhw.dts
++++ b/arch/arm64/boot/dts/renesas/r8a7795-agl-refhw.dts
+@@ -119,6 +119,23 @@
+ };
+ };
+
++ sound_wl18xx {
++ compatible = "audio-graph-card";
++ label = "wl18xx";
++
++ dais = <&rsnd_port2>;
++ };
++
++ wl18xx_pcm {
++ compatible = "ti,wl18xx-pcm";
++ status = "okay";
++
++ port {
++ wl18xx_endpoint: endpoint {
++ remote-endpoint = <&rsnd_for_wl18xx>;
++ };
++ };
++ };
+ };
+
+ &adsp {
+@@ -155,8 +172,14 @@
+
+ &sound_card {
+ dais = <&rsnd_port0 /* ak4613 */
+- &rsnd_port1 /* HDMI0 */
+- &rsnd_port2>; /* HDMI1 */
++ &rsnd_port1>; /* HDMI0 */
++};
++
++&hscif0 {
++ bluetooth {
++ compatible = "ti,wl1837-st";
++ enable-gpios = <&gpio7 3 GPIO_ACTIVE_HIGH>;
++ };
+ };
+
+ &hdmi0 {
+@@ -192,12 +215,6 @@
+ remote-endpoint = <&hdmi1_con>;
+ };
+ };
+- port@2 {
+- reg = <2>;
+- dw_hdmi1_snd_in: endpoint {
+- remote-endpoint = <&rsnd_endpoint2>;
+- };
+- };
+ };
+ };
+
+@@ -215,8 +232,11 @@
+ };
+
+ &rcar_sound {
++ /* Multi DAI */
++ #sound-dai-cells = <1>;
++
+ ports {
+- /* rsnd_port0 is on salvator-common */
++ /* rsnd_port0 is in agl-refhw-common */
+ rsnd_port1: port@1 {
+ reg = <1>;
+ rsnd_endpoint1: endpoint {
+@@ -231,14 +251,15 @@
+ };
+ rsnd_port2: port@2 {
+ reg = <2>;
+- rsnd_endpoint2: endpoint {
+- remote-endpoint = <&dw_hdmi1_snd_in>;
++ rsnd_for_wl18xx: endpoint {
++ remote-endpoint = <&wl18xx_endpoint>;
+
+- dai-format = "i2s";
+- bitclock-master = <&rsnd_endpoint2>;
+- frame-master = <&rsnd_endpoint2>;
++ simple-audio-card,format = "i2s";
++ bitclock-master = <&wl18xx_endpoint>;
++ frame-master = <&wl18xx_endpoint>;
+
+- playback = <&ssi3>;
++ playback = <&ssi7>;
++ capture = <&ssi8>;
+ };
+ };
+ };
+@@ -373,11 +394,40 @@
+ };
+
+ &sdhi3 {
+- /delete-property/ wp-gpios;
+- non-removable;
++ status = "okay";
++
++ max-frequency = <50000000>;
++
++ #address-cells = <1>;
++ #size-cells = <0>;
++ wlcore: wlcore@2 {
++ compatible = "ti,wl1837";
++ reg = <2>;
++ interrupt-parent = <&gpio1>;
++ interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
++ };
+ };
+
+ &gpio6 {
++ /*
++ * Enable WLAN_PWR_EN right from boot to get reliable BT
++ * initialization, as doing it at SDHI initialization
++ * does not seem to do so, no matter how much BT_EN is
++ * delayed.
++ *
++ * This is perhaps not ideal per the requirements described
++ * in the "Level Shifting WL18xx/WL18xxMOD/WL18xxQ I/Os"
++ * document (SWRA448A)[1], but the BT UART seems unusable
++ * otherwise.
++ *
++ * [1] https://www.ti.com/lit/an/swra448a/swra448a.pdf
++ */
++ wlan-pwr-en {
++ gpio-hog;
++ gpios = <9 GPIO_ACTIVE_HIGH>;
++ output-high;
++ };
++
+ /* Enable the CAN 1 & 2 transceivers */
+ can-1-transceiver-stb {
+ gpio-hog;