summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorVenu Byravarasu <vbyravarasu@nvidia.com>2010-07-09 11:41:54 +0530
committerGary King <gking@nvidia.com>2010-07-13 12:37:10 -0700
commit7bde14619f32542531ef0f30999f2020c58a5231 (patch)
tree49b49dab80681c4b90bfb8aa2b6635ad9f97707d /arch
parent93513be66fbc0770f849d0a6996692d50a923525 (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')
-rwxr-xr-xarch/arm/mach-tegra/odm_kit/platform/accelerometer/nvodm_accelerometer_kxtf9.c62
-rw-r--r--arch/arm/mach-tegra/odm_kit/query/harmony/subboards/nvodm_query_discovery_e1162_peripherals.h4
-rw-r--r--arch/arm/mach-tegra/odm_kit/query/ventana/subboards/nvodm_query_discovery_pm275_peripherals.h2
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,