[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <21429720-e27f-bf26-64e7-ace1186da31b@linaro.org>
Date: Tue, 16 May 2023 20:37:25 +0200
From: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
To: Andrew Davis <afd@...com>, Peter Rosin <peda@...ntia.se>,
Rob Herring <robh+dt@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Nishanth Menon <nm@...com>,
Vignesh Raghavendra <vigneshr@...com>
Cc: devicetree@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] mux: mmio: use reg property when parent device is not a
syscon
On 15/05/2023 21:19, Andrew Davis wrote:
> The DT binding for the reg-mux compatible states it can be used when the
> "parent device of mux controller is not syscon device". It also allows
> for a reg property. When the parent device is indeed not a syscon device,
> nor is it a regmap provider, we should fallback to using that reg
> property to identify the address space to use for this mux.
>
> Signed-off-by: Andrew Davis <afd@...com>
> ---
> drivers/mux/mmio.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mux/mmio.c b/drivers/mux/mmio.c
> index 44a7a0e885b8..42e00b9fd0a9 100644
> --- a/drivers/mux/mmio.c
> +++ b/drivers/mux/mmio.c
> @@ -44,10 +44,13 @@ static int mux_mmio_probe(struct platform_device *pdev)
> int ret;
> int i;
>
> - if (of_device_is_compatible(np, "mmio-mux"))
> + if (of_device_is_compatible(np, "mmio-mux")) {
> regmap = syscon_node_to_regmap(np->parent);
> - else
> - regmap = dev_get_regmap(dev->parent, NULL) ?: ERR_PTR(-ENODEV);
> + } else {
> + regmap = dev_get_regmap(dev->parent, NULL);
> + if (!regmap)
> + regmap = device_node_to_regmap(np) ?: ERR_PTR(-ENODEV);
Unless I miss something obvious, the original code is simply bogus and
wrong. I would like to give here Rb tag... but maybe I miss something
obvious. Why mux cannot be a device with MMIO itself? Binding allows it
which would be perfectly proper description of hardware.
Best regards,
Krzysztof
Powered by blists - more mailing lists