mux: mmio: use reg property when parent device is not a syscon
PATCH v2 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.
---
Changes from v1:
- Flip logic as suggested in v1[0]
[0] https://lore.kernel.org/lkml/[email protected]/T/
drivers/mux/mmio.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
drivers/mux/mmio.c +6 -3
@@ -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 =device_node_to_regmap (np); +if (IS_ERR (regmap)) + 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);
Signature · 1 line
2.39.2
Quoted 8 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.
Signed-off-by Andrew Davis <[email protected]>---
Ping, still needed and applies cleanly on v6.5-rc1.
Andrew
Quoted 30 lines
Changes from v1:
- Flip logic as suggested in v1[0][0] https://lore.kernel.org/lkml/[email protected]/T/
drivers/mux/mmio.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)drivers/mux/mmio.c +6
-3@@ -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 =device_node_to_regmap (np); +if (IS_ERR (regmap)) + 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);
Nishanth Menon
Reviewed-byQuoted 7 lines · Andrew Davis
Quoted 6 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.
Quoted 15 lines
Quoted 2 lines
Signed-off-by Andrew Davis <[email protected]>---
Ping, still needed and applies cleanly on v6.5-rc1.
Andrew
Quoted 8 lines
Changes from v1:
- Flip logic as suggested in v1[0][0] https://lore.kernel.org/lkml/[email protected]/T/
drivers/mux/mmio.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
Greg: looks like you were missed in CC
Peter/Greg: Any chance of Looking at this? This is a basic corner stone for us to clean up much of the mess we have created up in the device tree syscon nodes and trying to transition those into simple-bus.
Quoted 21 lines
Quoted 21 lines
drivers/mux/mmio.c +6
-3@@ -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 =device_node_to_regmap (np); +if (IS_ERR (regmap)) + 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);
Signature · 3 lines
Regards, Nishanth Menon Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D
Quoted 46 lines · Nishanth Menon
Quoted 7 lines · Andrew Davis
Quoted 6 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.
Quoted 15 lines
Quoted 2 lines
Signed-off-by Andrew Davis <[email protected]>---
Ping, still needed and applies cleanly on v6.5-rc1.
Andrew
Quoted 8 lines
Changes from v1:
- Flip logic as suggested in v1[0][0] https://lore.kernel.org/lkml/[email protected]/T/
drivers/mux/mmio.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)Reviewed-by Nishanth Menon <[email protected]>Greg: looks like you were missed in CC
Peter/Greg: Any chance of Looking at this? This is a basic corner stone for us to clean up much of the mess we have created up in the device tree syscon nodes and trying to transition those into simple-bus.
Quoted 13 lines
Quoted 13 lines
drivers/mux/mmio.c +1
-3@@ -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 );
Quoted 8 lines
Quoted 8 lines
drivers/mux/mmio.c static int mux_mmio_probe(struct platform_device *pdev) · line 56
Quoted 8 lines
drivers/mux/mmio.c +5
-0+ }else { + regmap =device_node_to_regmap (np); +if (IS_ERR (regmap)) + 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);
I'm not the maintainer here, it's up to Peter.