All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: Gwendal Grignou <gwendal@chromium.org>
Cc: bleung@chromium.org, enric.balletbo@collabora.com,
	groeck@chromium.org, fabien.lahoudere@collabora.com,
	dianders@chromium.org, linux-iio@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 4/4] iio: cros_ec_accel_legacy: Add support for veyron-minnie
Date: Sun, 14 Jul 2019 17:56:10 +0100	[thread overview]
Message-ID: <20190714175610.63db089e@archlinux> (raw)
In-Reply-To: <20190628191711.23584-5-gwendal@chromium.org>

On Fri, 28 Jun 2019 12:17:11 -0700
Gwendal Grignou <gwendal@chromium.org> wrote:

> Veyron minnie embedded controller presents 2 accelerometers using an
> older interface. Add function to query the data in cros_ec_accel.
> 
> Verify accelerometers on veyron-minnie are presented and working.
> 
> Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Thanks,

Jonathan

> ---
>  drivers/iio/accel/cros_ec_accel_legacy.c | 40 ++++++++++++++++++++++--
>  1 file changed, 38 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/accel/cros_ec_accel_legacy.c b/drivers/iio/accel/cros_ec_accel_legacy.c
> index 2399f0cbdf2b..2c6196446d90 100644
> --- a/drivers/iio/accel/cros_ec_accel_legacy.c
> +++ b/drivers/iio/accel/cros_ec_accel_legacy.c
> @@ -5,7 +5,7 @@
>   * Copyright 2017 Google, Inc
>   *
>   * This driver uses the memory mapper cros-ec interface to communicate
> - * with the Chrome OS EC about accelerometer data.
> + * with the Chrome OS EC about accelerometer data or older commands.
>   * Accelerometer access is presented through iio sysfs.
>   */
>  
> @@ -33,6 +33,39 @@
>   */
>  #define ACCEL_LEGACY_NSCALE 9586168
>  
> +static int cros_ec_accel_legacy_read_cmd(struct iio_dev *indio_dev,
> +				  unsigned long scan_mask, s16 *data)
> +{
> +	struct cros_ec_sensors_core_state *st = iio_priv(indio_dev);
> +	int ret;
> +	unsigned int i;
> +	u8 sensor_num;
> +
> +	/*
> +	 * Read all sensor data through a command.
> +	 * Save sensor_num, it is assumed to stay.
> +	 */
> +	sensor_num = st->param.info.sensor_num;
> +	st->param.cmd = MOTIONSENSE_CMD_DUMP;
> +	st->param.dump.max_sensor_count = CROS_EC_SENSOR_LEGACY_NUM;
> +	ret = cros_ec_motion_send_host_cmd(st,
> +			sizeof(st->resp->dump) + CROS_EC_SENSOR_LEGACY_NUM *
> +			sizeof(struct ec_response_motion_sensor_data));
> +	st->param.info.sensor_num = sensor_num;
> +	if (ret != 0) {
> +		dev_warn(&indio_dev->dev, "Unable to read sensor data\n");
> +		return ret;
> +	}
> +
> +	for_each_set_bit(i, &scan_mask, indio_dev->masklength) {
> +		*data = st->resp->dump.sensor[sensor_num].data[i] *
> +			st->sign[i];
> +		data++;
> +	}
> +
> +	return 0;
> +}
> +
>  static int cros_ec_accel_legacy_read(struct iio_dev *indio_dev,
>  				     struct iio_chan_spec const *chan,
>  				     int *val, int *val2, long mask)
> @@ -149,7 +182,10 @@ static int cros_ec_accel_legacy_probe(struct platform_device *pdev)
>  	indio_dev->info = &cros_ec_accel_legacy_info;
>  	state = iio_priv(indio_dev);
>  
> -	state->read_ec_sensors_data = cros_ec_sensors_read_lpc;
> +	if (state->ec->cmd_readmem != NULL)
> +		state->read_ec_sensors_data = cros_ec_sensors_read_lpc;
> +	else
> +		state->read_ec_sensors_data = cros_ec_accel_legacy_read_cmd;
>  
>  	indio_dev->channels = cros_ec_accel_legacy_channels;
>  	indio_dev->num_channels = ARRAY_SIZE(cros_ec_accel_legacy_channels);


      reply	other threads:[~2019-07-14 16:56 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-28 19:17 [PATCH v4 0/4] Support accelerometers for veyron_minnie Gwendal Grignou
2019-06-28 19:17 ` [PATCH v4 1/4] iio: cros_ec: Add sign vector in core for backward compatibility Gwendal Grignou
2019-07-14 16:32   ` Jonathan Cameron
2019-07-22 14:53     ` Enric Balletbo i Serra
2019-07-27 22:10       ` Jonathan Cameron
2019-06-28 19:17 ` [PATCH v4 2/4] iio: cros_ec_accel_legacy: Fix incorrect channel setting Gwendal Grignou
2019-07-14 16:53   ` Jonathan Cameron
2019-06-28 19:17 ` [PATCH v4 3/4] iio: cros_ec_accel_legacy: Use cros_ec_sensors_core Gwendal Grignou
2019-07-01 14:00   ` Enric Balletbo i Serra
2019-07-14 16:55     ` Jonathan Cameron
2019-06-28 19:17 ` [PATCH v4 4/4] iio: cros_ec_accel_legacy: Add support for veyron-minnie Gwendal Grignou
2019-07-14 16:56   ` 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=20190714175610.63db089e@archlinux \
    --to=jic23@kernel.org \
    --cc=bleung@chromium.org \
    --cc=dianders@chromium.org \
    --cc=enric.balletbo@collabora.com \
    --cc=fabien.lahoudere@collabora.com \
    --cc=groeck@chromium.org \
    --cc=gwendal@chromium.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@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.