From: Daniel Mack <zonque@gmail.com>
To: alsa-devel@alsa-project.org
Cc: Timur Tabi <timur@freescale.com>,
broonie@opensource.wolfsonmicro.com, lrg@ti.com,
Daniel Mack <zonque@gmail.com>
Subject: [PATCH 2/2] ALSA: ASoC: Add reset-gpio DT property to cs4270 driver
Date: Tue, 24 Jul 2012 22:20:48 +0200 [thread overview]
Message-ID: <1343161248-27557-2-git-send-email-zonque@gmail.com> (raw)
In-Reply-To: <1343161248-27557-1-git-send-email-zonque@gmail.com>
In the process of moving over from static board files to the device
tree, reset pins of peripheral reset pins should be handled by their
corresponding drivers.
Add a reset-gpio DT property to the cs4270 driver, and de-assert it
before probing the chip. The logic could be augmented some day to
re-assert it when codec is put to suspend.
Signed-off-by: Daniel Mack <zonque@gmail.com>
Cc: Timur Tabi <timur@freescale.com>
---
Documentation/devicetree/bindings/sound/cs4270.txt | 5 +++++
sound/soc/codecs/cs4270.c | 16 ++++++++++++++++
2 files changed, 21 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/cs4270.txt b/Documentation/devicetree/bindings/sound/cs4270.txt
index 7f0bfd8..6b222f9 100644
--- a/Documentation/devicetree/bindings/sound/cs4270.txt
+++ b/Documentation/devicetree/bindings/sound/cs4270.txt
@@ -8,6 +8,11 @@ Required properties:
- reg : the I2C address of the device for I2C
+Optional properties:
+
+ - reset-gpio : a GPIO spec for the reset pin. If specified, it will be
+ deasserted before communication to the codec starts.
+
Example:
codec: cs4270@48 {
diff --git a/sound/soc/codecs/cs4270.c b/sound/soc/codecs/cs4270.c
index 4b71b01..7d206be 100644
--- a/sound/soc/codecs/cs4270.c
+++ b/sound/soc/codecs/cs4270.c
@@ -30,6 +30,7 @@
#include <linux/delay.h>
#include <linux/regulator/consumer.h>
#include <linux/of_device.h>
+#include <linux/of_gpio.h>
/*
* The codec isn't really big-endian or little-endian, since the I2S
@@ -660,9 +661,24 @@ MODULE_DEVICE_TABLE(of, cs4270_of_match);
static int cs4270_i2c_probe(struct i2c_client *i2c_client,
const struct i2c_device_id *id)
{
+ struct device_node *np = i2c_client->dev.of_node;
struct cs4270_private *cs4270;
int ret;
+ /* See if we way to bring the codec out of reset */
+ if (np) {
+ enum of_gpio_flags reset_gpio_flags;
+ int reset_gpio = of_get_named_gpio_flags(np, "reset-gpio", 0,
+ &reset_gpio_flags);
+
+ if (devm_gpio_request_one(&i2c_client->dev, reset_gpio,
+ reset_gpio_flags & OF_GPIO_ACTIVE_LOW ?
+ GPIOF_OUT_INIT_LOW : GPIOF_OUT_INIT_HIGH,
+ "cs4270 reset") < 0) {
+ reset_gpio = -EINVAL;
+ }
+ }
+
/* Verify that we have a CS4270 */
ret = i2c_smbus_read_byte_data(i2c_client, CS4270_CHIPID);
--
1.7.10.4
next prev parent reply other threads:[~2012-07-24 20:20 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-24 20:20 [PATCH 1/2] ALSA: ASoC: add DT bindings for cs4270 Daniel Mack
2012-07-24 20:20 ` Daniel Mack [this message]
2012-07-24 20:22 ` Timur Tabi
2012-07-24 20:26 ` Daniel Mack
2012-07-24 20:30 ` Timur Tabi
2012-07-24 20:32 ` Daniel Mack
2012-07-24 20:39 ` Timur Tabi
2012-07-24 20:53 ` Daniel Mack
2012-07-24 21:01 ` Timur Tabi
2012-07-25 6:19 ` Daniel Mack
2012-07-24 22:01 ` Stephen Warren
2012-07-24 22:02 ` Timur Tabi
2012-07-24 22:42 ` Mark Brown
2012-07-24 22:41 ` Mark Brown
2012-07-24 22:00 ` Stephen Warren
2012-07-24 22:03 ` Timur Tabi
2012-07-24 22:44 ` Mark Brown
2012-07-25 6:12 ` Daniel Mack
2012-07-25 7:03 ` [PATCH 2/2 v2] ALSA: ASoC: Add reset-gpio DT property to cs4270 driver Daniel Mack
2012-07-25 13:18 ` Mark Brown
2012-07-25 13:22 ` Daniel Mack
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=1343161248-27557-2-git-send-email-zonque@gmail.com \
--to=zonque@gmail.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=lrg@ti.com \
--cc=timur@freescale.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 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.