Various functions like add_prop_aliases, extract_single_prop, extract_single, reg.extract, compatible.extract, default.extract, and flash.extract don't use the yaml argument that is passed to them. Remove passing the argument, this is the first step in making access to the yaml node information go through an accessor function. Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
70 lines
2.1 KiB
Python
70 lines
2.1 KiB
Python
#
|
|
# Copyright (c) 2018 Bobby Noelte
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
from extract.globals import *
|
|
from extract.directive import DTDirective
|
|
|
|
##
|
|
# @brief Manage directives in a default way.
|
|
#
|
|
class DTDefault(DTDirective):
|
|
|
|
def __init__(self):
|
|
pass
|
|
|
|
##
|
|
# @brief Extract directives in a default way
|
|
#
|
|
# @param node_address Address of node owning the clockxxx definition.
|
|
# @param prop property name
|
|
# @param prop type (string, boolean, etc)
|
|
# @param def_label Define label string of node owning the directive.
|
|
#
|
|
def extract(self, node_address, prop, prop_type, def_label):
|
|
prop_def = {}
|
|
prop_alias = {}
|
|
|
|
if prop_type == 'boolean':
|
|
if prop in reduced[node_address]['props'].keys():
|
|
prop_values = 1
|
|
else:
|
|
prop_values = 0
|
|
else:
|
|
prop_values = reduced[node_address]['props'][prop]
|
|
|
|
if isinstance(prop_values, list):
|
|
for i, prop_value in enumerate(prop_values):
|
|
prop_name = convert_string_to_label(prop)
|
|
label = def_label + '_' + prop_name
|
|
if isinstance(prop_value, str):
|
|
prop_value = "\"" + prop_value + "\""
|
|
prop_def[label + '_' + str(i)] = prop_value
|
|
else:
|
|
prop_name = convert_string_to_label(prop)
|
|
label = def_label + '_' + prop_name
|
|
|
|
if prop_values == 'parent-label':
|
|
prop_values = find_parent_prop(node_address, 'label')
|
|
|
|
if isinstance(prop_values, str):
|
|
prop_values = "\"" + prop_values + "\""
|
|
prop_def[label] = prop_values
|
|
|
|
# generate defs for node aliases
|
|
if node_address in aliases:
|
|
add_prop_aliases(
|
|
node_address,
|
|
lambda alias:
|
|
convert_string_to_label(alias) + '_' + prop_name,
|
|
label,
|
|
prop_alias)
|
|
|
|
insert_defs(node_address, prop_def, prop_alias)
|
|
|
|
##
|
|
# @brief Management information for directives handled by default.
|
|
default = DTDefault()
|