From: Manuel Lauss <manuel.lauss@googlemail.com>
To: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: linux-input@vger.kernel.org
Subject: WM9712 GPIO
Date: Wed, 12 May 2010 13:47:12 +0200 [thread overview]
Message-ID: <AANLkTikXR3vlUg-XX33LCrAiVxk0nJWNe__7SU7g1DuF@mail.gmail.com> (raw)
Hi Mark,
I'm playing with the GPIO interface on a WM9712G, specifically GPIO1
and 2 of the chip.
However I'm unable to get the chip to toggle any of these pins.
Setup is:
[...]
wm97xx_config_gpio(wm, WM97XX_GPIO_1, WM97XX_GPIO_OUT,
WM97XX_GPIO_POL_HIGH, WM97XX_GPIO_NOTSTICKY,
WM97XX_GPIO_NOWAKE);
wm97xx_config_gpio(wm, WM97XX_GPIO_2, WM97XX_GPIO_OUT,
WM97XX_GPIO_POL_HIGH, WM97XX_GPIO_NOTSTICKY,
WM97XX_GPIO_NOWAKE);
mutex_lock(&wm->codec_mutex);
reg = wm97xx_reg_read(wm, 0x56);
if (reg == -1)
printk(KERN_ERR "WM97XX: register 0x56 rd fail\n");
reg |= (1 << 2); /* GPIO2 to GPIO logic */
wm97xx_reg_write(wm, 0x56, reg);
mutex_unlock(&wm->codec_mutex);
[...]
Setting a pin with
wm97xx_set_gpio(wm, WM97XX_GPIO_1, WM97XX_GPIO_HIGH);
reads back 0x0820 from GPIO status reg, sets bit 1,writes back 0x1044 (<<1),
but a read following immediately after yields 0x0820 again, and the pin
never changes.
Am I missing something?
Also I need this patch to get wm97xx_set_gpio() to actually set a bit in the
gpio register:
--- a/drivers/input/touchscreen/wm97xx-core.c
+++ b/drivers/input/touchscreen/wm97xx-core.c
@@ -200,7 +200,7 @@ void wm97xx_set_gpio(struct wm97xx *wm, u32 gpio,
mutex_lock(&wm->codec_mutex);
reg = wm97xx_reg_read(wm, AC97_GPIO_STATUS);
- if (status & WM97XX_GPIO_HIGH)
+ if (status == WM97XX_GPIO_HIGH)
reg |= gpio;
else
reg &= ~gpio;
Thanks!
Manuel Lauss
next reply other threads:[~2010-05-12 11:47 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-12 11:47 Manuel Lauss [this message]
2010-05-12 12:30 ` WM9712 GPIO Mark Brown
2010-05-12 12:50 ` Manuel Lauss
2010-05-12 12:52 ` Mark Brown
2010-05-12 12:54 ` Manuel Lauss
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=AANLkTikXR3vlUg-XX33LCrAiVxk0nJWNe__7SU7g1DuF@mail.gmail.com \
--to=manuel.lauss@googlemail.com \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=linux-input@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 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).