Add detect function and ami304 support.
Sign-off-by: Gram Hsieh <[email protected]>
Sign-off-by: Major Lee <[email protected]>
---
Kconfig | 4 ++--
ak8974.c | 22 ++++++++++++++++++++++
2 files changed, 24 insertions(+), 2 deletions(-)
diff -pruN a/drivers/staging/mfld-sensors/ak8974.c
b/drivers/staging/mfld-sensors/ak8974.c
--- a/drivers/staging/mfld-sensors/ak8974.c 2010-11-23
13:40:51.260749000 +0800
+++ b/drivers/staging/mfld-sensors/ak8974.c 2010-12-16
17:13:30.117382000 +0800
@@ -166,6 +166,26 @@ compass_error1:
return res;
}
+static int ak8974_detect(struct i2c_client *client,
+ struct i2c_board_info *info)
+{
+ u8 device_id;
+
+ /* Check device ID (WIA register) */
+ device_id = i2c_smbus_read_byte_data(client, DEVICE_ID);
+ switch (device_id) {
+ case 0x47:
+ strlcpy(info->type, "ami304", I2C_NAME_SIZE);
+ break;
+ case 0x48:
+ strlcpy(info->type, "ak8974", I2C_NAME_SIZE);
+ break;
+ default:
+ return -ENODEV;
+ }
+ return 0;
+}
+
static int __devexit ak8974_remove(struct i2c_client *client)
{
struct compass_data *data = i2c_get_clientdata(client);
@@ -219,6 +239,7 @@ static const struct dev_pm_ops ak8974_pm
static struct i2c_device_id ak8974_id[] = {
{ "ak8974", 0 },
+ { "ami304", 0 },
{ }
};
@@ -228,6 +249,7 @@ static struct i2c_driver ak8974_driver =
.pm = &ak8974_pm_ops,
},
.probe = ak8974_probe,
+ .detect = ak8974_detect,
.remove = __devexit_p(ak8974_remove),
.suspend = ak8974_suspend,
.resume = ak8974_resume,
diff -pruN a/drivers/staging/mfld-sensors/Kconfig
b/drivers/staging/mfld-sensors/Kconfig
--- a/drivers/staging/mfld-sensors/Kconfig 2010-11-23
13:40:50.118248000 +0800
+++ b/drivers/staging/mfld-sensors/Kconfig 2010-12-16
17:08:30.079650000 +0800
@@ -10,10 +10,10 @@ menuconfig MFLD_SENSORS
if MFLD_SENSORS
config SENSORS_AK8974COMPASS
- tristate "Ak8974 Compass Module"
+ tristate "Ak8974/AMI304 Compass Module"
depends on I2C
help
- To get Compass Sensor output from AK8974 sensor.
+ To get Compass Sensor output from AK8974/AMI304 sensor.
config SENSORS_APDS9802PSPROXIMITY
tristate "Medfield Avago APDS9802 Proximity Sensor Module"
_______________________________________________
MeeGo-kernel mailing list
[email protected]
http://lists.meego.com/listinfo/meego-kernel