diff options
-rw-r--r-- | target/linux/ramips/dts/BR-6475ND.dts | 171 | ||||
-rw-r--r-- | target/linux/ramips/image/Makefile | 32 | ||||
-rw-r--r-- | target/linux/ramips/rt3883/profiles/edimax.mk | 16 |
3 files changed, 219 insertions, 0 deletions
diff --git a/target/linux/ramips/dts/BR-6475ND.dts b/target/linux/ramips/dts/BR-6475ND.dts new file mode 100644 index 0000000000..b348889d9b --- /dev/null +++ b/target/linux/ramips/dts/BR-6475ND.dts @@ -0,0 +1,171 @@ +/dts-v1/; + +/include/ "rt3883.dtsi" + +/ { + compatible = "BR-6475ND", "ralink,rt3883-soc"; + model = "Edimax BR-6475nD"; + + pinctrl { + state_default: pinctrl0 { + gpio { + ralink,group = "spi", "jtag", "uartf"; + ralink,function = "gpio"; + }; + }; + }; + + palmbus@10000000 { + timer@100 { + status = "okay"; + }; + + gpio1: gpio@638 { + status = "okay"; + }; + + uartlite@c00 { + status = "okay"; + }; + }; + + ethernet@10100000 { + status = "okay"; + + port@0 { + ralink,fixed-link = <1000 1 1 1>; + }; + }; + + pci@10140000 { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&pci_pins>; + pci_pins: pci { + pci { + ralink,group = "pci"; + ralink,function = "pci-fnc"; + }; + }; + + host-bridge { + pci-bridge@1 { + status = "okay"; + wmac@0,0 { + compatible = "ralink,rt2880-pci", "pciclass060400", "pciclass0604"; + reg = < 0x10000 0 0 0 0 >; + ralink,eeprom = "soc_wmac.eeprom"; + }; + }; + }; + }; + + ehci@101c0000 { + status = "okay"; + }; + + ohci@101c1000 { + status = "okay"; + }; + + nor-flash@1c000000 { + compatible = "cfi-flash"; + reg = <0x1c000000 0x800000>; + + bank-width = <2>; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + reg = <0x00000000 0x00030000>; + label = "u-boot"; + read-only; + }; + + partition@30000 { + reg = <0x00030000 0x00010000>; + label = "nvram"; + read-only; + }; + + factory: partition@40000 { + reg = <0x00040000 0x00010000>; + label = "factory"; + read-only; + }; + + partition@50000 { + reg = <0x00050000 0x00020000>; + label = "devdata"; + read-only; + }; + + partition@70000 { + reg = <0x00070000 0x00790000>; + label = "firmware"; + }; + + partition@170000 { + reg = <0x00270000 0x00590000>; + label = "rootfs"; + }; + }; + + rtl8367 { + compatible = "realtek,rtl8367"; + gpio-sda = <&gpio0 5 0>; + gpio-sck = <&gpio0 4 0>; + realtek,extif0 = <1 0 1 1 1 1 1 1 2>; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <100>; + reset { + label = "reset"; + gpios = <&gpio0 7 1>; + linux,code = <0x198>; + }; + rfkill { + label = "rfkill"; + gpios = <&gpio0 9 1>; + linux,input-type = <5>; + linux,code = <0xf7>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power { + label = "edimax:green:power"; + gpios = <&gpio0 10 1>; + }; + wlan { + label = "edimax:amber:wlan"; + gpios = <&gpio0 11 1>; + }; + wlan_5ghz { + label = "edimax:amber:wlan_5ghz"; + gpios = <&gpio0 14 1>; + }; + }; + + /* Unclear if this is the correct gpio setup; the USB ports are + unpopulated on a stock BR-6475nD, even though the hardware exists + and the headers are there. */ + /* + gpio_export { + compatible = "gpio-export"; + #size-cells = <0>; + usb { + gpio-export,name="usb"; + gpio-export,output=<0>; + gpios = <&gpio0 19 0>; + }; + }; + */ +}; diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile index df5649a427..8fb0107ebd 100644 --- a/target/linux/ramips/image/Makefile +++ b/target/linux/ramips/image/Makefile @@ -599,6 +599,33 @@ endif # # RT3662/RT3883 Profiles # + +# $(1) = squashfs/initramfs +# $(2) = lowercase board name +# $(3) = dts file +# $(4) = kernel size +# $(5) = rootfs size +# $(6) = signature +# $(7) = model +# $(8) = flash address +# $(9) = start address +define BuildFirmware/EdimaxCombined/squashfs + $(call PatchKernelLzmaDtb,$(2),$(3)) + $(call MkImage,lzma,$(KDIR)/vmlinux-$(2).bin.lzma,$(KDIR)/vmlinux-$(2).bin.uImage) + if [ `stat -c%s "$(KDIR)/vmlinux-$(2).bin.uImage"` -gt `expr $(4) - 20` ]; then \ + echo "Warning: $(KDIR)/vmlinux-$(2).bin.uImage is too big" >&2; \ + exit 1; \ + else if [ `stat -c%s "$(KDIR)/root.$(1)"` -gt $(5) ]; then \ + echo "Warning: $(KDIR)/root.$(1) is too big" >&2; \ + exit 1; \ + else \ + ( dd if=$(KDIR)/vmlinux-$(2).bin.uImage bs=`expr $(4) - 20` conv=sync ; dd if=$(KDIR)/root.$(1) ) > $(KDIR)/vmlinux-$(2).bin.uImage.combined ; \ + fi ; fi + mkedimaximg -i "$(KDIR)/vmlinux-$(2).bin.uImage.combined" \ + -o $(call imgname,$(1),$(2)).bin \ + -s $(6) -m $(7) -f $(8) -S $(9) +endef + Image/Build/Profile/DIR645=$(call BuildFirmware/Seama/$(1),$(1),dir-645,DIR-645,wrgn39_dlob.hans_dir645,$(ralink_default_fw_size_8M)) omniembhpm_mtd_size=16449536 @@ -610,11 +637,16 @@ Image/Build/Profile/TEW691GR=$(call BuildFirmware/UMedia/$(1),$(1),tew-691gr,TEW Image/Build/Profile/TEW692GR=$(call BuildFirmware/UMedia/$(1),$(1),tew-692gr,TEW-692GR,0x026920) +kernel_size_BR6475ND:=2097152 +rootfs_size_BR6475ND:=5832704 +Image/Build/Profile/BR6475ND=$(call BuildFirmware/EdimaxCombined/$(1),$(1),br-6475nd,BR-6475ND,$(kernel_size_BR6475ND),$(rootfs_size_BR6475ND),CSYS,RN54,0x70000,0x01100000) + ifeq ($(SUBTARGET),rt3883) define Image/Build/Profile/Default $(call Image/Build/Profile/DIR645,$(1)) $(call Image/Build/Profile/OMNIEMBHPM,$(1)) $(call Image/Build/Profile/RTN56U,$(1)) + $(call Image/Build/Profile/BR6475ND,$(1)) $(call Image/Build/Profile/TEW691GR,$(1)) $(call Image/Build/Profile/TEW692GR,$(1)) endef diff --git a/target/linux/ramips/rt3883/profiles/edimax.mk b/target/linux/ramips/rt3883/profiles/edimax.mk new file mode 100644 index 0000000000..b807c2c796 --- /dev/null +++ b/target/linux/ramips/rt3883/profiles/edimax.mk @@ -0,0 +1,16 @@ +# +# Copyright (C) 2012 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/BR6475ND + NAME:=Edimax BR-6475nD + PACKAGES:=swconfig +endef + +define Profile/BR6475ND/Description + Package set compatible with the Edimax BR-6475nD board. +endef +$(eval $(call Profile,BR6475ND)) |