aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--target/linux/brcm63xx/base-files/etc/diag.sh4
-rw-r--r--target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds6
-rw-r--r--target/linux/brcm63xx/base-files/etc/uci-defaults/02_network3
-rwxr-xr-xtarget/linux/brcm63xx/base-files/lib/brcm63xx.sh3
-rw-r--r--target/linux/brcm63xx/dts/homehub2a.dts140
-rwxr-xr-xtarget/linux/brcm63xx/image/Makefile2
-rw-r--r--target/linux/brcm63xx/patches-3.18/569-board_homehub2a.patch51
-rw-r--r--target/linux/brcm63xx/profiles/bt.mk10
8 files changed, 218 insertions, 1 deletions
diff --git a/target/linux/brcm63xx/base-files/etc/diag.sh b/target/linux/brcm63xx/base-files/etc/diag.sh
index 928c02ba10..03d98b9146 100644
--- a/target/linux/brcm63xx/base-files/etc/diag.sh
+++ b/target/linux/brcm63xx/base-files/etc/diag.sh
@@ -72,6 +72,10 @@ set_state() {
fast2704v2)
status_led="F@ST2704V2:green:power"
;;
+ homehub2a)
+ status_led="HOMEHUB2A:green:upgrading"
+ status_led2="HOMEHUB2A:blue:upgrading"
+ ;;
gw6200)
status_led="GW6200:green:line1"
status_led2="GW6200:green:tel"
diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds b/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds
index c9bf2f412d..58404a165f 100644
--- a/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds
+++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds
@@ -34,6 +34,12 @@ hg556a_*)
ucidef_set_led_netdev "lan" "LAN" "HW556:red:dsl" "eth0"
ucidef_set_led_usbdev "usb" "USB" "HW556:red:hspa" "1-2"
;;
+homehub2a)
+ ucidef_set_led_netdev "lan" "LAN" "HOMEHUB2A:blue:broadband" "eth0.1"
+ ucidef_set_led_netdev "wlan0" "WIFI" "HOMEHUB2A:green:wireless" "wlan0"
+ ucidef_set_led_usbdev "usb1" "USB1" "HOMEHUB2A:blue:phone" "1-1"
+ ucidef_set_led_usbdev "usb2" "USB2" "HOMEHUB2A:green:phone" "2-1"
+ ;;
esac
ucidef_commit_leds
diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network b/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
index df4e29307b..814e1003cd 100644
--- a/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
+++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
@@ -66,7 +66,8 @@ v2500v_bb)
dsl-274xb-c |\
hg553 |\
-hg556a_*)
+hg556a_* |\
+homehub2a)
ucidef_set_interface_lan "eth0.1"
ucidef_add_switch "eth0" "1" "1"
ucidef_add_switch_vlan "eth0" "1" "0 1 2 3 4 5t"
diff --git a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
index 2c18762d19..9c8a612039 100755
--- a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
+++ b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
@@ -60,6 +60,9 @@ brcm63xx_dt_detect() {
"Broadcom BCM96368MVWG reference board")
board_name="bcm96368mvwg"
;;
+ "BT Home Hub 2.0 Type A")
+ board_name="homehub2a"
+ ;;
"BT Voyager V2500V")
board_name="v2500v"
;;
diff --git a/target/linux/brcm63xx/dts/homehub2a.dts b/target/linux/brcm63xx/dts/homehub2a.dts
new file mode 100644
index 0000000000..28de52871c
--- /dev/null
+++ b/target/linux/brcm63xx/dts/homehub2a.dts
@@ -0,0 +1,140 @@
+/dts-v1/;
+
+/include/ "bcm6358.dtsi"
+
+/ {
+ model = "BT Home Hub 2.0 Type A";
+ compatible = "thomson,homehub2a", "brcm,bcm6358";
+
+ spi-gpio {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "spi-gpio";
+
+ gpio-mosi = <&gpio0 7 0>;
+ gpio-sck = <&gpio0 6 0>;
+ cs-gpios = <&gpio0 5 0>;
+ num-chipselects = <1>;
+
+ hc595: gpio-spi-controller@0 {
+ compatible = "fairchild,74hc595";
+ reg = <0>;
+ registers-number = <2>;
+ spi-max-frequency = <100000>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ phone {
+ label = "phone";
+ gpios = <&gpio0 1 1>;
+ linux,code = <169>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio0 9 1>;
+ linux,code = <0x198>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio0 11 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_red {
+ label = "HOMEHUB2A:red:power";
+ gpios = <&hc595 0 1>;
+ };
+ power_green {
+ label = "HOMEHUB2A:green:power";
+ gpios = <&hc595 1 1>;
+ default-state = "on";
+ };
+ power_blue {
+ label = "HOMEHUB2A:blue:power";
+ gpios = <&hc595 2 1>;
+ };
+ broadband_red {
+ label = "HOMEHUB2A:red:broadband";
+ gpios = <&hc595 3 1>;
+ };
+ broadband_green {
+ label = "HOMEHUB2A:green:broadband";
+ gpios = <&hc595 4 1>;
+ };
+ broadband_blue {
+ label = "HOMEHUB2A:blue:broadband";
+ gpios = <&hc595 5 1>;
+ };
+ wireless_red {
+ label = "HOMEHUB2A:red:wireless";
+ gpios = <&hc595 6 1>;
+ };
+ wireless_green {
+ label = "HOMEHUB2A:green:wireless";
+ gpios = <&hc595 7 1>;
+ };
+ wireless_blue {
+ label = "HOMEHUB2A:blue:wireless";
+ gpios = <&hc595 8 1>;
+ };
+ phone_red {
+ label = "HOMEHUB2A:red:phone";
+ gpios = <&hc595 9 1>;
+ };
+ phone_green {
+ label = "HOMEHUB2A:green:phone";
+ gpios = <&hc595 10 1>;
+ };
+ phone_blue {
+ label = "HOMEHUB2A:blue:phone";
+ gpios = <&hc595 11 1>;
+ };
+ upgrading_red {
+ label = "HOMEHUB2A:red:upgrading";
+ gpios = <&hc595 12 1>;
+ };
+ upgrading_green {
+ label = "HOMEHUB2A:green:upgrading";
+ gpios = <&hc595 13 1>;
+ };
+ upgrading_blue {
+ label = "HOMEHUB2A:blue:upgrading";
+ gpios = <&hc595 14 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x020000>;
+ };
+
+ linux@20000 {
+ label = "linux";
+ reg = <0x020000 0xfc0000>;
+ };
+
+ nvram@fe0000 {
+ label = "nvram";
+ reg = <0xfe0000 0x020000>;
+ };
+};
diff --git a/target/linux/brcm63xx/image/Makefile b/target/linux/brcm63xx/image/Makefile
index a55fc46d6c..bae025f7d2 100755
--- a/target/linux/brcm63xx/image/Makefile
+++ b/target/linux/brcm63xx/image/Makefile
@@ -275,6 +275,8 @@ $(eval $(call ImageDTB,CFEDTB,RG100A,RG100A,rg100a,96358VW2,6358,--block-size 0x
$(eval $(call ImageDTB,CFEDTB,AR1004G,AR1004G,ar1004g,96348GW-10,6348))
# Belkin F5D7633
$(eval $(call ImageDTB,CFEDTB,F5D7633,F5D7633,f5d7633,96348GW-10,6348,--block-size 0x20000 --image-offset 0x20000))
+# BT Home Hub 2.0 A
+$(eval $(call ImageDTB,CFEDTB,BTHOMEHUB2A,HomeHub2A,homehub2a,HOMEHUB2A,6358,--image-offset 0x20000 --block-size 0x20000))
# BT Voyager V2500V, V2500V_SIP_CLUB, V2500V_AA
$(eval $(call ImageDTB,CFEDTB,BTV2500V,BTV2500V,v2500v-bb,V2500V_BB,6348,--layoutver 5))
# Comtrend AR-5381u
diff --git a/target/linux/brcm63xx/patches-3.18/569-board_homehub2a.patch b/target/linux/brcm63xx/patches-3.18/569-board_homehub2a.patch
new file mode 100644
index 0000000000..2f3a02a677
--- /dev/null
+++ b/target/linux/brcm63xx/patches-3.18/569-board_homehub2a.patch
@@ -0,0 +1,51 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -1748,6 +1748,32 @@
+ },
+ };
+
++static struct board_info __initdata board_homehub2a = {
++ .name = "HOMEHUB2A",
++ .expected_cpu_id = 0x6358,
++
++ .has_uart0 = 1,
++ .has_pci = 1,
++ .use_fallback_sprom = 1,
++ .has_ohci0 = 1,
++ .has_ehci0 = 1,
++ .num_usbh_ports = 2,
++
++ .has_enet1 = 1,
++ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
++ .force_speed_100 = 1,
++ .force_duplex_full = 1,
++ },
++
++ .fallback_sprom = {
++ .type = SPROM_BCM4322,
++ .pci_bus = 0,
++ .pci_dev = 1,
++ },
++};
++
+ static struct board_info __initdata board_HW520 = {
+ .name = "HW6358GW_B",
+ .expected_cpu_id = 0x6358,
+@@ -2748,6 +2774,7 @@
+ &board_nb4_ser_r0,
+ &board_nb4_fxc_r1,
+ &board_ct6373_1,
++ &board_homehub2a,
+ &board_HW520,
+ &board_HW553,
+ &board_HW556_A,
+@@ -2845,6 +2872,7 @@
+ { .compatible = "sfr,nb4-fxc-r1", .data = &board_nb4_fxc_r1, },
+ { .compatible = "t-com,spw303v", .data = &board_spw303v, },
+ { .compatible = "telsey,cpva642", .data = &board_CPVA642, },
++ { .compatible = "thomson,homehub2a", .data = &board_homehub2a, },
+ #endif
+ #ifdef CONFIG_BCM63XX_CPU_6362
+ { .compatible = "sagem,f@st2504n", .data = &board_fast2504n, },
diff --git a/target/linux/brcm63xx/profiles/bt.mk b/target/linux/brcm63xx/profiles/bt.mk
index 0863752412..3ca8fe16ff 100644
--- a/target/linux/brcm63xx/profiles/bt.mk
+++ b/target/linux/brcm63xx/profiles/bt.mk
@@ -5,6 +5,16 @@
# See /LICENSE for more information.
#
+define Profile/BTHOMEHUB2A
+ NAME:=BT Home Hub 2A
+ PACKAGES:=kmod-b43 wpad-mini \
+ kmod-usb2 kmod-usb-ohci kmod-ledtrig-usbdev
+endef
+define Profile/BTHOMEHUB2A/Description
+ Package set optimized for BTHOMEHUB2A.
+endef
+$(eval $(call Profile,BTHOMEHUB2A))
+
define Profile/BTV2500V
NAME:=BT Voyager V2500V
PACKAGES:=kmod-b43 wpad-mini