mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 06:33:41 +00:00
f7f15f8033
This patch adds ar71xx's GPIO setup for the 2.4GHz and 5GHz antennae
demultiplexer:
| 158 /* 2.4 GHz uses the first fixed antenna group (1, 0, 1, 0) */
| 159 ap9x_pci_setup_wmac_gpio(0, (0xf << 6), (0xa << 6));
| 160
| 161 /* 5 GHz uses the second fixed antenna group (0, 1, 1, 0) */
| 162 ap9x_pci_setup_wmac_gpio(1, (0xf << 6), (0x6 << 6));
This should restore the range and throughput of the 2.4GHz radio
on all the derived wndr3700 variants and versions with the AR7161 SoC.
A special case is the 5GHz radio. The original wndr3700(v1) will
benefit from this change. However the wndr3700v2 and later revisions
were unaffected by the missing bits, as there is no demultiplexer
present in the later designs.
This patch uses gpio-hogs within the device-tree for all
wndr3700/wndr3800/wndrmac variants.
Notes:
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.
The WNDR3700v2 and later have just six antennae. Four of those
are printed on the circuit board and serve the 2.4GHz radio.
Whereas the remaining two are special 5GHz Rayspan Patch Antennae
which are directly connected to the 5GHz radio.
Hannu Nyman dug pretty deep and unearthed a treasure of information
regarding the history of how these values came to be in the OpenWrt
archives: <https://dev.archive.openwrt.org/ticket/6533.html>.
Mark Mentovai came across the fixed antenna group when he was looking
into the driver:
fixed_antenna_group 1, (0, 1, 0, 1)
fixed_antenna_group 2, (0, 1, 1, 0)
fixed_antenna_group 3, (1, 0, 0, 1)
fixed_antenna_group 4, (1, 0, 1, 0)
Fixes: FS#3088
Reported-by: Luca Bensi
Reported-by: Maciej Mazur
Reported-by: Hannu Nyman <hannu.nyman@iki.fi>
Debugged-by: Hannu Nyman <hannu.nyman@iki.fi>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit 61307544d1
)
235 lines
4.0 KiB
Plaintext
235 lines
4.0 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
|
/dts-v1/;
|
|
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/input/input.h>
|
|
|
|
#include "ar7100.dtsi"
|
|
|
|
/ {
|
|
aliases {
|
|
led-boot = &power_orange;
|
|
led-failsafe = &power_orange;
|
|
led-running = &power_green;
|
|
led-upgrade = &power_orange;
|
|
};
|
|
|
|
chosen {
|
|
bootargs = "console=ttyS0,115200";
|
|
};
|
|
|
|
extosc: ref {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
clock-output-names = "ref";
|
|
clock-frequency = <40000000>;
|
|
};
|
|
|
|
reset-leds {
|
|
compatible = "reset-leds";
|
|
|
|
usb_led {
|
|
label = "netgear:green:usb";
|
|
resets = <&rst 12>;
|
|
trigger-sources = <&usb_ochi_port>, <&usb_echi_port>;
|
|
linux,default-trigger = "usbport";
|
|
};
|
|
};
|
|
|
|
gpio-leds {
|
|
compatible = "gpio-leds";
|
|
|
|
wps {
|
|
label = "netgear:orange:wps";
|
|
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
power_green: power_green {
|
|
label = "netgear:green:power";
|
|
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
power_orange: power_orange {
|
|
label = "netgear:orange:power";
|
|
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
|
|
default-state = "on";
|
|
};
|
|
|
|
wps_green {
|
|
label = "netgear:green:wps";
|
|
gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
wan_green {
|
|
label = "netgear:green:wan";
|
|
gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
|
|
};
|
|
};
|
|
|
|
ath9k-leds {
|
|
compatible = "gpio-leds";
|
|
wlan2g {
|
|
label = "netgear:green:wlan2g";
|
|
gpios = <&ath9k0 5 GPIO_ACTIVE_LOW>;
|
|
linux,default-trigger = "phy0tpt";
|
|
};
|
|
wlan5g {
|
|
label = "netgear:blue:wlan5g";
|
|
gpios = <&ath9k1 5 GPIO_ACTIVE_LOW>;
|
|
linux,default-trigger = "phy1tpt";
|
|
};
|
|
};
|
|
|
|
keys {
|
|
compatible = "gpio-keys";
|
|
|
|
wps {
|
|
label = "wps";
|
|
linux,code = <KEY_WPS_BUTTON>;
|
|
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
reset {
|
|
label = "reset";
|
|
linux,code = <KEY_RESTART>;
|
|
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
rfkill {
|
|
label = "rfkill";
|
|
linux,code = <KEY_RFKILL>;
|
|
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
|
|
};
|
|
};
|
|
|
|
rtl8366s {
|
|
compatible = "realtek,rtl8366s";
|
|
gpio-sda = <&gpio 5 GPIO_ACTIVE_HIGH>;
|
|
gpio-sck = <&gpio 7 GPIO_ACTIVE_HIGH>;
|
|
|
|
mdio-bus {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "okay";
|
|
|
|
phy-mask = <0x10>;
|
|
|
|
phy4: ethernet-phy@4 {
|
|
reg = <4>;
|
|
phy-mode = "rgmii";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&usb_phy {
|
|
status = "okay";
|
|
};
|
|
|
|
&usb1 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "okay";
|
|
|
|
usb_ochi_port: port@1 {
|
|
reg = <1>;
|
|
#trigger-source-cells = <0>;
|
|
};
|
|
};
|
|
|
|
&usb2 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "okay";
|
|
|
|
usb_echi_port: port@1 {
|
|
reg = <1>;
|
|
#trigger-source-cells = <0>;
|
|
};
|
|
};
|
|
|
|
&pcie0 {
|
|
status = "okay";
|
|
|
|
ath9k0: wifi@0,11 {
|
|
compatible = "pci168c,0029";
|
|
reg = <0x8800 0 0 0 0x10000>;
|
|
mtd-mac-address = <&art 0x0>;
|
|
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 {
|
|
compatible = "pci168c,0029";
|
|
reg = <0x9000 0 0 0 0x10000>;
|
|
mtd-mac-address = <&art 0xc>;
|
|
qca,no-eeprom;
|
|
#gpio-cells = <2>;
|
|
gpio-controller;
|
|
};
|
|
};
|
|
|
|
&uart {
|
|
status = "okay";
|
|
};
|
|
|
|
&spi {
|
|
status = "okay";
|
|
num-cs = <1>;
|
|
|
|
flash@0 {
|
|
compatible = "jedec,spi-nor";
|
|
reg = <0>;
|
|
spi-max-frequency = <25000000>;
|
|
|
|
partitions: partitions {
|
|
compatible = "fixed-partitions";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
};
|
|
};
|
|
};
|
|
|
|
ð0 {
|
|
status = "okay";
|
|
|
|
pll-data = <0x11110000 0x00001099 0x00991099>;
|
|
|
|
mtd-mac-address = <&art 0x00>;
|
|
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
};
|
|
};
|
|
|
|
ð1 {
|
|
status = "okay";
|
|
|
|
pll-data = <0x11110000 0x00001099 0x00991099>;
|
|
|
|
mtd-mac-address = <&art 0x06>;
|
|
|
|
phy-handle = <&phy4>;
|
|
};
|