All of lore.kernel.org
 help / color / mirror / Atom feed
From: Denis Ciocca <denis.ciocca@st.com>
To: <denis.ciocca@st.com>, <jic23@kernel.org>, <linux-iio@vger.kernel.org>
Subject: [PATCH v2 07/11] iio:gyro: device settings are set immediately during probe
Date: Thu, 18 Jul 2019 15:53:49 -0700	[thread overview]
Message-ID: <20190718225353.2078-8-denis.ciocca@st.com> (raw)
In-Reply-To: <20190718225353.2078-1-denis.ciocca@st.com>

This patch set gyro settings right after probe start. This is
done in preparation of regmap that needs different configuration
based on multiread bit value.

Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
---
Changes in v2:
 not there in v1.

 drivers/iio/gyro/st_gyro_i2c.c | 18 ++++++++++++++----
 drivers/iio/gyro/st_gyro_spi.c | 16 +++++++++++++---
 2 files changed, 27 insertions(+), 7 deletions(-)

diff --git a/drivers/iio/gyro/st_gyro_i2c.c b/drivers/iio/gyro/st_gyro_i2c.c
index f2a8683db7d9..fa71e94b76f4 100644
--- a/drivers/iio/gyro/st_gyro_i2c.c
+++ b/drivers/iio/gyro/st_gyro_i2c.c
@@ -63,19 +63,29 @@ MODULE_DEVICE_TABLE(of, st_gyro_of_match);
 #endif
 
 static int st_gyro_i2c_probe(struct i2c_client *client,
-						const struct i2c_device_id *id)
+			     const struct i2c_device_id *id)
 {
-	struct iio_dev *indio_dev;
+	const struct st_sensor_settings *settings;
 	struct st_sensor_data *gdata;
+	struct iio_dev *indio_dev;
 	int err;
 
+	st_sensors_of_name_probe(&client->dev, st_gyro_of_match,
+				 client->name, sizeof(client->name));
+
+	settings = st_gyro_get_settings(client->name);
+	if (!settings) {
+		dev_err(&client->dev, "device name %s not recognized.\n",
+			client->name);
+		return -ENODEV;
+	}
+
 	indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*gdata));
 	if (!indio_dev)
 		return -ENOMEM;
 
 	gdata = iio_priv(indio_dev);
-	st_sensors_of_name_probe(&client->dev, st_gyro_of_match,
-				 client->name, sizeof(client->name));
+	gdata->sensor_settings = (struct st_sensor_settings *)settings;
 
 	st_sensors_i2c_configure(indio_dev, client, gdata);
 
diff --git a/drivers/iio/gyro/st_gyro_spi.c b/drivers/iio/gyro/st_gyro_spi.c
index 93c48248bea6..bb7082055f85 100644
--- a/drivers/iio/gyro/st_gyro_spi.c
+++ b/drivers/iio/gyro/st_gyro_spi.c
@@ -69,18 +69,28 @@ MODULE_DEVICE_TABLE(of, st_gyro_of_match);
 
 static int st_gyro_spi_probe(struct spi_device *spi)
 {
-	struct iio_dev *indio_dev;
+	const struct st_sensor_settings *settings;
 	struct st_sensor_data *gdata;
+	struct iio_dev *indio_dev;
 	int err;
 
+	st_sensors_of_name_probe(&spi->dev, st_gyro_of_match,
+				 spi->modalias, sizeof(spi->modalias));
+
+	settings = st_gyro_get_settings(spi->modalias);
+	if (!settings) {
+		dev_err(&spi->dev, "device name %s not recognized.\n",
+			spi->modalias);
+		return -ENODEV;
+	}
+
 	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*gdata));
 	if (!indio_dev)
 		return -ENOMEM;
 
 	gdata = iio_priv(indio_dev);
+	gdata->sensor_settings = (struct st_sensor_settings *)settings;
 
-	st_sensors_of_name_probe(&spi->dev, st_gyro_of_match,
-				 spi->modalias, sizeof(spi->modalias));
 	st_sensors_spi_configure(indio_dev, spi, gdata);
 
 	err = st_gyro_common_probe(indio_dev);
-- 
2.22.0


  parent reply	other threads:[~2019-07-18 22:54 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-18 22:53 [PATCH v2 00/11] iio:st_sensors: make use of regmap API Denis Ciocca
2019-07-18 22:53 ` [PATCH v2 01/11] iio:common:st_sensors: add st_sensors_get_settings_index() helper function Denis Ciocca
2019-07-21 17:48   ` Jonathan Cameron
2019-07-18 22:53 ` [PATCH v2 02/11] iio:accel: introduce st_accel_get_settings() function Denis Ciocca
2019-07-21 17:48   ` Jonathan Cameron
2019-07-18 22:53 ` [PATCH v2 03/11] iio:gyro: introduce st_gyro_get_settings() function Denis Ciocca
2019-07-21 17:50   ` Jonathan Cameron
2019-07-18 22:53 ` [PATCH v2 04/11] iio:magn: introduce st_magn_get_settings() function Denis Ciocca
2019-07-21 17:51   ` Jonathan Cameron
2019-07-18 22:53 ` [PATCH v2 05/11] iio:pressure: introduce st_press_get_settings() function Denis Ciocca
2019-07-21 17:52   ` Jonathan Cameron
2019-07-18 22:53 ` [PATCH v2 06/11] iio:accel: device settings are set immediately during probe Denis Ciocca
2019-07-21 17:54   ` Jonathan Cameron
2019-07-18 22:53 ` Denis Ciocca [this message]
2019-07-21 17:55   ` [PATCH v2 07/11] iio:gyro: " Jonathan Cameron
2019-07-18 22:53 ` [PATCH v2 08/11] iio:magn: " Denis Ciocca
2019-07-21 17:56   ` Jonathan Cameron
2019-07-18 22:53 ` [PATCH v2 09/11] iio:pressure: " Denis Ciocca
2019-07-18 22:53 ` [PATCH v2 10/11] iio: move 3-wire spi initialization to st_sensors_spi Denis Ciocca
2019-07-21 17:58   ` Jonathan Cameron
2019-07-21 18:03     ` Jonathan Cameron
2019-07-22 19:53       ` Denis CIOCCA
2019-07-18 22:53 ` [PATCH v2 11/11] iio: make st_sensors drivers use regmap Denis Ciocca
2019-07-21 18:05   ` Jonathan Cameron
2019-07-22 19:53     ` Denis CIOCCA

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=20190718225353.2078-8-denis.ciocca@st.com \
    --to=denis.ciocca@st.com \
    --cc=jic23@kernel.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.