From 709cab91d217a3ba31629b312a28cd6daef77319 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Thu, 3 Apr 2014 14:26:54 +0000 Subject: [PATCH] lantiq: BT Home Hub 2B support - board support Board support patch for BT Home Hub 2B Signed-off-by: Ben Mulvihill SVN-Revision: 40370 --- include/image.mk | 4 +- target/linux/lantiq/dts/BTHOMEHUBV2B.dts | 275 +++++++++++++++++++++++ target/linux/lantiq/image/Makefile | 13 +- target/linux/lantiq/xway/config-default | 6 + target/linux/lantiq/xway/profiles/bt.mk | 12 + target/linux/lantiq/xway/target.mk | 2 +- 6 files changed, 308 insertions(+), 4 deletions(-) create mode 100644 target/linux/lantiq/dts/BTHOMEHUBV2B.dts create mode 100644 target/linux/lantiq/xway/profiles/bt.mk diff --git a/include/image.mk b/include/image.mk index 978858a32f..53919052e9 100644 --- a/include/image.mk +++ b/include/image.mk @@ -71,9 +71,9 @@ define toupper $(shell echo $(1) | tr '[:lower:]' '[:upper:]') endef -# pad to 4k, 8k, 64k, 128k 256k and add jffs2 end-of-filesystem mark +# pad to 4k, 8k, 16k, 64k, 128k, 256k and add jffs2 end-of-filesystem mark define prepare_generic_squashfs - $(STAGING_DIR_HOST)/bin/padjffs2 $(1) 4 8 64 128 256 + $(STAGING_DIR_HOST)/bin/padjffs2 $(1) 4 8 16 64 128 256 endef ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),) diff --git a/target/linux/lantiq/dts/BTHOMEHUBV2B.dts b/target/linux/lantiq/dts/BTHOMEHUBV2B.dts new file mode 100644 index 0000000000..ac53217bb3 --- /dev/null +++ b/target/linux/lantiq/dts/BTHOMEHUBV2B.dts @@ -0,0 +1,275 @@ +/dts-v1/; + +/include/ "danube.dtsi" + +/ { + model = "BTHOMEHUBV2B - BT Home Hub 2B"; /* SoC: Lantiq Danube-S PSB 50712 @ 333MHz V1.3/1.5 */ + + chosen { + bootargs = "console=ttyLTQ0,115200 init=/etc/preinit rootfstype=squashfs,jffs2"; + }; + + memory@0 { /* RAM: Samsung K4H511638F-LC 64MB */ + reg = <0x0 0x4000000>; + }; + + sram@1F000000 { + vmmc@107000 { + status = "okay"; + gpios = <&gpio 31 0>; + }; + }; + + fpi@10000000 { + #address-cells = <1>; + #size-cells = <1>; + localbus@0 { + #address-cells = <2>; + #size-cells = <1>; + ranges = <0 0 0x0 0x3ffffff /* addrsel0 */ + 1 0 0x4000000 0x4000010>; /* addsel1 */ + compatible = "lantiq,localbus", "simple-bus"; + + nor-boot@0 { /* NOR Flash: Spansion S29AL004D 512KB */ + compatible = "lantiq,nor"; /* "AMD AM29LV400BB" compatible on 3.3.8 */ + lantiq,cs = <0>; + bank-width = <2>; + reg = <0 0x0 0x80000>; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "uboot"; + reg = <0x00000 0x40000>; /* 256KB */ + }; + + partition@40000 { + label = "uboot_env"; + reg = <0x40000 0x10000>; /* 64KB */ + }; + + partition@50000 { + label = "rg_conf_1"; + reg = <0x50000 0x10000>; + }; + + partition@60000 { + label = "rg_conf_2"; + reg = <0x60000 0x10000>; + }; + + partition@70000 { + label = "rg_conf_factory"; + reg = <0x70000 0x10000>; + }; + }; + + nand-parts@0 { /* NAND Flash: Samsung K9F5608U0D-JIB0 32MB */ + compatible = "gen_nand", "lantiq,nand-xway"; + lantiq,cs = <1>; + bank-width = <2>; + reg = <1 0x0 0x2000000 >; + #address-cells = <1>; + #size-cells = <1>; + req-mask = <0x1>; /* PCI request lines to mask during NAND access */ + + ath9k_cal: partition@0 { + label = "art"; /* Atheros 9160 wifi b/g/n radio EEPROM */ + reg = <0x00000 0x4000>; + read-only; + }; + + partition@4000 { + label = "firmware"; + reg = <0x4000 0x1FFC000>; + }; + + }; + + + ath9k_eep { + compatible = "ath9k,eeprom"; + ath,eep-flash = <&ath9k_cal 0x0000>; + ath,mac-increment = <1>; + ath,pci-slot = <14>; + ath,eep-endian; + }; + }; + + gpio: pinmux@E100B10 { + compatible = "lantiq,pinctrl-xway"; + pinctrl-names = "default"; + pinctrl-0 = <&state_default>; + + #gpio-cells = <2>; + gpio-controller; + reg = <0xE100B10 0xA0>; + + state_default: pinmux { + stp { + lantiq,groups = "stp"; + lantiq,function = "stp"; + lantiq,output = <1>; + lantiq,open-drain = <0>; + lantiq,pull = <0>; + }; + nand_out { + lantiq,groups = "nand cle", "nand ale"; + lantiq,function = "ebu"; + lantiq,output = <1>; + lantiq,open-drain = <0>; + lantiq,pull = <0>; + }; + nand_cs1 { + lantiq,groups = "nand cs1"; + lantiq,function = "ebu"; + lantiq,open-drain = <0>; + lantiq,pull = <0>; + }; + exin { + lantiq,groups = "exin1"; + lantiq,function = "exin"; + }; + pci_in { + lantiq,groups = "req1"; + lantiq,function = "pci"; + lantiq,output = <0>; + lantiq,open-drain = <1>; + lantiq,pull = <2>; + }; + pci_out { + lantiq,groups = "gnt1"; + lantiq,function = "pci"; + lantiq,output = <1>; + lantiq,open-drain = <0>; + lantiq,pull = <0>; + }; + + pci_rst { + lantiq,pins = "io21"; + lantiq,output = <1>; + lantiq,open-drain = <0>; + }; + + btn_in { + lantiq,pins = "io2", "io15", "io22"; + lantiq,output = <0>; + lantiq,open-drain = <1>; + lantiq,pull = <2>; + }; + }; + }; + + etop@E180000 { + compatible = "lantiq,etop-xway"; + reg = <0xE180000 0x40000>; + interrupt-parent = <&icu0>; + interrupts = <73 78>; + phy-mode = "rmii"; + mac-address = [ 00 11 22 33 44 55 ]; + }; + + ifxhcd@E101000 { + status = "okay"; + }; + + stp0: stp@E100BB0 { + status = "okay"; + #gpio-cells = <2>; + compatible = "lantiq,gpio-stp-xway"; + gpio-controller; + reg = <0xE100BB0 0x40>; + + lantiq,shadow = <0xfff>; + lantiq,groups = <0x3>; + }; + + pci@E105400 { + status = "okay"; + lantiq,bus-clock = <33333333>; + interrupt-map-mask = <0xf800 0x0 0x0 0x7>; + interrupt-map = <0x7000 0 0 1 &icu0 30 1>; + gpio-reset = <&gpio 21 0>; + req-mask = <0x1>; /* GNT1 */ + }; + + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <100>; + + reset { + label = "reset"; + gpios = <&gpio 2 1>; + linux,code = <0x198>; + }; + findhandset { + label = "findhandset"; + gpios = <&gpio 15 1>; + linux,code = <0x101>; + }; + wps { + label = "wps"; + gpios = <&gpio 22 1>; + linux,code = <0x211>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + upgrading-orange { + label = "soc:orange:upgrading"; + gpios = <&stp0 5 0>; + }; + + phone-orange { + label = "soc:orange:phone"; + gpios = <&stp0 6 0>; + }; + phone-blue { + label = "soc:blue:phone"; + gpios = <&stp0 7 0>; + }; + + wireless-orange { + label = "soc:orange:wireless"; + gpios = <&stp0 8 0>; + }; + wireless-blue { + label = "soc:blue:wireless"; + gpios = <&stp0 9 0>; + }; + + broadband-red { + label = "soc:red:broadband"; + gpios = <&stp0 10 0>; + }; + broadband-orange { + label = "soc:orange:broadband"; + gpios = <&stp0 11 0>; + }; + broadband-blue { + label = "soc:blue:broadband"; + gpios = <&stp0 12 0>; + }; + + power-red { + label = "soc:red:power"; + gpios = <&stp0 13 0>; + }; + power-orange { + label = "soc:orange:power"; + gpios = <&stp0 14 0>; + }; + power-blue { + label = "soc:blue:power"; + gpios = <&stp0 15 0>; + }; + }; + +}; + diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile index 34591c7b50..9b3b98fd15 100644 --- a/target/linux/lantiq/image/Makefile +++ b/target/linux/lantiq/image/Makefile @@ -6,12 +6,13 @@ # # boards missing since devicetree update -#EASY50712 ARV3527P BTHOMEHUBV2B BTHOMEHUBV2BOPENRG +#EASY50712 ARV3527P include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/image.mk JFFS2_BLOCKSIZE = 64k 128k 256k +NAND_BLOCKSIZE = 512:16k LOADER_MAKE := $(NO_TRACE_MAKE) -C lzma-loader KDIR=$(KDIR) @@ -133,6 +134,13 @@ define Image/Build/jffs2-256k cat $(KDIR)/uImage-$(2)-$(1) $(KDIR)/root.$(1) > $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).image endef +define Image/Build/jffs2-nand-512-16k + dd if=$(KDIR)/uImage-$(2) of=$(KDIR)/uImage-$(2)-$(1) bs=16k conv=sync + $(CP) $(KDIR)/uImage-$(2)-$(1) $(BIN_DIR)/uImage-$(2)-$(1) + $(CP) $(KDIR)/root.$(1) $(BIN_DIR)/root-$(2)-$(1) + cat $(KDIR)/uImage-$(2)-$(1) $(KDIR)/root.$(1) > $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).image +endef + define Image/Build/ubifs ifneq ($($(PROFILE)_UBIFS_OPTS),) @@ -254,6 +262,9 @@ endif ifeq ($(CONFIG_TARGET_lantiq_xway),y) # Danube +Image/BuildKernel/Profile/BTHOMEHUBV2B=$(call Image/BuildKernel/Template,BTHOMEHUBV2B) +Image/Build/Profile/BTHOMEHUBV2B=$(call Image/Build/$(1),$(1),BTHOMEHUBV2B) + Image/BuildKernel/Profile/EASY50712=$(call Image/BuildKernel/Template,EASY50712) Image/Build/Profile/EASY50712=$(call Image/Build/$(1),$(1),EASY50712) diff --git a/target/linux/lantiq/xway/config-default b/target/linux/lantiq/xway/config-default index 7000fae668..9d7118409c 100644 --- a/target/linux/lantiq/xway/config-default +++ b/target/linux/lantiq/xway/config-default @@ -15,7 +15,13 @@ CONFIG_IRQ_WORK=y CONFIG_LEDS_TRIGGER_HEARTBEAT=y CONFIG_M25PXX_USE_FAST_READ=y CONFIG_MTD_M25P80=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_ECC=y +CONFIG_MTD_NAND_PLATFORM=y +CONFIG_MTD_NAND_XWAY=y # CONFIG_MTD_PHYSMAP_OF is not set +# CONFIG_MTD_SM_COMMON is not set +CONFIG_MTD_SPLIT_UIMAGE_FW=y CONFIG_NLS=y # CONFIG_PROC_DEVICETREE is not set # CONFIG_RCU_STALL_COMMON is not set diff --git a/target/linux/lantiq/xway/profiles/bt.mk b/target/linux/lantiq/xway/profiles/bt.mk new file mode 100644 index 0000000000..73ec8653da --- /dev/null +++ b/target/linux/lantiq/xway/profiles/bt.mk @@ -0,0 +1,12 @@ +define Profile/BTHOMEHUBV2B + NAME:=BT Home Hub 2B + PACKAGES:=kmod-ltq-hcd-danube kmod-ledtrig-usbdev \ + kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \ + kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \ + kmod-ltq-deu-danube \ + ltq-adsl-app ppp-mod-pppoa \ + kmod-ath9k wpad-mini \ + swconfig +endef + +$(eval $(call Profile,BTHOMEHUBV2B)) diff --git a/target/linux/lantiq/xway/target.mk b/target/linux/lantiq/xway/target.mk index 1a8bbb4bc0..1b54ee2c4f 100644 --- a/target/linux/lantiq/xway/target.mk +++ b/target/linux/lantiq/xway/target.mk @@ -1,7 +1,7 @@ ARCH:=mips SUBTARGET:=xway BOARDNAME:=XWAY -FEATURES:=squashfs atm mips16 +FEATURES:=squashfs atm mips16 jffs2_nand CPU_TYPE:=34kc CPU_SUBTYPE:=dsp -- 2.30.2