ramips: add HAME MPR-A2 support

This patch adds support for HAME MPR-A2 router using a DTS file.
The platform is Ralink RT5350.
http://wiki.openwrt.org/toh/hame/mpr-a2

Signed-off-by: Dmitry Shmygov <shmygov@rambler.ru>

SVN-Revision: 36898
This commit is contained in:
John Crispin 2013-06-10 08:24:56 +00:00
parent 30786d2dd0
commit fc9532aeaa
11 changed files with 174 additions and 3 deletions

View file

@ -55,6 +55,9 @@ get_status_led() {
mofi3500-3gn) mofi3500-3gn)
status_led="mofi3500-3gn:green:status" status_led="mofi3500-3gn:green:status"
;; ;;
mpr-a2)
status_led="mpr-a2:red:power"
;;
nbg-419n) nbg-419n)
status_led="nbg-419n:green:power" status_led="nbg-419n:green:power"
;; ;;

View file

@ -77,6 +77,7 @@ case "$FIRMWARE" in
freestation5 | \ freestation5 | \
hw550-3g | \ hw550-3g | \
mofi3500-3gn | \ mofi3500-3gn | \
mpr-a2 | \
pwh2004 | \ pwh2004 | \
nbg-419n | \ nbg-419n | \
nw718 | \ nw718 | \

View file

@ -94,6 +94,9 @@ case $board in
mofi3500-3gn) mofi3500-3gn)
set_usb_led "mofi3500-3gn:green:usb" set_usb_led "mofi3500-3gn:green:usb"
;; ;;
mpr-a2)
set_wifi_led "mpr-a2:blue:system"
;;
mzk-w300nh2) mzk-w300nh2)
set_wifi_led "mzkw300nh2:amber:wlan" set_wifi_led "mzkw300nh2:amber:wlan"
;; ;;

View file

@ -172,6 +172,7 @@ ramips_setup_macs()
broadway | \ broadway | \
dir-620-d1 | \ dir-620-d1 | \
f5d8235-v1 | \ f5d8235-v1 | \
mpr-a2 | \
mzk-w300nh2 | \ mzk-w300nh2 | \
nw718 | \ nw718 | \
psr-680w | \ psr-680w | \

View file

@ -26,6 +26,7 @@ preinit_set_mac_address() {
dir-620-a1 |\ dir-620-a1 |\
esr-9753 |\ esr-9753 |\
freestation5 |\ freestation5 |\
mpr-a2 | \
nw718 |\ nw718 |\
psr-680w |\ psr-680w |\
rt-n56u |\ rt-n56u |\

View file

@ -6,6 +6,18 @@
. /lib/ramips.sh . /lib/ramips.sh
ramips_set_preinit_iface() { ramips_set_preinit_iface() {
local board=$(ramips_board_name)
case "$board" in
mpr-a2)
#TODO
# Ralink ethernet driver cannot re-open ethernet if it is opened during preinit and then closed.
# Looks like Ralink ethernet driver has a problem.
# Temporary solution is not to open ethernet during preinit.
return 0
;;
esac
ifname=eth0 ifname=eth0
} }

View file

@ -115,6 +115,9 @@ ramips_board_detect() {
*"MoFi Network MOFI3500-3GN") *"MoFi Network MOFI3500-3GN")
name="mofi3500-3gn" name="mofi3500-3gn"
;; ;;
*"HAME MPR-A2")
name="mpr-a2"
;;
*"NBG-419N") *"NBG-419N")
name="nbg-419n" name="nbg-419n"
;; ;;

View file

@ -43,6 +43,7 @@ platform_check_image() {
freestation5 | \ freestation5 | \
hw550-3g | \ hw550-3g | \
mofi3500-3gn | \ mofi3500-3gn | \
mpr-a2 | \
mzk-w300nh2 | \ mzk-w300nh2 | \
nbg-419n | \ nbg-419n | \
nw718 | \ nw718 | \

View file

@ -0,0 +1,121 @@
/dts-v1/;
/include/ "rt5350.dtsi"
/ {
compatible = "MPRA2", "ralink,rt5350-soc";
model = "HAME MPR-A2";
memory@0 {
reg = <0x0 0x2000000>;
};
palmbus@10000000 {
sysc@0 {
ralink,pinmux = "i2c", "spi", "uartlite", "mdio", "sdram", "rgmii";
ralink,gpiomux = "jtag";
ralink,uartmux = "gpio";
ralink,wdtmux = <1>;
};
gpio0: gpio@600 {
status = "okay";
};
spi@b00 {
status = "okay";
m25p80@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "s25fl064k";
reg = <0 0>;
linux,modalias = "m25p80", "s25fl064k";
spi-max-frequency = <10000000>;
partition@0 {
label = "u-boot";
reg = <0x0 0x30000>;
read-only;
};
partition@30000 {
label = "u-boot-env";
reg = <0x30000 0x10000>;
read-only;
};
factory: partition@40000 {
label = "factory";
reg = <0x40000 0x10000>;
read-only;
};
partition@50000 {
label = "firmware";
reg = <0x50000 0x7b0000>;
};
};
};
};
ethernet@10100000 {
status = "okay";
};
esw@10110000 {
status = "okay";
ralink,portmap = <0x2f>;
};
wmac@10180000 {
status = "okay";
};
ehci@101c0000 {
status = "okay";
};
ohci@101c1000 {
status = "okay";
};
gpio-leds {
compatible = "gpio-leds";
system {
label = "mpr-a2:blue:system";
gpios = <&gpio0 20 1>;
};
power {
label = "mpr-a2:red:power";
gpios = <&gpio0 17 1>;
};
};
gpio-keys-polled {
compatible = "gpio-keys-polled";
#address-cells = <1>;
#size-cells = <0>;
poll-interval = <20>;
wps {
label = "reset";
gpios = <&gpio0 0 1>;
linux,code = <0x198>;
};
};
gpio_export {
compatible = "gpio-export";
#size-cells = <0>;
usb {
gpio-export,name = "usb";
gpio-export,output = <1>;
gpios = <&gpio0 7 0>;
};
root_hub {
gpio-export,name = "root_hub";
gpio-export,output = <1>;
gpios = <&gpio0 12 0>;
};
};
};

View file

@ -93,7 +93,7 @@ define BuildFirmware/OF
endef endef
define BuildFirmware/OF/initramfs define BuildFirmware/OF/initramfs
$(call MkImageLzmaDtb,$(2),$(3)) $(call MkImageLzmaDtb,$(2),$(3),$(4))
$(CP) $(KDIR)/vmlinux-$(2).uImage $(call imgname,$(1),$(2))-uImage.bin $(CP) $(KDIR)/vmlinux-$(2).uImage $(call imgname,$(1),$(2))-uImage.bin
endef endef
@ -113,8 +113,8 @@ BuildFirmware/Default4M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(
# $(2) = lowercase board name # $(2) = lowercase board name
# $(3) = dts file # $(3) = dts file
ralink_default_fw_size_8M=8060928 ralink_default_fw_size_8M=8060928
BuildFirmware/Default8M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_8M)) BuildFirmware/Default8M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_8M),$(4))
BuildFirmware/Default8M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3)) BuildFirmware/Default8M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4))
# Build images for a custom sized flash layout # Build images for a custom sized flash layout
# $(1) = squashfs/initramfs # $(1) = squashfs/initramfs
@ -334,6 +334,9 @@ Image/Build/Profile/FREESTATION5=$(call BuildFirmware/Default8M/$(1),$(1),freest
Image/Build/Profile/MOFI3500-3GN=$(call BuildFirmware/Default8M/$(1),$(1),mofi3500-3gn,MOFI3500-3GN) Image/Build/Profile/MOFI3500-3GN=$(call BuildFirmware/Default8M/$(1),$(1),mofi3500-3gn,MOFI3500-3GN)
# Kernel name should be "Linux Kernel Image" to make the OpenWrt image installable from factory Web UI
Image/Build/Profile/MPRA2=$(call BuildFirmware/Default8M/$(1),$(1),mpr-a2,MPRA2,Linux Kernel Image)
Image/Build/Profile/NBG-419N=$(call BuildFirmware/Default4M/$(1),$(1),nbg-419n,NBG-419N) Image/Build/Profile/NBG-419N=$(call BuildFirmware/Default4M/$(1),$(1),nbg-419n,NBG-419N)
Image/Build/Profile/MZKW300NH2=$(call BuildFirmware/Edimax/$(1),$(1),mzk-w300nh2,MZK-W300NH2,$(mzkw300nh2_mtd_size),CSYS,RN52,0x50000,0xc0000) Image/Build/Profile/MZKW300NH2=$(call BuildFirmware/Edimax/$(1),$(1),mzk-w300nh2,MZK-W300NH2,$(mzkw300nh2_mtd_size),CSYS,RN52,0x50000,0xc0000)
@ -461,6 +464,7 @@ define Image/Build/Profile/Default
$(call Image/Build/Profile/FREESTATION5,$(1)) $(call Image/Build/Profile/FREESTATION5,$(1))
$(call Image/Build/Profile/HW550-3G,$(1)) $(call Image/Build/Profile/HW550-3G,$(1))
$(call Image/Build/Profile/MOFI3500-3GN,$(1)) $(call Image/Build/Profile/MOFI3500-3GN,$(1))
$(call Image/Build/Profile/MPRA2,$(1))
$(call Image/Build/Profile/MZKW300NH2,$(1)) $(call Image/Build/Profile/MZKW300NH2,$(1))
$(call Image/Build/Profile/NBG-419N,$(1)) $(call Image/Build/Profile/NBG-419N,$(1))
$(call Image/Build/Profile/NW718,$(1)) $(call Image/Build/Profile/NW718,$(1))

View file

@ -0,0 +1,21 @@
#
# Copyright (C) 2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Profile/MPRA2
NAME:=HAME MPR-A2
PACKAGES:=\
kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-netdev kmod-ledtrig-timer \
kmod-usb-acm kmod-usb-net kmod-usb-net-asix kmod-usb-net-rndis kmod-usb-serial kmod-usb-serial-option \
usb-modeswitch usb-modeswitch-data comgt
endef
define Profile/MPRA2/Description
Package set for HAME MPR-A2 board
endef
$(eval $(call Profile,MPRA2))