devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Cory Tusar <cory.tusar@pid1solutions.com>
To: robh+dt@kernel.org, pawel.moll@arm.com, mark.rutland@arm.com,
	ijc+devicetree@hellion.org.uk, galak@codeaurora.org,
	agust@denx.de, gregkh@linuxfoundation.org
Cc: jic23@kernel.org, vz@mleia.com, broonie@kernel.org, afd@ti.com,
	andrew@lunn.ch, Chris.Healy@zii.aero, Keith.Vennel@zii.aero,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	Cory Tusar <cory.tusar@pid1solutions.com>
Subject: [PATCH v2 5/5] misc: eeprom_93xx46: Add support for a GPIO 'select' line.
Date: Wed, 18 Nov 2015 22:29:41 -0500	[thread overview]
Message-ID: <1447903781-3910-6-git-send-email-cory.tusar@pid1solutions.com> (raw)
In-Reply-To: <1447903781-3910-1-git-send-email-cory.tusar@pid1solutions.com>

This commit adds support to the eeprom_93x46 driver allowing a GPIO line
to function as a 'select' or 'enable' signal prior to accessing the
EEPROM.

Signed-off-by: Cory Tusar <cory.tusar@pid1solutions.com>
---
 drivers/misc/eeprom/eeprom_93xx46.c | 26 ++++++++++++++++++++++++++
 include/linux/eeprom_93xx46.h       |  1 +
 2 files changed, 27 insertions(+)

diff --git a/drivers/misc/eeprom/eeprom_93xx46.c b/drivers/misc/eeprom/eeprom_93xx46.c
index 0386b03..375951f 100644
--- a/drivers/misc/eeprom/eeprom_93xx46.c
+++ b/drivers/misc/eeprom/eeprom_93xx46.c
@@ -10,11 +10,14 @@
 
 #include <linux/delay.h>
 #include <linux/device.h>
+#include <linux/gpio.h>
+#include <linux/gpio/consumer.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/mutex.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
+#include <linux/of_gpio.h>
 #include <linux/slab.h>
 #include <linux/spi/spi.h>
 #include <linux/sysfs.h>
@@ -344,6 +347,20 @@ static ssize_t eeprom_93xx46_store_erase(struct device *dev,
 static DEVICE_ATTR(erase, S_IWUSR, NULL, eeprom_93xx46_store_erase);
 
 #ifdef CONFIG_OF
+static void select_assert(void *context)
+{
+	struct eeprom_93xx46_dev *edev = context;
+
+	gpiod_set_value_cansleep(gpio_to_desc(edev->pdata->select_gpio), 1);
+}
+
+static void select_deassert(void *context)
+{
+	struct eeprom_93xx46_dev *edev = context;
+
+	gpiod_set_value_cansleep(gpio_to_desc(edev->pdata->select_gpio), 0);
+}
+
 static const struct of_device_id eeprom_93xx46_of_table[] = {
 	{ .compatible = "eeprom-93xx46", },
 	{ .compatible = "atmel,at93c46d", .data = &atmel_at93c46d_data, },
@@ -385,6 +402,15 @@ static int eeprom_93xx46_probe_dt(struct spi_device *spi)
 	if (of_property_read_bool(np, "read-only"))
 		pd->flags |= EE_READONLY;
 
+	ret = of_get_named_gpio(np, "select-gpios", 0);
+	if (ret < 0) {
+		pd->select_gpio = -1;
+	} else {
+		pd->select_gpio = ret;
+		pd->prepare = select_assert;
+		pd->finish = select_deassert;
+	}
+
 	if (of_id->data) {
 		const struct eeprom_93xx46_devtype_data *data = of_id->data;
 
diff --git a/include/linux/eeprom_93xx46.h b/include/linux/eeprom_93xx46.h
index 92fa4c3..aa472c7 100644
--- a/include/linux/eeprom_93xx46.h
+++ b/include/linux/eeprom_93xx46.h
@@ -21,4 +21,5 @@ struct eeprom_93xx46_platform_data {
 	 */
 	void (*prepare)(void *);
 	void (*finish)(void *);
+	unsigned int select_gpio;
 };
-- 
2.4.10

  parent reply	other threads:[~2015-11-19  3:29 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-19  3:29 [PATCH v2 0/5] Devicetree support for misc/eeprom/eeprom_93xx46 Cory Tusar
2015-11-19  3:29 ` [PATCH v2 1/5] misc: eeprom_93xx46: Fix 16-bit read and write accesses Cory Tusar
     [not found] ` <1447903781-3910-1-git-send-email-cory.tusar-J6Z/VSE8EyIAspv4Qr0y0gC/G2K4zDHf@public.gmane.org>
2015-11-19  3:29   ` [PATCH v2 2/5] Documentation: devicetree: Add DT bindings to eeprom_93xx46 driver Cory Tusar
2015-11-19 14:59     ` Rob Herring
2015-11-19 17:30       ` Cory Tusar
2015-11-19  3:29 ` [PATCH v2 3/5] misc: eeprom_93xx46: Implement eeprom_93xx46 DT bindings Cory Tusar
2015-11-19  5:50   ` Vladimir Zapolskiy
     [not found]     ` <564D632D.8020107-ChpfBGZJDbMAvxtiuMwx3w@public.gmane.org>
2015-11-19 14:00       ` Andrew F. Davis
     [not found]         ` <564DD5E7.6080700-l0cyMroinI0@public.gmane.org>
2015-11-19 16:14           ` Vladimir Zapolskiy
2015-11-21  4:53         ` Cory Tusar
2015-11-21  4:40     ` Cory Tusar
     [not found]       ` <564FF5C5.2070107-J6Z/VSE8EyIAspv4Qr0y0gC/G2K4zDHf@public.gmane.org>
2015-11-21 18:36         ` Vladimir Zapolskiy
     [not found]           ` <5650B999.8010905-ChpfBGZJDbMAvxtiuMwx3w@public.gmane.org>
2015-11-23 18:24             ` Cory Tusar
2015-11-19  3:29 ` [PATCH v2 4/5] misc: eeprom_93xx46: Add quirks to support Atmel AT93C46D device Cory Tusar
     [not found]   ` <1447903781-3910-5-git-send-email-cory.tusar-J6Z/VSE8EyIAspv4Qr0y0gC/G2K4zDHf@public.gmane.org>
2015-11-19  5:59     ` Vladimir Zapolskiy
     [not found]       ` <564D654C.1080803-ChpfBGZJDbMAvxtiuMwx3w@public.gmane.org>
2015-11-23 17:44         ` Cory Tusar
2015-11-19  3:29 ` Cory Tusar [this message]
2015-11-19  6:05   ` [PATCH v2 5/5] misc: eeprom_93xx46: Add support for a GPIO 'select' line Vladimir Zapolskiy
     [not found]     ` <564D66BF.5010601-ChpfBGZJDbMAvxtiuMwx3w@public.gmane.org>
2015-11-19 14:18       ` Andrew Lunn
     [not found]         ` <20151119141810.GA30828-g2DYL2Zd6BY@public.gmane.org>
2015-11-19 16:52           ` Vladimir Zapolskiy
     [not found]             ` <564DFE69.6000203-ChpfBGZJDbMAvxtiuMwx3w@public.gmane.org>
2015-11-19 17:15               ` Andrew Lunn
2015-11-25  4:53     ` Cory Tusar

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=1447903781-3910-6-git-send-email-cory.tusar@pid1solutions.com \
    --to=cory.tusar@pid1solutions.com \
    --cc=Chris.Healy@zii.aero \
    --cc=Keith.Vennel@zii.aero \
    --cc=afd@ti.com \
    --cc=agust@denx.de \
    --cc=andrew@lunn.ch \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=galak@codeaurora.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=jic23@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=pawel.moll@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=vz@mleia.com \
    /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;
as well as URLs for NNTP newsgroup(s).