diff options
author | Venu Byravarasu <vbyravarasu@nvidia.com> | 2010-07-09 11:41:54 +0530 |
---|---|---|
committer | Gary King <gking@nvidia.com> | 2010-07-13 12:37:10 -0700 |
commit | 7bde14619f32542531ef0f30999f2020c58a5231 (patch) | |
tree | 49b49dab80681c4b90bfb8aa2b6635ad9f97707d /arch | |
parent | 93513be66fbc0770f849d0a6996692d50a923525 (diff) |
tegra accelerometer: Mapping axes info based on GUID
As Ventana and Tango used same kionix accelerometer
with different placement and position, mapping axes
info based on GUID.
tested on: Ventana and Tango with froyo + K32
Change-Id: Ic246ba3a55f8c303fce06accfa7645e3b762fbca
Reviewed-on: http://git-master.nvidia.com/r/2868
Tested-by: Venu Byravarasu <vbyravarasu@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
Diffstat (limited to 'arch')
3 files changed, 44 insertions, 24 deletions
diff --git a/arch/arm/mach-tegra/odm_kit/platform/accelerometer/nvodm_accelerometer_kxtf9.c b/arch/arm/mach-tegra/odm_kit/platform/accelerometer/nvodm_accelerometer_kxtf9.c index 917d7345f49c..8cfd05bff32d 100755 --- a/arch/arm/mach-tegra/odm_kit/platform/accelerometer/nvodm_accelerometer_kxtf9.c +++ b/arch/arm/mach-tegra/odm_kit/platform/accelerometer/nvodm_accelerometer_kxtf9.c @@ -96,6 +96,8 @@ // I2C clock speed. #define I2C_CLK_SPEED 400 +#define ACCEL_TANGO_GUID NV_ODM_GUID('k','x','t','f','9','t','n','g') +#define ACCEL_VENTANA_GUID NV_ODM_GUID('k','x','t','f','9','v','n','t') #define EEPROM_ID_E1206 0x0C06 #define NV_DEBOUNCE_TIME_MS 0 #define ENABLE_XYZ_POLLING 0 @@ -546,7 +548,7 @@ void kxtf9_Signal(NvOdmAccelHandle hDevice) } #if NVODMACCELEROMETER_ENABLE_PRINTF -static PrintAccelEventInfo(NvOdmAccelHandle hDevice) +static void PrintAccelEventInfo(NvOdmAccelHandle hDevice) { NvU8 RegVal = 0; if (s_IntSrcReg2 & 1) @@ -797,24 +799,6 @@ NvBool kxtf9_init(NvOdmAccelHandle* hDevice) hAccel->Caption.MaxSampleRate = 100; hAccel->Caption.MinSampleRate = 3; hAccel->PowerState = NvOdmAccelPower_Fullrun; -#if AXES_MAPPING_FOR_PROPER_DISPLAY_ALIGNMENT -// Axes mapping for display orientation aligning correctly in 3 orientations -// (0, 90 & 270 degrees) on Tango with (froyo + K32). - hAccel->AxisXMapping = NvOdmAccelAxis_Y; - hAccel->AxisXDirection = 1; - hAccel->AxisYMapping = NvOdmAccelAxis_X; - hAccel->AxisYDirection = -1; - hAccel->AxisZMapping = NvOdmAccelAxis_Z; - hAccel->AxisZDirection = -1; -#else -// Axes mapping for matching acceleration on all axes with android mobile phones - hAccel->AxisXMapping = NvOdmAccelAxis_X; - hAccel->AxisXDirection = -1; - hAccel->AxisYMapping = NvOdmAccelAxis_Y; - hAccel->AxisYDirection = -1; - hAccel->AxisZMapping = NvOdmAccelAxis_Z; - hAccel->AxisZDirection = -1; -#endif hAccel->hPmu = NvOdmServicesPmuOpen(); if (!hAccel->hPmu) { @@ -822,12 +806,48 @@ NvBool kxtf9_init(NvOdmAccelHandle* hDevice) goto error; } - pConnectivity = NvOdmPeripheralGetGuid(kxtf9_GUID); + pConnectivity = NvOdmPeripheralGetGuid(ACCEL_TANGO_GUID); + if (!pConnectivity) + { + NVODMACCELEROMETER_PRINTF(("\nkxtf9: GetGuid Failed for Tango")); + } + else + { + #if AXES_MAPPING_FOR_PROPER_DISPLAY_ALIGNMENT + // Axes mapping for display orientation aligning correctly in 3 orientations + // (0, 90 & 270 degrees) on Tango with (froyo + K32). + hAccel->AxisXMapping = NvOdmAccelAxis_Y; + hAccel->AxisXDirection = 1; + hAccel->AxisYMapping = NvOdmAccelAxis_X; + hAccel->AxisYDirection = -1; + hAccel->AxisZMapping = NvOdmAccelAxis_Z; + hAccel->AxisZDirection = -1; + #else + // Axes mapping for matching acceleration on all axes with android mobile phones + hAccel->AxisXMapping = NvOdmAccelAxis_X; + hAccel->AxisXDirection = -1; + hAccel->AxisYMapping = NvOdmAccelAxis_Y; + hAccel->AxisYDirection = -1; + hAccel->AxisZMapping = NvOdmAccelAxis_Z; + hAccel->AxisZDirection = -1; + #endif + } + + pConnectivity = NvOdmPeripheralGetGuid(ACCEL_VENTANA_GUID); if (!pConnectivity) { - NVODMACCELEROMETER_PRINTF(("\nkxtf9: GetGuid Failed")); + NVODMACCELEROMETER_PRINTF(("\nkxtf9: GetGuid Failed for Ventana")); goto error; } + else + { + hAccel->AxisXMapping = NvOdmAccelAxis_X; + hAccel->AxisXDirection = 1; + hAccel->AxisYMapping = NvOdmAccelAxis_Y; + hAccel->AxisYDirection = -1; + hAccel->AxisZMapping = NvOdmAccelAxis_Z; + hAccel->AxisZDirection = 1; + } if (pConnectivity->Class != NvOdmPeripheralClass_Other) { diff --git a/arch/arm/mach-tegra/odm_kit/query/harmony/subboards/nvodm_query_discovery_e1162_peripherals.h b/arch/arm/mach-tegra/odm_kit/query/harmony/subboards/nvodm_query_discovery_e1162_peripherals.h index ce5df47f3233..d983325afbe4 100644 --- a/arch/arm/mach-tegra/odm_kit/query/harmony/subboards/nvodm_query_discovery_e1162_peripherals.h +++ b/arch/arm/mach-tegra/odm_kit/query/harmony/subboards/nvodm_query_discovery_e1162_peripherals.h @@ -489,9 +489,9 @@ NvOdmPeripheralClass_Other, }, -// Kionix Accelerometer Module +// Kionix Accelerometer on Tango { - NV_ODM_GUID('k','x','t','f','9','-','4','0'), + NV_ODM_GUID('k','x','t','f','9','t','n','g'), s_KXTFAcceleroAddresses, NV_ARRAY_SIZE(s_KXTFAcceleroAddresses), NvOdmPeripheralClass_Other, diff --git a/arch/arm/mach-tegra/odm_kit/query/ventana/subboards/nvodm_query_discovery_pm275_peripherals.h b/arch/arm/mach-tegra/odm_kit/query/ventana/subboards/nvodm_query_discovery_pm275_peripherals.h index 272fd71a7d47..0c52dc1fd5c7 100644 --- a/arch/arm/mach-tegra/odm_kit/query/ventana/subboards/nvodm_query_discovery_pm275_peripherals.h +++ b/arch/arm/mach-tegra/odm_kit/query/ventana/subboards/nvodm_query_discovery_pm275_peripherals.h @@ -435,7 +435,7 @@ // Accelerometer Module { - NV_ODM_GUID('k','x','t','f','9','-','4','0'), + NV_ODM_GUID('k','x','t','f','9','v','n','t'), s_AcceleroAddresses, NV_ARRAY_SIZE(s_AcceleroAddresses), NvOdmPeripheralClass_Other, |