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

This commit is contained in:
zfdx 2023-01-26 19:50:31 +08:00 committed by GitHub
parent ae14a83450
commit 0c40df89d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 318 additions and 0 deletions

View File

@ -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 */
@ -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);
@ -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;

View File

@ -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>;
};
};

View File

@ -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

View File

@ -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"

View File

@ -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)
@ -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)

View File

@ -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

View File

@ -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"
;;