mux: mmio: use reg property when parent device is not a syscon
PATCH v4 1/1 mux: mmio: use reg property when parent device is not a syscon
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 reg property is provided, use that to identify the address space for this mux. If not provided fallback to using the parent device as a regmap provider.
While here use dev_err_probe() in the error path to prevent printing a message on probe defer which now can happen in extra ways.
---
Changes from v3:
- Check for probe defer
Changes from v2:
- Rebased on v6.6-rc1
Changes from v1:
- Flip logic as suggested in v1[0]
[0] https://lore.kernel.org/lkml/[email protected]/T/
drivers/mux/mmio.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)
drivers/mux/mmio.c +8 -5
@@ -44,14 +44,17 @@ 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 =device_node_to_regmap (np); +/* Fallback to checking the parent node on any error other than probe defer */ +if (IS_ERR (regmap) && regmap !=ERR_PTR (-EPROBE_DEFER )) + regmap =dev_get_regmap (dev->parent,NULL ) ?:ERR_PTR (-ENODEV ); + }if (IS_ERR (regmap)) { ret =PTR_ERR (regmap); -dev_err (dev,"failed to get regmap: %d\n" , ret); -return ret; +return dev_err_probe (dev, ret,"failed to get regmap\n" ); } ret =of_property_count_u32_elems (np,"mux-reg-masks" );
Signature · 1 line
2.39.2
Hi!
Quoted 35 lines · Andrew Davis
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 reg property is provided, use that to identify the address space for this mux. If not provided fallback to using the parent device as a regmap provider.
While here use
dev_err_probe()in the error path to prevent printing a message on probe defer which now can happen in extra ways.Signed-off-by Andrew Davis <[email protected]>Reviewed-by Nishanth Menon <[email protected]>---
Changes from v3:
- Check for probe deferChanges from v2:
- Rebased on v6.6-rc1Changes from v1:
- Flip logic as suggested in v1[0][0] https://lore.kernel.org/lkml/[email protected]/T/
drivers/mux/mmio.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)drivers/mux/mmio.c +0
-0@@ -44,14 +44,17 @@ static int mux_mmio_probe(struct platform_device *pdev)int ret;int i;
drivers/mux/mmio.c static int mux_mmio_probe(struct platform_device *pdev) · line 53
Quoted 10 lines
drivers/mux/mmio.c +6
-3-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 =device_node_to_regmap (np); +/* Fallback to checking the parent node on any error other than probe defer */ +if (IS_ERR (regmap) && regmap !=ERR_PTR (-EPROBE_DEFER )) + regmap =dev_get_regmap (dev->parent,NULL ) ?:ERR_PTR (-ENODEV );
I'm not too fond of overly long lines, and the coding style document agrees with me. Also, please end comments with a period.
/* Fallback to checking the parent node on "real" errors. */
if (IS_ERR(regmap) && regmap != ERR_PTR(-EPROBE_DEFER)) {
regmap = dev_get_regmap(dev->parent, NULL);
if (!regmap)
regmap = ERR_PTR(-ENODEV);
}drivers/mux/mmio.c static int mux_mmio_probe(struct platform_device *pdev) · line 58
Quoted 7 lines
drivers/mux/mmio.c +2
-2+ }if (IS_ERR (regmap)) { ret =PTR_ERR (regmap); -dev_err (dev,"failed to get regmap: %d\n" , ret); -return ret; +return dev_err_probe (dev, ret,"failed to get regmap\n" ); }
Now that you use dev_err_probe(), please drop the pointless ret assignment:
if (IS_ERR(regmap))
return dev_err_probe(dev, PTR_ERR(regmap), "failed to get regmap\n");
With those changes, you can add "Acked-by: Peter Rosin <[email protected]>", so that Greg can pick it up.
Cheers,
Peter
Quoted 2 lines
drivers/mux/mmio.c +0
-0ret =of_property_count_u32_elems (np,"mux-reg-masks" );