From: Linus Walleij <linus.walleij@linaro.org>
To: Samuel Ortiz <sameo@linux.intel.com>,
Lee Jones <lee.jones@linaro.org>,
linux-kernel@vger.kernel.org
Cc: Silvio F <silvio.fricke@gmail.com>,
Philipp Zabel <p.zabel@pengutronix.de>,
Sascha Hauer <s.hauer@pengutronix.de>,
Shawn Guo <shawn.guo@linaro.org>,
Viresh Kumar <viresh.linux@gmail.com>,
Shiraz Hashim <shiraz.hashim@st.com>,
spear-devel@list.st.com, Linus Walleij <linus.walleij@linaro.org>
Subject: [PATCH 4/6] mfd: stmpe: mask off unused blocks properly
Date: Wed, 16 Apr 2014 16:44:13 +0200 [thread overview]
Message-ID: <1397659455-13638-5-git-send-email-linus.walleij@linaro.org> (raw)
In-Reply-To: <1397659455-13638-1-git-send-email-linus.walleij@linaro.org>
The STMPE driver would just read/modify/write the system control
register on the STMPE1601, meaning it would not properly mask off
the PWM block, which remained active if it was on at boot time.
This makes sure the blocks are always masked off if they were
active on boot, saving some power. Also rename the inconsistenty
named STMPE1601 define for the PWM block activation.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
drivers/mfd/stmpe.c | 9 +++++++++
drivers/mfd/stmpe.h | 2 +-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/drivers/mfd/stmpe.c b/drivers/mfd/stmpe.c
index 692452442ead..065c923cb2a9 100644
--- a/drivers/mfd/stmpe.c
+++ b/drivers/mfd/stmpe.c
@@ -606,9 +606,18 @@ static int stmpe1601_enable(struct stmpe *stmpe, unsigned int blocks,
if (blocks & STMPE_BLOCK_GPIO)
mask |= STMPE1601_SYS_CTRL_ENABLE_GPIO;
+ else
+ mask &= ~STMPE1601_SYS_CTRL_ENABLE_GPIO;
if (blocks & STMPE_BLOCK_KEYPAD)
mask |= STMPE1601_SYS_CTRL_ENABLE_KPC;
+ else
+ mask &= ~STMPE1601_SYS_CTRL_ENABLE_KPC;
+
+ if (blocks & STMPE_BLOCK_PWM)
+ mask |= STMPE1601_SYS_CTRL_ENABLE_SPWM;
+ else
+ mask &= ~STMPE1601_SYS_CTRL_ENABLE_SPWM;
return __stmpe_set_bits(stmpe, STMPE1601_REG_SYS_CTRL, mask,
enable ? mask : 0);
diff --git a/drivers/mfd/stmpe.h b/drivers/mfd/stmpe.h
index 6639f1b0fef5..9e4d21d37a11 100644
--- a/drivers/mfd/stmpe.h
+++ b/drivers/mfd/stmpe.h
@@ -192,7 +192,7 @@ int stmpe_remove(struct stmpe *stmpe);
#define STMPE1601_SYS_CTRL_ENABLE_GPIO (1 << 3)
#define STMPE1601_SYS_CTRL_ENABLE_KPC (1 << 1)
-#define STMPE1601_SYSCON_ENABLE_SPWM (1 << 0)
+#define STMPE1601_SYS_CTRL_ENABLE_SPWM (1 << 0)
/* The 1601/2403 share the same masks */
#define STMPE1601_AUTOSLEEP_TIMEOUT_MASK (0x7)
--
1.9.0
next prev parent reply other threads:[~2014-04-16 14:44 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-16 14:44 [PATCH 0/6] mfd/gpio: cleanup of STMPE driver Linus Walleij
2014-04-16 14:44 ` [PATCH 1/6] mfd: stmpe: root out static GPIO and IRQ assignments Linus Walleij
2014-04-17 10:49 ` Lee Jones
2014-04-23 11:39 ` Linus Walleij
2014-04-23 13:22 ` Lee Jones
2014-04-23 21:23 ` Linus Walleij
2014-04-28 9:25 ` Lee Jones
2014-04-16 14:44 ` [PATCH 2/6] mfd: stmpe: add optional regulators Linus Walleij
2014-04-17 10:30 ` Lee Jones
2014-04-23 8:38 ` Linus Walleij
2014-05-06 12:52 ` Shawn Guo
[not found] ` <CAF2Aj3gDTYvv+vqa3FPBVdgOLwqctH0bd+coN29TpR53jNYKhg@mail.gmail.com>
2014-05-08 21:15 ` Linus Walleij
2014-04-16 14:44 ` [PATCH 3/6] mfd: stmpe: prope properly from the device tree Linus Walleij
2014-04-17 10:44 ` Lee Jones
2014-04-23 8:52 ` Linus Walleij
2014-04-16 14:44 ` Linus Walleij [this message]
2014-04-17 10:52 ` [PATCH 4/6] mfd: stmpe: mask off unused blocks properly Lee Jones
2014-04-16 14:44 ` [PATCH 5/6] ARM: ux500: add VCC and VIO regulators to STMPE IC Linus Walleij
2014-04-16 14:44 ` [PATCH 6/6] gpio: stmpe: switch to use gpiolib irqchip helpers Linus Walleij
2014-04-17 6:11 ` [PATCH 0/6] mfd/gpio: cleanup of STMPE driver Shawn Guo
2014-04-17 13:28 ` Silvio Fricke
2014-04-19 5:07 ` Shawn Guo
2014-04-17 13:28 ` [PATCH] ARM: dts: imx6: edmqmx6: add vcc and vio power supplies to stmpe Silvio Fricke
2014-04-23 11:43 ` Linus Walleij
2014-05-10 6:10 ` Shawn Guo
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=1397659455-13638-5-git-send-email-linus.walleij@linaro.org \
--to=linus.walleij@linaro.org \
--cc=lee.jones@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=s.hauer@pengutronix.de \
--cc=sameo@linux.intel.com \
--cc=shawn.guo@linaro.org \
--cc=shiraz.hashim@st.com \
--cc=silvio.fricke@gmail.com \
--cc=spear-devel@list.st.com \
--cc=viresh.linux@gmail.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).