From 7dd3d7e1d3845160c2ef51e6148b452e666bd6f5 Mon Sep 17 00:00:00 2001 From: Lucian Cristian Date: Tue, 26 Jun 2018 10:30:46 +0300 Subject: [PATCH] ath79: add support for Ubiquiti UniFi AC-Pro rework the dts to a common unifi-ac dtsi pro network is connected via phy0 and has usb ports lite network is connected via phy4 without usb ports Signed-off-by: Lucian Cristian --- .../ath79/base-files/etc/board.d/02_network | 4 + .../etc/hotplug.d/firmware/11-ath10k-caldata | 3 +- .../ath79/dts/qca9563_ubnt_unifiac-lite.dts | 119 +---------------- .../ath79/dts/qca9563_ubnt_unifiac-pro.dts | 38 ++++++ .../linux/ath79/dts/qca9563_ubnt_unifiac.dtsi | 122 ++++++++++++++++++ target/linux/ath79/image/generic-ubnt.mk | 18 ++- 6 files changed, 178 insertions(+), 126 deletions(-) create mode 100644 target/linux/ath79/dts/qca9563_ubnt_unifiac-pro.dts create mode 100644 target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi diff --git a/target/linux/ath79/base-files/etc/board.d/02_network b/target/linux/ath79/base-files/etc/board.d/02_network index e880abe5ac..3282d8ad90 100755 --- a/target/linux/ath79/base-files/etc/board.d/02_network +++ b/target/linux/ath79/base-files/etc/board.d/02_network @@ -98,6 +98,10 @@ ath79_setup_interfaces() ucidef_add_switch "switch0" \ "0@eth0" "3:lan:1" "5:lan:2" "4:wan" ;; + "ubnt,unifiac-pro") + ucidef_add_switch "switch0" \ + "0@eth0" "2:lan" "3:wan" + ;; *) ucidef_set_interfaces_lan_wan "eth0" "eth1" ;; diff --git a/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index c3cc4d9986..dff33b70ce 100644 --- a/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -95,7 +95,8 @@ case "$FIRMWARE" in ath10kcal_extract "art" 20480 2116 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -2) ;; - "ubnt,unifiac-lite") + "ubnt,unifiac-lite"|\ + "ubnt,unifiac-pro") ath10kcal_extract "EEPROM" 20480 2116 ;; esac diff --git a/target/linux/ath79/dts/qca9563_ubnt_unifiac-lite.dts b/target/linux/ath79/dts/qca9563_ubnt_unifiac-lite.dts index ff24338ca0..6b872561ed 100644 --- a/target/linux/ath79/dts/qca9563_ubnt_unifiac-lite.dts +++ b/target/linux/ath79/dts/qca9563_ubnt_unifiac-lite.dts @@ -1,122 +1,11 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT /dts-v1/; -#include -#include - -#include "qca956x.dtsi" +#include "qca9563_ubnt_unifiac.dtsi" / { compatible = "ubnt,unifiac-lite", "qca,qca9563"; model = "Ubiquiti UniFi-AC-LITE/MESH/LR"; - - chosen { - bootargs = "console=ttyS0,115200n8"; - }; - - leds { - compatible = "gpio-leds"; - - wifi_ac { - label = "ubnt:white:dome"; - gpios = <&gpio 7 GPIO_ACTIVE_LOW>; - default-state = "off"; - linux,default-trigger = "phy0tpt"; - }; - - wifi_n { - label = "ubnt:blue:dome"; - gpios = <&gpio 8 GPIO_ACTIVE_LOW>; - default-state = "off"; - linux,default-trigger = "phy1tpt"; - }; - - }; - - keys { - compatible = "gpio-keys"; - #address-cells = <1>; - #size-cells = <0>; - - reset { - label = "Reset button"; - linux,code = ; - gpios = <&gpio 2 GPIO_ACTIVE_LOW>; - debounce-interval = <60>; - }; - }; -}; - -&uart { - status = "okay"; -}; - -&gpio { - status = "okay"; -}; - -&pcie { - status = "okay"; -}; - -&spi { - status = "okay"; - num-cs = <1>; - - flash@0 { - #address-cells = <1>; - #size-cells = <1>; - compatible = "jedec,spi-nor"; - reg = <0>; - spi-max-frequency = <25000000>; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - partition@0 { - label = "u-boot"; - reg = <0x000000 0x060000>; - read-only; - }; - - partition@60000 { - label = "u-boot-env"; - reg = <0x060000 0x010000>; - read-only; - }; - - partition@70000 { - label = "firmware"; - reg = <0x070000 0x790000>; - }; - - partition@800000 { - label = "ubnt-airos"; - reg = <0x800000 0x790000>; - read-only; - }; - - partition@f90000 { - label = "bs"; - reg = <0xf90000 0x020000>; - read-only; - }; - - partition@fb0000 { - label = "cfg"; - reg = <0xfb0000 0x040000>; - read-only; - }; - - eeprom: partition@ff0000 { - label = "EEPROM"; - reg = <0xff0000 0x010000>; - read-only; - }; - }; - }; }; &mdio0 { @@ -135,9 +24,3 @@ mtd-mac-address = <&eeprom 0x0>; phy-handle = <&phy4>; }; - -&wmac { - status = "okay"; - mtd-cal-data = <&eeprom 0x1000>; - mtd-mac-address = <&eeprom 0x0>; -}; diff --git a/target/linux/ath79/dts/qca9563_ubnt_unifiac-pro.dts b/target/linux/ath79/dts/qca9563_ubnt_unifiac-pro.dts new file mode 100644 index 0000000000..31ca0ab965 --- /dev/null +++ b/target/linux/ath79/dts/qca9563_ubnt_unifiac-pro.dts @@ -0,0 +1,38 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "qca9563_ubnt_unifiac.dtsi" + +/ { + compatible = "ubnt,unifiac-pro", "qca,qca9563"; + model = "Ubiquiti UniFi-AC-PRO/MESH PRO"; +}; + +&usb_phy0 { + status = "okay"; +}; + +&usb0 { + status = "okay"; +}; + +&mdio0 { + status = "okay"; + phy-mask = <0>; + + phy0: ethernet-phy@0 { + reg = <0>; + phy-mode = "sgmii"; + qca,ar8327-initvals = < + 0x04 0x00080080 /* PORT0 PAD MODE CTRL */ + 0x7c 0x0000007e /* PORT0_STATUS */ + >; + }; +}; + +ð0 { + status = "okay"; + + mtd-mac-address = <&eeprom 0x0>; + phy-handle = <&phy0>; +}; diff --git a/target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi b/target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi new file mode 100644 index 0000000000..941a5180df --- /dev/null +++ b/target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi @@ -0,0 +1,122 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include +#include + +#include "qca956x.dtsi" + +/ { + chosen { + bootargs = "console=ttyS0,115200n8"; + }; + + leds { + compatible = "gpio-leds"; + + wifi_ac { + label = "ubnt:white:dome"; + gpios = <&gpio 7 GPIO_ACTIVE_LOW>; + default-state = "off"; + linux,default-trigger = "phy0tpt"; + }; + + wifi_n { + label = "ubnt:blue:dome"; + gpios = <&gpio 8 GPIO_ACTIVE_LOW>; + default-state = "off"; + linux,default-trigger = "phy1tpt"; + }; + + }; + + keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + + reset { + label = "Reset button"; + linux,code = ; + gpios = <&gpio 2 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; +}; + +&uart { + status = "okay"; +}; + +&gpio { + status = "okay"; +}; + +&pcie { + status = "okay"; +}; + +&spi { + status = "okay"; + num-cs = <1>; + + flash@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <25000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x000000 0x060000>; + read-only; + }; + + partition@60000 { + label = "u-boot-env"; + reg = <0x060000 0x010000>; + read-only; + }; + + partition@70000 { + label = "firmware"; + reg = <0x070000 0x790000>; + }; + + partition@800000 { + label = "ubnt-airos"; + reg = <0x800000 0x790000>; + read-only; + }; + + partition@f90000 { + label = "bs"; + reg = <0xf90000 0x020000>; + read-only; + }; + + partition@fb0000 { + label = "cfg"; + reg = <0xfb0000 0x040000>; + read-only; + }; + + eeprom: partition@ff0000 { + label = "EEPROM"; + reg = <0xff0000 0x010000>; + read-only; + }; + }; + }; +}; + +&wmac { + status = "okay"; + mtd-cal-data = <&eeprom 0x1000>; + mtd-mac-address = <&eeprom 0x0>; +}; diff --git a/target/linux/ath79/image/generic-ubnt.mk b/target/linux/ath79/image/generic-ubnt.mk index aa898be2ee..31905820a0 100644 --- a/target/linux/ath79/image/generic-ubnt.mk +++ b/target/linux/ath79/image/generic-ubnt.mk @@ -81,11 +81,11 @@ endef TARGET_DEVICES += ubnt_unifi define Device/ubnt_unifiac - DEVICE_PACKAGES := kmod-usb-core kmod-usb2 - DEVICE_PROFILE := UBNT + ATH_SOC := qca9563 IMAGE_SIZE := 7744k IMAGES := sysupgrade.bin - IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) + IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) + DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca988x endef @@ -93,9 +93,13 @@ define Device/ubnt_unifiac-lite $(Device/ubnt_unifiac) DEVICE_TITLE := Ubiquiti UniFi AC-Lite SUPPORTED_DEVICES += ubnt-unifiac-lite - DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca988x - DEVICE_PROFILE += UBNTUNIFIACLITE - BOARDNAME := UBNT-UF-AC-LITE - ATH_SOC := qca9563 endef TARGET_DEVICES += ubnt_unifiac-lite + +define Device/ubnt_unifiac-pro + $(Device/ubnt_unifiac) + DEVICE_TITLE := Ubiquiti UniFi AC-Pro + DEVICE_PACKAGES += kmod-usb-core kmod-usb2 + SUPPORTED_DEVICES += ubnt-unifiac-pro +endef +TARGET_DEVICES += ubnt_unifiac-pro -- 2.25.1