aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm63xx-2.6/patches/030-boardparms.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm63xx-2.6/patches/030-boardparms.patch')
-rw-r--r--target/linux/brcm63xx-2.6/patches/030-boardparms.patch3186
1 files changed, 3186 insertions, 0 deletions
diff --git a/target/linux/brcm63xx-2.6/patches/030-boardparms.patch b/target/linux/brcm63xx-2.6/patches/030-boardparms.patch
new file mode 100644
index 0000000000..f6ce12ce34
--- /dev/null
+++ b/target/linux/brcm63xx-2.6/patches/030-boardparms.patch
@@ -0,0 +1,3186 @@
+diff -Naurp linux-2.6.16.7-generic-patched/boardparms/bcm963xx/Makefile linux-2.6.16.7-patched/boardparms/bcm963xx/Makefile
+--- linux-2.6.16.7-generic-patched/boardparms/bcm963xx/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.16.7-patched/boardparms/bcm963xx/Makefile 2006-07-05 15:21:58.000000000 +0200
+@@ -0,0 +1,16 @@
++
++ifeq ($(CONFIG_MIPS_BRCM),y)
++
++# Linux
++obj-y += boardparms.o
++EXTRA_CFLAGS += -DCONFIG_BCM9$(BRCM_CHIP)
++-include $(TOPDIR)/Rules.make
++
++else
++
++# CFE
++BSPOBJS += boardparms.o
++
++endif
++
++
+diff -Naurp linux-2.6.16.7-generic-patched/boardparms/bcm963xx/boardparms.c linux-2.6.16.7-patched/boardparms/bcm963xx/boardparms.c
+--- linux-2.6.16.7-generic-patched/boardparms/bcm963xx/boardparms.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.16.7-patched/boardparms/bcm963xx/boardparms.c 2006-07-05 15:21:58.000000000 +0200
+@@ -0,0 +1,2392 @@
++/*
++<:copyright-gpl
++
++ Copyright 2003 Broadcom Corp. All Rights Reserved.
++
++ This program is free software; you can distribute it and/or modify it
++ under the terms of the GNU General Public License (Version 2) as
++ published by the Free Software Foundation.
++
++ This program is distributed in the hope it will be useful, but WITHOUT
++ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++ for more details.
++
++ You should have received a copy of the GNU General Public License along
++ with this program; if not, write to the Free Software Foundation, Inc.,
++ 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
++
++:>
++*/
++/**************************************************************************
++ * File Name : boardparms.c
++ *
++ * Description: This file contains the implementation for the BCM63xx board
++ * parameter access functions.
++ *
++ * Updates : 07/14/2003 Created.
++ ***************************************************************************/
++
++/* Includes. */
++#include <linux/config.h>
++#include "boardparms.h"
++
++/* Defines. */
++
++/* Default psi size in K bytes */
++#define BP_PSI_DEFAULT_SIZE 24
++
++/* Typedefs */
++typedef struct boardparameters
++{
++ char szBoardId[BP_BOARD_ID_LEN]; /* board id string */
++ ETHERNET_MAC_INFO EnetMacInfos[BP_MAX_ENET_MACS];
++ VOIP_DSP_INFO VoIPDspInfo[BP_MAX_VOIP_DSP];
++ unsigned short usSdramSize; /* SDRAM size and type */
++ unsigned short usPsiSize; /* persistent storage in K bytes */
++ unsigned short usGpioRj11InnerPair; /* GPIO pin or not defined */
++ unsigned short usGpioRj11OuterPair; /* GPIO pin or not defined */
++ unsigned short usGpioPressAndHoldReset; /* GPIO pin or not defined */
++ unsigned short usGpioPcmciaReset; /* GPIO pin or not defined */
++ unsigned short usGpioUartRts; /* GPIO pin or not defined */
++ unsigned short usGpioUartCts; /* GPIO pin or not defined */
++ unsigned short usGpioLedAdsl; /* GPIO pin or not defined */
++ unsigned short usGpioLedAdslFail; /* GPIO pin or not defined */
++ unsigned short usGpioLedWireless; /* GPIO pin or not defined */
++ unsigned short usGpioLedUsb; /* GPIO pin or not defined */
++ unsigned short usGpioLedHpna; /* GPIO pin or not defined */
++ unsigned short usGpioLedWanData; /* GPIO pin or not defined */
++ unsigned short usGpioLedPpp; /* GPIO pin or not defined */
++ unsigned short usGpioLedPppFail; /* GPIO pin or not defined */
++ unsigned short usGpioLedBlPowerOn; /* GPIO pin or not defined */
++ unsigned short usGpioLedBlAlarm; /* GPIO pin or not defined */
++ unsigned short usGpioLedBlResetCfg; /* GPIO pin or not defined */
++ unsigned short usGpioLedBlStop; /* GPIO pin or not defined */
++ unsigned short usExtIntrWireless; /* ext intr or not defined */
++ unsigned short usExtIntrAdslDyingGasp; /* ext intr or not defined */
++ unsigned short usExtIntrHpna; /* ext intr or not defined */
++ unsigned short usCsHpna; /* chip select not defined */
++ unsigned short usAntInUseWireless; /* antenna in use or not defined */
++ unsigned short usGpioSesBtnWireless; /* GPIO pin or not defined */
++ unsigned short usExtIntrSesBtnWireless; /* ext intr or not defined */
++ unsigned short usGpioLedSesWireless; /* GPIO pin or not defined */
++} BOARD_PARAMETERS, *PBOARD_PARAMETERS;
++
++/* Variables */
++#if defined(_BCM96338_) || defined(CONFIG_BCM96338)
++static BOARD_PARAMETERS g_bcm96338sv =
++{
++ "96338SV", /* szBoardId */
++ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
++ 0x01, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x01, /* numSwitchPorts */
++ BP_ENET_CONFIG_MDIO, /* usConfigType */
++ BP_NOT_DEFINED}, /* usReverseMii */
++ {BP_ENET_NO_PHY}}, /* ucPhyType */
++ {{BP_VOIP_NO_DSP}, /* ucDspType */
++ {BP_VOIP_NO_DSP}}, /* ucDspType */
++ BP_MEMORY_16MB_1_CHIP, /* usSdramSize */
++ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
++ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
++ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
++ BP_NOT_DEFINED, /* usGpioPressAndHoldReset */
++ BP_NOT_DEFINED, /* usGpioPcmciaReset */
++ BP_NOT_DEFINED, /* usGpioUartRts */
++ BP_NOT_DEFINED, /* usGpioUartCts */
++ BP_NOT_DEFINED, /* usGpioLedAdsl */
++ BP_NOT_DEFINED, /* usGpioLedAdslFail */
++ BP_NOT_DEFINED, /* usGpioLedWireless */
++ BP_NOT_DEFINED, /* usGpioLedUsb */
++ BP_NOT_DEFINED, /* usGpioLedHpna */
++ BP_NOT_DEFINED, /* usGpioLedWanData */
++ BP_NOT_DEFINED, /* usGpioLedPpp */
++ BP_NOT_DEFINED, /* usGpioLedPppFail */
++ BP_NOT_DEFINED, /* usGpioLedBlPowerOn */
++ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
++ BP_NOT_DEFINED, /* usGpioLedBlResetCfg */
++ BP_NOT_DEFINED, /* usGpioLedBlStop */
++ BP_NOT_DEFINED, /* usExtIntrWireless */
++ BP_HW_DEFINED, /* usExtIntrAdslDyingGasp */
++ BP_NOT_DEFINED, /* usExtIntrHpna */
++ BP_NOT_DEFINED, /* usCsHpna */
++ BP_NOT_DEFINED, /* usAntInUseWireless */
++ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
++ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
++ BP_NOT_DEFINED /* usGpioLedSesWireless */
++};
++static BOARD_PARAMETERS g_bcm96338l2m8m =
++{
++ "96338L-2M-8M", /* szBoardId */
++ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
++ 0x01, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x01, /* numSwitchPorts */
++ BP_ENET_CONFIG_MDIO, /* usConfigType */
++ BP_NOT_DEFINED}, /* usReverseMii */
++ {BP_ENET_NO_PHY}}, /* ucPhyType */
++ {{BP_VOIP_NO_DSP}, /* ucDspType */
++ {BP_VOIP_NO_DSP}}, /* ucDspType */
++ BP_MEMORY_8MB_1_CHIP, /* usSdramSize */
++ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
++ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
++ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
++ BP_NOT_DEFINED, /* usGpioPressAndHoldReset */
++ BP_NOT_DEFINED, /* usGpioPcmciaReset */
++ BP_NOT_DEFINED, /* usGpioUartRts */
++ BP_NOT_DEFINED, /* usGpioUartCts */
++ BP_NOT_DEFINED, /* usGpioLedAdsl */
++ BP_GPIO_2_AL, /* usGpioLedAdslFail */
++ BP_NOT_DEFINED, /* usGpioLedWireless */
++ BP_NOT_DEFINED, /* usGpioLedUsb */
++ BP_NOT_DEFINED, /* usGpioLedHpna */
++ BP_GPIO_3_AL, /* usGpioLedWanData */
++ BP_GPIO_3_AL, /* usGpioLedPpp */
++ BP_GPIO_4_AL, /* usGpioLedPppFail */
++ BP_GPIO_0_AL, /* usGpioLedBlPowerOn */
++ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
++ BP_GPIO_3_AL, /* usGpioLedBlResetCfg */
++ BP_GPIO_1_AL, /* usGpioLedBlStop */
++ BP_NOT_DEFINED, /* usExtIntrWireless */
++ BP_HW_DEFINED, /* usExtIntrAdslDyingGasp */
++ BP_NOT_DEFINED, /* usExtIntrHpna */
++ BP_NOT_DEFINED, /* usCsHpna */
++ BP_NOT_DEFINED, /* usAntInUseWireless */
++ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
++ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
++ BP_NOT_DEFINED /* usGpioLedSesWireless */
++};
++static PBOARD_PARAMETERS g_BoardParms[] =
++ {&g_bcm96338sv, &g_bcm96338l2m8m, 0};
++#endif
++
++#if defined(_BCM96345_) || defined(CONFIG_BCM96345)
++static BOARD_PARAMETERS g_bcm96345r =
++{
++ "96345R", /* szBoardId */
++ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
++ 0x01, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x01, /* numSwitchPorts */
++ BP_ENET_CONFIG_MDIO, /* usConfigType */
++ BP_NOT_DEFINED}, /* usReverseMii */
++ {BP_ENET_NO_PHY}}, /* ucPhyType */
++ {{BP_VOIP_NO_DSP}, /* ucDspType */
++ {BP_VOIP_NO_DSP}}, /* ucDspType */
++ BP_MEMORY_8MB_1_CHIP, /* usSdramSize */
++ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
++ BP_GPIO_11_AH, /* usGpioRj11InnerPair */
++ BP_GPIO_12_AH, /* usGpioRj11OuterPair */
++ BP_GPIO_13_AH, /* usGpioPressAndHoldReset */
++ BP_NOT_DEFINED, /* usGpioPcmciaReset */
++ BP_NOT_DEFINED, /* usGpioUartRts */
++ BP_NOT_DEFINED, /* usGpioUartCts */
++ BP_GPIO_8_AH, /* usGpioLedAdsl */
++ BP_NOT_DEFINED, /* usGpioLedAdslFail */
++ BP_NOT_DEFINED, /* usGpioLedWireless */
++ BP_NOT_DEFINED, /* usGpioLedUsb */
++ BP_NOT_DEFINED, /* usGpioLedHpna */
++ BP_GPIO_8_AH, /* usGpioLedWanData */
++ BP_GPIO_9_AH, /* usGpioLedPpp */
++ BP_NOT_DEFINED, /* usGpioLedPppFail */
++ BP_NOT_DEFINED, /* usGpioLedBlPowerOn */
++ BP_GPIO_10_AH, /* usGpioLedBlAlarm */
++ BP_GPIO_9_AH, /* usGpioLedBlResetCfg */
++ BP_GPIO_8_AH, /* usGpioLedBlStop */
++ BP_NOT_DEFINED, /* usExtIntrWireless */
++ BP_EXT_INTR_0, /* usExtIntrAdslDyingGasp */
++ BP_NOT_DEFINED, /* usExtIntrHpna */
++ BP_NOT_DEFINED, /* usCsHpna */
++ BP_NOT_DEFINED, /* usAntInUseWireless */
++ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
++ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
++ BP_NOT_DEFINED /* usGpioLedSesWireless */
++};
++
++static BOARD_PARAMETERS g_bcm96345gw2 =
++{
++ /* A hardware jumper determines whether GPIO 13 is used for Press and Hold
++ * Reset or RTS.
++ */
++ "96345GW2", /* szBoardId */
++ {{BP_ENET_EXTERNAL_SWITCH, /* ucPhyType */
++ 0x00, /* ucPhyAddress */
++ BP_GPIO_0_AH, /* usGpioPhySpiSck */
++ BP_GPIO_4_AH, /* usGpioPhySpiSs */
++ BP_GPIO_12_AH, /* usGpioPhySpiMosi */
++ BP_GPIO_11_AH, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x04, /* numSwitchPorts */
++ BP_ENET_CONFIG_GPIO, /* usConfigType */
++ BP_ENET_REVERSE_MII}, /* usReverseMii */
++ {BP_ENET_NO_PHY}}, /* ucPhyType */
++ {{BP_VOIP_DSP, /* ucDspType */
++ 0x00, /* ucDspAddress */
++ BP_EXT_INTR_1, /* usExtIntrVoip */
++ BP_GPIO_6_AH, /* usGpioVoipReset */
++ BP_GPIO_15_AH, /* usGpioVoipIntr */
++ BP_NOT_DEFINED, /* usGpioLedVoip */
++ BP_CS_2}, /* usCsVoip */
++ {BP_VOIP_NO_DSP}}, /* ucDspType */
++ BP_MEMORY_16MB_1_CHIP, /* usSdramSize */
++ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
++ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
++ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
++ BP_GPIO_13_AH, /* usGpioPressAndHoldReset */
++ BP_GPIO_2_AH, /* usGpioPcmciaReset */
++ BP_GPIO_13_AH, /* usGpioUartRts */
++ BP_GPIO_9_AH, /* usGpioUartCts */
++ BP_GPIO_8_AH, /* usGpioLedAdsl */
++ BP_NOT_DEFINED, /* usGpioLedAdslFail */
++ BP_NOT_DEFINED, /* usGpioLedWireless */
++ BP_GPIO_7_AH, /* usGpioLedUsb */
++ BP_NOT_DEFINED, /* usGpioLedHpna */
++ BP_GPIO_8_AH, /* usGpioLedWanData */
++ BP_NOT_DEFINED, /* usGpioLedPpp */
++ BP_NOT_DEFINED, /* usGpioLedPppFail */
++ BP_NOT_DEFINED, /* usGpioLedBlPowerOn */
++ BP_GPIO_10_AH, /* usGpioLedBlAlarm */
++ BP_GPIO_7_AH, /* usGpioLedBlResetCfg */
++ BP_GPIO_8_AH, /* usGpioLedBlStop */
++ BP_EXT_INTR_2, /* usExtIntrWireless */
++ BP_EXT_INTR_0, /* usExtIntrAdslDyingGasp */
++ BP_NOT_DEFINED, /* usExtIntrHpna */
++ BP_NOT_DEFINED, /* usCsHpna */
++ BP_WLAN_ANT_MAIN, /* usAntInUseWireless */
++ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
++ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
++ BP_NOT_DEFINED /* usGpioLedSesWireless */
++};
++
++static BOARD_PARAMETERS g_bcm96345gw =
++{
++ "96345GW", /* szBoardId */
++ {{BP_ENET_EXTERNAL_SWITCH, /* ucPhyType */
++ 0x00, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x04, /* numSwitchPorts */
++ BP_ENET_CONFIG_MDIO, /* usConfigType */
++ BP_ENET_NO_REVERSE_MII}, /* usReverseMii */
++ {BP_ENET_NO_PHY}}, /* ucPhyType */
++ {{BP_VOIP_DSP, /* ucDspType */
++ 0x00, /* ucDspAddress */
++ BP_EXT_INTR_1, /* usExtIntrVoip */
++ BP_GPIO_6_AH, /* usGpioVoipReset */
++ BP_GPIO_15_AH, /* usGpioVoipIntr */
++ BP_NOT_DEFINED, /* usGpioLedVoip */
++ BP_CS_2}, /* usCsVoip */
++ {BP_VOIP_NO_DSP}}, /* ucDspType */
++ BP_MEMORY_16MB_1_CHIP, /* usSdramSize */
++ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
++ BP_GPIO_11_AH, /* usGpioRj11InnerPair */
++ BP_GPIO_1_AH, /* usGpioRj11OuterPair */
++ BP_GPIO_13_AH, /* usGpioPressAndHoldReset */
++ BP_GPIO_2_AH, /* usGpioPcmciaReset */
++ BP_NOT_DEFINED, /* usGpioUartRts */
++ BP_NOT_DEFINED, /* usGpioUartCts */
++ BP_GPIO_8_AH, /* usGpioLedAdsl */
++ BP_NOT_DEFINED, /* usGpioLedAdslFail */
++ BP_GPIO_10_AH, /* usGpioLedWireless */
++ BP_GPIO_7_AH, /* usGpioLedUsb */
++ BP_NOT_DEFINED, /* usGpioLedHpna */
++ BP_GPIO_8_AH, /* usGpioLedWanData */
++ BP_NOT_DEFINED, /* usGpioLedPpp */
++ BP_NOT_DEFINED, /* usGpioLedPppFail */
++ BP_NOT_DEFINED, /* usGpioLedBlPowerOn */
++ BP_GPIO_9_AH, /* usGpioLedBlAlarm */
++ BP_GPIO_10_AH, /* usGpioLedBlResetCfg */
++ BP_GPIO_8_AH, /* usGpioLedBlStop */
++ BP_EXT_INTR_2, /* usExtIntrWireless */
++ BP_EXT_INTR_0, /* usExtIntrAdslDyingGasp */
++ BP_EXT_INTR_3, /* usExtIntrHpna */
++ BP_CS_1, /* usCsHpna */
++ BP_WLAN_ANT_MAIN, /* usAntInUseWireless */
++ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
++ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
++ BP_NOT_DEFINED /* usGpioLedSesWireless */
++};
++
++static BOARD_PARAMETERS g_bcm96335r =
++{
++ "96335R", /* szBoardId */
++ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
++ 0x01, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x01, /* numSwitchPorts */
++ BP_ENET_CONFIG_MDIO, /* usConfigType */
++ BP_NOT_DEFINED}, /* usReverseMii */
++ {BP_ENET_NO_PHY}}, /* ucPhyType */
++ {{BP_VOIP_NO_DSP}, /* ucDspType */
++ {BP_VOIP_NO_DSP}}, /* ucDspType */
++ BP_MEMORY_8MB_1_CHIP, /* usSdramSize */
++ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
++ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
++ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
++ BP_GPIO_14_AH, /* usGpioPressAndHoldReset */
++ BP_NOT_DEFINED, /* usGpioPcmciaReset */
++ BP_NOT_DEFINED, /* usGpioUartRts */
++ BP_NOT_DEFINED, /* usGpioUartCts */
++ BP_GPIO_9_AH, /* usGpioLedAdsl */
++ BP_NOT_DEFINED, /* usGpioLedAdslFail */
++ BP_NOT_DEFINED, /* usGpioLedWireless */
++ BP_NOT_DEFINED, /* usGpioLedUsb */
++ BP_NOT_DEFINED, /* usGpioLedHpna */
++ BP_GPIO_9_AH, /* usGpioLedWanData */
++ BP_GPIO_8_AH, /* usGpioLedPpp */
++ BP_NOT_DEFINED, /* usGpioLedPppFail */
++ BP_NOT_DEFINED, /* usGpioLedBlPowerOn */
++ BP_GPIO_10_AH, /* usGpioLedBlAlarm */
++ BP_GPIO_8_AH, /* usGpioLedBlResetCfg */
++ BP_GPIO_9_AH, /* usGpioLedBlStop */
++ BP_NOT_DEFINED, /* usExtIntrWireless */
++ BP_NOT_DEFINED, /* usExtIntrAdslDyingGasp */
++ BP_NOT_DEFINED, /* usExtIntrHpna */
++ BP_NOT_DEFINED, /* usCsHpna */
++ BP_NOT_DEFINED, /* usAntInUseWireless */
++ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
++ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
++ BP_NOT_DEFINED /* usGpioLedSesWireless */
++};
++
++static BOARD_PARAMETERS g_bcm96345r0 =
++{
++ "96345R0", /* szBoardId */
++ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
++ 0x01, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x01, /* numSwitchPorts */
++ BP_ENET_CONFIG_MDIO, /* usConfigType */
++ BP_NOT_DEFINED}, /* usReverseMii */
++ {BP_ENET_NO_PHY}}, /* ucPhyType */
++ {{BP_VOIP_NO_DSP}, /* ucDspType */
++ {BP_VOIP_NO_DSP}}, /* ucDspType */
++ BP_MEMORY_8MB_1_CHIP, /* usSdramSize */
++ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
++ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
++ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
++ BP_NOT_DEFINED, /* usGpioPressAndHoldReset */
++ BP_NOT_DEFINED, /* usGpioPcmciaReset */
++ BP_NOT_DEFINED, /* usGpioUartRts */
++ BP_NOT_DEFINED, /* usGpioUartCts */
++ BP_GPIO_8_AH, /* usGpioLedAdsl */
++ BP_NOT_DEFINED, /* usGpioLedAdslFail */
++ BP_NOT_DEFINED, /* usGpioLedWireless */
++ BP_NOT_DEFINED, /* usGpioLedUsb */
++ BP_NOT_DEFINED, /* usGpioLedHpna */
++ BP_GPIO_9_AH, /* usGpioLedWanData */
++ BP_GPIO_9_AH, /* usGpioLedPpp */
++ BP_NOT_DEFINED, /* usGpioLedPppFail */
++ BP_NOT_DEFINED, /* usGpioLedBlPowerOn */
++ BP_GPIO_9_AH, /* usGpioLedBlAlarm */
++ BP_GPIO_8_AH, /* usGpioLedBlResetCfg */
++ BP_GPIO_8_AH, /* usGpioLedBlStop */
++ BP_NOT_DEFINED, /* usExtIntrWireless */
++ BP_NOT_DEFINED, /* usExtIntrAdslDyingGasp */
++ BP_NOT_DEFINED, /* usExtIntrHpna */
++ BP_NOT_DEFINED, /* usCsHpna */
++ BP_NOT_DEFINED, /* usAntInUseWireless */
++ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
++ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
++ BP_NOT_DEFINED /* usGpioLedSesWireless */
++};
++
++static BOARD_PARAMETERS g_bcm96345rs =
++{
++ "96345RS", /* szBoardId */
++ {{BP_ENET_EXTERNAL_SWITCH, /* ucPhyType */
++ 0x00, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x01, /* numSwitchPorts */
++ BP_ENET_CONFIG_MDIO, /* usConfigType */
++ BP_ENET_NO_REVERSE_MII}, /* usReverseMii */
++ {BP_ENET_NO_PHY}}, /* ucPhyType */
++ {{BP_VOIP_NO_DSP}, /* ucDspType */
++ {BP_VOIP_NO_DSP}}, /* ucDspType */
++ BP_MEMORY_8MB_1_CHIP, /* usSdramSize */
++ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
++ BP_GPIO_11_AH, /* usGpioRj11InnerPair */
++ BP_GPIO_12_AH, /* usGpioRj11OuterPair */
++ BP_GPIO_13_AH, /* usGpioPressAndHoldReset */
++ BP_NOT_DEFINED, /* usGpioPcmciaReset */
++ BP_NOT_DEFINED, /* usGpioUartRts */
++ BP_NOT_DEFINED, /* usGpioUartCts */
++ BP_GPIO_8_AH, /* usGpioLedAdsl */
++ BP_NOT_DEFINED, /* usGpioLedAdslFail */
++ BP_NOT_DEFINED, /* usGpioLedWireless */
++ BP_NOT_DEFINED, /* usGpioLedUsb */
++ BP_NOT_DEFINED, /* usGpioLedHpna */
++ BP_GPIO_8_AH, /* usGpioLedWanData */
++ BP_GPIO_9_AH, /* usGpioLedPpp */
++ BP_NOT_DEFINED, /* usGpioLedPppFail */
++ BP_NOT_DEFINED, /* usGpioLedBlPowerOn */
++ BP_GPIO_10_AH, /* usGpioLedBlAlarm */
++ BP_GPIO_9_AH, /* usGpioLedBlResetCfg */
++ BP_GPIO_8_AH, /* usGpioLedBlStop */
++ BP_NOT_DEFINED, /* usExtIntrWireless */
++ BP_EXT_INTR_0, /* usExtIntrAdslDyingGasp */
++ BP_NOT_DEFINED, /* usExtIntrHpna */
++ BP_NOT_DEFINED, /* usCsHpna */
++ BP_NOT_DEFINED, /* usAntInUseWireless */
++ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
++ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
++ BP_NOT_DEFINED /* usGpioLedSesWireless */
++};
++
++static PBOARD_PARAMETERS g_BoardParms[] =
++ {&g_bcm96345r, &g_bcm96345gw2, &g_bcm96345gw, &g_bcm96335r, &g_bcm96345r0,
++ &g_bcm96345rs, 0};
++#endif
++
++#if defined(_BCM96348_) || defined(CONFIG_BCM96348)
++
++static BOARD_PARAMETERS g_bcm96348r =
++{
++ "96348R", /* szBoardId */
++ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
++ 0x01, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x01, /* numSwitchPorts */
++ BP_ENET_CONFIG_MDIO, /* usConfigType */
++ BP_NOT_DEFINED}, /* usReverseMii */
++ {BP_ENET_NO_PHY}}, /* ucPhyType */
++ {{BP_VOIP_NO_DSP}, /* ucDspType */
++ {BP_VOIP_NO_DSP}}, /* ucDspType */
++ BP_MEMORY_8MB_1_CHIP, /* usSdramSize */
++ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
++ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
++ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
++ BP_GPIO_7_AH, /* usGpioPressAndHoldReset */
++ BP_NOT_DEFINED, /* usGpioPcmciaReset */
++ BP_NOT_DEFINED, /* usGpioUartRts */
++ BP_NOT_DEFINED, /* usGpioUartCts */
++ BP_NOT_DEFINED, /* usGpioLedAdsl */
++ BP_GPIO_2_AL, /* usGpioLedAdslFail */
++ BP_NOT_DEFINED, /* usGpioLedWireless */
++ BP_NOT_DEFINED, /* usGpioLedUsb */
++ BP_NOT_DEFINED, /* usGpioLedHpna */
++ BP_GPIO_3_AL, /* usGpioLedWanData */
++ BP_GPIO_3_AL, /* usGpioLedPpp */
++ BP_GPIO_4_AL, /* usGpioLedPppFail */
++ BP_GPIO_0_AL, /* usGpioLedBlPowerOn */
++ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
++ BP_GPIO_3_AL, /* usGpioLedBlResetCfg */
++ BP_GPIO_1_AL, /* usGpioLedBlStop */
++ BP_NOT_DEFINED, /* usExtIntrWireless */
++ BP_HW_DEFINED, /* usExtIntrAdslDyingGasp */
++ BP_NOT_DEFINED, /* usExtIntrHpna */
++ BP_NOT_DEFINED, /* usCsHpna */
++ BP_NOT_DEFINED, /* usAntInUseWireless */
++ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
++ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
++ BP_NOT_DEFINED /* usGpioLedSesWireless */
++};
++
++static BOARD_PARAMETERS g_bcm96348lv =
++{
++ "96348LV", /* szBoardId */
++ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
++ 0x01, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x01, /* numSwitchPorts */
++ BP_ENET_CONFIG_MDIO, /* usConfigType */
++ BP_NOT_DEFINED}, /* usReverseMii */
++ {BP_ENET_EXTERNAL_PHY, /* ucPhyType */
++ 0x02, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_GPIO_5_AL, /* usGpioPhyReset */
++ 0x01, /* numSwitchPorts */
++ BP_ENET_CONFIG_MDIO, /* usConfigType */
++ BP_NOT_DEFINED}}, /* usReverseMii */
++ {{BP_VOIP_NO_DSP}, /* ucDspType */
++ {BP_VOIP_NO_DSP}}, /* ucDspType */
++ BP_MEMORY_16MB_2_CHIP, /* usSdramSize */
++ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
++ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
++ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
++ BP_GPIO_7_AH, /* usGpioPressAndHoldReset */
++ BP_NOT_DEFINED, /* usGpioPcmciaReset */
++ BP_NOT_DEFINED, /* usGpioUartRts */
++ BP_NOT_DEFINED, /* usGpioUartCts */
++ BP_NOT_DEFINED, /* usGpioLedAdsl */
++ BP_GPIO_2_AL, /* usGpioLedAdslFail */
++ BP_NOT_DEFINED, /* usGpioLedWireless */
++ BP_NOT_DEFINED, /* usGpioLedUsb */
++ BP_NOT_DEFINED, /* usGpioLedHpna */
++ BP_GPIO_3_AL, /* usGpioLedWanData */
++ BP_GPIO_3_AL, /* usGpioLedPpp */
++ BP_GPIO_4_AL, /* usGpioLedPppFail */
++ BP_GPIO_0_AL, /* usGpioLedBlPowerOn */
++ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
++ BP_GPIO_3_AL, /* usGpioLedBlResetCfg */
++ BP_GPIO_1_AL, /* usGpioLedBlStop */
++ BP_NOT_DEFINED, /* usExtIntrWireless */
++ BP_NOT_DEFINED, /* usExtIntrAdslDyingGasp */
++ BP_NOT_DEFINED, /* usExtIntrHpna */
++ BP_NOT_DEFINED, /* usCsHpna */
++ BP_NOT_DEFINED, /* usAntInUseWireless */
++ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
++ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
++ BP_NOT_DEFINED /* usGpioLedSesWireless */
++};
++
++static BOARD_PARAMETERS g_bcm96348gw =
++{
++ "96348GW", /* szBoardId */
++ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
++ 0x01, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x01, /* numSwitchPorts */
++ BP_ENET_CONFIG_MDIO, /* usConfigType */
++ BP_NOT_DEFINED}, /* usReverseMii */
++ {BP_ENET_EXTERNAL_SWITCH, /* ucPhyType */
++ 0x00, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x03, /* numSwitchPorts */
++ BP_ENET_CONFIG_SPI_SSB_0, /* usConfigType */
++ BP_ENET_REVERSE_MII}}, /* usReverseMii */
++ {{BP_VOIP_DSP, /* ucDspType */
++ 0x00, /* ucDspAddress */
++ BP_EXT_INTR_2, /* usExtIntrVoip */
++ BP_GPIO_6_AH, /* usGpioVoipReset */
++ BP_GPIO_34_AH, /* usGpioVoipIntr */
++ BP_NOT_DEFINED, /* usGpioLedVoip */
++ BP_CS_2}, /* usCsVoip */
++ {BP_VOIP_NO_DSP}}, /* ucDspType */
++ BP_MEMORY_16MB_2_CHIP, /* usSdramSize */
++ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
++ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
++ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
++ BP_GPIO_33_AL, /* usGpioPressAndHoldReset */
++ BP_NOT_DEFINED, /* usGpioPcmciaReset */
++ BP_NOT_DEFINED, /* usGpioUartRts */
++ BP_NOT_DEFINED, /* usGpioUartCts */
++ BP_NOT_DEFINED, /* usGpioLedAdsl */
++ BP_GPIO_2_AL, /* usGpioLedAdslFail */
++ BP_NOT_DEFINED, /* usGpioLedWireless */
++ BP_NOT_DEFINED, /* usGpioLedUsb */
++ BP_NOT_DEFINED, /* usGpioLedHpna */
++ BP_GPIO_3_AL, /* usGpioLedWanData */
++ BP_GPIO_3_AL, /* usGpioLedPpp */
++ BP_GPIO_4_AL, /* usGpioLedPppFail */
++ BP_GPIO_0_AL, /* usGpioLedBlPowerOn */
++ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
++ BP_GPIO_3_AL, /* usGpioLedBlResetCfg */
++ BP_GPIO_1_AL, /* usGpioLedBlStop */
++ BP_NOT_DEFINED, /* usExtIntrWireless */
++ BP_HW_DEFINED, /* usExtIntrAdslDyingGasp */
++ BP_NOT_DEFINED, /* usExtIntrHpna */
++ BP_NOT_DEFINED, /* usCsHpna */
++ BP_WLAN_ANT_MAIN, /* usAntInUseWireless */
++ BP_NOT_DEFINED, /* BP_GPIO_35_AH, */ /* usGpioSesBtnWireless */
++ BP_NOT_DEFINED, /* BP_EXT_INTR_3, */ /* usExtIntrSesBtnWireless */
++ BP_NOT_DEFINED /* BP_GPIO_0_AL */ /* usGpioLedSesWireless */
++};
++
++
++static BOARD_PARAMETERS g_bcm96348gw_10 =
++{
++ "96348GW-10", /* szBoardId */
++ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
++ 0x01, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x01, /* numSwitchPorts */
++ BP_ENET_CONFIG_MDIO, /* usConfigType */
++ BP_NOT_DEFINED}, /* usReverseMii */
++ {BP_ENET_EXTERNAL_SWITCH, /* ucPhyType */
++ 0x00, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x03, /* numSwitchPorts */
++ BP_ENET_CONFIG_SPI_SSB_1, /* usConfigType */
++ BP_ENET_REVERSE_MII}}, /* usReverseMii */
++ {{BP_VOIP_DSP, /* ucDspType */
++ 0x00, /* ucDspAddress */
++ BP_EXT_INTR_2, /* usExtIntrVoip */
++ BP_GPIO_6_AH, /* usGpioVoipReset */
++ BP_GPIO_34_AH, /* usGpioVoipIntr */
++ BP_NOT_DEFINED, /* usGpioLedVoip */
++ BP_CS_2}, /* usCsVoip */
++ {BP_VOIP_NO_DSP}}, /* ucDspType */
++ BP_MEMORY_16MB_2_CHIP, /* usSdramSize */
++ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
++ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
++ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
++ BP_GPIO_33_AL, /* usGpioPressAndHoldReset */
++ BP_NOT_DEFINED, /* usGpioPcmciaReset */
++ BP_NOT_DEFINED, /* usGpioUartRts */
++ BP_NOT_DEFINED, /* usGpioUartCts */
++ BP_NOT_DEFINED, /* usGpioLedAdsl */
++ BP_GPIO_2_AL, /* usGpioLedAdslFail */
++ BP_NOT_DEFINED, /* usGpioLedWireless */
++ BP_NOT_DEFINED, /* usGpioLedUsb */
++ BP_NOT_DEFINED, /* usGpioLedHpna */
++ BP_GPIO_3_AL, /* usGpioLedWanData */
++ BP_GPIO_3_AL, /* usGpioLedPpp */
++ BP_GPIO_4_AL, /* usGpioLedPppFail */
++ BP_GPIO_0_AL, /* usGpioLedBlPowerOn */
++ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
++ BP_GPIO_3_AL, /* usGpioLedBlResetCfg */
++ BP_GPIO_1_AL, /* usGpioLedBlStop */
++ BP_NOT_DEFINED, /* usExtIntrWireless */
++ BP_HW_DEFINED, /* usExtIntrAdslDyingGasp */
++ BP_NOT_DEFINED, /* usExtIntrHpna */
++ BP_NOT_DEFINED, /* usCsHpna */
++ BP_WLAN_ANT_MAIN, /* usAntInUseWireless */
++ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
++ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
++ BP_NOT_DEFINED /* usGpioLedSesWireless */
++};
++
++static BOARD_PARAMETERS g_bcm96348gw_11 =
++{
++ "96348GW-11", /* szBoardId */
++ {{BP_ENET_NO_PHY}, /* ucPhyType */
++ {BP_ENET_EXTERNAL_SWITCH, /* ucPhyType */
++ 0x00, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x04, /* numSwitchPorts */
++ BP_ENET_CONFIG_SPI_SSB_1, /* usConfigType */
++ BP_ENET_REVERSE_MII}}, /* usReverseMii */
++ {{BP_VOIP_NO_DSP}, /* ucDspType */
++ {BP_VOIP_NO_DSP}}, /* ucDspType */
++ BP_MEMORY_16MB_2_CHIP, /* usSdramSize */
++ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
++ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
++ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
++ BP_GPIO_33_AL, /* usGpioPressAndHoldReset */
++ BP_NOT_DEFINED, /* usGpioPcmciaReset */
++ BP_NOT_DEFINED, /* usGpioUartRts */
++ BP_NOT_DEFINED, /* usGpioUartCts */
++ BP_NOT_DEFINED, /* usGpioLedAdsl */
++ BP_GPIO_2_AL, /* usGpioLedAdslFail */
++ BP_NOT_DEFINED, /* usGpioLedWireless */
++ BP_NOT_DEFINED, /* usGpioLedUsb */
++ BP_NOT_DEFINED, /* usGpioLedHpna */
++ BP_GPIO_3_AL, /* usGpioLedWanData */
++ BP_GPIO_3_AL, /* usGpioLedPpp */
++ BP_GPIO_4_AL, /* usGpioLedPppFail */
++ BP_GPIO_0_AL, /* usGpioLedBlPowerOn */
++ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
++ BP_GPIO_3_AL, /* usGpioLedBlResetCfg */
++ BP_GPIO_1_AL, /* usGpioLedBlStop */
++ BP_NOT_DEFINED, /* usExtIntrWireless */
++ BP_HW_DEFINED, /* usExtIntrAdslDyingGasp */
++ BP_NOT_DEFINED, /* usExtIntrHpna */
++ BP_NOT_DEFINED, /* usCsHpna */
++ BP_NOT_DEFINED, /* usAntInUseWireless */
++ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
++ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
++ BP_NOT_DEFINED /* usGpioLedSesWireless */
++};
++
++static BOARD_PARAMETERS g_bcm96348sv =
++{
++ "96348SV", /* szBoardId */
++ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
++ 0x01, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x01, /* numSwitchPorts */
++ BP_ENET_CONFIG_MDIO, /* usConfigType */
++ BP_NOT_DEFINED}, /* usReverseMii */
++ {BP_ENET_EXTERNAL_PHY, /* ucPhyType */
++ 0x1f, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x01, /* numSwitchPorts */
++ BP_ENET_CONFIG_MDIO, /* usConfigType */
++ BP_NOT_DEFINED}}, /* usReverseMii */
++ {{BP_VOIP_NO_DSP}, /* ucDspType */
++ {BP_VOIP_NO_DSP}}, /* ucDspType */
++ BP_MEMORY_32MB_2_CHIP, /* usSdramSize */
++ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
++ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
++ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
++ BP_NOT_DEFINED, /* usGpioPressAndHoldReset */
++ BP_NOT_DEFINED, /* usGpioPcmciaReset */
++ BP_NOT_DEFINED, /* usGpioUartRts */
++ BP_NOT_DEFINED, /* usGpioUartCts */
++ BP_NOT_DEFINED, /* usGpioLedAdsl */
++ BP_NOT_DEFINED, /* usGpioLedAdslFail */
++ BP_NOT_DEFINED, /* usGpioLedWireless */
++ BP_NOT_DEFINED, /* usGpioLedUsb */
++ BP_NOT_DEFINED, /* usGpioLedHpna */
++ BP_NOT_DEFINED, /* usGpioLedWanData */
++ BP_NOT_DEFINED, /* usGpioLedPpp */
++ BP_NOT_DEFINED, /* usGpioLedPppFail */
++ BP_NOT_DEFINED, /* usGpioLedBlPowerOn */
++ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
++ BP_NOT_DEFINED, /* usGpioLedBlResetCfg */
++ BP_NOT_DEFINED, /* usGpioLedBlStop */
++ BP_NOT_DEFINED, /* usExtIntrWireless */
++ BP_HW_DEFINED, /* usExtIntrAdslDyingGasp */
++ BP_NOT_DEFINED, /* usExtIntrHpna */
++ BP_NOT_DEFINED, /* usCsHpna */
++ BP_NOT_DEFINED, /* usAntInUseWireless */
++ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
++ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
++ BP_NOT_DEFINED /* usGpioLedSesWireless */
++};
++
++
++static BOARD_PARAMETERS g_bcm96348gw_dualDsp =
++{
++ "96348GW-DualDSP", /* szBoardId */
++ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
++ 0x01, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x01, /* numSwitchPorts */
++ BP_ENET_CONFIG_MDIO, /* usConfigType */
++ BP_NOT_DEFINED}, /* usReverseMii */
++ {BP_ENET_EXTERNAL_SWITCH, /* ucPhyType */
++ 0x00, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x03, /* numSwitchPorts */
++ BP_ENET_CONFIG_SPI_SSB_1, /* usConfigType */
++ BP_ENET_REVERSE_MII}}, /* usReverseMii */
++ {{BP_VOIP_DSP, /* ucDspType */
++ 0x00, /* ucDspAddress */
++ BP_EXT_INTR_2, /* usExtIntrVoip */
++ BP_UNEQUIPPED, /* usGpioVoipReset */
++ BP_GPIO_34_AH, /* usGpioVoipIntr */
++ BP_NOT_DEFINED, /* usGpioLedVoip */
++ BP_CS_2}, /* usCsVoip */
++ {BP_VOIP_DSP, /* ucDspType */
++ 0x01, /* ucDspAddress */
++ BP_EXT_INTR_3, /* usExtIntrVoip */
++ BP_UNEQUIPPED , /* usGpioVoipReset */
++ BP_GPIO_35_AH, /* usGpioVoipIntr */
++ BP_NOT_DEFINED, /* usGpioLedVoip */
++ BP_CS_3}}, /* usCsVoip */
++ BP_MEMORY_16MB_2_CHIP, /* usSdramSize */
++ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
++ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
++ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
++ BP_GPIO_33_AL, /* usGpioPressAndHoldReset */
++ BP_NOT_DEFINED, /* usGpioPcmciaReset */
++ BP_NOT_DEFINED, /* usGpioUartRts */
++ BP_NOT_DEFINED, /* usGpioUartCts */
++ BP_NOT_DEFINED, /* usGpioLedAdsl */
++ BP_GPIO_2_AL, /* usGpioLedAdslFail */
++ BP_NOT_DEFINED, /* usGpioLedWireless */
++ BP_NOT_DEFINED, /* usGpioLedUsb */
++ BP_NOT_DEFINED, /* usGpioLedHpna */
++ BP_GPIO_3_AL, /* usGpioLedWanData */
++ BP_GPIO_3_AL, /* usGpioLedPpp */
++ BP_GPIO_4_AL, /* usGpioLedPppFail */
++ BP_GPIO_0_AL, /* usGpioLedBlPowerOn */
++ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
++ BP_GPIO_3_AL, /* usGpioLedBlResetCfg */
++ BP_GPIO_1_AL, /* usGpioLedBlStop */
++ BP_NOT_DEFINED, /* usExtIntrWireless */
++ BP_HW_DEFINED, /* usExtIntrAdslDyingGasp */
++ BP_NOT_DEFINED, /* usExtIntrHpna */
++ BP_NOT_DEFINED, /* usCsHpna */
++ BP_WLAN_ANT_MAIN, /* usAntInUseWireless */
++ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
++ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
++ BP_NOT_DEFINED /* usGpioLedSesWireless */
++};
++
++
++static BOARD_PARAMETERS g_bcmCustom_01 =
++{
++ "BCMCUST_01", /* szBoardId */
++ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
++ 0x01, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x01, /* numSwitchPorts */
++ BP_ENET_CONFIG_MDIO, /* usConfigType */
++ BP_NOT_DEFINED}, /* usReverseMii */
++ {BP_ENET_NO_PHY, /* ucPhyType */
++ 0x00, /* ucPhyAddress */
++ BP_NOT_DEFINED, /* usGpioPhySpiSck */
++ BP_NOT_DEFINED, /* usGpioPhySpiSs */
++ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
++ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
++ BP_NOT_DEFINED, /* usGpioPhyReset */
++ 0x01, /* numSwitchPorts */
++ BP_ENET_CONFIG_SPI_SSB_1, /* usConfigType */
++ BP_ENET_REVERSE_MII}}, /* usReverseMii */
++ {{BP_VOIP_DSP, /* ucDspType */
++ 0x00, /* ucDspAddress */
++ BP_EXT_INTR_2, /* usExtIntrVoip */
++ BP_GPIO_36_AH, /* usGpioVoipReset */
++ BP_GPIO_34_AL, /* usGpioVoipIntr */
++ BP_NOT_DEFINED, /* usGpioLedVoip */
++ BP_CS_2}, /* usCsVoip */
++ {BP_VOIP_NO_DSP}}, /* ucDspType */
++ BP_MEMORY_16MB_2_CHIP, /* usSdramSize */
++ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
++ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
++ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
++ BP_GPIO_33_AL, /* usGpioPressAndHoldReset */
++ BP_NOT_DEFINED, /* usGpioPcmciaReset */
++ BP_NOT_DEFINED, /* usGpioUartRts */
++ BP_NOT_DEFINED, /* usGpioUartCts */
++ BP_NOT_DEFINED, /* usGpioLedAdsl */
++ BP_GPIO_2_AL, /* usGpioLedAdslFail */
++ BP_NOT_DEFINED, /* usGpioLedWireless */
++ BP_NOT_DEFINED, /* usGpioLedUsb */
++ BP_NOT_DEFINED, /* usGpioLedHpna */
++ BP_GPIO_3_AL, /* usGpioLedWanData */
++ BP_GPIO_3_AL, /* usGpioLedPpp */
++ BP_GPIO_4_AL, /* usGpioLedPppFail */
++ BP_GPIO_0_AL, /* usGpioLedBlPowerOn */
++ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
++ BP_GPIO_3_AL, /* usGpioLedBlResetCfg */
++ BP_GPIO_1_AL, /* usGpioLedBlStop */
++ BP_NOT_DEFINED, /* usExtIntrWireless */
++ BP_NOT_DEFINED, /* usExtIntrAdslDyingGasp */
++ BP_NOT_DEFINED, /* usExtIntrHpna */
++ BP_NOT_DEFINED, /* usCsHpna */
++ BP_NOT_DEFINED, /* usAntInUseWireless */
++ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
++ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
++ BP_NOT_DEFINED /* usGpioLedSesWireless */
++};
++
++static PBOARD_PARAMETERS g_BoardParms[] =
++ {&g_bcm96348r, &g_bcm96348lv, &g_bcm96348gw, &g_bcm96348gw_10,
++ &g_bcm96348gw_11, &g_bcm96348sv, &g_bcm96348gw_dualDsp,
++ &g_bcmCustom_01, 0};
++#endif
++
++static PBOARD_PARAMETERS g_pCurrentBp = 0;
++
++/**************************************************************************
++ * Name : bpstrcmp
++ *
++ * Description: String compare for this file so it does not depend on an OS.
++ * (Linux kernel and CFE share this source file.)
++ *
++ * Parameters : [IN] dest - destination string
++ * [IN] src - source string
++ *
++ * Returns : -1 - dest < src, 1 - dest > src, 0 dest == src
++ ***************************************************************************/
++static int bpstrcmp(const char *dest,const char *src);
++static int bpstrcmp(const char *dest,const char *src)
++{
++ while (*src && *dest)
++ {
++ if (*dest < *src) return -1;
++ if (*dest > *src) return 1;
++ dest++;
++ src++;
++ }
++
++ if (*dest && !*src) return 1;
++ if (!*dest && *src) return -1;
++ return 0;
++} /* bpstrcmp */
++
++/**************************************************************************
++ * Name : BpGetVoipDspConfig
++ *
++ * Description: Gets the DSP configuration from the board parameter
++ * structure for a given DSP index.
++ *
++ * Parameters : [IN] dspNum - DSP index (number)
++ *
++ * Returns : Pointer to DSP configuration block if found/valid, NULL
++ * otherwise.
++ ***************************************************************************/
++VOIP_DSP_INFO *BpGetVoipDspConfig( unsigned char dspNum );
++VOIP_DSP_INFO *BpGetVoipDspConfig( unsigned char dspNum )
++{
++ VOIP_DSP_INFO *pDspConfig = 0;
++ int i;
++
++ if( g_pCurrentBp )
++ {
++ for( i = 0 ; i < BP_MAX_VOIP_DSP ; i++ )
++ {
++ if( g_pCurrentBp->VoIPDspInfo[i].ucDspType != BP_VOIP_NO_DSP &&
++ g_pCurrentBp->VoIPDspInfo[i].ucDspAddress == dspNum )
++ {
++ pDspConfig = &g_pCurrentBp->VoIPDspInfo[i];
++ break;
++ }
++ }
++ }
++
++ return pDspConfig;
++}
++
++
++/**************************************************************************
++ * Name : BpSetBoardId
++ *
++ * Description: This function find the BOARD_PARAMETERS structure for the
++ * specified board id string and assigns it to a global, static
++ * variable.
++ *
++ * Parameters : [IN] pszBoardId - Board id string that is saved into NVRAM.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_FOUND - Error, board id input string does not
++ * have a board parameters configuration record.
++ ***************************************************************************/
++int BpSetBoardId( char *pszBoardId )
++{
++ int nRet = BP_BOARD_ID_NOT_FOUND;
++ PBOARD_PARAMETERS *ppBp;
++
++ for( ppBp = g_BoardParms; *ppBp; ppBp++ )
++ {
++ if( !bpstrcmp((*ppBp)->szBoardId, pszBoardId) )
++ {
++ g_pCurrentBp = *ppBp;
++ nRet = BP_SUCCESS;
++ break;
++ }
++ }
++
++ return( nRet );
++} /* BpSetBoardId */
++
++/**************************************************************************
++ * Name : BpGetBoardIds
++ *
++ * Description: This function returns all of the supported board id strings.
++ *
++ * Parameters : [OUT] pszBoardIds - Address of a buffer that the board id
++ * strings are returned in. Each id starts at BP_BOARD_ID_LEN
++ * boundary.
++ * [IN] nBoardIdsSize - Number of BP_BOARD_ID_LEN elements that
++ * were allocated in pszBoardIds.
++ *
++ * Returns : Number of board id strings returned.
++ ***************************************************************************/
++int BpGetBoardIds( char *pszBoardIds, int nBoardIdsSize )
++{
++ PBOARD_PARAMETERS *ppBp;
++ int i;
++ char *src;
++ char *dest;
++
++ for( i = 0, ppBp = g_BoardParms; *ppBp && nBoardIdsSize;
++ i++, ppBp++, nBoardIdsSize--, pszBoardIds += BP_BOARD_ID_LEN )
++ {
++ dest = pszBoardIds;
++ src = (*ppBp)->szBoardId;
++ while( *src )
++ *dest++ = *src++;
++ *dest = '\0';
++ }
++
++ return( i );
++} /* BpGetBoardIds */
++
++/**************************************************************************
++ * Name : BpGetEthernetMacInfo
++ *
++ * Description: This function returns all of the supported board id strings.
++ *
++ * Parameters : [OUT] pEnetInfos - Address of an array of ETHERNET_MAC_INFO
++ * buffers.
++ * [IN] nNumEnetInfos - Number of ETHERNET_MAC_INFO elements that
++ * are pointed to by pEnetInfos.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ ***************************************************************************/
++int BpGetEthernetMacInfo( PETHERNET_MAC_INFO pEnetInfos, int nNumEnetInfos )
++{
++ int i, nRet;
++
++ if( g_pCurrentBp )
++ {
++ for( i = 0; i < nNumEnetInfos; i++, pEnetInfos++ )
++ {
++ if( i < BP_MAX_ENET_MACS )
++ {
++ unsigned char *src = (unsigned char *)
++ &g_pCurrentBp->EnetMacInfos[i];
++ unsigned char *dest = (unsigned char *) pEnetInfos;
++ int len = sizeof(ETHERNET_MAC_INFO);
++ while( len-- )
++ *dest++ = *src++;
++ }
++ else
++ pEnetInfos->ucPhyType = BP_ENET_NO_PHY;
++ }
++
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ for( i = 0; i < nNumEnetInfos; i++, pEnetInfos++ )
++ pEnetInfos->ucPhyType = BP_ENET_NO_PHY;
++
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetEthernetMacInfo */
++
++/**************************************************************************
++ * Name : BpGetSdramSize
++ *
++ * Description: This function returns a constant that describees the board's
++ * SDRAM type and size.
++ *
++ * Parameters : [OUT] pulSdramSize - Address of short word that the SDRAM size
++ * is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ ***************************************************************************/
++int BpGetSdramSize( unsigned long *pulSdramSize )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pulSdramSize = g_pCurrentBp->usSdramSize;
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ *pulSdramSize = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetSdramSize */
++
++/**************************************************************************
++ * Name : BpGetPsiSize
++ *
++ * Description: This function returns the persistent storage size in K bytes.
++ *
++ * Parameters : [OUT] pulPsiSize - Address of short word that the persistent
++ * storage size is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ ***************************************************************************/
++int BpGetPsiSize( unsigned long *pulPsiSize )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pulPsiSize = g_pCurrentBp->usPsiSize;
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ *pulPsiSize = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetPsiSize */
++
++/**************************************************************************
++ * Name : BpGetRj11InnerOuterPairGpios
++ *
++ * Description: This function returns the GPIO pin assignments for changing
++ * between the RJ11 inner pair and RJ11 outer pair.
++ *
++ * Parameters : [OUT] pusInner - Address of short word that the RJ11 inner pair
++ * GPIO pin is returned in.
++ * [OUT] pusOuter - Address of short word that the RJ11 outer pair
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, values are returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetRj11InnerOuterPairGpios( unsigned short *pusInner,
++ unsigned short *pusOuter )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusInner = g_pCurrentBp->usGpioRj11InnerPair;
++ *pusOuter = g_pCurrentBp->usGpioRj11OuterPair;
++
++ if( g_pCurrentBp->usGpioRj11InnerPair != BP_NOT_DEFINED &&
++ g_pCurrentBp->usGpioRj11OuterPair != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusInner = *pusOuter = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetRj11InnerOuterPairGpios */
++
++/**************************************************************************
++ * Name : BpGetPressAndHoldResetGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the press
++ * and hold reset button.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the press and hold
++ * reset button GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetPressAndHoldResetGpio( unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusValue = g_pCurrentBp->usGpioPressAndHoldReset;
++
++ if( g_pCurrentBp->usGpioPressAndHoldReset != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetPressAndHoldResetGpio */
++
++/**************************************************************************
++ * Name : BpGetVoipResetGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the VOIP
++ * Reset operation.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the VOIP reset
++ * GPIO pin is returned in.
++ * [IN] dspNum - Address of the DSP to query.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetVoipResetGpio( unsigned char dspNum, unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ VOIP_DSP_INFO *pDspInfo = BpGetVoipDspConfig( dspNum );
++
++ if( pDspInfo )
++ {
++ *pusValue = pDspInfo->usGpioVoipReset;
++
++ if( *pusValue != BP_NOT_DEFINED ||
++ *pusValue == BP_UNEQUIPPED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_FOUND;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetVoipResetGpio */
++
++/**************************************************************************
++ * Name : BpGetVoipIntrGpio
++ *
++ * Description: This function returns the GPIO pin assignment for VoIP interrupt.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the VOIP interrupt
++ * GPIO pin is returned in.
++ * [IN] dspNum - Address of the DSP to query.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetVoipIntrGpio( unsigned char dspNum, unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ VOIP_DSP_INFO *pDspInfo = BpGetVoipDspConfig( dspNum );
++
++ if( pDspInfo )
++ {
++ *pusValue = pDspInfo->usGpioVoipIntr;
++
++ if( *pusValue != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_FOUND;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetVoipIntrGpio */
++
++/**************************************************************************
++ * Name : BpGetPcmciaResetGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the PCMCIA
++ * Reset operation.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the PCMCIA reset
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetPcmciaResetGpio( unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusValue = g_pCurrentBp->usGpioPcmciaReset;
++
++ if( g_pCurrentBp->usGpioPcmciaReset != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetPcmciaResetGpio */
++
++/**************************************************************************
++ * Name : BpGetUartRtsCtsGpios
++ *
++ * Description: This function returns the GPIO pin assignments for RTS and CTS
++ * UART signals.
++ *
++ * Parameters : [OUT] pusRts - Address of short word that the UART RTS GPIO
++ * pin is returned in.
++ * [OUT] pusCts - Address of short word that the UART CTS GPIO
++ * pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, values are returned.
++ * BP_BOARD_ID_NOT_SET - Error, board id input string does not
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetRtsCtsUartGpios( unsigned short *pusRts, unsigned short *pusCts )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusRts = g_pCurrentBp->usGpioUartRts;
++ *pusCts = g_pCurrentBp->usGpioUartCts;
++
++ if( g_pCurrentBp->usGpioUartRts != BP_NOT_DEFINED &&
++ g_pCurrentBp->usGpioUartCts != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusRts = *pusCts = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetUartRtsCtsGpios */
++
++/**************************************************************************
++ * Name : BpGetAdslLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the ADSL
++ * LED.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the ADSL LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetAdslLedGpio( unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusValue = g_pCurrentBp->usGpioLedAdsl;
++
++ if( g_pCurrentBp->usGpioLedAdsl != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetAdslLedGpio */
++
++/**************************************************************************
++ * Name : BpGetAdslFailLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the ADSL
++ * LED that is used when there is a DSL connection failure.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the ADSL LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetAdslFailLedGpio( unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusValue = g_pCurrentBp->usGpioLedAdslFail;
++
++ if( g_pCurrentBp->usGpioLedAdslFail != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetAdslFailLedGpio */
++
++/**************************************************************************
++ * Name : BpGetWirelessLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the Wireless
++ * LED.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the Wireless LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetWirelessLedGpio( unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusValue = g_pCurrentBp->usGpioLedWireless;
++
++ if( g_pCurrentBp->usGpioLedWireless != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetWirelessLedGpio */
++
++/**************************************************************************
++ * Name : BpGetWirelessAntInUse
++ *
++ * Description: This function returns the antennas in use for wireless
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the Wireless Antenna
++ * is in use.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetWirelessAntInUse( unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusValue = g_pCurrentBp->usAntInUseWireless;
++
++ if( g_pCurrentBp->usAntInUseWireless != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetWirelessAntInUse */
++
++/**************************************************************************
++ * Name : BpGetWirelessSesBtnGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the Wireless
++ * Ses Button.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the Wireless LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetWirelessSesBtnGpio( unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusValue = g_pCurrentBp->usGpioSesBtnWireless;
++
++ if( g_pCurrentBp->usGpioSesBtnWireless != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetWirelessSesBtnGpio */
++
++/**************************************************************************
++ * Name : BpGetWirelessSesExtIntr
++ *
++ * Description: This function returns the external interrupt number for the
++ * Wireless Ses Button.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the Wireless Ses
++ * external interrup is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetWirelessSesExtIntr( unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusValue = g_pCurrentBp->usExtIntrSesBtnWireless;
++
++ if( g_pCurrentBp->usExtIntrSesBtnWireless != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++
++} /* BpGetWirelessSesExtIntr */
++
++/**************************************************************************
++ * Name : BpGetWirelessSesLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the Wireless
++ * Ses Led.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the Wireless Ses
++ * Led GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetWirelessSesLedGpio( unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusValue = g_pCurrentBp->usGpioLedSesWireless;
++
++ if( g_pCurrentBp->usGpioLedSesWireless != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++
++} /* BpGetWirelessSesLedGpio */
++
++/**************************************************************************
++ * Name : BpGetUsbLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the USB
++ * LED.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the USB LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetUsbLedGpio( unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusValue = g_pCurrentBp->usGpioLedUsb;
++
++ if( g_pCurrentBp->usGpioLedUsb != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetUsbLedGpio */
++
++/**************************************************************************
++ * Name : BpGetHpnaLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the HPNA
++ * LED.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the HPNA LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetHpnaLedGpio( unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusValue = g_pCurrentBp->usGpioLedHpna;
++
++ if( g_pCurrentBp->usGpioLedHpna != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetHpnaLedGpio */
++
++/**************************************************************************
++ * Name : BpGetWanDataLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the WAN Data
++ * LED.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the WAN Data LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetWanDataLedGpio( unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusValue = g_pCurrentBp->usGpioLedWanData;
++
++ if( g_pCurrentBp->usGpioLedWanData != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetWanDataLedGpio */
++
++/**************************************************************************
++ * Name : BpGetPppLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the PPP
++ * LED.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the PPP LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetPppLedGpio( unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusValue = g_pCurrentBp->usGpioLedPpp;
++
++ if( g_pCurrentBp->usGpioLedPpp != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetPppLedGpio */
++
++/**************************************************************************
++ * Name : BpGetPppFailLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the PPP
++ * LED that is used when there is a PPP connection failure.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the PPP LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetPppFailLedGpio( unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusValue = g_pCurrentBp->usGpioLedPppFail;
++
++ if( g_pCurrentBp->usGpioLedPppFail != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetPppFailLedGpio */
++
++/**************************************************************************
++ * Name : BpGetBootloaderPowerOnLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the power
++ * on LED that is set by the bootloader.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the alarm LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetBootloaderPowerOnLedGpio( unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusValue = g_pCurrentBp->usGpioLedBlPowerOn;
++
++ if( g_pCurrentBp->usGpioLedBlPowerOn != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetBootloaderPowerOn */
++
++/**************************************************************************
++ * Name : BpGetBootloaderAlarmLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the alarm
++ * LED that is set by the bootloader.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the alarm LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetBootloaderAlarmLedGpio( unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusValue = g_pCurrentBp->usGpioLedBlAlarm;
++
++ if( g_pCurrentBp->usGpioLedBlAlarm != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetBootloaderAlarmLedGpio */
++
++/**************************************************************************
++ * Name : BpGetBootloaderResetCfgLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the reset
++ * configuration LED that is set by the bootloader.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the reset
++ * configuration LED GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetBootloaderResetCfgLedGpio( unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusValue = g_pCurrentBp->usGpioLedBlResetCfg;
++
++ if( g_pCurrentBp->usGpioLedBlResetCfg != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetBootloaderResetCfgLedGpio */
++
++/**************************************************************************
++ * Name : BpGetBootloaderStopLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the break
++ * into bootloader LED that is set by the bootloader.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the break into
++ * bootloader LED GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetBootloaderStopLedGpio( unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pusValue = g_pCurrentBp->usGpioLedBlStop;
++
++ if( g_pCurrentBp->usGpioLedBlStop != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetBootloaderStopLedGpio */
++
++/**************************************************************************
++ * Name : BpGetVoipLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the VOIP
++ * LED.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the VOIP LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ *
++ * Note : The VoIP structure would allow for having one LED per DSP
++ * however, the board initialization function assumes only one
++ * LED per functionality (ie one LED for VoIP). Therefore in
++ * order to keep this tidy and simple we do not make usage of the
++ * one-LED-per-DSP function. Instead, we assume that the LED for
++ * VoIP is unique and associated with DSP 0 (always present on
++ * any VoIP platform). If changing this to a LED-per-DSP function
++ * then one need to update the board initialization driver in
++ * bcmdrivers\opensource\char\board\bcm963xx\impl1
++ ***************************************************************************/
++int BpGetVoipLedGpio( unsigned short *pusValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ VOIP_DSP_INFO *pDspInfo = BpGetVoipDspConfig( 0 );
++
++ if( pDspInfo )
++ {
++ *pusValue = pDspInfo->usGpioLedVoip;
++
++ if( *pusValue != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_FOUND;
++ }
++ }
++ else
++ {
++ *pusValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetVoipLedGpio */
++
++/**************************************************************************
++ * Name : BpGetWirelessExtIntr
++ *
++ * Description: This function returns the Wireless external interrupt number.
++ *
++ * Parameters : [OUT] pulValue - Address of short word that the wireless
++ * external interrupt number is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetWirelessExtIntr( unsigned long *pulValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pulValue = g_pCurrentBp->usExtIntrWireless;
++
++ if( g_pCurrentBp->usExtIntrWireless != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pulValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetWirelessExtIntr */
++
++/**************************************************************************
++ * Name : BpGetAdslDyingGaspExtIntr
++ *
++ * Description: This function returns the ADSL Dying Gasp external interrupt
++ * number.
++ *
++ * Parameters : [OUT] pulValue - Address of short word that the ADSL Dying Gasp
++ * external interrupt number is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetAdslDyingGaspExtIntr( unsigned long *pulValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pulValue = g_pCurrentBp->usExtIntrAdslDyingGasp;
++
++ if( g_pCurrentBp->usExtIntrAdslDyingGasp != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pulValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetAdslDyingGaspExtIntr */
++
++/**************************************************************************
++ * Name : BpGetVoipExtIntr
++ *
++ * Description: This function returns the VOIP external interrupt number.
++ *
++ * Parameters : [OUT] pulValue - Address of short word that the VOIP
++ * external interrupt number is returned in.
++ * [IN] dspNum - Address of the DSP to query.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetVoipExtIntr( unsigned char dspNum, unsigned long *pulValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ VOIP_DSP_INFO *pDspInfo = BpGetVoipDspConfig( dspNum );
++
++ if( pDspInfo )
++ {
++ *pulValue = pDspInfo->usExtIntrVoip;
++
++ if( *pulValue != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pulValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_FOUND;
++ }
++ }
++ else
++ {
++ *pulValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetVoipExtIntr */
++
++/**************************************************************************
++ * Name : BpGetHpnaExtIntr
++ *
++ * Description: This function returns the HPNA external interrupt number.
++ *
++ * Parameters : [OUT] pulValue - Address of short word that the HPNA
++ * external interrupt number is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetHpnaExtIntr( unsigned long *pulValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pulValue = g_pCurrentBp->usExtIntrHpna;
++
++ if( g_pCurrentBp->usExtIntrHpna != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pulValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetHpnaExtIntr */
++
++/**************************************************************************
++ * Name : BpGetHpnaChipSelect
++ *
++ * Description: This function returns the HPNA chip select number.
++ *
++ * Parameters : [OUT] pulValue - Address of short word that the HPNA
++ * chip select number is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetHpnaChipSelect( unsigned long *pulValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ *pulValue = g_pCurrentBp->usCsHpna;
++
++ if( g_pCurrentBp->usCsHpna != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pulValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetHpnaChipSelect */
++
++/**************************************************************************
++ * Name : BpGetVoipChipSelect
++ *
++ * Description: This function returns the VOIP chip select number.
++ *
++ * Parameters : [OUT] pulValue - Address of short word that the VOIP
++ * chip select number is returned in.
++ * [IN] dspNum - Address of the DSP to query.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetVoipChipSelect( unsigned char dspNum, unsigned long *pulValue )
++{
++ int nRet;
++
++ if( g_pCurrentBp )
++ {
++ VOIP_DSP_INFO *pDspInfo = BpGetVoipDspConfig( dspNum );
++
++ if( pDspInfo )
++ {
++ *pulValue = pDspInfo->usCsVoip;
++
++ if( *pulValue != BP_NOT_DEFINED )
++ {
++ nRet = BP_SUCCESS;
++ }
++ else
++ {
++ nRet = BP_VALUE_NOT_DEFINED;
++ }
++ }
++ else
++ {
++ *pulValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_FOUND;
++ }
++ }
++ else
++ {
++ *pulValue = BP_NOT_DEFINED;
++ nRet = BP_BOARD_ID_NOT_SET;
++ }
++
++ return( nRet );
++} /* BpGetVoipChipSelect */
++
+diff -Naurp linux-2.6.16.7-generic-patched/boardparms/bcm963xx/boardparms.h linux-2.6.16.7-patched/boardparms/bcm963xx/boardparms.h
+--- linux-2.6.16.7-generic-patched/boardparms/bcm963xx/boardparms.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.16.7-patched/boardparms/bcm963xx/boardparms.h 2006-07-05 15:21:58.000000000 +0200
+@@ -0,0 +1,766 @@
++/*
++<:copyright-gpl
++
++ Copyright 2003 Broadcom Corp. All Rights Reserved.
++
++ This program is free software; you can distribute it and/or modify it
++ under the terms of the GNU General Public License (Version 2) as
++ published by the Free Software Foundation.
++
++ This program is distributed in the hope it will be useful, but WITHOUT
++ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++ for more details.
++
++ You should have received a copy of the GNU General Public License along
++ with this program; if not, write to the Free Software Foundation, Inc.,
++ 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
++
++:>
++*/
++/**************************************************************************
++ * File Name : boardparms.h
++ *
++ * Description: This file contains definitions and function prototypes for
++ * the BCM63xx board parameter access functions.
++ *
++ * Updates : 07/14/2003 Created.
++ ***************************************************************************/
++
++#if !defined(_BOARDPARMS_H)
++#define _BOARDPARMS_H
++
++#if __cplusplus
++extern "C" {
++#endif
++
++/* Return codes. */
++#define BP_SUCCESS 0
++#define BP_BOARD_ID_NOT_FOUND 1
++#define BP_VALUE_NOT_DEFINED 2
++#define BP_BOARD_ID_NOT_SET 3
++
++/* Values for BpGetSdramSize. */
++#define BP_MEMORY_8MB_1_CHIP 0
++#define BP_MEMORY_16MB_1_CHIP 1
++#define BP_MEMORY_32MB_1_CHIP 2
++#define BP_MEMORY_64MB_2_CHIP 3
++#define BP_MEMORY_32MB_2_CHIP 4
++#define BP_MEMORY_16MB_2_CHIP 5
++
++/* Values for EthernetMacInfo PhyType. */
++#define BP_ENET_NO_PHY 0
++#define BP_ENET_INTERNAL_PHY 1
++#define BP_ENET_EXTERNAL_PHY 2
++#define BP_ENET_EXTERNAL_SWITCH 3
++
++/* Values for EthernetMacInfo Configuration type. */
++#define BP_ENET_CONFIG_MDIO 0 /* Internal PHY, External PHY, Switch+(no GPIO, no SPI, no MDIO Pseudo phy */
++#define BP_ENET_CONFIG_GPIO 1 /* Bcm96345GW board + Bcm5325M/E */
++#define BP_ENET_CONFIG_MDIO_PSEUDO_PHY 2 /* Bcm96348GW board + Bcm5325E */
++#define BP_ENET_CONFIG_SPI_SSB_0 3 /* Bcm96348GW board + Bcm5325M/E */
++#define BP_ENET_CONFIG_SPI_SSB_1 4 /* Bcm96348GW board + Bcm5325M/E */
++#define BP_ENET_CONFIG_SPI_SSB_2 5 /* Bcm96348GW board + Bcm5325M/E */
++#define BP_ENET_CONFIG_SPI_SSB_3 6 /* Bcm96348GW board + Bcm5325M/E */
++
++/* Values for EthernetMacInfo Reverse MII. */
++#define BP_ENET_NO_REVERSE_MII 0
++#define BP_ENET_REVERSE_MII 1
++
++/* Values for VoIPDSPInfo DSPType. */
++#define BP_VOIP_NO_DSP 0
++#define BP_VOIP_DSP 1
++
++
++/* Values for GPIO pin assignments (AH = Active High, AL = Active Low). */
++#define BP_ACTIVE_MASK 0x8000
++#define BP_ACTIVE_HIGH 0x0000
++#define BP_ACTIVE_LOW 0x8000
++#define BP_GPIO_0_AH (0 | BP_ACTIVE_HIGH)
++#define BP_GPIO_0_AL (0 | BP_ACTIVE_LOW)
++#define BP_GPIO_1_AH (1 | BP_ACTIVE_HIGH)
++#define BP_GPIO_1_AL (1 | BP_ACTIVE_LOW)
++#define BP_GPIO_2_AH (2 | BP_ACTIVE_HIGH)
++#define BP_GPIO_2_AL (2 | BP_ACTIVE_LOW)
++#define BP_GPIO_3_AH (3 | BP_ACTIVE_HIGH)
++#define BP_GPIO_3_AL (3 | BP_ACTIVE_LOW)
++#define BP_GPIO_4_AH (4 | BP_ACTIVE_HIGH)
++#define BP_GPIO_4_AL (4 | BP_ACTIVE_LOW)
++#define BP_GPIO_5_AH (5 | BP_ACTIVE_HIGH)
++#define BP_GPIO_5_AL (5 | BP_ACTIVE_LOW)
++#define BP_GPIO_6_AH (6 | BP_ACTIVE_HIGH)
++#define BP_GPIO_6_AL (6 | BP_ACTIVE_LOW)
++#define BP_GPIO_7_AH (7 | BP_ACTIVE_HIGH)
++#define BP_GPIO_7_AL (7 | BP_ACTIVE_LOW)
++#define BP_GPIO_8_AH (8 | BP_ACTIVE_HIGH)
++#define BP_GPIO_8_AL (8 | BP_ACTIVE_LOW)
++#define BP_GPIO_9_AH (9 | BP_ACTIVE_HIGH)
++#define BP_GPIO_9_AL (9 | BP_ACTIVE_LOW)
++#define BP_GPIO_10_AH (10 | BP_ACTIVE_HIGH)
++#define BP_GPIO_10_AL (10 | BP_ACTIVE_LOW)
++#define BP_GPIO_11_AH (11 | BP_ACTIVE_HIGH)
++#define BP_GPIO_11_AL (11 | BP_ACTIVE_LOW)
++#define BP_GPIO_12_AH (12 | BP_ACTIVE_HIGH)
++#define BP_GPIO_12_AL (12 | BP_ACTIVE_LOW)
++#define BP_GPIO_13_AH (13 | BP_ACTIVE_HIGH)
++#define BP_GPIO_13_AL (13 | BP_ACTIVE_LOW)
++#define BP_GPIO_14_AH (14 | BP_ACTIVE_HIGH)
++#define BP_GPIO_14_AL (14 | BP_ACTIVE_LOW)
++#define BP_GPIO_15_AH (15 | BP_ACTIVE_HIGH)
++#define BP_GPIO_15_AL (15 | BP_ACTIVE_LOW)
++#define BP_GPIO_16_AH (16 | BP_ACTIVE_HIGH)
++#define BP_GPIO_16_AL (16 | BP_ACTIVE_LOW)
++#define BP_GPIO_17_AH (17 | BP_ACTIVE_HIGH)
++#define BP_GPIO_17_AL (17 | BP_ACTIVE_LOW)
++#define BP_GPIO_18_AH (18 | BP_ACTIVE_HIGH)
++#define BP_GPIO_18_AL (18 | BP_ACTIVE_LOW)
++#define BP_GPIO_19_AH (19 | BP_ACTIVE_HIGH)
++#define BP_GPIO_19_AL (19 | BP_ACTIVE_LOW)
++#define BP_GPIO_20_AH (20 | BP_ACTIVE_HIGH)
++#define BP_GPIO_20_AL (20 | BP_ACTIVE_LOW)
++#define BP_GPIO_21_AH (21 | BP_ACTIVE_HIGH)
++#define BP_GPIO_21_AL (21 | BP_ACTIVE_LOW)
++#define BP_GPIO_22_AH (22 | BP_ACTIVE_HIGH)
++#define BP_GPIO_22_AL (22 | BP_ACTIVE_LOW)
++#define BP_GPIO_23_AH (23 | BP_ACTIVE_HIGH)
++#define BP_GPIO_23_AL (23 | BP_ACTIVE_LOW)
++#define BP_GPIO_24_AH (24 | BP_ACTIVE_HIGH)
++#define BP_GPIO_24_AL (24 | BP_ACTIVE_LOW)
++#define BP_GPIO_25_AH (25 | BP_ACTIVE_HIGH)
++#define BP_GPIO_25_AL (25 | BP_ACTIVE_LOW)
++#define BP_GPIO_26_AH (26 | BP_ACTIVE_HIGH)
++#define BP_GPIO_26_AL (26 | BP_ACTIVE_LOW)
++#define BP_GPIO_27_AH (27 | BP_ACTIVE_HIGH)
++#define BP_GPIO_27_AL (27 | BP_ACTIVE_LOW)
++#define BP_GPIO_28_AH (28 | BP_ACTIVE_HIGH)
++#define BP_GPIO_28_AL (28 | BP_ACTIVE_LOW)
++#define BP_GPIO_29_AH (29 | BP_ACTIVE_HIGH)
++#define BP_GPIO_29_AL (29 | BP_ACTIVE_LOW)
++#define BP_GPIO_30_AH (30 | BP_ACTIVE_HIGH)
++#define BP_GPIO_30_AL (30 | BP_ACTIVE_LOW)
++#define BP_GPIO_31_AH (31 | BP_ACTIVE_HIGH)
++#define BP_GPIO_31_AL (31 | BP_ACTIVE_LOW)
++#define BP_GPIO_32_AH (32 | BP_ACTIVE_HIGH)
++#define BP_GPIO_32_AL (32 | BP_ACTIVE_LOW)
++#define BP_GPIO_33_AH (33 | BP_ACTIVE_HIGH)
++#define BP_GPIO_33_AL (33 | BP_ACTIVE_LOW)
++#define BP_GPIO_34_AH (34 | BP_ACTIVE_HIGH)
++#define BP_GPIO_34_AL (34 | BP_ACTIVE_LOW)
++#define BP_GPIO_35_AH (35 | BP_ACTIVE_HIGH)
++#define BP_GPIO_35_AL (35 | BP_ACTIVE_LOW)
++#define BP_GPIO_36_AH (36 | BP_ACTIVE_HIGH)
++#define BP_GPIO_36_AL (36 | BP_ACTIVE_LOW)
++
++/* Values for external interrupt assignments. */
++#define BP_EXT_INTR_0 0
++#define BP_EXT_INTR_1 1
++#define BP_EXT_INTR_2 2
++#define BP_EXT_INTR_3 3
++
++/* Values for chip select assignments. */
++#define BP_CS_0 0
++#define BP_CS_1 1
++#define BP_CS_2 2
++#define BP_CS_3 3
++
++/* Value for GPIO and external interrupt fields that are not used. */
++#define BP_NOT_DEFINED 0xffff
++#define BP_HW_DEFINED 0xfff0
++#define BP_UNEQUIPPED 0xfff1
++
++/* Maximum size of the board id string. */
++#define BP_BOARD_ID_LEN 16
++
++/* Maximum number of Ethernet MACs. */
++#define BP_MAX_ENET_MACS 2
++
++/* Maximum number of VoIP DSPs. */
++#define BP_MAX_VOIP_DSP 2
++
++/* Wireless Antenna Settings. */
++#define BP_WLAN_ANT_MAIN 0
++#define BP_WLAN_ANT_AUX 1
++#define BP_WLAN_ANT_BOTH 3
++
++#if !defined(__ASSEMBLER__)
++
++/* Information about an Ethernet MAC. If ucPhyType is BP_ENET_NO_PHY,
++ * then the other fields are not valid.
++ */
++typedef struct EthernetMacInfo
++{
++ unsigned char ucPhyType; /* BP_ENET_xxx */
++ unsigned char ucPhyAddress; /* 0 to 31 */
++ unsigned short usGpioPhySpiSck; /* GPIO pin or not defined */
++ unsigned short usGpioPhySpiSs; /* GPIO pin or not defined */
++ unsigned short usGpioPhySpiMosi; /* GPIO pin or not defined */
++ unsigned short usGpioPhySpiMiso; /* GPIO pin or not defined */
++ unsigned short usGpioPhyReset; /* GPIO pin or not defined (96348LV) */
++ unsigned short numSwitchPorts; /* Number of PHY ports */
++ unsigned short usConfigType; /* Configuration type */
++ unsigned short usReverseMii; /* Reverse MII */
++} ETHERNET_MAC_INFO, *PETHERNET_MAC_INFO;
++
++
++/* Information about VoIP DSPs. If ucDspType is BP_VOIP_NO_DSP,
++ * then the other fields are not valid.
++ */
++typedef struct VoIPDspInfo
++{
++ unsigned char ucDspType;
++ unsigned char ucDspAddress;
++ unsigned short usExtIntrVoip;
++ unsigned short usGpioVoipReset;
++ unsigned short usGpioVoipIntr;
++ unsigned short usGpioLedVoip;
++ unsigned short usCsVoip;
++
++} VOIP_DSP_INFO;
++
++
++/**************************************************************************
++ * Name : BpSetBoardId
++ *
++ * Description: This function find the BOARD_PARAMETERS structure for the
++ * specified board id string and assigns it to a global, static
++ * variable.
++ *
++ * Parameters : [IN] pszBoardId - Board id string that is saved into NVRAM.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_FOUND - Error, board id input string does not
++ * have a board parameters configuration record.
++ ***************************************************************************/
++int BpSetBoardId( char *pszBoardId );
++
++/**************************************************************************
++ * Name : BpGetBoardIds
++ *
++ * Description: This function returns all of the supported board id strings.
++ *
++ * Parameters : [OUT] pszBoardIds - Address of a buffer that the board id
++ * strings are returned in. Each id starts at BP_BOARD_ID_LEN
++ * boundary.
++ * [IN] nBoardIdsSize - Number of BP_BOARD_ID_LEN elements that
++ * were allocated in pszBoardIds.
++ *
++ * Returns : Number of board id strings returned.
++ ***************************************************************************/
++int BpGetBoardIds( char *pszBoardIds, int nBoardIdsSize );
++
++/**************************************************************************
++ * Name : BpGetEthernetMacInfo
++ *
++ * Description: This function returns all of the supported board id strings.
++ *
++ * Parameters : [OUT] pEnetInfos - Address of an array of ETHERNET_MAC_INFO
++ * buffers.
++ * [IN] nNumEnetInfos - Number of ETHERNET_MAC_INFO elements that
++ * are pointed to by pEnetInfos.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ ***************************************************************************/
++int BpGetEthernetMacInfo( PETHERNET_MAC_INFO pEnetInfos, int nNumEnetInfos );
++
++/**************************************************************************
++ * Name : BpGetSdramSize
++ *
++ * Description: This function returns a constant that describees the board's
++ * SDRAM type and size.
++ *
++ * Parameters : [OUT] pulSdramSize - Address of short word that the SDRAM size
++ * is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ ***************************************************************************/
++int BpGetSdramSize( unsigned long *pulSdramSize );
++
++/**************************************************************************
++ * Name : BpGetPsiSize
++ *
++ * Description: This function returns the persistent storage size in K bytes.
++ *
++ * Parameters : [OUT] pulPsiSize - Address of short word that the persistent
++ * storage size is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ ***************************************************************************/
++int BpGetPsiSize( unsigned long *pulPsiSize );
++
++/**************************************************************************
++ * Name : BpGetRj11InnerOuterPairGpios
++ *
++ * Description: This function returns the GPIO pin assignments for changing
++ * between the RJ11 inner pair and RJ11 outer pair.
++ *
++ * Parameters : [OUT] pusInner - Address of short word that the RJ11 inner pair
++ * GPIO pin is returned in.
++ * [OUT] pusOuter - Address of short word that the RJ11 outer pair
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, values are returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetRj11InnerOuterPairGpios( unsigned short *pusInner,
++ unsigned short *pusOuter );
++
++/**************************************************************************
++ * Name : BpGetPressAndHoldResetGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the press
++ * and hold reset button.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the press and hold
++ * reset button GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetPressAndHoldResetGpio( unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetVoipResetGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the VOIP
++ * Reset operation.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the VOIP reset
++ * GPIO pin is returned in.
++ * [IN] dspNum - Address of the DSP to query.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetVoipResetGpio( unsigned char dspNum, unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetVoipIntrGpio
++ *
++ * Description: This function returns the GPIO pin assignment for VoIP interrupt.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the VOIP interrupt
++ * GPIO pin is returned in.
++ * [IN] dspNum - Address of the DSP to query.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetVoipIntrGpio( unsigned char dspNum, unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetPcmciaResetGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the PCMCIA
++ * Reset operation.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the PCMCIA reset
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetPcmciaResetGpio( unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetUartRtsCtsGpios
++ *
++ * Description: This function returns the GPIO pin assignments for RTS and CTS
++ * UART signals.
++ *
++ * Parameters : [OUT] pusRts - Address of short word that the UART RTS GPIO
++ * pin is returned in.
++ * [OUT] pusCts - Address of short word that the UART CTS GPIO
++ * pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, values are returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetRtsCtsUartGpios( unsigned short *pusRts, unsigned short *pusCts );
++
++/**************************************************************************
++ * Name : BpGetAdslLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the ADSL
++ * LED.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the ADSL LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetAdslLedGpio( unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetAdslFailLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the ADSL
++ * LED that is used when there is a DSL connection failure.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the ADSL LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetAdslFailLedGpio( unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetWirelessLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the Wireless
++ * LED.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the Wireless LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetWirelessLedGpio( unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetWirelessAntInUse
++ *
++ * Description: This function returns the antennas in use for wireless
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the Wireless Antenna
++ * is in use.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetWirelessAntInUse( unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetWirelessSesBtnGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the Wireless
++ * Ses Button.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the Wireless Ses
++ * Button GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetWirelessSesBtnGpio( unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetWirelessSesExtIntr
++ *
++ * Description: This function returns the external interrupt number for the
++ * Wireless Ses Button.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the Wireless Ses
++ * external interrup is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetWirelessSesExtIntr( unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetWirelessSesLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the Wireless
++ * Ses Led.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the Wireless Ses
++ * Led GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetWirelessSesLedGpio( unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetUsbLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the USB
++ * LED.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the USB LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetUsbLedGpio( unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetHpnaLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the HPNA
++ * LED.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the HPNA LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetHpnaLedGpio( unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetWanDataLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the WAN Data
++ * LED.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the WAN Data LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetWanDataLedGpio( unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetPppLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the PPP
++ * LED.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the PPP LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetPppLedGpio( unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetPppFailLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the PPP
++ * LED that is used when there is a PPP connection failure.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the PPP LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetPppFailLedGpio( unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetVoipLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the VOIP
++ * LED.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the VOIP LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetVoipLedGpio( unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetBootloaderPowerOnLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the power
++ * on LED that is set by the bootloader.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the alarm LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetBootloaderPowerOnLedGpio( unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetBootloaderAlarmLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the alarm
++ * LED that is set by the bootloader.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the alarm LED
++ * GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetBootloaderAlarmLedGpio( unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetBootloaderResetCfgLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the reset
++ * configuration LED that is set by the bootloader.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the reset
++ * configuration LED GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetBootloaderResetCfgLedGpio( unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetBootloaderStopLedGpio
++ *
++ * Description: This function returns the GPIO pin assignment for the break
++ * into bootloader LED that is set by the bootloader.
++ *
++ * Parameters : [OUT] pusValue - Address of short word that the break into
++ * bootloader LED GPIO pin is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetBootloaderStopLedGpio( unsigned short *pusValue );
++
++/**************************************************************************
++ * Name : BpGetWirelessExtIntr
++ *
++ * Description: This function returns the Wireless external interrupt number.
++ *
++ * Parameters : [OUT] pulValue - Address of short word that the wireless
++ * external interrupt number is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetWirelessExtIntr( unsigned long *pulValue );
++
++/**************************************************************************
++ * Name : BpGetAdslDyingGaspExtIntr
++ *
++ * Description: This function returns the ADSL Dying Gasp external interrupt
++ * number.
++ *
++ * Parameters : [OUT] pulValue - Address of short word that the ADSL Dying Gasp
++ * external interrupt number is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetAdslDyingGaspExtIntr( unsigned long *pulValue );
++
++/**************************************************************************
++ * Name : BpGetVoipExtIntr
++ *
++ * Description: This function returns the VOIP external interrupt number.
++ *
++ * Parameters : [OUT] pulValue - Address of short word that the VOIP
++ * external interrupt number is returned in.
++ * [IN] dspNum - Address of the DSP to query.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetVoipExtIntr( unsigned char dspNum, unsigned long *pulValue );
++
++/**************************************************************************
++ * Name : BpGetHpnaExtIntr
++ *
++ * Description: This function returns the HPNA external interrupt number.
++ *
++ * Parameters : [OUT] pulValue - Address of short word that the HPNA
++ * external interrupt number is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetHpnaExtIntr( unsigned long *pulValue );
++
++/**************************************************************************
++ * Name : BpGetHpnaChipSelect
++ *
++ * Description: This function returns the HPNA chip select number.
++ *
++ * Parameters : [OUT] pulValue - Address of short word that the HPNA
++ * chip select number is returned in.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetHpnaChipSelect( unsigned long *pulValue );
++
++/**************************************************************************
++ * Name : BpGetVoipChipSelect
++ *
++ * Description: This function returns the VOIP chip select number.
++ *
++ * Parameters : [OUT] pulValue - Address of short word that the VOIP
++ * chip select number is returned in.
++ * [IN] dspNum - Address of the DSP to query.
++ *
++ * Returns : BP_SUCCESS - Success, value is returned.
++ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
++ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
++ * for the board.
++ ***************************************************************************/
++int BpGetVoipChipSelect( unsigned char dspNum, unsigned long *pulValue );
++
++#endif /* __ASSEMBLER__ */
++
++#if __cplusplus
++}
++#endif
++
++#endif /* _BOARDPARMS_H */
++