Bjoern Dobe 1036545b00
ipq40xx: fix wlan mac address for Aruba AP-303H
Assigns the correct mac address from nvmen to the wlan interfaces.
This Mac address corresponds to the label "Wireless MAC" on the device
and the stock firmware.
Removes duplicate entry of calibration variant for both radios.

Fixes: cfc13c44595d ("ipq40xx: utilize nvmem-cells for macs & (pre-)calibration data")
Reviewed-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Bjoern Dobe <bjoern@dobecom.de>
2023-01-04 19:17:56 +01:00

473 lines
8.1 KiB
Plaintext

// SPDX-License-Identifier: GPL-2.0-only OR MIT
#include "qcom-ipq4019.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/soc/qcom,tcsr.h>
/ {
model = "Aruba AP-303H";
compatible = "aruba,ap-303h";
aliases {
led-boot = &led_system_green;
led-failsafe = &led_system_red;
led-running = &led_system_green;
led-upgrade = &led_system_amber;
};
memory {
device_type = "memory";
reg = <0x80000000 0x10000000>;
};
soc {
rng@22000 {
status = "okay";
};
mdio@90000 {
status = "okay";
pinctrl-0 = <&mdio_pins>;
pinctrl-names = "default";
reset-gpios = <&tlmm 19 GPIO_ACTIVE_LOW>;
reset-delay-us = <2000>;
};
counter@4a1000 {
compatible = "qcom,qca-gcnt";
reg = <0x4a1000 0x4>;
};
ess_tcsr@1953000 {
compatible = "qcom,tcsr";
reg = <0x1953000 0x1000>;
qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
};
tcsr@1949000 {
compatible = "qcom,tcsr";
reg = <0x1949000 0x100>;
qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
};
tcsr@194b000 {
compatible = "qcom,tcsr";
reg = <0x194b000 0x100>;
qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
};
tcsr@1957000 {
compatible = "qcom,tcsr";
reg = <0x1957000 0x100>;
qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
};
usb2@60f8800 {
status = "okay";
};
crypto@8e3a000 {
status = "okay";
};
watchdog@b017000 {
status = "okay";
};
i2c_0: i2c@78b7000 {
pinctrl-0 = <&i2c_0_pins>;
pinctrl-names = "default";
status = "okay";
tpm@29 {
/* No Driver */
compatible = "atmel,at97sc3203";
reg = <0x29>;
read-only;
};
power-monitor@40 {
/* No driver */
compatible = "isl,isl28022";
reg = <0x40>;
};
};
};
leds {
compatible = "gpio-leds";
wifi_green {
label = "green:wifi";
gpios = <&tlmm 27 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy0tpt";
};
wifi_amber {
label = "amber:wifi";
gpios = <&tlmm 28 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy1tpt";
};
pse {
label = "green:pse";
gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>;
};
led_system_red: system_red {
label = "red:system";
gpios = <&tlmm 25 GPIO_ACTIVE_HIGH>;
};
led_system_green: system_green {
label = "green:system";
gpios = <&tlmm 24 GPIO_ACTIVE_HIGH>;
};
led_system_amber: system_amber {
label = "amber:system";
gpios = <&tlmm 26 GPIO_ACTIVE_HIGH>;
};
};
keys {
compatible = "gpio-keys";
reset {
label = "Reset button";
gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
};
&blsp_dma {
status = "okay";
};
&blsp1_uart1 {
pinctrl-0 = <&serial_0_pins>;
pinctrl-names = "default";
status = "okay";
};
&blsp1_uart2 {
/* Texas Instruments CC2540T BLE radio */
pinctrl-0 = <&serial_1_pins>;
pinctrl-names = "default";
status = "okay";
};
&cryptobam {
status = "okay";
};
&qpic_bam {
status = "okay";
};
&tlmm {
/*
* In addition to the Pins listed below,
* the following GPIOs have "features":
* 39 - out - active low to force HW reset
* 32 - out - active low to reset TPM
* 43 - out - active low to reset BLE radio
* 41 - out - pulse to set warm reset status
* 34 - out - active low to enable PSE port
* 22 - in - active low when 802.3at powered
* 29 - in - active high when DC powered
* 40 - in - active low when reset due to cold HW reset
* 30 - in - active low when USB overcurrent detected
* 35 - in - interrupt line for power monitor chip
* 31 - in - active low when PSE port active
*/
mdio_pins: mdio_pinmux {
mux_1 {
pins = "gpio6";
function = "mdio";
bias-pull-up;
};
mux_2 {
pins = "gpio7";
function = "mdc";
bias-pull-up;
};
};
spi_0_pins: spi_0_pinmux {
pin {
function = "blsp_spi0";
pins = "gpio13", "gpio14", "gpio15";
drive-strength = <12>;
bias-disable;
};
pin_cs {
function = "gpio";
pins = "gpio12", "gpio59";
drive-strength = <2>;
bias-disable;
output-high;
};
};
i2c_0_pins: i2c_0_pinmux {
mux {
pins = "gpio20", "gpio21";
function = "blsp_i2c0";
drive-strength = <4>;
bias-disable;
};
};
serial_0_pins: serial_0_pinmux {
mux {
pins = "gpio16", "gpio17";
function = "blsp_uart0";
bias-disable;
};
};
serial_1_pins: serial_1_pinmux {
mux {
pins = "gpio8", "gpio9";
function = "blsp_uart1";
bias-disable;
};
};
usb-power {
line-name = "USB-power";
gpios = <23 GPIO_ACTIVE_HIGH>;
gpio-hog;
output-high;
};
};
&blsp1_spi1 {
pinctrl-0 = <&spi_0_pins>;
pinctrl-names = "default";
status = "okay";
cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>, <&tlmm 59 GPIO_ACTIVE_HIGH>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <24000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
/*
* There is no partition map for the NOR flash
* in the stock firmware.
*
* All partitions here are based on offsets
* found in the U-Boot GPL code and information
* from smem.
*/
partition@0 {
label = "sbl1";
reg = <0x0 0x40000>;
read-only;
};
partition@40000 {
label = "mibib";
reg = <0x40000 0x20000>;
read-only;
};
partition@60000 {
label = "qsee";
reg = <0x60000 0x60000>;
read-only;
};
partition@c0000 {
label = "cdt";
reg = <0xc0000 0x10000>;
read-only;
};
partition@d0000 {
label = "ddrparams";
reg = <0xd0000 0x10000>;
read-only;
};
partition@e0000 {
label = "appsblenv";
reg = <0xe0000 0x10000>;
read-only;
};
partition@f0000 {
label = "appsbl";
reg = <0xf0000 0x100000>;
read-only;
};
partition@1e0000 {
label = "ART";
reg = <0x1f0000 0x10000>;
read-only;
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;
precal_art_1000: precal@1000 {
reg = <0x1000 0x2f20>;
};
precal_art_5000: precal@5000 {
reg = <0x5000 0x2f20>;
};
};
partition@1f0000 {
label = "osss";
reg = <0x200000 0x170000>;
read-only;
};
partition@200000 {
label = "pds";
reg = <0x370000 0x10000>;
read-only;
};
partition@380000 {
label = "apcd";
reg = <0x380000 0x10000>;
read-only;
};
partition@390000 {
label = "mfginfo";
reg = <0x390000 0x10000>;
read-only;
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;
macaddr_mfginfo_1d: macaddr@1d {
reg = <0x1d 0x6>;
};
macaddr_mfginfo_45: macaddr@45 {
reg = <0x45 0x6>;
};
};
partition@3a0000 {
label = "fcache";
reg = <0x3a0000 0x10000>;
read-only;
};
partition@3b0000 {
/* Called osss1 in smem */
label = "u-boot-env-bak";
reg = <0x3b0000 0x10000>;
read-only;
};
partition@3f0000 {
label = "u-boot-env";
reg = <0x3c0000 0x40000>;
read-only;
};
};
};
flash@1 {
status = "okay";
compatible = "spi-nand";
reg = <1>;
spi-max-frequency = <24000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
/* 'aos0' in Aruba firmware */
label = "aos0";
reg = <0x0 0x2000000>;
read-only;
};
partition@2000000 {
/* 'aos1' in Aruba firmware */
label = "ubi";
reg = <0x2000000 0x2000000>;
};
partition@4000000 {
label = "aruba-ubifs";
reg = <0x4000000 0x4000000>;
read-only;
};
};
};
};
&usb2_hs_phy {
status = "okay";
};
&gmac {
status = "okay";
};
&switch {
status = "okay";
};
&swport2 {
status = "okay";
label = "lan1";
};
&swport3 {
status = "okay";
label = "lan2";
};
&swport4 {
status = "okay";
label = "lan3";
};
&swport5 {
status = "okay";
label = "wan";
};
&wifi0 {
status = "okay";
nvmem-cell-names = "pre-calibration", "mac-address";
nvmem-cells = <&precal_art_1000>, <&macaddr_mfginfo_45>;
qcom,ath10k-calibration-variant = "Aruba-AP-303";
};
&wifi1 {
status = "okay";
nvmem-cell-names = "pre-calibration", "mac-address";
nvmem-cells = <&precal_art_5000>, <&macaddr_mfginfo_45>;
mac-address-increment = <1>;
qcom,ath10k-calibration-variant = "Aruba-AP-303";
};