summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTony Lindgren <tony@atomide.com>2020-11-16 12:57:13 +0200
committerTony Lindgren <tony@atomide.com>2020-11-16 12:57:24 +0200
commit2928135c93f873b260ba1a88023f0bbe0f67e315 (patch)
tree357dd925fc7577e1d73facb20c1e9f4b999bbb7c
parentae5f70f707889dfd056905d9ea69e3f72dace213 (diff)
downloadlwn-2928135c93f873b260ba1a88023f0bbe0f67e315.tar.gz
lwn-2928135c93f873b260ba1a88023f0bbe0f67e315.zip
bus: ti-sysc: Support modules without control registers
Some modules like MPU have a powerdomain and functional clock but not necessarily any control registers. Let's allow configuring interconnect target modules with no control registers. Signed-off-by: Tony Lindgren <tony@atomide.com>
-rw-r--r--drivers/bus/ti-sysc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
index 2b99fd5a4740..88a5d22091f3 100644
--- a/drivers/bus/ti-sysc.c
+++ b/drivers/bus/ti-sysc.c
@@ -853,8 +853,12 @@ static int sysc_ioremap(struct sysc *ddata)
*/
static int sysc_map_and_check_registers(struct sysc *ddata)
{
+ struct device_node *np = ddata->dev->of_node;
int error;
+ if (!of_get_property(np, "reg", NULL))
+ return 0;
+
error = sysc_parse_and_check_child_range(ddata);
if (error)
return error;
@@ -2911,6 +2915,9 @@ static int sysc_probe(struct platform_device *pdev)
if (!ddata)
return -ENOMEM;
+ ddata->offsets[SYSC_REVISION] = -ENODEV;
+ ddata->offsets[SYSC_SYSCONFIG] = -ENODEV;
+ ddata->offsets[SYSC_SYSSTATUS] = -ENODEV;
ddata->dev = &pdev->dev;
platform_set_drvdata(pdev, ddata);