* [PATCH v4] iio:kxcjk-1013: Add support for SMO8500 device
@ 2014-11-05 22:09 Bastien Nocera
2014-11-08 12:41 ` Jonathan Cameron
0 siblings, 1 reply; 2+ messages in thread
From: Bastien Nocera @ 2014-11-05 22:09 UTC (permalink / raw)
To: linux-iio; +Cc: jic23, Srinivas Pandruvada, Daniel Baluta
The Onda v975w tablet contains an accelerometer that's advertised over
ACPI as SMO8500. This device is however a KXCJ9 accelerometer as
can be seen in the Windows driver's INF file, and from the etching on
the chipset ("KXCJ9 41566 0414").
This patch also removes the attempt to get the IRQ for the "data ready"
signal, as it does not seem to be supported by this device on this
platform.
Signed-off-by: Bastien Nocera <hadess@hadess.net>
---
Changes from v1:
- Rebase after driver changes
- Stop checking for IRQ when not supported
Changes from v2:
- Fixed the space before the opening bracket
- Added Sob line
- Add version to the patch subject line ;)
Changes from v3:
- SMO8500 is a KXCJ9, so define it as such
drivers/iio/accel/kxcjk-1013.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c
index a23e58c..570a237 100644
--- a/drivers/iio/accel/kxcjk-1013.c
+++ b/drivers/iio/accel/kxcjk-1013.c
@@ -108,6 +108,7 @@ struct kxcjk1013_data {
bool motion_trigger_on;
int64_t timestamp;
enum kx_chipset chipset;
+ bool is_smo8500_device;
};
enum kxcjk1013_axis {
@@ -1129,12 +1130,15 @@ static irqreturn_t kxcjk1013_data_rdy_trig_poll(int irq, void *private)
}
static const char *kxcjk1013_match_acpi_device(struct device *dev,
- enum kx_chipset *chipset)
+ enum kx_chipset *chipset,
+ bool *is_smo8500_device)
{
const struct acpi_device_id *id;
id = acpi_match_device(dev->driver->acpi_match_table, dev);
if (!id)
return NULL;
+ if (strcmp(id->id, "SMO8500") == 0)
+ *is_smo8500_device = true;
*chipset = (enum kx_chipset)id->driver_data;
return dev_name(dev);
@@ -1149,6 +1153,8 @@ static int kxcjk1013_gpio_probe(struct i2c_client *client,
if (!client)
return -EINVAL;
+ if (data->is_smo8500_device)
+ return -ENOTSUPP;
dev = &client->dev;
@@ -1198,7 +1204,8 @@ static int kxcjk1013_probe(struct i2c_client *client,
name = id->name;
} else if (ACPI_HANDLE(&client->dev)) {
name = kxcjk1013_match_acpi_device(&client->dev,
- &data->chipset);
+ &data->chipset,
+ &data->is_smo8500_device);
} else
return -ENODEV;
@@ -1397,6 +1404,7 @@ static const struct acpi_device_id kx_acpi_match[] = {
{"KXCJ1013", KXCJK1013},
{"KXCJ1008", KXCJ91008},
{"KXTJ1009", KXTJ21009},
+ {"SMO8500", KXCJ91008},
{ },
};
MODULE_DEVICE_TABLE(acpi, kx_acpi_match);
@@ -1405,6 +1413,7 @@ static const struct i2c_device_id kxcjk1013_id[] = {
{"kxcjk1013", KXCJK1013},
{"kxcj91008", KXCJ91008},
{"kxtj21009", KXTJ21009},
+ {"SMO8500", KXCJ91008},
{}
};
--
2.1.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v4] iio:kxcjk-1013: Add support for SMO8500 device
2014-11-05 22:09 [PATCH v4] iio:kxcjk-1013: Add support for SMO8500 device Bastien Nocera
@ 2014-11-08 12:41 ` Jonathan Cameron
0 siblings, 0 replies; 2+ messages in thread
From: Jonathan Cameron @ 2014-11-08 12:41 UTC (permalink / raw)
To: Bastien Nocera, linux-iio; +Cc: Srinivas Pandruvada, Daniel Baluta
On 05/11/14 22:09, Bastien Nocera wrote:
> The Onda v975w tablet contains an accelerometer that's advertised over
> ACPI as SMO8500. This device is however a KXCJ9 accelerometer as
> can be seen in the Windows driver's INF file, and from the etching on
> the chipset ("KXCJ9 41566 0414").
>
> This patch also removes the attempt to get the IRQ for the "data ready"
> signal, as it does not seem to be supported by this device on this
> platform.
>
> Signed-off-by: Bastien Nocera <hadess@hadess.net>
Applied to the togreg branch of iio.git
Thanks,
Jonathan
> ---
>
> Changes from v1:
> - Rebase after driver changes
> - Stop checking for IRQ when not supported
>
> Changes from v2:
> - Fixed the space before the opening bracket
> - Added Sob line
> - Add version to the patch subject line ;)
>
> Changes from v3:
> - SMO8500 is a KXCJ9, so define it as such
>
> drivers/iio/accel/kxcjk-1013.c | 13 +++++++++++--
> 1 file changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c
> index a23e58c..570a237 100644
> --- a/drivers/iio/accel/kxcjk-1013.c
> +++ b/drivers/iio/accel/kxcjk-1013.c
> @@ -108,6 +108,7 @@ struct kxcjk1013_data {
> bool motion_trigger_on;
> int64_t timestamp;
> enum kx_chipset chipset;
> + bool is_smo8500_device;
> };
>
> enum kxcjk1013_axis {
> @@ -1129,12 +1130,15 @@ static irqreturn_t kxcjk1013_data_rdy_trig_poll(int irq, void *private)
> }
>
> static const char *kxcjk1013_match_acpi_device(struct device *dev,
> - enum kx_chipset *chipset)
> + enum kx_chipset *chipset,
> + bool *is_smo8500_device)
> {
> const struct acpi_device_id *id;
> id = acpi_match_device(dev->driver->acpi_match_table, dev);
> if (!id)
> return NULL;
> + if (strcmp(id->id, "SMO8500") == 0)
> + *is_smo8500_device = true;
> *chipset = (enum kx_chipset)id->driver_data;
>
> return dev_name(dev);
> @@ -1149,6 +1153,8 @@ static int kxcjk1013_gpio_probe(struct i2c_client *client,
>
> if (!client)
> return -EINVAL;
> + if (data->is_smo8500_device)
> + return -ENOTSUPP;
>
> dev = &client->dev;
>
> @@ -1198,7 +1204,8 @@ static int kxcjk1013_probe(struct i2c_client *client,
> name = id->name;
> } else if (ACPI_HANDLE(&client->dev)) {
> name = kxcjk1013_match_acpi_device(&client->dev,
> - &data->chipset);
> + &data->chipset,
> + &data->is_smo8500_device);
> } else
> return -ENODEV;
>
> @@ -1397,6 +1404,7 @@ static const struct acpi_device_id kx_acpi_match[] = {
> {"KXCJ1013", KXCJK1013},
> {"KXCJ1008", KXCJ91008},
> {"KXTJ1009", KXTJ21009},
> + {"SMO8500", KXCJ91008},
> { },
> };
> MODULE_DEVICE_TABLE(acpi, kx_acpi_match);
> @@ -1405,6 +1413,7 @@ static const struct i2c_device_id kxcjk1013_id[] = {
> {"kxcjk1013", KXCJK1013},
> {"kxcj91008", KXCJ91008},
> {"kxtj21009", KXTJ21009},
> + {"SMO8500", KXCJ91008},
> {}
> };
>
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-11-08 12:41 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-05 22:09 [PATCH v4] iio:kxcjk-1013: Add support for SMO8500 device Bastien Nocera
2014-11-08 12:41 ` Jonathan Cameron
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.