All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Rosin <peda@axentia.se>
To: Pankaj Bansal <pankaj.bansal@nxp.com>, Leo Li <leoyang.li@nxp.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v3 2/2] drivers: mux: Add Generic regmap bitfield-based multiplexer in mmio-mux
Date: Mon, 25 Feb 2019 14:43:54 +0000	[thread overview]
Message-ID: <ea09336d-465f-aef1-ba7a-c80364a39f90@axentia.se> (raw)
In-Reply-To: <20190224135143.24770-2-pankaj.bansal@nxp.com>

On 2019-02-24 09:27, Pankaj Bansal wrote:
> Generic register bitfield-based multiplexer that controls the multiplexer
> producer defined under a parent node.
> The driver corresponding to parent node provides register read/write
> capabilities.
> 
> Signed-off-by: Pankaj Bansal <pankaj.bansal@nxp.com>
> ---
> 
> Notes:
>     V3:
>     - Added the patch in series with device tree binding patch
>     - Added the NULL return handling for regmap
>     V2:
>     - removed seperate driver regmap.c and added the regmap function in mmio.c
>       based on compatible field, the syscon or regmap function would be called
>     - Modified the KConfig as per Peter's comments
> 
>  drivers/mux/Kconfig | 12 ++++++------
>  drivers/mux/mmio.c  | 10 +++++++---
>  2 files changed, 13 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/mux/Kconfig b/drivers/mux/Kconfig
> index 7659d6c5f718..e5c571fd232c 100644
> --- a/drivers/mux/Kconfig
> +++ b/drivers/mux/Kconfig
> @@ -46,14 +46,14 @@ config MUX_GPIO
>  	  be called mux-gpio.
>  
>  config MUX_MMIO
> -	tristate "MMIO register bitfield-controlled Multiplexer"
> -	depends on (OF && MFD_SYSCON) || COMPILE_TEST
> +	tristate "MMIO/Regmap register bitfield-controlled Multiplexer"
> +	depends on OF || COMPILE_TEST
>  	help
> -	  MMIO register bitfield-controlled Multiplexer controller.
> +	  MMIO/Regmap register bitfield-controlled Multiplexer controller.
>  
> -	  The driver builds multiplexer controllers for bitfields in a syscon
> -	  register. For N bit wide bitfields, there will be 2^N possible
> -	  multiplexer states.
> +	  The driver builds multiplexer controllers for bitfields in either
> +	  a syscon register or a driver regmap register. For N bit wide
> +	  bitfields, there will be 2^N possible multiplexer states.
>  
>  	  To compile the driver as a module, choose M here: the module will
>  	  be called mux-mmio.
> diff --git a/drivers/mux/mmio.c b/drivers/mux/mmio.c
> index 935ac44aa209..cc02155e4644 100644
> --- a/drivers/mux/mmio.c
> +++ b/drivers/mux/mmio.c
> @@ -28,6 +28,7 @@ static const struct mux_control_ops mux_mmio_ops = {
>  
>  static const struct of_device_id mux_mmio_dt_ids[] = {
>  	{ .compatible = "mmio-mux", },
> +	{ .compatible = "reg-mux", },
>  	{ /* sentinel */ }
>  };
>  MODULE_DEVICE_TABLE(of, mux_mmio_dt_ids);
> @@ -43,9 +44,12 @@ static int mux_mmio_probe(struct platform_device *pdev)
>  	int ret;
>  	int i;
>  
> -	regmap = syscon_node_to_regmap(np->parent);
> -	if (IS_ERR(regmap)) {
> -		ret = PTR_ERR(regmap);
> +	if (of_device_is_compatible(np, "mmio-mux"))
> +		regmap = syscon_node_to_regmap(np->parent);
> +	else
> +		regmap = dev_get_regmap(dev->parent, NULL);
> +	if (IS_ERR_OR_NULL(regmap)) {
> +		ret = PTR_ERR_OR_ZERO(regmap) ? PTR_ERR(regmap) : -ENODEV;

The above is not correct, this should be better (untested):

		ret = PTR_ERR(regmap) ?: -ENODEV;

Cheers,
Peter

>  		dev_err(dev, "failed to get regmap: %d\n", ret);
>  		return ret;
>  	}
> 


  reply	other threads:[~2019-02-25 14:44 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-24  8:27 [PATCH v3 1/2] dt-bindings: add register based devices' mux controller DT bindings Pankaj Bansal
2019-02-24  8:27 ` [PATCH v3 2/2] drivers: mux: Add Generic regmap bitfield-based multiplexer in mmio-mux Pankaj Bansal
2019-02-25 14:43   ` Peter Rosin [this message]
2019-02-26  6:08     ` Pankaj Bansal
2019-02-26  8:20       ` Peter Rosin
2019-02-26 19:53 ` [PATCH v3 1/2] dt-bindings: add register based devices' mux controller DT bindings Rob Herring
2019-02-26 20:28   ` Li Yang
2019-02-26 22:00     ` Rob Herring
2019-02-27  8:30       ` Pankaj Bansal
2019-02-27  8:42         ` Peter Rosin
2019-02-27  8:46           ` Peter Rosin

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=ea09336d-465f-aef1-ba7a-c80364a39f90@axentia.se \
    --to=peda@axentia.se \
    --cc=leoyang.li@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pankaj.bansal@nxp.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.