From: Maxime Ripard <maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
To: lis8215-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Cc: linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org,
thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
mark.rutland-5wv7dgnIgG8@public.gmane.org,
wens-jdAy2FN1RRM@public.gmane.org,
linux-pwm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH v4 1/9] pwm: sunxi: Use regmap API for register access.
Date: Mon, 27 Feb 2017 10:17:18 +0100 [thread overview]
Message-ID: <20170227091718.nzjfk67osgntrrd2@lukather> (raw)
In-Reply-To: <1487914876-8594-2-git-send-email-lis8215-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 2834 bytes --]
Hi Siarhei,
On Fri, Feb 24, 2017 at 08:41:08AM +0300, lis8215-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote:
> From: Siarhei Volkau <lis8215-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>
> The patch replaces iomem register access routines to regmap
> equivalents.
>
> Signed-off-by: Siarhei Volkau <lis8215-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> ---
> drivers/pwm/Kconfig | 2 +-
> drivers/pwm/pwm-sun4i.c | 143 ++++++++++++++++++++++++++++++++++++------------
> 2 files changed, 110 insertions(+), 35 deletions(-)
>
> diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig
> index 2d0cfaa..6b4dc1a 100644
> --- a/drivers/pwm/Kconfig
> +++ b/drivers/pwm/Kconfig
> @@ -416,7 +416,7 @@ config PWM_STMPE
> config PWM_SUN4I
> tristate "Allwinner PWM support"
> depends on ARCH_SUNXI || COMPILE_TEST
> - depends on HAS_IOMEM && COMMON_CLK
> + depends on REGMAP_MMIO && COMMON_CLK
> help
> Generic PWM framework driver for Allwinner SoCs.
>
> diff --git a/drivers/pwm/pwm-sun4i.c b/drivers/pwm/pwm-sun4i.c
> index b0803f6..5565f03 100644
> --- a/drivers/pwm/pwm-sun4i.c
> +++ b/drivers/pwm/pwm-sun4i.c
> @@ -9,7 +9,7 @@
> #include <linux/bitops.h>
> #include <linux/clk.h>
> #include <linux/err.h>
> -#include <linux/io.h>
> +#include <linux/regmap.h>
> #include <linux/module.h>
> #include <linux/of.h>
> #include <linux/of_device.h>
> @@ -74,7 +74,7 @@ struct sun4i_pwm_data {
> struct sun4i_pwm_chip {
> struct pwm_chip chip;
> struct clk *clk;
> - void __iomem *base;
> + struct regmap *regmap;
> spinlock_t ctrl_lock;
> const struct sun4i_pwm_data *data;
> };
> @@ -84,18 +84,6 @@ static inline struct sun4i_pwm_chip *to_sun4i_pwm_chip(struct pwm_chip *chip)
> return container_of(chip, struct sun4i_pwm_chip, chip);
> }
>
> -static inline u32 sun4i_pwm_readl(struct sun4i_pwm_chip *chip,
> - unsigned long offset)
> -{
> - return readl(chip->base + offset);
> -}
> -
> -static inline void sun4i_pwm_writel(struct sun4i_pwm_chip *chip,
> - u32 val, unsigned long offset)
> -{
> - writel(val, chip->base + offset);
> -}
> -
> static int sun4i_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,
> int duty_ns, int period_ns)
> {
> @@ -152,7 +140,11 @@ static int sun4i_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,
> }
>
> spin_lock(&sun4i_pwm->ctrl_lock);
> - val = sun4i_pwm_readl(sun4i_pwm, PWM_CTRL_REG);
> + err = regmap_read(sun4i_pwm->regmap, PWM_CTRL_REG, &val);
> + if (err) {
> + dev_err(chip->dev, "failed to read from CTL register\n");
> + goto err_cleanup;
> + }
I'm not sure you need those error checks. If there's an error when you
write to an MMIO bus, you have much more important issues than your
return code there.
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
next prev parent reply other threads:[~2017-02-27 9:17 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-24 5:41 [PATCH v4 0/9] Add the Allwinner A31/A31s PWM driver lis8215-Re5JQEeQqe8AvxtiuMwx3w
2017-02-24 5:41 ` [PATCH v4 1/9] pwm: sunxi: Use regmap API for register access lis8215
[not found] ` <1487914876-8594-2-git-send-email-lis8215-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-02-27 9:17 ` Maxime Ripard [this message]
2017-02-27 11:22 ` Siarhei Volkau
[not found] ` <CAKNVLfYLfiTKu1CWcR5JiYepgfy-AO4CZ6ZKLaijmj+rmpxWAg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-02-28 15:53 ` Maxime Ripard
2017-02-24 5:41 ` [PATCH v4 3/9] pwm: sunxi: Selectable prescaler table lis8215
[not found] ` <1487914876-8594-4-git-send-email-lis8215-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-02-27 9:28 ` Maxime Ripard
[not found] ` <1487914876-8594-1-git-send-email-lis8215-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-02-24 5:41 ` [PATCH v4 2/9] pwm: sunxi: Use regmap fields for bit operations lis8215-Re5JQEeQqe8AvxtiuMwx3w
[not found] ` <1487914876-8594-3-git-send-email-lis8215-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-02-27 9:28 ` Maxime Ripard
2017-02-27 11:41 ` Siarhei Volkau
[not found] ` <CAKNVLfYVfMDDeBB0cOb-_d5EytCWG8DDssnUH573_yOfJdJ8uA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-02-28 15:56 ` Maxime Ripard
2017-02-24 5:41 ` [PATCH v4 4/9] pwm: sunxi: Customizable control and period register position lis8215-Re5JQEeQqe8AvxtiuMwx3w
[not found] ` <1487914876-8594-5-git-send-email-lis8215-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-02-27 9:30 ` Maxime Ripard
2017-02-27 12:35 ` Siarhei Volkau
[not found] ` <CAKNVLfa6NgRBSVZgOb5yp31Eq8nZYRSKQzgUzoXL5_QFfYVjeQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-02-28 15:48 ` Maxime Ripard
2017-02-24 5:41 ` [PATCH v4 5/9] pwm: sunxi: Customizable regmap fields and enable bit mask lis8215-Re5JQEeQqe8AvxtiuMwx3w
2017-02-24 5:41 ` [PATCH v4 6/9] pwm: sunxi: Increase max number of pwm channels lis8215-Re5JQEeQqe8AvxtiuMwx3w
2017-02-24 5:41 ` [PATCH v4 7/9] pwm: sunxi: Add support the Allwinner A31 PWM lis8215-Re5JQEeQqe8AvxtiuMwx3w
2017-02-24 5:41 ` [PATCH v4 9/9] ARM: dts: sun6i: Add the PWM block to the A31/A31s lis8215-Re5JQEeQqe8AvxtiuMwx3w
2017-02-24 5:41 ` [PATCH v4 8/9] pwm: sunxi: Code cleanup lis8215
[not found] ` <1487914876-8594-9-git-send-email-lis8215-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-02-27 9:32 ` Maxime Ripard
2017-02-27 13:21 ` Siarhei Volkau
2017-02-28 15:49 ` Maxime Ripard
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=20170227091718.nzjfk67osgntrrd2@lukather \
--to=maxime.ripard-wi1+55scjutkeb57/3fjtnbpr1lh4cv8@public.gmane.org \
--cc=linux-pwm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
--cc=lis8215-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=wens-jdAy2FN1RRM@public.gmane.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