aboutsummaryrefslogtreecommitdiffstats
path: root/meta-agl-refhw-gen3
diff options
context:
space:
mode:
Diffstat (limited to 'meta-agl-refhw-gen3')
-rw-r--r--meta-agl-refhw-gen3/conf/layer.conf2
-rw-r--r--meta-agl-refhw-gen3/licenses/TI-TFL62
-rw-r--r--meta-agl-refhw-gen3/recipes-bsp/ti-bt-firmware/ti-bt-firmware_git.bb26
-rw-r--r--meta-agl-refhw-gen3/recipes-connectivity/wlconf/wlconf_8.7.3.bb39
-rw-r--r--meta-agl-refhw-gen3/recipes-kernel/linux/files/0001-Add-support-for-TI-WL1837.patch233
-rw-r--r--meta-agl-refhw-gen3/recipes-kernel/linux/files/0002-revert-e233201a.patch47
-rw-r--r--meta-agl-refhw-gen3/recipes-kernel/linux/files/refhw-rcar.cfg28
-rw-r--r--meta-agl-refhw-gen3/recipes-kernel/linux/linux-renesas_%.bbappend2
8 files changed, 428 insertions, 11 deletions
diff --git a/meta-agl-refhw-gen3/conf/layer.conf b/meta-agl-refhw-gen3/conf/layer.conf
index d3f6a7c..5bf71f5 100644
--- a/meta-agl-refhw-gen3/conf/layer.conf
+++ b/meta-agl-refhw-gen3/conf/layer.conf
@@ -16,3 +16,5 @@ BBFILE_PRIORITY_agl-refhw-gen3 = "11"
LAYERDEPENDS_agl-refhw-gen3 = "core rcar-gen3"
LAYERSERIES_COMPAT_agl-refhw-gen3 = "dunfell"
+
+LICENSE_PATH += "${LAYERDIR}/licenses"
diff --git a/meta-agl-refhw-gen3/licenses/TI-TFL b/meta-agl-refhw-gen3/licenses/TI-TFL
new file mode 100644
index 0000000..264692b
--- /dev/null
+++ b/meta-agl-refhw-gen3/licenses/TI-TFL
@@ -0,0 +1,62 @@
+TEXAS INSTRUMENTS TEXT FILE LICENSE
+
+Copyright (c) [earliest year] - [latest year] Texas Instruments Incorporated
+
+All rights reserved not granted herein.
+
+Limited License.
+
+Texas Instruments Incorporated grants a world-wide, royalty-free,
+non-exclusive license under copyrights and patents it now or hereafter owns
+or controls to make, have made, use, import, offer to sell and sell
+("Utilize") this software subject to the terms herein. With respect to the
+foregoing patent license, such license is granted solely to the extent that
+any such patent is necessary to Utilize the software alone. The patent
+license shall not apply to any combinations which include this software,
+other than combinations with devices manufactured by or for TI ("TI
+Devices"). No hardware patent is licensed hereunder.
+
+Redistributions must preserve existing copyright notices and reproduce this
+license (including the above copyright notice and the disclaimer and (if
+applicable) source code license limitations below) in the documentation
+and/or other materials provided with the distribution
+
+Redistribution and use in binary form, without modification, are permitted
+provided that the following conditions are met:
+
+* No reverse engineering, decompilation, or disassembly of this software is
+permitted with respect to any software provided in binary form.
+
+* any redistribution and use are licensed by TI for use only with TI
+Devices.
+
+* Nothing shall obligate TI to provide you with source code for the software
+licensed and provided to you in object code.
+
+If software source code is provided to you, modification and redistribution
+of the source code are permitted provided that the following conditions are
+met:
+
+* any redistribution and use of the source code, including any resulting
+derivative works, are licensed by TI for use only with TI Devices.
+
+* any redistribution and use of any object code compiled from the source
+code and any resulting derivative works, are licensed by TI for use only
+with TI Devices.
+
+Neither the name of Texas Instruments Incorporated nor the names of its
+suppliers may be used to endorse or promote products derived from this
+software without specific prior written permission.
+
+DISCLAIMER.
+
+THIS SOFTWARE IS PROVIDED BY TI AND TI'S LICENSORS "AS IS" AND ANY EXPRESS
+OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+NO EVENT SHALL TI AND TI'S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/meta-agl-refhw-gen3/recipes-bsp/ti-bt-firmware/ti-bt-firmware_git.bb b/meta-agl-refhw-gen3/recipes-bsp/ti-bt-firmware/ti-bt-firmware_git.bb
new file mode 100644
index 0000000..22d9145
--- /dev/null
+++ b/meta-agl-refhw-gen3/recipes-bsp/ti-bt-firmware/ti-bt-firmware_git.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Bluetooth firmare files for WL18xx combo modules"
+LICENSE = "TI-TFL"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f39eac9f4573be5b012e8313831e72a9"
+
+# Use the commit ID for PV since several different firmware versions
+# are mixed together.
+PV = "git${SRCPV}"
+
+SRC_URI = "git://git.ti.com/ti-bt/service-packs.git;branch=master"
+SRCREV = "6c9104f0fb7ca1bfb663c61e9ea599b3eafbee67"
+
+S = "${WORKDIR}/git"
+
+inherit allarch
+
+CLEANBROKEN = "1"
+
+do_compile[noexec] = "1"
+do_configure[noexec] = "1"
+
+do_install() {
+ install -d ${D}${nonarch_base_libdir}/firmware/ti-connectivity/
+ oe_runmake "DEST_DIR=${D}" "BASE_LIB_DIR=${nonarch_base_libdir}" install
+}
+
+FILES_${PN} = "${nonarch_base_libdir}/firmware/ti-connectivity/*"
diff --git a/meta-agl-refhw-gen3/recipes-connectivity/wlconf/wlconf_8.7.3.bb b/meta-agl-refhw-gen3/recipes-connectivity/wlconf/wlconf_8.7.3.bb
new file mode 100644
index 0000000..42a3248
--- /dev/null
+++ b/meta-agl-refhw-gen3/recipes-connectivity/wlconf/wlconf_8.7.3.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "Configuration utility for TI wireless drivers"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://README;beginline=1;endline=21;md5=adc05a1903d3f107f85c90328e3a9438"
+
+# Tag: R8.7_SP3 (8.7.3)
+SRCREV = "5048b59a444ac59ba7171d6e122d5a84581aebf2"
+SRC_URI = "git://git.ti.com/wilink8-wlan/18xx-ti-utils.git"
+
+S = "${WORKDIR}/git/wlconf"
+
+EXTRA_OEMAKE = "CC="${CC}""
+
+do_install() {
+ install -d ${D}${sbindir}
+ install -d ${D}${sbindir}/wlconf/
+ install -d ${D}${sbindir}/wlconf/official_inis
+ install -d ${D}/lib/firmware/ti-connectivity
+
+ install -m 0755 wlconf ${D}${sbindir}/wlconf/
+ install -m 0755 dictionary.txt ${D}${sbindir}/wlconf/
+ install -m 0755 struct.bin ${D}${sbindir}/wlconf/
+ install -m 0755 default.conf ${D}${sbindir}/wlconf/
+ install -m 0755 wl18xx-conf-default.bin ${D}${sbindir}/wlconf/
+ install -m 0755 wl18xx-conf-default.bin ${D}/lib/firmware/ti-connectivity/wl18xx-conf.bin
+ install -m 0755 README ${D}${sbindir}/wlconf/
+ install -m 0755 example.conf ${D}${sbindir}/wlconf/
+ install -m 0755 example.ini ${D}${sbindir}/wlconf/
+ install -m 0755 configure-device.sh ${D}${sbindir}/wlconf/
+ install -m 0755 ${S}/official_inis/* \
+ ${D}${sbindir}/wlconf/official_inis/
+}
+
+FILES_${PN} += " \
+ ${sbindir}/wlconf \
+ ${sbindir}/wlconf/official_inis \
+ /lib/firmware/ti-connectivity/wl18xx-conf.bin \
+"
+
+FILES_${PN}-dbg += "${sbindir}/wlconf/.debug" \ No newline at end of file
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;
diff --git a/meta-agl-refhw-gen3/recipes-kernel/linux/files/0002-revert-e233201a.patch b/meta-agl-refhw-gen3/recipes-kernel/linux/files/0002-revert-e233201a.patch
new file mode 100644
index 0000000..76039be
--- /dev/null
+++ b/meta-agl-refhw-gen3/recipes-kernel/linux/files/0002-revert-e233201a.patch
@@ -0,0 +1,47 @@
+Revert "wl18xx: do not invert IRQ on WLxxxx side"
+
+This reverts commit 2bcfc394307ae164cbbdff74b902af61dc0181b4.
+The hard-coded assumption that the IRQ inversion logic is not
+needed breaks non-Kingfisher users, specifically the WLAN card
+for the AGL reference hardware board.
+
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
+---
+ drivers/net/wireless/ti/wl18xx/main.c | 8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/drivers/net/wireless/ti/wl18xx/main.c b/drivers/net/wireless/ti/wl18xx/main.c
+index 764987101116..0b3cf8477c6c 100644
+--- a/drivers/net/wireless/ti/wl18xx/main.c
++++ b/drivers/net/wireless/ti/wl18xx/main.c
+@@ -865,9 +865,7 @@ static int wl18xx_pre_upload(struct wl1271 *wl)
+ {
+ u32 tmp;
+ int ret;
+-#if 0
+ u16 irq_invert;
+-#endif
+
+ BUILD_BUG_ON(sizeof(struct wl18xx_mac_and_phy_params) >
+ WL18XX_PHY_INIT_MEM_SIZE);
+@@ -920,11 +918,6 @@ static int wl18xx_pre_upload(struct wl1271 *wl)
+ if (ret < 0)
+ goto out;
+
+-#if 0
+- /* We have level translator with inversion on IRQ line so we
+- * set IRQ_TYPE_EDGE_FALLING in DTS, but we do not need to
+- * invert IRQ logic on WLxxxx side!
+- */
+ ret = irq_get_trigger_type(wl->irq);
+ if ((ret == IRQ_TYPE_LEVEL_LOW) || (ret == IRQ_TYPE_EDGE_FALLING)) {
+ wl1271_info("using inverted interrupt logic: %d", ret);
+@@ -944,7 +937,6 @@ static int wl18xx_pre_upload(struct wl1271 *wl)
+
+ ret = wlcore_set_partition(wl, &wl->ptable[PART_PHY_INIT]);
+ }
+-#endif
+
+ out:
+ return ret;
diff --git a/meta-agl-refhw-gen3/recipes-kernel/linux/files/refhw-rcar.cfg b/meta-agl-refhw-gen3/recipes-kernel/linux/files/refhw-rcar.cfg
index fc8afbc..9fa24e9 100644
--- a/meta-agl-refhw-gen3/recipes-kernel/linux/files/refhw-rcar.cfg
+++ b/meta-agl-refhw-gen3/recipes-kernel/linux/files/refhw-rcar.cfg
@@ -3,25 +3,31 @@ CONFIG_USB_NET_AX88179_178A=y
CONFIG_GPIO_SYSFS=y
-CONFIG_RFKILL=y
-
CONFIG_CAN=y
CONFIG_CAN_DEV=y
CONFIG_CAN_RCAR_CANFD=y
-CONFIG_BT=y
-CONFIG_BT_QCA=y
-CONFIG_BT_HCIUART=y
+CONFIG_BT=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_BNEP=m
+CONFIG_BT_HIDP=m
+
+CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIUART_BCM=y
-CONFIG_CFG80211=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=y
-CONFIG_ATH_COMMON=y
-CONFIG_WLAN_VENDOR_ATH=y
-CONFIG_ATH10K=y
-CONFIG_ATH10K_PCI=m
+CONFIG_WLAN=y
+CONFIG_WLCORE=m
+CONFIG_WLCORE_SDIO=m
+CONFIG_WL18xx=m
+CONFIG_SND_SOC_WL18XX=y
CONFIG_USB_GADGET=y
CONFIG_USB_RENESAS_USB3=y
diff --git a/meta-agl-refhw-gen3/recipes-kernel/linux/linux-renesas_%.bbappend b/meta-agl-refhw-gen3/recipes-kernel/linux/linux-renesas_%.bbappend
index 82c4a2a..325e507 100644
--- a/meta-agl-refhw-gen3/recipes-kernel/linux/linux-renesas_%.bbappend
+++ b/meta-agl-refhw-gen3/recipes-kernel/linux/linux-renesas_%.bbappend
@@ -4,6 +4,8 @@ SRC_URI_append = " \
file://0001-create-r8a7795-usb-ovc-pinmux-groups.patch \
file://0001-add-agl-refhw.patch \
file://0003-rcar3-dw-hdmi-cec-mute.patch \
+ file://0001-Add-support-for-TI-WL1837.patch \
+ file://0002-revert-e233201a.patch \
file://refhw-rcar.cfg \
"