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

ramips: MT7620 add Support HiWiFi R33(C312B B52) #10812

Merged
merged 1 commit into from
Jan 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions target/linux/generic/files/drivers/net/phy/rtl8367b.c
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,8 @@ struct rtl8367b_initval {
u16 val;
};

u32 rtl_device_id;

#define RTL8367B_MIB_RXB_ID 0 /* IfInOctets */
#define RTL8367B_MIB_TXB_ID 28 /* IfOutOctets */

Expand Down Expand Up @@ -612,6 +614,10 @@ static int rtl8367b_write_initvals(struct rtl8366_smi *smi,
int err;
int i;

if (rtl_device_id == 0x0020) {
return 0;
}

for (i = 0; i < count; i++)
REG_WR(smi, initvals[i].reg, initvals[i].val);

Expand Down Expand Up @@ -1540,7 +1546,10 @@ static int rtl8367b_detect(struct rtl8366_smi *smi)
return ret;
}

rtl_device_id = chip_ver;

switch (chip_ver) {
case 0x0020:
case 0x1000:
chip_name = "8367RB";
break;
Expand Down
235 changes: 235 additions & 0 deletions target/linux/ramips/dts/mt7620a_hiwifi_r33.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,235 @@
#include "mt7620a.dtsi"

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

/ {
compatible = "hiwifi,r33", "ralink,mt7620a-soc";
model = "HiWiFi R33";

chosen {
bootargs = "console=ttyS0,115200";
};

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

nand {
status = "okay";
#address-cells = <1>;
#size-cells = <1>;
compatible = "mtk,mt7620-nand";

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

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

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

factory: partition@100000 {
label = "factory";
reg = <0x100000 0x40000>;
read-only;
};

partition@140000 {
label = "kernel";
reg = <0x140000 0x400000>;
};

ubiconcat0: partition@540000 {
label = "ubiconcat0";
reg = <0x540000 0x1c80000>;
};

partition@21c0000 {
label = "bdinfo";
reg = <0x21c0000 0x80000>;
read-only;
};

ubiconcat1: partition@2240000 {
label = "ubiconcat1";
reg = <0x2240000 0x5d40000>;
};
};
};

ubi-concat {
compatible = "mtd-concat";
devices = <&ubiconcat0 &ubiconcat1>;

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

partition@0 {
label = "ubi";
reg = <0x0 0x79c0000>;
};
};
};

leds {
compatible = "gpio-leds";

wlan5g {
label = "blue:wlan5g";
gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};

led_system: system {
label = "blue:system";
gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
};

turbo {
label = "blue:turbo";
gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
};

wlan2g {
label = "blue:wlan2g";
gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy1tpt";
};

internet {
label = "blue:internet";
gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
};
};

keys {
compatible = "gpio-keys";

reset {
label = "reset";
gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
linux,code = <KEY_RESTART>;
};
};

gpio_export {
compatible = "gpio-export";
#size-cells = <0>;

usbpower {
gpio-export,name = "usbpower";
gpio-export,output = <0>;
gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
};
};

rtl8367rb {
compatible = "realtek,rtl8367b", "rtl8367b";
cpu_port = <6>;
realtek,extif1 = <1 0 1 1 1 1 1 1 2>;
mii-bus = <&mdio0>;
};
};

//在最新的openwrt master分支中sysc已经被剔除,此处进行备份标记
// &sysc {
// ralink,gpiomux = "i2c", "jtag";
// ralink,uartmux = "gpio";
// ralink,wdtmux = <1>;
// };

&gpio3 {
status = "okay";
};

&ehci {
status = "okay";
};

&ohci {
status = "okay";
};

&pcie {
status = "okay";
};

&ethernet {
pinctrl-names = "default";
pinctrl-0 = <&rgmii1_pins &rgmii2_pins &mdio_pins>;

//mtd-mac-address = <&factory 0x4>;

nvmem-cells = <&macaddr_factory_4>;
nvmem-cell-names = "mac-address";

port@5 {
status = "okay";
mediatek,fixed-link = <1000 1 1 1>;
phy-handle = <&phy5>;
phy-mode = "rgmii";
};

mdio0: mdio-bus {
status = "okay";

phy5: ethernet-phy@5 {
reg = <5>;
phy-mode = "rgmii";
};
};
};

//5G WIFI
&pcie0 {
wifi@0,0 {
compatible = "pci14c3,7662";
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x8000>;
ieee80211-freq-limit = <5000000 6000000>;
// nvmem-cells = <&macaddr_factory_4>;
// nvmem-cell-names = "mac-address";
// mac-address-increment = <2>;
};
};

//2.4G WIFI
&wmac {
pinctrl-names = "default";
pinctrl-0 = <&pa_pins>;
ralink,mtd-eeprom = <&factory 0x0>;
// nvmem-cells = <&macaddr_factory_4>;
// nvmem-cell-names = "mac-address";
};

&state_default {
gpio {
groups = "uartf", "wled";
function = "gpio";
};
};

&factory {
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;

macaddr_factory_4: macaddr@4 {
reg = <0x4 0x6>;
};
};
22 changes: 22 additions & 0 deletions target/linux/ramips/image/mt7620.mk
Original file line number Diff line number Diff line change
Expand Up @@ -1338,3 +1338,25 @@ define Device/zyxel_keenetic-viva
SUPPORTED_DEVICES += kng_rc
endef
TARGET_DEVICES += zyxel_keenetic-viva


define Device/hiwifi_r33
SOC := mt7620a
DEVICE_VENDOR := HiWiFi
DEVICE_MODEL := R33
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport \
kmod-switch-rtl8366-smi kmod-switch-rtl8367b kmod-mt76x2
BLOCKSIZE := 128k
PAGESIZE := 2048
KERNEL_SIZE := 4096k
UBINIZE_OPTS := -E 5
IMAGE_SIZE := 32768k
IMAGES += kernel.bin rootfs.bin factory.bin
IMAGE/kernel.bin := append-kernel | check-size $$$$(KERNEL_SIZE)
IMAGE/rootfs.bin := append-ubi | check-size $$$$(IMAGE_SIZE)
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi | \
check-size
SUPPORTED_DEVICES += r33
endef
TARGET_DEVICES += hiwifi_r33
3 changes: 3 additions & 0 deletions target/linux/ramips/mt7620/base-files/etc/board.d/01_leds
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,9 @@ hiwifi,hc5761)
hiwifi,hc5861)
ucidef_set_led_switch "internet" "internet" "blue:internet" "switch0" "0x20"
;;
hiwifi,r33)
ucidef_set_led_netdev "internet" "internet" "blue:internet" "eth0.2" "link tx rx"
;;
hnet,c108)
ucidef_set_led_netdev "lan" "lan" "green:lan" "eth0"
ucidef_set_led_netdev "modem" "modem" "green:modem" "wwan0"
Expand Down
13 changes: 13 additions & 0 deletions target/linux/ramips/mt7620/base-files/etc/board.d/02_network
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,13 @@ ramips_setup_interfaces()
ucidef_add_switch "switch0" \
"0:lan" "1:lan" "5:wan" "6@eth0"
;;
hiwifi,r33)
ucidef_add_switch "switch0" \
"1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0"
ucidef_add_switch_attr "switch0" "enable" "false"
ucidef_add_switch "switch1" \
"1:lan" "2:lan" "0:wan" "6@eth0"
;;
iodata,wn-ac1167gr|\
iodata,wn-ac733gr3|\
iptime,a1004ns)
Expand Down Expand Up @@ -336,6 +343,12 @@ ramips_setup_macs()
[ -n "$lan_mac" ] || lan_mac=$(cat /sys/class/net/eth0/address)
wan_mac=$(macaddr_add "$lan_mac" 1)
;;
hiwifi,r33)
lan_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
label_mac=$lan_mac
[ -n "$lan_mac" ] || lan_mac=$(cat /sys/class/net/eth0/address)
wan_mac=$(macaddr_add "$lan_mac" 1)
;;
iodata,wn-ac1167gr|\
iodata,wn-ac733gr3)
wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
[ "$ACTION" == "add" ] || exit 0

PHYNBR=${DEVPATH##*/phy}

[ -n $PHYNBR ] || exit 0

. /lib/functions.sh
. /lib/functions/system.sh

board=$(board_name)

case "$board" in
hiwifi,hc5661)
label_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
[ "$PHYNBR" = "0" ] && [ -n "$label_mac" ] && \
echo -n "$label_mac" > /sys${DEVPATH}/macaddress
;;
hiwifi,hc5761|\
hiwifi,hc5861)
label_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
[ "$PHYNBR" = "1" ] && [ -n "$label_mac" ] && \
echo -n "$label_mac" > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "0" ] && [ -n "$label_mac" ] && \
macaddr_unsetbit "$label_mac" 6 > /sys${DEVPATH}/macaddress
;;
hiwifi,r33)
label_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
[ "$PHYNBR" = "1" ] && [ -n "$label_mac" ] && \
echo -n "$label_mac" > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "0" ] && [ -n "$label_mac" ] && \
macaddr_unsetbit "$label_mac" 6 > /sys${DEVPATH}/macaddress
;;
esac
3 changes: 3 additions & 0 deletions target/linux/ramips/mt7620/base-files/lib/upgrade/platform.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ platform_do_upgrade() {
dd if=/dev/mtd0 bs=64 count=1 2>/dev/null | grep -qi breed && CI_KERNPART_EXT="kernel_stock"
nand_do_upgrade "$1"
;;
hiwifi,r33)
nand_do_upgrade "$1"
;;
*)
default_do_upgrade "$1"
;;
Expand Down