ramips: add support for Lava LR-25G001
The Lava LR-25G001 Wireless Router is based on the MT7620A SoC. Specification: - MediaTek MT7620A (580 Mhz) - 64 MB of RAM - 16 MB of FLASH - 1x 802.11bgn radio - 1x 802.11ac radio (MT7610EN) - 5x 10/100/1000 Mbps AR8337 Switch (1 WAN AND 4 LAN) - 2x external, detachable antennas - 1x USB 2.0 - UART (J3) header on PCB (57600 8n1) - 8x LED (3x GPIO-controlled), 2x button - JBOOT bootloader Known issues: - Work only three Gigabit ports (3/5, 1 WAN and 2LAN) Installation: Apply factory image via http web-gui or JBOOT recovery page How to revert to OEM firmware: - push the reset button and turn on the power. Wait until LED start blinking (~10sec.) - upload original factory image via JBOOT http (IP: 192.168.123.254) Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
This commit is contained in:
		 Pawel Dembicki
					Pawel Dembicki
				
			
				
					committed by
					
						 John Crispin
						John Crispin
					
				
			
			
				
	
			
			
			 John Crispin
						John Crispin
					
				
			
						parent
						
							b85fe43ec8
						
					
				
				
					commit
					20b09a2125
				
			| @@ -195,6 +195,10 @@ kn_rf|\ | |||||||
| kng_rc) | kng_rc) | ||||||
| 	set_wifi_led "$boardname:green:wifi" | 	set_wifi_led "$boardname:green:wifi" | ||||||
| 	;; | 	;; | ||||||
|  | lava,lr-25g001) | ||||||
|  | 	ucidef_set_led_netdev "wlan2g" "WiFi 2.4GHz" "$boardname:green:wlan2g" "wlan1" | ||||||
|  | 	ucidef_set_led_netdev "wlan5g" "WiFi 5GHz" "$boardname:green:wlan5g" "wlan0" | ||||||
|  | 	;; | ||||||
| linkits7688) | linkits7688) | ||||||
| 	ucidef_set_led_wlan "wifi" "wifi" "linkit-smart-7688:orange:wifi" "phy0tpt" | 	ucidef_set_led_wlan "wifi" "wifi" "linkit-smart-7688:orange:wifi" "phy0tpt" | ||||||
| 	;; | 	;; | ||||||
|   | |||||||
| @@ -353,6 +353,7 @@ ramips_setup_interfaces() | |||||||
| 		ucidef_add_switch "switch0" \ | 		ucidef_add_switch "switch0" \ | ||||||
| 			"4:lan" "6@eth0" | 			"4:lan" "6@eth0" | ||||||
| 		;; | 		;; | ||||||
|  | 	lava,lr-25g001|\ | ||||||
| 	tew-691gr|\ | 	tew-691gr|\ | ||||||
| 	tew-692gr|\ | 	tew-692gr|\ | ||||||
| 	wlr-6000) | 	wlr-6000) | ||||||
| @@ -475,7 +476,8 @@ ramips_setup_macs() | |||||||
| 		;; | 		;; | ||||||
| 	dlink,dwr-116-a1|\ | 	dlink,dwr-116-a1|\ | ||||||
| 	dlink,dwr-118-a2|\ | 	dlink,dwr-118-a2|\ | ||||||
| 	dlink,dwr-921-c1) | 	dlink,dwr-921-c1|\ | ||||||
|  | 	lava,lr-25g001) | ||||||
| 		wan_mac=$(jboot_config_read -m -i $(find_mtd_part "config") -o 0xE000) | 		wan_mac=$(jboot_config_read -m -i $(find_mtd_part "config") -o 0xE000) | ||||||
| 		lan_mac=$(macaddr_add "$wan_mac" 1) | 		lan_mac=$(macaddr_add "$wan_mac" 1) | ||||||
| 		;; | 		;; | ||||||
|   | |||||||
| @@ -56,7 +56,8 @@ case "$FIRMWARE" in | |||||||
| 	case $board in | 	case $board in | ||||||
| 	dlink,dwr-116-a1|\ | 	dlink,dwr-116-a1|\ | ||||||
| 	dlink,dwr-118-a2|\ | 	dlink,dwr-118-a2|\ | ||||||
| 	dlink,dwr-921-c1) | 	dlink,dwr-921-c1|\ | ||||||
|  | 	lava,lr-25g001) | ||||||
| 		wan_mac=$(jboot_config_read -m -i $(find_mtd_part "config") -o 0xE000) | 		wan_mac=$(jboot_config_read -m -i $(find_mtd_part "config") -o 0xE000) | ||||||
| 		wifi_mac=$(macaddr_add "$wan_mac" 1) | 		wifi_mac=$(macaddr_add "$wan_mac" 1) | ||||||
| 		jboot_eeprom_extract "config" 0xE000 | 		jboot_eeprom_extract "config" 0xE000 | ||||||
|   | |||||||
| @@ -295,7 +295,8 @@ platform_check_image() { | |||||||
| 	dlink,dwr-116-a1|\ | 	dlink,dwr-116-a1|\ | ||||||
| 	dlink,dwr-118-a2|\ | 	dlink,dwr-118-a2|\ | ||||||
| 	dlink,dwr-921-c1|\ | 	dlink,dwr-921-c1|\ | ||||||
| 	dwr-512-b) | 	dwr-512-b|\ | ||||||
|  | 	lava,lr-25g001) | ||||||
| 		[ "$magic" != "0404242b" ] && { | 		[ "$magic" != "0404242b" ] && { | ||||||
| 			echo "Invalid image type." | 			echo "Invalid image type." | ||||||
| 			return 1 | 			return 1 | ||||||
|   | |||||||
							
								
								
									
										182
									
								
								target/linux/ramips/dts/LR-25G001.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										182
									
								
								target/linux/ramips/dts/LR-25G001.dts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,182 @@ | |||||||
|  | /dts-v1/; | ||||||
|  |  | ||||||
|  | #include "mt7620a.dtsi" | ||||||
|  |  | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	compatible = "lava,lr-25g001", "ralink,mt7620a-soc"; | ||||||
|  | 	model = "LAVA LR-25G001"; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &led_status; | ||||||
|  | 		led-failsafe = &led_status; | ||||||
|  | 		led-running = &led_status; | ||||||
|  | 		led-upgrade = &led_status; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpio-keys-polled { | ||||||
|  | 		compatible = "gpio-keys-polled"; | ||||||
|  | 		poll-interval = <20>; | ||||||
|  |  | ||||||
|  | 		wps { | ||||||
|  | 			label = "wps"; | ||||||
|  | 			gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_WPS_BUTTON>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		reset { | ||||||
|  | 			label = "reset"; | ||||||
|  | 			gpios = <&gpio0 1 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_RESTART>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpio-leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		led_status: status { | ||||||
|  | 			label = "lava,lr-25g001:green:status"; | ||||||
|  | 			gpios = <&gpio0 14 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wifi2g { | ||||||
|  | 			label = "lava,lr-25g001:green:wifi2g"; | ||||||
|  | 			gpios = <&gpio0 11 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wifi5g { | ||||||
|  | 			label = "lava,lr-25g001:green:wifi5g"; | ||||||
|  | 			gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpio_export { | ||||||
|  | 		compatible = "gpio-export"; | ||||||
|  | 		#size-cells = <0>; | ||||||
|  |  | ||||||
|  | 		usbpower { | ||||||
|  | 			gpio-export,name = "usbpower"; | ||||||
|  | 			gpio-export,output = <1>; | ||||||
|  | 			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &gpio0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &spi0 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	mx25l12805d@0 { | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <10000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "jboot"; | ||||||
|  | 				reg = <0x0 0x10000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@10000 { | ||||||
|  | 				label = "firmware"; | ||||||
|  | 				reg = <0x10000 0xfe0000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			config: partition@ff0000 { | ||||||
|  | 				label = "config"; | ||||||
|  | 				reg = <0xff0000 0x10000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &ehci { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &ohci { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ðernet { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	pinctrl-0 = <&rgmii1_pins &rgmii2_pins &mdio_pins>; | ||||||
|  |  | ||||||
|  | 	port@5 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		phy-mode = "rgmii"; | ||||||
|  | 		mediatek,fixed-link = <1000 1 1 1>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	mdio-bus { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		mediatek,mdio-mode = <1>; | ||||||
|  |  | ||||||
|  | 		phy0: ethernet-phy@0 { | ||||||
|  | 			reg = <0>; | ||||||
|  | 			phy-mode = "rgmii"; | ||||||
|  | 			qca,ar8327-initvals = < | ||||||
|  | 				0x04 0x87300000 /* PORT0 PAD MODE CTRL */ | ||||||
|  | 				0x0c 0x00000000 /* PORT6 PAD MODE CTRL */ | ||||||
|  | 				0x7c 0x0000007e /* PORT0_STATUS */ | ||||||
|  | 				0x94 0x00000000 /* PORT6_STATUS */ | ||||||
|  |  | ||||||
|  | 			>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		phy1: ethernet-phy@1 { | ||||||
|  | 			reg = <1>; | ||||||
|  | 			phy-mode = "rgmii"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		phy2: ethernet-phy@2 { | ||||||
|  | 			reg = <2>; | ||||||
|  | 			phy-mode = "rgmii"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		phy3: ethernet-phy@3 { | ||||||
|  | 			reg = <3>; | ||||||
|  | 			phy-mode = "rgmii"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		phy4: ethernet-phy@4 { | ||||||
|  | 			reg = <4>; | ||||||
|  | 			phy-mode = "rgmii"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pcie { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pcie0 { | ||||||
|  | 	mt76x0e@0,0 { | ||||||
|  | 		reg = <0x0000 0 0 0 0>; | ||||||
|  | 		mtd-mac-address = <&config 0xe07e>; | ||||||
|  | 		mtd-mac-address-increment = <(2)>; | ||||||
|  | 		mediatek,mtd-eeprom = <&config 0xe08a>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pinctrl { | ||||||
|  | 	state_default: pinctrl0 { | ||||||
|  | 		gpio { | ||||||
|  | 			ralink,group = "uartf", "i2c"; | ||||||
|  | 			ralink,function = "gpio"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
| @@ -352,6 +352,21 @@ define Device/microwrt | |||||||
| endef | endef | ||||||
| TARGET_DEVICES += microwrt | TARGET_DEVICES += microwrt | ||||||
|  |  | ||||||
|  | define Device/lava_lr-25g001 | ||||||
|  |   DTS := LR-25G001 | ||||||
|  |   DEVICE_TITLE := LAVA LR-25G001 | ||||||
|  |   DLINK_ROM_ID := LVA6E3804001 | ||||||
|  |   DLINK_FAMILY_MEMBER := 0x6E38 | ||||||
|  |   DLINK_FIRMWARE_SIZE := 0xFE0000 | ||||||
|  |   KERNEL := $(KERNEL_DTB) | ||||||
|  |   IMAGES += factory.bin | ||||||
|  |   IMAGE/sysupgrade.bin := mkdlinkfw | pad-rootfs | append-metadata | ||||||
|  |   IMAGE/factory.bin := mkdlinkfw | pad-rootfs | mkdlinkfw-factory | ||||||
|  |   DEVICE_PACKAGES := jboot-tools kmod-usb2 kmod-mt76 kmod-mt76x0-common \ | ||||||
|  | 					kmod-mt76x0e | ||||||
|  | endef | ||||||
|  | TARGET_DEVICES += lava_lr-25g001 | ||||||
|  |  | ||||||
| define Device/miwifi-mini | define Device/miwifi-mini | ||||||
|   DTS := MIWIFI-MINI |   DTS := MIWIFI-MINI | ||||||
|   IMAGE_SIZE := $(ralink_default_fw_size_16M) |   IMAGE_SIZE := $(ralink_default_fw_size_16M) | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | CONFIG_AR8216_PHY=y | ||||||
| CONFIG_ARCH_BINFMT_ELF_STATE=y | CONFIG_ARCH_BINFMT_ELF_STATE=y | ||||||
| CONFIG_ARCH_CLOCKSOURCE_DATA=y | CONFIG_ARCH_CLOCKSOURCE_DATA=y | ||||||
| CONFIG_ARCH_DISCARD_MEMBLOCK=y | CONFIG_ARCH_DISCARD_MEMBLOCK=y | ||||||
| @@ -57,6 +58,7 @@ CONFIG_DTB_RT_NONE=y | |||||||
| # CONFIG_DTB_VOCORE2 is not set | # CONFIG_DTB_VOCORE2 is not set | ||||||
| CONFIG_DTC=y | CONFIG_DTC=y | ||||||
| CONFIG_EARLY_PRINTK=y | CONFIG_EARLY_PRINTK=y | ||||||
|  | CONFIG_ETHERNET_PACKET_MANGLE=y | ||||||
| CONFIG_FIXED_PHY=y | CONFIG_FIXED_PHY=y | ||||||
| CONFIG_GENERIC_ATOMIC64=y | CONFIG_GENERIC_ATOMIC64=y | ||||||
| CONFIG_GENERIC_CLOCKEVENTS=y | CONFIG_GENERIC_CLOCKEVENTS=y | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user