scripts: kconfig: size/addr by nodelabel
Add new devicetree kconfig function to get a node size or addr by nodelabel. Signed-off-by: Jordan Yates <jordan.yates@data61.csiro.au>
This commit is contained in:
parent
d5f6fe484a
commit
999afdc728
2 changed files with 30 additions and 0 deletions
4
doc/build/kconfig/preprocessor-functions.rst
vendored
4
doc/build/kconfig/preprocessor-functions.rst
vendored
|
@ -47,6 +47,10 @@ while the ``*_hex`` version returns a hexadecimal value starting with ``0x``.
|
|||
$(dt_node_reg_addr_hex,<node path>[,<index>,<unit>])
|
||||
$(dt_node_reg_size_int,<node path>[,<index>,<unit>])
|
||||
$(dt_node_reg_size_hex,<node path>[,<index>,<unit>])
|
||||
$(dt_nodelabel_reg_addr_int,<node label>[,<index>,<unit>])
|
||||
$(dt_nodelabel_reg_addr_hex,<node label>[,<index>,<unit>])
|
||||
$(dt_nodelabel_reg_size_int,<node label>[,<index>,<unit>])
|
||||
$(dt_nodelabel_reg_size_hex,<node label>[,<index>,<unit>])
|
||||
$(dt_compat_enabled,<compatible string>)
|
||||
$(dt_chosen_enabled,<property in /chosen>)
|
||||
$(dt_node_bool_prop,<node path>,<prop>)
|
||||
|
|
|
@ -375,6 +375,28 @@ def dt_node_reg(kconf, name, path, index=0, unit=None):
|
|||
if name == "dt_node_reg_addr_hex":
|
||||
return hex(_dt_node_reg_addr(kconf, path, index, unit))
|
||||
|
||||
def dt_nodelabel_reg(kconf, name, label, index=0, unit=None):
|
||||
"""
|
||||
This function is like dt_node_reg(), but the 'label' argument
|
||||
should be a node label, like "foo" is here:
|
||||
|
||||
foo: some-node { ... };
|
||||
"""
|
||||
if doc_mode or edt is None:
|
||||
node = None
|
||||
else:
|
||||
node = edt.label2node.get(label)
|
||||
|
||||
if name == "dt_nodelabel_reg_size_int":
|
||||
return str(_dt_node_reg_size(kconf, node.path, index, unit)) if node else "0"
|
||||
if name == "dt_nodelabel_reg_size_hex":
|
||||
return hex(_dt_node_reg_size(kconf, node.path, index, unit)) if node else "0x0"
|
||||
if name == "dt_nodelabel_reg_addr_int":
|
||||
return str(_dt_node_reg_addr(kconf, node.path, index, unit)) if node else "0"
|
||||
if name == "dt_nodelabel_reg_addr_hex":
|
||||
return hex(_dt_node_reg_addr(kconf, node.path, index, unit)) if node else "0x0"
|
||||
|
||||
|
||||
def _dt_node_bool_prop_generic(node_search_function, search_arg, prop):
|
||||
"""
|
||||
This function takes the 'node_search_function' and uses it to search for
|
||||
|
@ -764,6 +786,10 @@ functions = {
|
|||
"dt_node_reg_addr_hex": (dt_node_reg, 1, 3),
|
||||
"dt_node_reg_size_int": (dt_node_reg, 1, 3),
|
||||
"dt_node_reg_size_hex": (dt_node_reg, 1, 3),
|
||||
"dt_nodelabel_reg_addr_int": (dt_nodelabel_reg, 1, 3),
|
||||
"dt_nodelabel_reg_addr_hex": (dt_nodelabel_reg, 1, 3),
|
||||
"dt_nodelabel_reg_size_int": (dt_nodelabel_reg, 1, 3),
|
||||
"dt_nodelabel_reg_size_hex": (dt_nodelabel_reg, 1, 3),
|
||||
"dt_node_bool_prop": (dt_node_bool_prop, 2, 2),
|
||||
"dt_nodelabel_bool_prop": (dt_nodelabel_bool_prop, 2, 2),
|
||||
"dt_chosen_bool_prop": (dt_chosen_bool_prop, 2, 2),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue