From 90f4c469d8e71cb994724af447864178ebc3029e Mon Sep 17 00:00:00 2001 From: Christian Lamparter Date: Sun, 7 Jun 2020 22:57:46 +0200 Subject: [PATCH] ath79: wndr3700 series: fix wifi range & throughput Based on the PCB pictures, the WNDR3700(v1) really had eight independent antennae. Four antennae for each radio and all of those were printed on the circut board. Reported-by: Luca Bensi Reported-by: Maciej Mazur Reported-by: Hannu Nyman Debugged-by: Hannu Nyman Signed-off-by: Christian Lamparter --- .../ath79/dts/ar7161_netgear_wndr3700.dts | 21 +++++++++++++++++++ .../ath79/dts/ar7161_netgear_wndr3700.dtsi | 19 +++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/target/linux/ath79/dts/ar7161_netgear_wndr3700.dts b/target/linux/ath79/dts/ar7161_netgear_wndr3700.dts index 75c68d83c7..38a1140968 100644 --- a/target/linux/ath79/dts/ar7161_netgear_wndr3700.dts +++ b/target/linux/ath79/dts/ar7161_netgear_wndr3700.dts @@ -32,3 +32,24 @@ read-only; }; }; + +&ath9k1 { + /* The original WNDR3700(v1) variant have four antennae dedicated + * to the 5GHz radio as well. Again, two antennae are available for + * each chain to switch between. The following configuration is the + * default setting which taken from the vendor's wifi + * code for that radio. + * + * All possible options [GPIO6,GPIO7,GPIO8,GPIO9]: + * [0,1,0,1], [0,1,1,0], [1,0,0,1], [1,0,1,0] + */ + antenna-demux { + gpio-hog; + line-name = "fixed antenna group 2"; + gpios = <6 GPIO_ACTIVE_LOW>, + <7 GPIO_ACTIVE_HIGH>, + <8 GPIO_ACTIVE_HIGH>, + <9 GPIO_ACTIVE_LOW>; + output-high; + }; +}; diff --git a/target/linux/ath79/dts/ar7161_netgear_wndr3700.dtsi b/target/linux/ath79/dts/ar7161_netgear_wndr3700.dtsi index ab4f37da11..f1db1ffd58 100644 --- a/target/linux/ath79/dts/ar7161_netgear_wndr3700.dtsi +++ b/target/linux/ath79/dts/ar7161_netgear_wndr3700.dtsi @@ -160,6 +160,25 @@ qca,no-eeprom; #gpio-cells = <2>; gpio-controller; + + /* all WNDR3700 variants have four antennae dedicated + * to the 2.4GHz radio. Two antennae are available for + * each chain. The following configuration is the + * default setting which taken from the vendor's wifi + * code for that radio. + * + * All possible options [GPIO6,GPIO7,GPIO8,GPIO9]: + * [0,1,0,1], [0,1,1,0], [1,0,0,1], [1,0,1,0] + */ + antenna-demux { + gpio-hog; + line-name = "fixed antenna group 1"; + gpios = <6 GPIO_ACTIVE_LOW>, + <7 GPIO_ACTIVE_HIGH>, + <8 GPIO_ACTIVE_LOW>, + <9 GPIO_ACTIVE_HIGH>; + output-high; + }; }; ath9k1: wifi@0,12 {