From: Jonathan Cameron <jic23@kernel.org>
To: Linus Walleij <linus.walleij@linaro.org>, linux-iio@vger.kernel.org
Cc: Denis Ciocca <denis.ciocca@st.com>
Subject: Re: [RESEND PATCH 3/4] iio: st_sensors: add debugfs register read hook
Date: Sun, 20 Sep 2015 11:54:22 +0100 [thread overview]
Message-ID: <55FE905E.7070604@kernel.org> (raw)
In-Reply-To: <1442303377-11858-1-git-send-email-linus.walleij@linaro.org>
On 15/09/15 08:49, Linus Walleij wrote:
> This adds a debugfs hook to read/write registers in the ST
> sensors using debugfs. Proved to be awesome help when trying
> to debug why IRQs do not arrive.
>
> Cc: Denis Ciocca <denis.ciocca@st.com>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This one is already in my tree as well. Will be doing a pull shortly
so should turn up in linux next fairly soon.
Jonathan
> ---
> ChangeLog v1->v2:
> - User &ersand i front of function name for debugfs helper
> - EXPORT the debugfs regread symbol so modules work
> ---
> drivers/iio/accel/st_accel_core.c | 1 +
> drivers/iio/common/st_sensors/st_sensors_core.c | 22 ++++++++++++++++++++++
> drivers/iio/gyro/st_gyro_core.c | 1 +
> drivers/iio/magnetometer/st_magn_core.c | 1 +
> drivers/iio/pressure/st_pressure_core.c | 1 +
> include/linux/iio/common/st_sensors.h | 4 ++++
> 6 files changed, 30 insertions(+)
>
> diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
> index b9a7b5c7c5e7..44321ded84cd 100644
> --- a/drivers/iio/accel/st_accel_core.c
> +++ b/drivers/iio/accel/st_accel_core.c
> @@ -618,6 +618,7 @@ static const struct iio_info accel_info = {
> .attrs = &st_accel_attribute_group,
> .read_raw = &st_accel_read_raw,
> .write_raw = &st_accel_write_raw,
> + .debugfs_reg_access = &st_sensors_debugfs_reg_access,
> };
>
> #ifdef CONFIG_IIO_TRIGGER
> diff --git a/drivers/iio/common/st_sensors/st_sensors_core.c b/drivers/iio/common/st_sensors/st_sensors_core.c
> index 2e7fdb502645..25258e2c1a82 100644
> --- a/drivers/iio/common/st_sensors/st_sensors_core.c
> +++ b/drivers/iio/common/st_sensors/st_sensors_core.c
> @@ -44,6 +44,28 @@ st_sensors_write_data_with_mask_error:
> return err;
> }
>
> +int st_sensors_debugfs_reg_access(struct iio_dev *indio_dev,
> + unsigned reg, unsigned writeval,
> + unsigned *readval)
> +{
> + struct st_sensor_data *sdata = iio_priv(indio_dev);
> + u8 readdata;
> + int err;
> +
> + if (!readval)
> + return sdata->tf->write_byte(&sdata->tb, sdata->dev,
> + (u8)reg, (u8)writeval);
> +
> + err = sdata->tf->read_byte(&sdata->tb, sdata->dev, (u8)reg, &readdata);
> + if (err < 0)
> + return err;
> +
> + *readval = (unsigned)readdata;
> +
> + return 0;
> +}
> +EXPORT_SYMBOL(st_sensors_debugfs_reg_access);
> +
> static int st_sensors_match_odr(struct st_sensor_settings *sensor_settings,
> unsigned int odr, struct st_sensor_odr_avl *odr_out)
> {
> diff --git a/drivers/iio/gyro/st_gyro_core.c b/drivers/iio/gyro/st_gyro_core.c
> index 4b993a5bc9a1..02eddcebeea3 100644
> --- a/drivers/iio/gyro/st_gyro_core.c
> +++ b/drivers/iio/gyro/st_gyro_core.c
> @@ -383,6 +383,7 @@ static const struct iio_info gyro_info = {
> .attrs = &st_gyro_attribute_group,
> .read_raw = &st_gyro_read_raw,
> .write_raw = &st_gyro_write_raw,
> + .debugfs_reg_access = &st_sensors_debugfs_reg_access,
> };
>
> #ifdef CONFIG_IIO_TRIGGER
> diff --git a/drivers/iio/magnetometer/st_magn_core.c b/drivers/iio/magnetometer/st_magn_core.c
> index f8dc4b85d70c..b27f0146647b 100644
> --- a/drivers/iio/magnetometer/st_magn_core.c
> +++ b/drivers/iio/magnetometer/st_magn_core.c
> @@ -560,6 +560,7 @@ static const struct iio_info magn_info = {
> .attrs = &st_magn_attribute_group,
> .read_raw = &st_magn_read_raw,
> .write_raw = &st_magn_write_raw,
> + .debugfs_reg_access = &st_sensors_debugfs_reg_access,
> };
>
> #ifdef CONFIG_IIO_TRIGGER
> diff --git a/drivers/iio/pressure/st_pressure_core.c b/drivers/iio/pressure/st_pressure_core.c
> index eb41d2b92c24..b39a2fb0671c 100644
> --- a/drivers/iio/pressure/st_pressure_core.c
> +++ b/drivers/iio/pressure/st_pressure_core.c
> @@ -400,6 +400,7 @@ static const struct iio_info press_info = {
> .attrs = &st_press_attribute_group,
> .read_raw = &st_press_read_raw,
> .write_raw = &st_press_write_raw,
> + .debugfs_reg_access = &st_sensors_debugfs_reg_access,
> };
>
> #ifdef CONFIG_IIO_TRIGGER
> diff --git a/include/linux/iio/common/st_sensors.h b/include/linux/iio/common/st_sensors.h
> index 3c17cd7fdf06..2fe939c73cd2 100644
> --- a/include/linux/iio/common/st_sensors.h
> +++ b/include/linux/iio/common/st_sensors.h
> @@ -271,6 +271,10 @@ void st_sensors_power_enable(struct iio_dev *indio_dev);
>
> void st_sensors_power_disable(struct iio_dev *indio_dev);
>
> +int st_sensors_debugfs_reg_access(struct iio_dev *indio_dev,
> + unsigned reg, unsigned writeval,
> + unsigned *readval);
> +
> int st_sensors_set_odr(struct iio_dev *indio_dev, unsigned int odr);
>
> int st_sensors_set_dataready_irq(struct iio_dev *indio_dev, bool enable);
>
prev parent reply other threads:[~2015-09-20 10:54 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-15 7:49 [RESEND PATCH 3/4] iio: st_sensors: add debugfs register read hook Linus Walleij
2015-09-20 10:54 ` Jonathan Cameron [this message]
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=55FE905E.7070604@kernel.org \
--to=jic23@kernel.org \
--cc=denis.ciocca@st.com \
--cc=linus.walleij@linaro.org \
--cc=linux-iio@vger.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.