From: Jonathan Cameron <jonathan.cameron@huawei.com>
To: Rui Miguel Silva <rui.silva@linaro.org>
Cc: Jonathan Cameron <jic23@kernel.org>,
Hartmut Knaack <knaack.h@gmx.de>,
Lars-Peter Clausen <lars@metafoo.de>,
Peter Meerwald-Stadler <pmeerw@pmeerw.net>,
Shawn Guo <shawnguo@kernel.org>, Rob Herring <robh+dt@kernel.org>,
Fabio Estevam <fabio.estevam@nxp.com>,
<linux-iio@vger.kernel.org>, <devicetree@vger.kernel.org>
Subject: Re: [PATCH v2 3/5] iio: gyro: fxas2100x: add i2c driver
Date: Wed, 6 Feb 2019 13:19:51 +0000 [thread overview]
Message-ID: <20190206131951.0000212c@huawei.com> (raw)
In-Reply-To: <20190205174333.17672-4-rui.silva@linaro.org>
On Tue, 5 Feb 2019 17:43:31 +0000
Rui Miguel Silva <rui.silva@linaro.org> wrote:
> This add the real driver to talk over i2c and use the fxas2100x core
> for the main tasks.
>
> Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Trivial comments inline.
> ---
> drivers/iio/gyro/Kconfig | 6 +++
> drivers/iio/gyro/Makefile | 1 +
> drivers/iio/gyro/fxas2100x_i2c.c | 73 ++++++++++++++++++++++++++++++++
> 3 files changed, 80 insertions(+)
> create mode 100644 drivers/iio/gyro/fxas2100x_i2c.c
>
> diff --git a/drivers/iio/gyro/Kconfig b/drivers/iio/gyro/Kconfig
> index c168aa63de3b..1f9bfc51febb 100644
> --- a/drivers/iio/gyro/Kconfig
> +++ b/drivers/iio/gyro/Kconfig
> @@ -77,6 +77,8 @@ config FXAS2100X
> tristate "NXP FXAS2100X Gyro Sensor"
> select IIO_BUFFER
> select IIO_TRIGGERED_BUFFER
> + select FXAS2100X_I2C if (I2C)
> + depends on (I2C || SPI_MASTER)
Bit illogical to do the SPI_MASTER case in this patch.
> help
> Say yes here to build support for NXP FXAS2100X family Tri-axis Gyro
> Sensor driver connected via I2C or SPI.
> @@ -84,6 +86,10 @@ config FXAS2100X
> This driver can also be built as a module. If so, the module
> will be called fxas2100x_i2c or fxas2100x_spi.
>
> +config FXAS2100X_I2C
> + tristate
> + select REGMAP_I2C
> +
> config HID_SENSOR_GYRO_3D
> depends on HID_SENSOR_HUB
> select IIO_BUFFER
> diff --git a/drivers/iio/gyro/Makefile b/drivers/iio/gyro/Makefile
> index 9e2395185a6e..8b1540ddbbce 100644
> --- a/drivers/iio/gyro/Makefile
> +++ b/drivers/iio/gyro/Makefile
> @@ -13,6 +13,7 @@ obj-$(CONFIG_BMG160) += bmg160_core.o
> obj-$(CONFIG_BMG160_I2C) += bmg160_i2c.o
> obj-$(CONFIG_BMG160_SPI) += bmg160_spi.o
> obj-$(CONFIG_FXAS2100X) += fxas2100x_core.o
> +obj-$(CONFIG_FXAS2100X_I2C) += fxas2100x_i2c.o
>
> obj-$(CONFIG_HID_SENSOR_GYRO_3D) += hid-sensor-gyro-3d.o
>
> diff --git a/drivers/iio/gyro/fxas2100x_i2c.c b/drivers/iio/gyro/fxas2100x_i2c.c
> new file mode 100644
> index 000000000000..b8f6d2b7f6dd
> --- /dev/null
> +++ b/drivers/iio/gyro/fxas2100x_i2c.c
> @@ -0,0 +1,73 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Driver for NXP FXAS2100x Gyroscope - I2C
> + *
> + * Copyright (C) 2018 Linaro Ltd.
> + *
No need for blank line.
> + */
> +#include <linux/i2c.h>
> +#include <linux/module.h>
> +#include <linux/of.h>
> +#include <linux/regmap.h>
> +
> +#include "fxas2100x.h"
> +
> +static const struct regmap_config fxas2100x_regmap_i2c_conf = {
> + .reg_bits = 8,
> + .val_bits = 8,
> + .max_register = FXAS2100X_REG_CTRL3,
> +};
> +
> +static int fxas2100x_i2c_probe(struct i2c_client *i2c,
> + const struct i2c_device_id *id)
> +{
> + struct regmap *regmap;
> + const char *name = NULL;
> +
> + regmap = devm_regmap_init_i2c(i2c, &fxas2100x_regmap_i2c_conf);
> + if (IS_ERR(regmap)) {
> + dev_err(&i2c->dev, "Failed to register i2c regmap: %ld\n",
> + PTR_ERR(regmap));
> + return PTR_ERR(regmap);
> + }
> +
> + if (id)
> + name = id->name;
> +
> + return fxas2100x_core_probe(&i2c->dev, regmap, i2c->irq, name);
> +}
> +
> +static int fxas2100x_i2c_remove(struct i2c_client *i2c)
> +{
> + fxas2100x_core_remove(&i2c->dev);
> +
> + return 0;
> +}
> +
> +static const struct i2c_device_id fxas2100x_i2c_id[] = {
> + { "fxas2100x", 0 },
> + { }
> +};
> +MODULE_DEVICE_TABLE(i2c, fxas2100x_i2c_id);
> +
> +static const struct of_device_id fxas2100x_i2c_of_match[] = {
> + { .compatible = "nxp,fxas21002", },
> + { },
> +};
> +MODULE_DEVICE_TABLE(of, fxas2100x_i2c_of_match);
> +
> +static struct i2c_driver fxas2100x_i2c_driver = {
> + .driver = {
> + .name = "fxas2100x_i2c",
> + .pm = &fxas2100x_pm_ops,
> + .of_match_table = of_match_ptr(fxas2100x_i2c_of_match),
> + },
> + .probe = fxas2100x_i2c_probe,
> + .remove = fxas2100x_i2c_remove,
> + .id_table = fxas2100x_i2c_id,
> +};
> +module_i2c_driver(fxas2100x_i2c_driver);
> +
> +MODULE_AUTHOR("Rui Miguel Silva <rui.silva@linaro.org>");
> +MODULE_LICENSE("GPL v2");
> +MODULE_DESCRIPTION("FXAS2100X I2C Gyro driver");
WARNING: multiple messages have this Message-ID (diff)
From: Jonathan Cameron <jonathan.cameron@huawei.com>
To: Rui Miguel Silva <rui.silva@linaro.org>
Cc: Jonathan Cameron <jic23@kernel.org>,
Hartmut Knaack <knaack.h@gmx.de>,
Lars-Peter Clausen <lars@metafoo.de>,
Peter Meerwald-Stadler <pmeerw@pmeerw.net>,
Shawn Guo <shawnguo@kernel.org>, Rob Herring <robh+dt@kernel.org>,
Fabio Estevam <fabio.estevam@nxp.com>,
linux-iio@vger.kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v2 3/5] iio: gyro: fxas2100x: add i2c driver
Date: Wed, 6 Feb 2019 13:19:51 +0000 [thread overview]
Message-ID: <20190206131951.0000212c@huawei.com> (raw)
In-Reply-To: <20190205174333.17672-4-rui.silva@linaro.org>
On Tue, 5 Feb 2019 17:43:31 +0000
Rui Miguel Silva <rui.silva@linaro.org> wrote:
> This add the real driver to talk over i2c and use the fxas2100x core
> for the main tasks.
>
> Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Trivial comments inline.
> ---
> drivers/iio/gyro/Kconfig | 6 +++
> drivers/iio/gyro/Makefile | 1 +
> drivers/iio/gyro/fxas2100x_i2c.c | 73 ++++++++++++++++++++++++++++++++
> 3 files changed, 80 insertions(+)
> create mode 100644 drivers/iio/gyro/fxas2100x_i2c.c
>
> diff --git a/drivers/iio/gyro/Kconfig b/drivers/iio/gyro/Kconfig
> index c168aa63de3b..1f9bfc51febb 100644
> --- a/drivers/iio/gyro/Kconfig
> +++ b/drivers/iio/gyro/Kconfig
> @@ -77,6 +77,8 @@ config FXAS2100X
> tristate "NXP FXAS2100X Gyro Sensor"
> select IIO_BUFFER
> select IIO_TRIGGERED_BUFFER
> + select FXAS2100X_I2C if (I2C)
> + depends on (I2C || SPI_MASTER)
Bit illogical to do the SPI_MASTER case in this patch.
> help
> Say yes here to build support for NXP FXAS2100X family Tri-axis Gyro
> Sensor driver connected via I2C or SPI.
> @@ -84,6 +86,10 @@ config FXAS2100X
> This driver can also be built as a module. If so, the module
> will be called fxas2100x_i2c or fxas2100x_spi.
>
> +config FXAS2100X_I2C
> + tristate
> + select REGMAP_I2C
> +
> config HID_SENSOR_GYRO_3D
> depends on HID_SENSOR_HUB
> select IIO_BUFFER
> diff --git a/drivers/iio/gyro/Makefile b/drivers/iio/gyro/Makefile
> index 9e2395185a6e..8b1540ddbbce 100644
> --- a/drivers/iio/gyro/Makefile
> +++ b/drivers/iio/gyro/Makefile
> @@ -13,6 +13,7 @@ obj-$(CONFIG_BMG160) += bmg160_core.o
> obj-$(CONFIG_BMG160_I2C) += bmg160_i2c.o
> obj-$(CONFIG_BMG160_SPI) += bmg160_spi.o
> obj-$(CONFIG_FXAS2100X) += fxas2100x_core.o
> +obj-$(CONFIG_FXAS2100X_I2C) += fxas2100x_i2c.o
>
> obj-$(CONFIG_HID_SENSOR_GYRO_3D) += hid-sensor-gyro-3d.o
>
> diff --git a/drivers/iio/gyro/fxas2100x_i2c.c b/drivers/iio/gyro/fxas2100x_i2c.c
> new file mode 100644
> index 000000000000..b8f6d2b7f6dd
> --- /dev/null
> +++ b/drivers/iio/gyro/fxas2100x_i2c.c
> @@ -0,0 +1,73 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Driver for NXP FXAS2100x Gyroscope - I2C
> + *
> + * Copyright (C) 2018 Linaro Ltd.
> + *
No need for blank line.
> + */
> +#include <linux/i2c.h>
> +#include <linux/module.h>
> +#include <linux/of.h>
> +#include <linux/regmap.h>
> +
> +#include "fxas2100x.h"
> +
> +static const struct regmap_config fxas2100x_regmap_i2c_conf = {
> + .reg_bits = 8,
> + .val_bits = 8,
> + .max_register = FXAS2100X_REG_CTRL3,
> +};
> +
> +static int fxas2100x_i2c_probe(struct i2c_client *i2c,
> + const struct i2c_device_id *id)
> +{
> + struct regmap *regmap;
> + const char *name = NULL;
> +
> + regmap = devm_regmap_init_i2c(i2c, &fxas2100x_regmap_i2c_conf);
> + if (IS_ERR(regmap)) {
> + dev_err(&i2c->dev, "Failed to register i2c regmap: %ld\n",
> + PTR_ERR(regmap));
> + return PTR_ERR(regmap);
> + }
> +
> + if (id)
> + name = id->name;
> +
> + return fxas2100x_core_probe(&i2c->dev, regmap, i2c->irq, name);
> +}
> +
> +static int fxas2100x_i2c_remove(struct i2c_client *i2c)
> +{
> + fxas2100x_core_remove(&i2c->dev);
> +
> + return 0;
> +}
> +
> +static const struct i2c_device_id fxas2100x_i2c_id[] = {
> + { "fxas2100x", 0 },
> + { }
> +};
> +MODULE_DEVICE_TABLE(i2c, fxas2100x_i2c_id);
> +
> +static const struct of_device_id fxas2100x_i2c_of_match[] = {
> + { .compatible = "nxp,fxas21002", },
> + { },
> +};
> +MODULE_DEVICE_TABLE(of, fxas2100x_i2c_of_match);
> +
> +static struct i2c_driver fxas2100x_i2c_driver = {
> + .driver = {
> + .name = "fxas2100x_i2c",
> + .pm = &fxas2100x_pm_ops,
> + .of_match_table = of_match_ptr(fxas2100x_i2c_of_match),
> + },
> + .probe = fxas2100x_i2c_probe,
> + .remove = fxas2100x_i2c_remove,
> + .id_table = fxas2100x_i2c_id,
> +};
> +module_i2c_driver(fxas2100x_i2c_driver);
> +
> +MODULE_AUTHOR("Rui Miguel Silva <rui.silva@linaro.org>");
> +MODULE_LICENSE("GPL v2");
> +MODULE_DESCRIPTION("FXAS2100X I2C Gyro driver");
next prev parent reply other threads:[~2019-02-06 13:20 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-05 17:43 [PATCH v2 0/5] iio: gyro: add fxas2100x driver Rui Miguel Silva
2019-02-05 17:43 ` [PATCH v2 1/5] iio: gyro: add DT bindings to fxas21002 Rui Miguel Silva
2019-02-06 12:53 ` Jonathan Cameron
2019-02-06 12:53 ` Jonathan Cameron
2019-02-18 19:39 ` Rob Herring
2019-02-18 19:39 ` Rob Herring
2019-02-05 17:43 ` [PATCH v2 2/5] iio: gyro: fxas2100x: add core driver for fxas2100x gyroscope Rui Miguel Silva
2019-02-06 13:18 ` Jonathan Cameron
2019-02-06 13:18 ` Jonathan Cameron
2019-02-07 15:32 ` Rui Miguel Silva
2019-02-05 17:43 ` [PATCH v2 3/5] iio: gyro: fxas2100x: add i2c driver Rui Miguel Silva
2019-02-06 13:19 ` Jonathan Cameron [this message]
2019-02-06 13:19 ` Jonathan Cameron
2019-02-05 17:43 ` [PATCH v2 4/5] iio: gyro: fxas2100x: add spi driver Rui Miguel Silva
2019-02-05 17:43 ` [PATCH v2 5/5] ARM: dts: imx7s-warp: add fxas21002 gyroscope Rui Miguel Silva
2019-02-09 16:14 ` [PATCH v2 0/5] iio: gyro: add fxas2100x driver Jonathan Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190206131951.0000212c@huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=devicetree@vger.kernel.org \
--cc=fabio.estevam@nxp.com \
--cc=jic23@kernel.org \
--cc=knaack.h@gmx.de \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=pmeerw@pmeerw.net \
--cc=robh+dt@kernel.org \
--cc=rui.silva@linaro.org \
--cc=shawnguo@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.