Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ath79: add support for Meraki MR12 #3634

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
168 changes: 168 additions & 0 deletions target/linux/ath79/dts/ar7242_meraki_mr12.dts
@@ -0,0 +1,168 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT

#include "ar7242.dtsi"
Hurricos marked this conversation as resolved.
Show resolved Hide resolved
Hurricos marked this conversation as resolved.
Show resolved Hide resolved

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

/ {
compatible = "meraki,mr12", "qca,ar7242";
model = "Meraki MR12";

aliases {
led-boot = &led_power_orange;
led-failsafe = &led_power_orange;
led-running = &led_power_green;
led-upgrade = &led_power_orange;
};

extosc: ref {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-output-names = "ref";
clock-frequency = <40000000>;
};

leds {
compatible = "gpio-leds";

link1 {
label = "green:link1";
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
};

link2 {
label = "green:link2";
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
};

link3 {
label = "green:link3";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
};

link4 {
label = "green:link4";
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
};

lan {
label = "green:lan";
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
};

led_power_orange: power_orange {
label = "orange:power";
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
panic-indicator;
};

led_power_green: power_green {
label = "green:power";
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
};
};

keys {
compatible = "gpio-keys";

reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
};
};
};

&pcie {
status = "okay";

wifi@0,0,0 {
Hurricos marked this conversation as resolved.
Show resolved Hide resolved
compatible = "pci168c,002a";
reg = <0x0000 0 0 0 0>;
qca,no-eeprom;
mtd-mac-address = <&config 0x66>;
mtd-mac-address-increment = <1>;
};
};

&pll {
clocks = <&extosc>;
};

&uart {
status = "okay";
};

&mdio0 {
status = "okay";

phy4: ethernet-phy@4 {
reg = <4>;
};
};

&eth0 {
status = "okay";
mtd-mac-address = <&config 0x66>;

pll-data = <0x02000000 0x00000101 0x00001313>;

phy-mode = "rgmii-id";
phy-handle = <&phy4>;
};

&mdio1 {
status = "okay";
};

&eth1 {
status = "okay";
mtd-mac-address = <&config 0x66>;
};

&spi {
status = "okay";

flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <50000000>;

partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;

partition@0 {
label = "u-boot";
reg = <0x000000 0x40000>;
read-only;
};

partition@40000 {
label = "u-boot-env";
reg = <0x40000 0x40000>;
read-only;
};

config: partition@80000 {
label = "config";
reg = <0x80000 0x20000>;
read-only;
};

partition@a0000 {
label = "firmware";
reg = <0xa0000 0xf40000>;
compatible = "denx,uimage";
};

partition@fe0000 {
label = "art";
reg = <0xfe0000 0x20000>;
read-only;
};
};
};
};
19 changes: 10 additions & 9 deletions target/linux/ath79/generic/base-files/etc/board.d/01_leds
Expand Up @@ -221,6 +221,16 @@ glinet,gl-x750)
hak5,lan-turtle)
ucidef_set_led_netdev "wan" "WAN" "orange:system" "eth1"
;;
meraki,mr12|\
tplink,cpe210-v2|\
tplink,cpe210-v3)
ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth0"
ucidef_set_rssimon "wlan0" "200000" "1"
ucidef_set_led_rssi "rssilow" "RSSILOW" "green:link1" "wlan0" "1" "100"
ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "green:link2" "wlan0" "30" "100"
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "green:link3" "wlan0" "60" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "green:link4" "wlan0" "80" "100"
;;
meraki,mr16)
ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth0"
;;
Expand Down Expand Up @@ -310,15 +320,6 @@ tplink,wbs510-v2)
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "green:link3" "wlan0" "60" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "green:link4" "wlan0" "80" "100"
;;
tplink,cpe210-v2|\
tplink,cpe210-v3)
ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth0"
ucidef_set_rssimon "wlan0" "200000" "1"
ucidef_set_led_rssi "rssilow" "RSSILOW" "green:link1" "wlan0" "1" "100"
ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "green:link2" "wlan0" "30" "100"
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "green:link3" "wlan0" "60" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "green:link4" "wlan0" "80" "100"
;;
tplink,cpe510-v2|\
tplink,cpe510-v3)
ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth0"
Expand Down
5 changes: 5 additions & 0 deletions target/linux/ath79/generic/base-files/etc/board.d/02_network
Expand Up @@ -259,6 +259,11 @@ ath79_setup_interfaces()
ucidef_add_switch "switch0" \
"0@eth0" "5:wan" "6@eth1" "4:lan"
;;
meraki,mr12)
ucidef_set_interface_lan "eth0"
ucidef_add_switch "switch0" \
"0@eth1" "1:lan"
;;
mercury,mw4530r-v1|\
tplink,archer-a7-v5|\
tplink,archer-c6-v2|\
Expand Down
Expand Up @@ -56,6 +56,9 @@ case "$FIRMWARE" in
caldata_extract "calibrate" 0x1000 0x440
ath9k_patch_mac $(mtd_get_mac_ascii u-boot-env0 RADIOADDR1)
;;
meraki,mr12)
caldata_extract "art" 0x11000 0xeb8
;;
nec,wg800hp)
caldata_extract "art" 0x1000 0x440
ath9k_patch_mac $(mtd_get_mac_text board_data 0x680)
Expand Down
@@ -1,6 +1,7 @@
. /lib/functions.sh

case "$(board_name)" in
meraki,mr12|\
meraki,mr16)
uci set system.@system[0].compat_version="2.0"
uci commit system
Expand Down
16 changes: 16 additions & 0 deletions target/linux/ath79/image/generic.mk
Expand Up @@ -1333,6 +1333,22 @@ define Device/librerouter_librerouter-v1
endef
TARGET_DEVICES += librerouter_librerouter-v1

define Device/meraki_mr12
Hurricos marked this conversation as resolved.
Show resolved Hide resolved
SOC := ar7242
DEVICE_VENDOR := Meraki
DEVICE_MODEL := MR12
IMAGE_SIZE := 15616k
DEVICE_PACKAGES := kmod-owl-loader rssileds
SUPPORTED_DEVICES += mr12
DEVICE_COMPAT_VERSION := 2.0
DEVICE_COMPAT_MESSAGE := Partitions differ from ar71xx version of MR12. Image format is incompatible. \
To use sysupgrade, you must change /lib/update/common.sh::get_image to prepend 128K zeroes to this image, \
and change the bootcmd in u-boot to "bootm 0xbf0a0000". After that, you can use "sysupgrade -F". \
For more details, see the OpenWrt Wiki: https://openwrt.org/toh/meraki/MR12, \
or the commit message of the MR12 ath79 port on git.openwrt.org.
endef
TARGET_DEVICES += meraki_mr12

define Device/meraki_mr16
SOC := ar7161
DEVICE_VENDOR := Meraki
Expand Down