#!/bin/sh
#
# Copyright (C) 2011-2015 OpenWrt.org
#

. /lib/functions/uci-defaults.sh
. /lib/functions/system.sh
. /lib/functions/lantiq.sh

board_config_update

vpi=1
vci=32
annex="a"
encaps="llc"
payload="bridged"
lan_mac=""
wan_mac=""
interface_wan=""

board=$(lantiq_board_name)

case "$board" in
# adm6996
ARV4510PW)
	lan_mac=$(mtd_get_mac_ascii uboot_env ethaddr)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_add_switch "switch0" \
		"3:lan:1" "2:lan:2" "1:lan:3" "0:lan:4" "5t@eth0"
	;;

ARV4520PW)
	ucidef_add_switch "switch0" \
		"3:lan:1" "2:lan:2" "1:lan:3" "0:lan:4" "5t@eth0"
	;;

ACMP252|GIGASX76X)
	ucidef_add_switch "switch0" \
		"4:lan:1" "3:lan:2" "2:lan:3" "1:lan:4" "5t@eth0"
	;;

# ar8316
ARV4519PW|ARV7510PW22|ARV7518PW|ARV752DPW22|ARV8539PW22)
	ucidef_add_switch "switch0" \
		"0t@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4"
	;;

# rtl8306g
ARV7519PW)
	lan_mac=$(mtd_get_mac_binary board_config 22)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_add_switch "switch0" \
		"0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "4t@eth0"
	;;

WBMR)
	ucidef_add_switch "switch0" \
		"0t@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4"
	;;

VG3503J)
	ucidef_set_interface_lan 'eth0'
	;;

DGN3500*)
	ucidef_add_switch "switch0" \
		"3:lan:1" "2:lan:2" "1:lan:3" "0:lan:4" "5t@eth0"
	;;

GR7000)
	ucidef_set_interface_wan "eth0"
	;;

H201L)
	ucidef_add_switch "switch0" \
		"0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "4t@eth0"
	;;

#rtl8306g
P2601HNFX)
	ucidef_add_switch "switch0" \
		"0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "5t@eth0"
	;;

P2812HNUF*)
	lan_mac=$(mtd_get_mac_ascii uboot-env ethaddr)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_add_switch "switch0" \
		"0:lan:1" "1:lan:2" "2:lan:3" "4:lan:4" "5:lan:5" "6t@eth0"
	;;

TDW8970|TDW8980)
	lan_mac=$(mtd_get_mac_binary boardconfig 61696)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_add_switch "switch0" \
		"0:lan:1" "2:lan:2" "4:lan:3" "5:lan:4" "6t@eth0"
	;;

VR200v)
	lan_mac=$(mtd_get_mac_binary romfile 61696)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_add_switch "switch0" \
		"0:lan:1" "2:lan:2" "4:lan:3" "5:lan:4" "6t@eth0"
	;;

ARV7519RW22)
	lan_mac=$(mtd_get_mac_binary boardconfig 22)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_add_switch "switch0" \
		"0:lan:1" "2:lan:2" "3:lan:3" "4:lan:4" "5:lan:5" "6t@eth0"
	;;

BTHOMEHUBV2B|BTHOMEHUBV3A)
	lan_mac=$(mtd_get_mac_ascii uboot_env ethaddr)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_set_interface_lan 'eth0'
	;;

BTHOMEHUBV5A)
	lan_mac=$(mtd_get_mac_binary caldata 4364)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_add_switch "switch0" \
		"0:lan:1" "1:lan:2" "2:lan:3" "4:lan:4" "6t@eth0"
	;;

VGV7519)
	lan_mac=$(mtd_get_mac_binary board_config 22)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_set_interface_lan 'eth0'
	;;

VGV7510KW22)
	lan_mac=$(mtd_get_mac_binary board_config 22)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_add_switch "switch0" \
		"2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "6t@eth0"
	;;

esac

if [ -n "$(ls /lib/modules/`uname -r`/ltq_atm*)" ]; then
	ucidef_add_atm_bridge "$vpi" "$vci" "$encaps" "$payload"
fi

if grep -qE "system type.*: (VR9|xRX200)" /proc/cpuinfo; then
	interface_wan="ptm0"
	ucidef_add_vdsl_modem "$annex" "av" "ptm"
else
	interface_wan="nas0"
	ucidef_add_adsl_modem "$annex" "/lib/firmware/adsl.bin"
fi

ucidef_set_interface_wan "$interface_wan" "pppoe"

[ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan "$lan_mac"
[ -n "$wan_mac" ] && ucidef_set_interface_macaddr wan "$wan_mac"

board_config_flush

exit 0
