linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
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

  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).