diff --git a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-750gr3.dts b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-750gr3.dts index 60315a46e7..baa42ee8ed 100644 --- a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-750gr3.dts +++ b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-750gr3.dts @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT /dts-v1/; -#include "mt7621_mikrotik.dtsi" +#include "mt7621_mikrotik_routerboard-7xx.dtsi" / { compatible = "mikrotik,routerboard-750gr3", "mediatek,mt7621-soc"; @@ -28,79 +28,11 @@ gpios = <&gpio 0 GPIO_ACTIVE_HIGH>; }; }; - - gpio_export { - compatible = "gpio-export"; - #size-cells = <0>; - - buzzer { - /* Beeper requires PWM for frequency selection */ - gpio-export,name = "buzzer"; - gpio-export,output = <0>; - gpios = <&gpio 15 GPIO_ACTIVE_HIGH>; - }; - - usb_power { - gpio-export,name = "usb_power"; - gpio-export,output = <1>; - gpios = <&gpio 12 GPIO_ACTIVE_HIGH>; - }; - }; -}; - -&keys { - mode { - label = "mode"; - gpios = <&gpio 13 GPIO_ACTIVE_LOW>; - linux,code = ; - }; -}; - -&partitions { - partition@40000 { - compatible = "mikrotik,minor"; - label = "firmware"; - reg = <0x040000 0xfc0000>; - }; -}; - -&switch0 { - ports { - port@0 { - status = "okay"; - label = "wan"; - }; - - port@1 { - status = "okay"; - label = "lan2"; - }; - - port@2 { - status = "okay"; - label = "lan3"; - }; - - port@3 { - status = "okay"; - label = "lan4"; - }; - - port@4 { - status = "okay"; - label = "lan5"; - }; - }; }; &state_default { gpio { - /* via gpio7 (uart3 group) the PoE status can be read */ - groups = "uart2", "uart3", "jtag", "wdt"; + groups = "uart2", "jtag", "wdt"; function = "gpio"; }; }; - -&sdhci { - status = "okay"; -}; diff --git a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-760igs.dts b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-760igs.dts new file mode 100644 index 0000000000..dd2de11dce --- /dev/null +++ b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-760igs.dts @@ -0,0 +1,69 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "mt7621_mikrotik_routerboard-7xx.dtsi" + +/ { + compatible = "mikrotik,routerboard-760igs", "mediatek,mt7621-soc"; + model = "MikroTik RouterBOARD 760iGS"; + + aliases { + led-boot = &led_pwr; + led-failsafe = &led_pwr; + led-running = &led_pwr; + led-upgrade = &led_pwr; + }; + + leds { + compatible = "gpio-leds"; + + led_pwr: pwr { + label = "routerboard-760igs:blue:pwr"; + gpios = <&gpio 16 GPIO_ACTIVE_HIGH>; + default-state = "on"; + }; + + sfp { + label = "routerboard-760igs:blue:sfp"; + gpios = <&gpio 9 GPIO_ACTIVE_HIGH>; + }; + }; + + sfp1: sfp1 { + compatible = "sff,sfp"; + i2c-bus = <&i2c>; + los-gpios = <&gpio 6 GPIO_ACTIVE_HIGH>; + mod-def0-gpios = <&gpio 8 GPIO_ACTIVE_LOW>; + tx-disable-gpios = <&gpio 10 GPIO_ACTIVE_HIGH>; + maximum-power-milliwatt = <1000>; + }; +}; + +&mdio { + ephy7: ethernet-phy@7 { + reg = <7>; + sfp = <&sfp1>; + }; +}; + +&gmac1 { + status = "okay"; + + label = "sfp"; + phy-handle = <&ephy7>; +}; + +&i2c { + status = "okay"; +}; + +&state_default { + gpio { + /* gpio7 (uart3 group) goes high when + * port5 (PoE out) is cabled to a + * Mikrotik PoE-in capable port, + * such as port1 on another rb760iGS */ + groups = "uart2", "uart3", "jtag", "wdt"; + function = "gpio"; + }; +}; diff --git a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi new file mode 100644 index 0000000000..b8fae51c3b --- /dev/null +++ b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi @@ -0,0 +1,72 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "mt7621_mikrotik.dtsi" + +/ { + gpio_export { + compatible = "gpio-export"; + #size-cells = <0>; + + buzzer { + /* Beeper requires PWM for frequency selection */ + gpio-export,name = "buzzer"; + gpio-export,output = <0>; + gpios = <&gpio 15 GPIO_ACTIVE_HIGH>; + }; + + usb_power { + gpio-export,name = "usb_power"; + gpio-export,output = <1>; + gpios = <&gpio 12 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&keys { + mode { + label = "mode"; + gpios = <&gpio 13 GPIO_ACTIVE_LOW>; + linux,code = ; + }; +}; + +&partitions { + partition@40000 { + compatible = "mikrotik,minor"; + label = "firmware"; + reg = <0x040000 0xfc0000>; + }; +}; + +&switch0 { + ports { + port@0 { + status = "okay"; + label = "wan"; + }; + + port@1 { + status = "okay"; + label = "lan2"; + }; + + port@2 { + status = "okay"; + label = "lan3"; + }; + + port@3 { + status = "okay"; + label = "lan4"; + }; + + port@4 { + status = "okay"; + label = "lan5"; + }; + }; +}; + +&sdhci { + status = "okay"; +}; diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index 16b74c7b3e..060b322ea0 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -708,6 +708,13 @@ define Device/mikrotik_routerboard-750gr3 endef TARGET_DEVICES += mikrotik_routerboard-750gr3 +define Device/mikrotik_routerboard-760igs + $(Device/MikroTik) + DEVICE_MODEL := RouterBOARD 760iGS + DEVICE_PACKAGES += kmod-sfp -wpad-basic +endef +TARGET_DEVICES += mikrotik_routerboard-760igs + define Device/mikrotik_routerboard-m11g $(Device/MikroTik) DEVICE_MODEL := RouterBOARD M11G diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds index 63c0bce083..8708de33c1 100755 --- a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds @@ -48,6 +48,9 @@ linksys,ea7500-v2) ucidef_set_led_netdev "lan4" "lan4 link" "$boardname:green:lan4" "lan4" "link" ucidef_set_led_netdev "wan" "wan link" "$boardname:green:wan" "wan" "link" ;; +mikrotik,routerboard-760igs) + ucidef_set_led_netdev "sfp" "SFP" "$boardname:blue:sfp" "sfp" + ;; mikrotik,routerboard-m11g) ucidef_set_rssimon "wlan0" "200000" "1" ucidef_set_led_rssi "rssilow" "RSSILOW" "$boardname:green:rssi0" "wlan0" "1" "100" diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network index b9f2740a1b..cf3df76c08 100755 --- a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network @@ -48,6 +48,9 @@ ramips_setup_interfaces() mikrotik,routerboard-750gr3) ucidef_set_interfaces_lan_wan "lan2 lan3 lan4 lan5" "wan" ;; + mikrotik,routerboard-760igs) + ucidef_set_interfaces_lan_wan "lan2 lan3 lan4 lan5" "wan sfp" + ;; ubnt,edgerouter-x) ucidef_set_interfaces_lan_wan "eth1 eth2 eth3 eth4" "eth0" ;; @@ -108,6 +111,7 @@ ramips_setup_macs() label_mac=$lan_mac ;; mikrotik,routerboard-750gr3|\ + mikrotik,routerboard-760igs|\ mikrotik,routerboard-m11g|\ mikrotik,routerboard-m33g) label_mac=$(cat "/sys/firmware/mikrotik/hard_config/mac_base") diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/03_gpio_switches b/target/linux/ramips/mt7621/base-files/etc/board.d/03_gpio_switches index 7787ddcbc7..f809df7f2f 100755 --- a/target/linux/ramips/mt7621/base-files/etc/board.d/03_gpio_switches +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/03_gpio_switches @@ -7,6 +7,9 @@ board_config_update board=$(board_name) case "$board" in +mikrotik,routerboard-760igs) + ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "497" + ;; telco-electronics,x1) ucidef_add_gpio_switch "modem_reset" "Modem Reset" "16" ;; diff --git a/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh b/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh index a411a7a033..90749f589b 100755 --- a/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh @@ -28,6 +28,7 @@ platform_do_upgrade() { } ;; mikrotik,routerboard-750gr3|\ + mikrotik,routerboard-760igs|\ mikrotik,routerboard-m11g|\ mikrotik,routerboard-m33g) [ -z "$(rootfs_type)" ] && mtd erase firmware