summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Lin <stlin@nvidia.com>2010-02-26 12:58:26 -0800
committerGary King <gking@nvidia.com>2010-03-03 20:37:55 -0800
commitfd090d42dd963764f461b0ee0850c004a919bd53 (patch)
treec40acdafc7707e3bdb21f9535d74ecd517169153
parent96001b6484efac68ec3d8dda2c3aea84156f00a2 (diff)
tegra ODM: Adding new GUID for EMP M570 modem and GUID filter
Adding new GUID for EMP M570 ULPI modem and the GUID filter in nvodm_query_discovery. The GUID will be filtered out according to the RIL option in odmdata. Change-Id: I6bb2093e35d89c7945c82829f0283cf5a36b804a Reviewed-on: http://git-master/r/713 Reviewed-by: Udaykumar Rameshchan Raval <uraval@nvidia.com> Reviewed-by: Gary King <gking@nvidia.com> Tested-by: Gary King <gking@nvidia.com>
-rw-r--r--arch/arm/mach-tegra/odm_kit/adaptations/misc/whistler/nvodm_usbulpi.c7
-rw-r--r--arch/arm/mach-tegra/odm_kit/query/whistler/nvodm_query_discovery.c34
-rw-r--r--arch/arm/mach-tegra/odm_kit/query/whistler/subboards/nvodm_query_discovery_e951_addresses.h9
-rw-r--r--arch/arm/mach-tegra/odm_kit/query/whistler/subboards/nvodm_query_discovery_e951_peripherals.h8
4 files changed, 50 insertions, 8 deletions
diff --git a/arch/arm/mach-tegra/odm_kit/adaptations/misc/whistler/nvodm_usbulpi.c b/arch/arm/mach-tegra/odm_kit/adaptations/misc/whistler/nvodm_usbulpi.c
index b77520a4b758..5bd21b2bd51b 100644
--- a/arch/arm/mach-tegra/odm_kit/adaptations/misc/whistler/nvodm_usbulpi.c
+++ b/arch/arm/mach-tegra/odm_kit/adaptations/misc/whistler/nvodm_usbulpi.c
@@ -44,9 +44,6 @@
#include "nvrm_drf.h"
#include "nvos.h"
-#define TEGRA_DEVKIT_BCT_CUSTOPT_0_RIL_RANGE 14:13
-#define TEGRA_DEVKIT_BCT_CUSTOPT_0_RIL_EMP_RAINBOW_ULPI 0x2UL
-
typedef struct NvOdmUsbUlpiRec {
NvU64 CurrentGUID;
} NvOdmUsbUlpi;
@@ -79,7 +76,7 @@ static NvOdmGpioPinHandle ste_u3xx_cwr_gpio_pin;
static int ste_u3xx_query(struct ste_u3xx_info *info)
{
- NvU64 guid = NV_ODM_GUID('e', 'm', 'p', ' ', '_', 'm', 'd', 'm');
+ NvU64 guid = NV_ODM_GUID('e', 'm', 'p', ' ', 'M', '5', '7', '0');
NvOdmPeripheralConnectivity *pConnectivity;
/* query odm kit for modem support */
@@ -87,7 +84,7 @@ static int ste_u3xx_query(struct ste_u3xx_info *info)
(NvOdmPeripheralConnectivity *) NvOdmPeripheralGetGuid(guid);
if (pConnectivity == NULL)
return -1;
- NV_ASSERT(pConnectivity->NumAddress >= 8);
+ NV_ASSERT(pConnectivity->NumAddress >= 5);
/* query for uart port */
NV_ASSERT(pConnectivity->AddressList[0].Interface ==
diff --git a/arch/arm/mach-tegra/odm_kit/query/whistler/nvodm_query_discovery.c b/arch/arm/mach-tegra/odm_kit/query/whistler/nvodm_query_discovery.c
index 6ec3f87980c0..e14fa7c7deec 100644
--- a/arch/arm/mach-tegra/odm_kit/query/whistler/nvodm_query_discovery.c
+++ b/arch/arm/mach-tegra/odm_kit/query/whistler/nvodm_query_discovery.c
@@ -677,8 +677,10 @@ static NvBool
NvIsFilteredPeripheral(const NvOdmPeripheralConnectivity* pConnectivity)
{
NvOdmServicesKeyListHandle hKeyList;
+ NvU32 CustOpt = 0;
NvU32 Personality = 0;
NvU32 opt = 0;
+ NvU32 ril = 0;
NvOdmIoModule OdmModule;
const NvU32 *OdmConfigs=NULL;
NvU32 NumOdmConfigs = 0;
@@ -734,14 +736,40 @@ NvIsFilteredPeripheral(const NvOdmPeripheralConnectivity* pConnectivity)
if (hKeyList)
{
- Personality =
+ CustOpt =
NvOdmServicesGetKeyValue(hKeyList,
NvOdmKeyListId_ReservedBctCustomerOption);
NvOdmServicesKeyListClose(hKeyList);
Personality =
- NV_DRF_VAL(TEGRA_DEVKIT, BCT_CUSTOPT, PERSONALITY, Personality);
+ NV_DRF_VAL(TEGRA_DEVKIT, BCT_CUSTOPT, PERSONALITY, CustOpt);
opt =
- NV_DRF_VAL(TEGRA_DEVKIT, BCT_CUSTOPT, DISPLAY_OPTION, opt);
+ NV_DRF_VAL(TEGRA_DEVKIT, BCT_CUSTOPT, DISPLAY_OPTION, CustOpt);
+ ril =
+ NV_DRF_VAL(TEGRA_DEVKIT, BCT_CUSTOPT, RIL, CustOpt);
+ }
+
+ if (pConnectivity->Guid == NV_ODM_GUID('e','m','p',' ','_','m','d','m'))
+ {
+ if (ril == TEGRA_DEVKIT_BCT_CUSTOPT_0_RIL_EMP_RAINBOW)
+ {
+ return NV_FALSE; // EMP RAINBOW supported - don't filter it
+ }
+ else
+ {
+ return NV_TRUE; // EMP RAINBOW not supported - filter it
+ }
+ }
+
+ if (pConnectivity->Guid == NV_ODM_GUID('e','m','p',' ','M','5','7','0'))
+ {
+ if (ril == TEGRA_DEVKIT_BCT_CUSTOPT_0_RIL_EMP_RAINBOW_ULPI)
+ {
+ return NV_FALSE; // EMP RAINBOW ULPI supported - don't filter it
+ }
+ else
+ {
+ return NV_TRUE; // EMP RAINBOW ULPI not supported - filter it
+ }
}
if (!Personality)
diff --git a/arch/arm/mach-tegra/odm_kit/query/whistler/subboards/nvodm_query_discovery_e951_addresses.h b/arch/arm/mach-tegra/odm_kit/query/whistler/subboards/nvodm_query_discovery_e951_addresses.h
index a89976888b9c..7dca2fca27a0 100644
--- a/arch/arm/mach-tegra/odm_kit/query/whistler/subboards/nvodm_query_discovery_e951_addresses.h
+++ b/arch/arm/mach-tegra/odm_kit/query/whistler/subboards/nvodm_query_discovery_e951_addresses.h
@@ -74,3 +74,12 @@ static const NvOdmIoAddress s_ffaEmpAddresses[] =
{ NvOdmIoModule_Slink, 0x0, 0x0 } /* Slink 0 */
};
+// EMP M570 module
+static const NvOdmIoAddress s_ffaEmpM570Addresses[] =
+{
+ { NvOdmIoModule_Uart, 0x0, 0x0 }, /* UART 0 */
+ { NvOdmIoModule_Gpio, 0x15, 0x0 }, /* GPIO Port V and Pin 0 Reset */
+ { NvOdmIoModule_Gpio, 0x15, 0x1 }, /* GPIO Port V and Pin 1 Power */
+ { NvOdmIoModule_Gpio, 0x19, 0x0 }, /* GPIO Port Z and Pin 0 AWR */
+ { NvOdmIoModule_Gpio, 0x18, 0x6 }, /* GPIO Port Y and Pin 6 CWR */
+};
diff --git a/arch/arm/mach-tegra/odm_kit/query/whistler/subboards/nvodm_query_discovery_e951_peripherals.h b/arch/arm/mach-tegra/odm_kit/query/whistler/subboards/nvodm_query_discovery_e951_peripherals.h
index fc63662825df..67e7cf18cc61 100644
--- a/arch/arm/mach-tegra/odm_kit/query/whistler/subboards/nvodm_query_discovery_e951_peripherals.h
+++ b/arch/arm/mach-tegra/odm_kit/query/whistler/subboards/nvodm_query_discovery_e951_peripherals.h
@@ -63,4 +63,12 @@
NvOdmPeripheralClass_Other
},
+// EMP M570 Modem on COMMs Module
+{
+ NV_ODM_GUID('e','m','p',' ','M','5','7','0'),
+ s_ffaEmpM570Addresses,
+ NV_ARRAY_SIZE(s_ffaEmpM570Addresses),
+ NvOdmPeripheralClass_Other
+},
+
// NOTE: This list *must* end with a trailing comma.