--- /dev/null
+/*
+<: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 "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 */
+