diff --git a/target/linux/lantiq/Makefile b/target/linux/lantiq/Makefile index 29da8a3c682..b040e3fd38d 100644 --- a/target/linux/lantiq/Makefile +++ b/target/linux/lantiq/Makefile @@ -10,7 +10,7 @@ ARCH:=mips BOARD:=lantiq BOARDNAME:=Lantiq GPON/XWAY FEATURES:=squashfs jffs2 -SUBTARGETS:=falcon xway ase +SUBTARGETS:=xway falcon ase LINUX_VERSION:=2.6.39.1 diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile index 0e62ce56604..81291ccfda0 100644 --- a/target/linux/lantiq/image/Makefile +++ b/target/linux/lantiq/image/Makefile @@ -144,6 +144,14 @@ define Image/Build/Profile/DGN3500B $(call Image/Build/$(1),$(1),DGN3500B) endef +define Image/BuildKernel/Profile/GIGASX76X + $(call Image/BuildKernel/Template,GIGASX76X,$(xway_cmdline)) +endef + +define Image/Build/Profile/GIGASX76X + $(call Image/Build/$(1),$(1),GIGASX76X) +endef + define Image/BuildKernel/Profile/Generic $(call Image/BuildKernel/Template,EASY4010,$(xway_cmdline)) $(call Image/BuildKernel/Template,EASY50712,$(xway_cmdline)) @@ -157,6 +165,7 @@ define Image/BuildKernel/Profile/Generic $(call Image/BuildKernel/Template,ARV7518PW,$(xway_cmdline)) $(call Image/BuildKernel/Template,ARV752DPW,$(xway_cmdline)) $(call Image/BuildKernel/Template,ARV752DPW22,$(xway_cmdline)) + $(call Image/BuildKernel/Template,GIGASX76X,$(xway_cmdline)) $(call Image/BuildKernel/Template,DGN3500B,$(xway_cmdline)) $(call Image/BuildKernel/Template,NONE) endef @@ -174,6 +183,7 @@ define Image/Build/Profile/Generic $(call Image/Build/$(1),$(1),ARV7518PW) $(call Image/Build/$(1),$(1),ARV752DPW) $(call Image/Build/$(1),$(1),ARV752DPW22) + $(call Image/Build/$(1),$(1),GIGASX76X) $(call Image/Build/$(1),$(1),DGN3500B) $(call Image/Build/$(1),$(1),NONE) $(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1).rootfs diff --git a/target/linux/lantiq/patches-2.6.39/999-dgn3500.patch b/target/linux/lantiq/patches-2.6.39/600-mach-dgn3500.patch similarity index 100% rename from target/linux/lantiq/patches-2.6.39/999-dgn3500.patch rename to target/linux/lantiq/patches-2.6.39/600-mach-dgn3500.patch diff --git a/target/linux/lantiq/patches-2.6.39/601-mach-gigasx76x.patch b/target/linux/lantiq/patches-2.6.39/601-mach-gigasx76x.patch new file mode 100644 index 00000000000..ef667fb8238 --- /dev/null +++ b/target/linux/lantiq/patches-2.6.39/601-mach-gigasx76x.patch @@ -0,0 +1,149 @@ +--- a/arch/mips/lantiq/xway/Kconfig ++++ b/arch/mips/lantiq/xway/Kconfig +@@ -14,6 +14,10 @@ + bool "Netgear" + default y + ++config LANTIQ_MACH_GIGASX76X ++ bool "GIGASX76X" ++ default y ++ + endmenu + + endif +--- a/arch/mips/lantiq/xway/Makefile ++++ b/arch/mips/lantiq/xway/Makefile +@@ -7,4 +7,5 @@ + obj-$(CONFIG_LANTIQ_MACH_EASY50601) += mach-easy50601.o + obj-$(CONFIG_LANTIQ_MACH_ARV45XX) += mach-arv45xx.o + obj-$(CONFIG_LANTIQ_MACH_NETGEAR) += mach-netgear.o ++obj-$(CONFIG_LANTIQ_MACH_GIGASX76X) += mach-gigasx76x.o + obj-y += dev-dwc_otg.o +--- /dev/null ++++ b/arch/mips/lantiq/xway/mach-gigasx76x.c +@@ -0,0 +1,113 @@ ++/* ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 as published ++ * by the Free Software Foundation. ++ * ++ * Copyright (C) 2011 Andrej Vlašić ++ * Copyright (C) 2011 Luka Perkov ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include ++#include ++ ++#include "../machtypes.h" ++#include "devices.h" ++#include "dev-dwc_otg.h" ++#include "dev-leds-gpio.h" ++ ++#ifdef CONFIG_MTD_PARTITIONS ++static struct mtd_partition gigasx76x_partitions[] = ++{ ++ { ++ .name = "secondary_env", ++ .offset = 0xe000, ++ .size = 0x2000, ++ }, ++ { ++ .name = "secondary_boot", ++ .offset = 0x10000, ++ .size = 0x10000, ++ }, ++ { ++ .name = "uboot", ++ .offset = 0x20000, ++ .size = 0x30000, ++ }, ++ { ++ .name = "linux", ++ .offset = 0x50000, ++ .size = 0x7a0000, ++ }, ++ { ++ .name = "board_config", ++ .offset = 0x7f0000, ++ .size = 0x10000, ++ }, ++}; ++#endif ++ ++static struct gpio_led ++gigasx76x_leds_gpio[] __initdata = { ++ { .name = "soc:green:usb", .gpio = 50, }, ++ { .name = "soc:green:wlan", .gpio = 51, }, ++ { .name = "soc:green:phone2", .gpio = 52, }, ++ { .name = "soc:green:phone1", .gpio = 53, }, ++ { .name = "soc:green:line", .gpio = 54, }, ++ { .name = "soc:green:online", .gpio = 55, }, ++}; ++ ++ ++static struct physmap_flash_data gigasx76x_flash_data = { ++#ifdef CONFIG_MTD_PARTITIONS ++ .nr_parts = ARRAY_SIZE(gigasx76x_partitions), ++ .parts = gigasx76x_partitions, ++#endif ++}; ++ ++static struct ltq_pci_data ltq_pci_data = { ++ .clock = PCI_CLOCK_INT, ++ .gpio = PCI_GNT1 | PCI_REQ1, ++ .irq = { ++ [14] = INT_NUM_IM0_IRL0 + 22, ++ }, ++}; ++ ++static struct ltq_eth_data ltq_eth_data = { ++ .mii_mode = PHY_INTERFACE_MODE_MII, ++}; ++ ++static void __init ++gigasx76x_init(void) ++{ ++#define GIGASX76X_USB 29 ++ ++ ltq_register_gpio_stp(); ++ ltq_register_nor(&gigasx76x_flash_data); ++ ltq_register_pci(<q_pci_data); ++ ltq_register_etop(<q_eth_data); ++ xway_register_dwc(GIGASX76X_USB); ++ ltq_register_tapi(); ++ ltq_register_madwifi_eep(); ++ ltq_add_device_leds_gpio(-1, ARRAY_SIZE(gigasx76x_leds_gpio), gigasx76x_leds_gpio); ++} ++ ++MIPS_MACHINE(LANTIQ_MACH_GIGASX76X, ++ "GIGASX76X", ++ "GIGASX76X - Gigaset SX761,SX762,SX763", ++ gigasx76x_init); +--- a/arch/mips/lantiq/machtypes.h ++++ b/arch/mips/lantiq/machtypes.h +@@ -35,6 +35,9 @@ + + /* Netgear */ + LANTIQ_MACH_DGN3500B, /* Netgear DGN3500 */ ++ ++ /* Gigaset */ ++ LANTIQ_MACH_GIGASX76X, /* Gigaset SX76x */ + }; + + #endif diff --git a/target/linux/lantiq/xway/config-default b/target/linux/lantiq/xway/config-default index 5ef2fb34633..a410a73eeef 100644 --- a/target/linux/lantiq/xway/config-default +++ b/target/linux/lantiq/xway/config-default @@ -27,6 +27,7 @@ CONFIG_LANTIQ_ETOP=y CONFIG_LANTIQ_MACH_ARV45XX=y CONFIG_LANTIQ_MACH_EASY50712=y CONFIG_LANTIQ_MACH_NETGEAR=y +CONFIG_LANTIQ_MACH_GIGASX76X=y CONFIG_MACH_NO_WESTBRIDGE=y # CONFIG_MINIX_FS_NATIVE_ENDIAN is not set CONFIG_NEED_DMA_MAP_STATE=y diff --git a/target/linux/lantiq/xway/profiles/004-gigaset.mk b/target/linux/lantiq/xway/profiles/004-gigaset.mk new file mode 100644 index 00000000000..844b4118902 --- /dev/null +++ b/target/linux/lantiq/xway/profiles/004-gigaset.mk @@ -0,0 +1,11 @@ +define Profile/GIGASX76X + NAME:=GIGASX76X - Gigaset SX761,SX762,SX763 + PACKAGES:= kmod-usb-core kmod-usb-dwc-otg kmod-leds-gpio \ + kmod-ltq-dsl-firmware-b kmod-ledtrig-usbdev +endef + +define Profile/GIGASX76X/Description + Package set optimized for the Gigaset SX76X routers +endef + +$(eval $(call Profile,GIGASX76X))