From: sboyd@codeaurora.org (Stephen Boyd)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 4/7] mfd: ssbi: Add regmap read/write helpers
Date: Wed, 08 Jan 2014 18:24:16 -0800 [thread overview]
Message-ID: <52CE0850.4010206@codeaurora.org> (raw)
In-Reply-To: <20140109011327.GC23276@sonymobile.com>
On 01/08/14 17:13, Courtney Cavin wrote:
> On Wed, Jan 08, 2014 at 07:37:47PM +0100, Stephen Boyd wrote:
>> --- a/include/linux/ssbi.h
>> +++ b/include/linux/ssbi.h
>> @@ -20,4 +20,17 @@
>> int ssbi_write(struct device *dev, u16 addr, const u8 *buf, int len);
>> int ssbi_read(struct device *dev, u16 addr, u8 *buf, int len);
>>
>> +static inline int
>> +ssbi_reg_read(void *context, unsigned int reg, unsigned int *val)
>> +{
>> + *val = 0;
>> + return ssbi_read(context, reg, (u8 *)val, 1);
>> +}
>> +
>> +static inline int
>> +ssbi_reg_write(void *context, unsigned int reg, unsigned int val)
>> +{
>> + return ssbi_write(context, reg, (u8 *)&val, 1);
>> +}
> These functions are endian specific and just generally ugly. I
> understand that these functions may make the ssbi regmap code cleaner,
> but that's not really a good excuse for functions which by themselves
> look horribly broken.
>
> If these are really needed, perhaps something like the following would
> be acceptable?
>
> +static inline int
> +ssbi_reg_read(void *context, unsigned int reg, unsigned int *val)
> +{
> + int rc;
> + u8 b;
> + rc = ssbi_read(context, reg, &b, 1);
> + if (rc == 1)
> + *val = b;
> + return rc;
> +}
> +
> +static inline int
> +ssbi_reg_write(void *context, unsigned int reg, unsigned int val)
> +{
> + u8 b = val;
> + return ssbi_write(context, reg, &b, 1);
> +}
Sure. I think you meant to check for a 0 return value from ssbi_read
though? Lee can you use this replacement patch please?
---8<---
From: Stephen Boyd <sboyd@codeaurora.org>
Subject: [PATCH] mfd: ssbi: Add regmap read/write helpers
Add read and write helper functions that the pm8921-core driver
can use to read and write ssbi regsiters via a "no-bus" regmap.
Cc: Mark Brown <broonie@kernel.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
---
include/linux/ssbi.h | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/include/linux/ssbi.h b/include/linux/ssbi.h
index bcbb642a7641..087b08a4d333 100644
--- a/include/linux/ssbi.h
+++ b/include/linux/ssbi.h
@@ -20,4 +20,24 @@
int ssbi_write(struct device *dev, u16 addr, const u8 *buf, int len);
int ssbi_read(struct device *dev, u16 addr, u8 *buf, int len);
+static inline int
+ssbi_reg_read(void *context, unsigned int reg, unsigned int *val)
+{
+ int ret;
+ u8 v;
+
+ ret = ssbi_read(context, reg, &v, 1);
+ if (!ret)
+ *val = v;
+
+ return ret;
+}
+
+static inline int
+ssbi_reg_write(void *context, unsigned int reg, unsigned int val)
+{
+ u8 v = val;
+ return ssbi_write(context, reg, &v, 1);
+}
+
#endif
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
next prev parent reply other threads:[~2014-01-09 2:24 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-08 18:37 [PATCH v3 0/7] Modernize pm8921 with irqdomains, regmap, DT Stephen Boyd
2014-01-08 18:37 ` [PATCH v3 1/7] mfd: Move pm8xxx-irq.c contents into only driver that uses it Stephen Boyd
2014-01-08 18:37 ` [PATCH v3 2/7] mfd: pm8921: Update for genirq changes Stephen Boyd
2014-01-08 18:37 ` [PATCH v3 3/7] mfd: pm8921: Migrate to irqdomains Stephen Boyd
2014-01-08 21:36 ` Lee Jones
2014-01-08 18:37 ` [PATCH v3 4/7] mfd: ssbi: Add regmap read/write helpers Stephen Boyd
2014-01-09 1:13 ` Courtney Cavin
2014-01-09 2:24 ` Stephen Boyd [this message]
2014-01-08 18:37 ` [PATCH v3 5/7] mfd: pm8921: Use ssbi regmap Stephen Boyd
2014-01-08 18:37 ` [PATCH v3 6/7] mfd: pm8921: Add DT match table Stephen Boyd
2014-01-08 18:37 ` [PATCH v3 7/7] devicetree: bindings: Document PM8921/8058 PMICs Stephen Boyd
2014-01-08 21:38 ` Lee Jones
2014-02-11 9:29 ` Lee Jones
2014-02-13 5:38 ` Stephen Boyd
2014-02-13 11:06 ` Lee Jones
2014-02-18 18:44 ` Stephen Boyd
2014-02-11 6:35 ` [PATCH v3 0/7] Modernize pm8921 with irqdomains, regmap, DT Stephen Boyd
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=52CE0850.4010206@codeaurora.org \
--to=sboyd@codeaurora.org \
--cc=linux-arm-kernel@lists.infradead.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).