From: Marek Belisko <marek@goldelico.com>
To: arnd@arndb.de, gregkh@linuxfoundation.org
Cc: neilb@suse.de, hns@goldelico.com, rob.herring@calxeda.com,
pawel.moll@arm.com, mark.rutland@arm.com, swarren@wwwdotorg.org,
ijc+devicetree@hellion.org.uk, rob@landley.net,
devicetree@vger.kernel.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, Marek Belisko <marek@goldelico.com>
Subject: [PATCH 3/3] misc: bmp085: Add missing platform data.
Date: Thu, 14 Nov 2013 22:46:49 +0100 [thread overview]
Message-ID: <1384465609-26485-4-git-send-email-marek@goldelico.com> (raw)
In-Reply-To: <1384465609-26485-1-git-send-email-marek@goldelico.com>
DT bindings contains more parameters to set so add them to platform data also
to have possibility to use on arch where DT isn't available yet.
Signed-off-by: Marek Belisko <marek@goldelico.com>
---
drivers/misc/bmp085.c | 21 +++++++++++++++++----
include/linux/i2c/bmp085.h | 7 +++++++
2 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/drivers/misc/bmp085.c b/drivers/misc/bmp085.c
index 9792ce2..530b4a1 100644
--- a/drivers/misc/bmp085.c
+++ b/drivers/misc/bmp085.c
@@ -408,13 +408,15 @@ static void bmp085_get_of_properties(struct bmp085_data *data,
return;
if (!of_property_read_u32(np, "chip-id", &prop))
- data->chip_id = prop & 0xff;
+ pdata->chip_id = prop & 0xff;
if (!of_property_read_u32(np, "temp-measurement-period", &prop))
- data->temp_measurement_period = (prop/100)*HZ;
+ pdata->temp_measurement_period = (prop/100)*HZ;
if (!of_property_read_u32(np, "default-oversampling", &prop))
- data->oversampling_setting = prop & 0xff;
+ pdata->default_oversampling = prop & 0xff;
+ else
+ pdata->default_oversampling = -1;
pdata->gpio = of_get_named_gpio(np, "gpio", 0);
of_property_read_u32(np, "irq", &pdata->irq);
@@ -443,9 +445,20 @@ static int bmp085_init_client(struct device *dev, struct bmp085_data *data)
GFP_KERNEL);
if (!pdata)
return -ENOMEM;
+
+ bmp085_get_of_properties(data, pdata);
}
- bmp085_get_of_properties(data, pdata);
+ if (pdata->chip_id)
+ data->chip_id = pdata->chip_id;
+
+ if (pdata->temp_measurement_period > 0)
+ data->temp_measurement_period =
+ (pdata->temp_measurement_period/100)*HZ;
+
+ if (pdata->default_oversampling >= 0 &&
+ pdata->default_oversampling <= 3)
+ data->oversampling_setting = pdata->default_oversampling;
if (gpio_is_valid(pdata->gpio)) {
err = devm_gpio_request(dev, pdata->gpio, "bmp085_eoc_irq");
diff --git a/include/linux/i2c/bmp085.h b/include/linux/i2c/bmp085.h
index b66cb98..addb972 100644
--- a/include/linux/i2c/bmp085.h
+++ b/include/linux/i2c/bmp085.h
@@ -5,11 +5,18 @@
/*
* bmp085 platform data
+ * @chip_id: configurable chip id for non-default chip revisions
+ * @temp_measurement_period: in milliseconds
+ * @default_oversampling: used at startup, range is 0-3 with rising sensitivity
+ * set it to -1 when don't want to change default value (3)
* @gpio: if is set it is the End Of Conversion line which is high when
* conversion is finished
* @irq: if gpio < 0 and irq > 0, then it is an interrupt with no gpio
*/
struct bmp085_platform_data {
+ int chip_id;
+ int temp_measurement_period;
+ int default_oversampling;
int gpio;
int irq;
};
--
1.8.1.2
next prev parent reply other threads:[~2013-11-14 21:47 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-14 21:46 [PATCH 0/3] Add EOC handling for bmp085 + DT and platform data updates Marek Belisko
2013-11-14 21:46 ` [PATCH 1/3] misc: bmp085: Clean up and enable use of interrupt for completion Marek Belisko
2013-11-14 21:46 ` [PATCH 2/3] misc: bmp085: Add DT bindings for EOC gpio line and direct irq Marek Belisko
2013-11-15 13:56 ` Arnd Bergmann
2013-11-15 15:30 ` Mark Rutland
2013-11-15 18:47 ` Arnd Bergmann
2013-11-18 8:58 ` Belisko Marek
2013-11-18 11:38 ` Arnd Bergmann
2013-11-14 21:46 ` Marek Belisko [this message]
2013-11-15 13:58 ` [PATCH 3/3] misc: bmp085: Add missing platform data Arnd Bergmann
2013-11-16 8:23 ` Dr. H. Nikolaus Schaller
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=1384465609-26485-4-git-send-email-marek@goldelico.com \
--to=marek@goldelico.com \
--cc=arnd@arndb.de \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=hns@goldelico.com \
--cc=ijc+devicetree@hellion.org.uk \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=neilb@suse.de \
--cc=pawel.moll@arm.com \
--cc=rob.herring@calxeda.com \
--cc=rob@landley.net \
--cc=swarren@wwwdotorg.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox