summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Herring <robh@kernel.org>2017-02-10 10:47:15 -0600
committerDavid Gibson <david@gibson.dropbear.id.au>2017-02-13 15:49:00 +1100
commit852e9ecbe1976927057402f8a8f71ee8e8a49098 (patch)
tree88f18062b53da740f258e24f50975f0c1acd95e7
parentef0e8f061534784e8697c98b5bb67aa4090039bd (diff)
downloaddevice-tree-compiler-852e9ecbe1976927057402f8a8f71ee8e8a49098.tar.gz
checks: Add Warning for stricter node name character checking
While '#', '?', '.', '+', '*', and '_' are considered valid characters, their use is discouraged in recommended practices. Testing this found a few cases of '.'. The majority of the warnings were all from underscores. Signed-off-by: Rob Herring <robh@kernel.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r--checks.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/checks.c b/checks.c
index 22ef474..67237ff 100644
--- a/checks.c
+++ b/checks.c
@@ -252,6 +252,17 @@ static void check_node_name_chars(struct check *c, struct dt_info *dti,
}
ERROR(node_name_chars, check_node_name_chars, PROPNODECHARS "@");
+static void check_node_name_chars_strict(struct check *c, struct dt_info *dti,
+ struct node *node)
+{
+ int n = strspn(node->name, c->data);
+
+ if (n < node->basenamelen)
+ FAIL(c, "Character '%c' not recommended in node %s",
+ node->name[n], node->fullpath);
+}
+CHECK(node_name_chars_strict, check_node_name_chars_strict, PROPNODECHARSSTRICT);
+
static void check_node_name_format(struct check *c, struct dt_info *dti,
struct node *node)
{
@@ -737,6 +748,7 @@ static struct check *check_table[] = {
&device_type_is_string, &model_is_string, &status_is_string,
&property_name_chars_strict,
+ &node_name_chars_strict,
&addr_size_cells, &reg_format, &ranges_format,