diff options
author | Steve Lin <stlin@nvidia.com> | 2010-02-26 12:58:26 -0800 |
---|---|---|
committer | Gary King <gking@nvidia.com> | 2010-03-03 20:37:55 -0800 |
commit | fd090d42dd963764f461b0ee0850c004a919bd53 (patch) | |
tree | c40acdafc7707e3bdb21f9535d74ecd517169153 | |
parent | 96001b6484efac68ec3d8dda2c3aea84156f00a2 (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>
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. |