From 02dab5a5a83956af32309c5862dcb29dc41a36b6 Mon Sep 17 00:00:00 2001 From: Ulf Magnusson Date: Tue, 31 Dec 2019 02:06:39 +0100 Subject: [PATCH] dts: gen_defines.py: Add helper for outputting {} initializers The "{" + ", ".join(...) + "}" pattern is in a bunch of places now. Add an out_dev_init() helper for it, with the same parameters as out_dev(). Also makes "{" vs. "{ " consistent, picking the first one. Signed-off-by: Ulf Magnusson --- scripts/dts/gen_defines.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/scripts/dts/gen_defines.py b/scripts/dts/gen_defines.py index 5af1865491c..0ae6c70eacf 100755 --- a/scripts/dts/gen_defines.py +++ b/scripts/dts/gen_defines.py @@ -229,14 +229,12 @@ def write_props(node): elif prop.type == "array": for i, val in enumerate(prop.val): out_dev(node, "{}_{}".format(ident, i), val) - out_dev(node, ident, - "{" + ", ".join(map(str, prop.val)) + "}") + out_dev_init(node, ident, prop.val) elif prop.type == "string-array": for i, val in enumerate(prop.val): out_dev_s(node, "{}_{}".format(ident, i), val) elif prop.type == "uint8-array": - out_dev(node, ident, - "{ " + ", ".join("0x{:02x}".format(b) for b in prop.val) + " }") + out_dev_init(node, ident, ["0x{:02x}".format(b) for b in prop.val]) elif prop.type == "phandle-array": write_phandle_val_list(prop) @@ -565,7 +563,7 @@ def write_phandle_val_list(prop): if len(prop.val) > 1: out_dev(prop.node, ident + "_COUNT", len(initializer_vals)) - out_dev(prop.node, ident, "{" + ", ".join(initializer_vals) + "}") + out_dev_init(prop.node, ident, initializer_vals) def write_phandle_val_list_entry(node, entry, i, ident): @@ -612,9 +610,7 @@ def write_phandle_val_list_entry(node, entry, i, ident): name_alias = None if i is not None: initializer_ident += "_{}".format(i) - return out_dev(node, initializer_ident, - "{" + ", ".join(map(str, initializer_vals)) + "}", - name_alias) + return out_dev_init(node, initializer_ident, initializer_vals, name_alias) def write_clocks(node): @@ -705,6 +701,16 @@ def out_dev_s(node, ident, s, name_alias=None): return out_dev(node, ident, quote_str(s), name_alias) +def out_dev_init(node, ident, elms, name_alias=None): + # Like out_dev(), but generates an {e1, e2, ...} initializer with the + # elements in the iterable 'elms'. + # + # Returns the generated macro name for 'ident'. + + return out_dev(node, ident, "{" + ", ".join(map(str, elms)) + "}", + name_alias) + + def out_s(ident, val): # Like out(), but puts quotes around 'val' and escapes any double # quotes and backslashes within it