60 lines
1.7 KiB
Diff
60 lines
1.7 KiB
Diff
|
From fae1a0059ad821a938cac72d8dada817ea247667 Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= <megi@xff.cz>
|
||
|
Date: Sat, 15 May 2021 21:43:44 +0200
|
||
|
Subject: [PATCH 181/391] of: property: fw_devlink: Support allwinner,sram
|
||
|
links
|
||
|
|
||
|
allwinner,sram property points to a node representing section of SRAM,
|
||
|
which is implemented by its ancestor (syscon), so we link to the
|
||
|
parent of parent of the actual SRAM section node that the link points
|
||
|
to.
|
||
|
|
||
|
Signed-off-by: Ondrej Jirman <megi@xff.cz>
|
||
|
---
|
||
|
drivers/of/property.c | 22 ++++++++++++++++++++++
|
||
|
1 file changed, 22 insertions(+)
|
||
|
|
||
|
diff --git a/drivers/of/property.c b/drivers/of/property.c
|
||
|
index 134cfc980..111189507 100644
|
||
|
--- a/drivers/of/property.c
|
||
|
+++ b/drivers/of/property.c
|
||
|
@@ -1383,6 +1383,27 @@ static struct device_node *parse_interrupts(struct device_node *np,
|
||
|
return of_irq_parse_one(np, index, &sup_args) ? NULL : sup_args.np;
|
||
|
}
|
||
|
|
||
|
+static struct device_node *parse_allwinner_sram(struct device_node *np,
|
||
|
+ const char *prop_name, int index)
|
||
|
+{
|
||
|
+ struct device_node *sram_node;
|
||
|
+
|
||
|
+ if (!IS_ENABLED(CONFIG_SUNXI_SRAM))
|
||
|
+ return NULL;
|
||
|
+
|
||
|
+ if (strcmp(prop_name, "allwinner,sram"))
|
||
|
+ return NULL;
|
||
|
+
|
||
|
+ if (index > 0)
|
||
|
+ return NULL;
|
||
|
+
|
||
|
+ sram_node = of_parse_phandle(np, prop_name, 0);
|
||
|
+ sram_node = of_get_parent(sram_node);
|
||
|
+ sram_node = of_get_parent(sram_node);
|
||
|
+
|
||
|
+ return sram_node;
|
||
|
+}
|
||
|
+
|
||
|
static const struct supplier_bindings of_supplier_bindings[] = {
|
||
|
{ .parse_prop = parse_clocks, },
|
||
|
{ .parse_prop = parse_interconnects, },
|
||
|
@@ -1417,6 +1438,7 @@ static const struct supplier_bindings of_supplier_bindings[] = {
|
||
|
{ .parse_prop = parse_regulators, },
|
||
|
{ .parse_prop = parse_gpio, },
|
||
|
{ .parse_prop = parse_gpios, },
|
||
|
+ { .parse_prop = parse_allwinner_sram, },
|
||
|
{}
|
||
|
};
|
||
|
|
||
|
--
|
||
|
2.35.3
|
||
|
|