Commit 44ec8b20 authored by Rob Herring's avatar Rob Herring

dt-bindings: Add running yamllint to dt_binding_check

Add a yamllint config file and support for running yamllint on DT
binding schema files. This runs on the whole tree as yamllint is Python
and suffers from Python's slow startup times.

Users can run on individual files doing:

yamllint -c Documentation/devicetree/bindings/.yamllint <binding file>

Link: https://lore.kernel.org/r/20201009170557.168785-1-robh@kernel.orgSigned-off-by: default avatarRob Herring <robh@kernel.org>
parent 16b0b2ba
extends: relaxed
rules:
line-length:
# 80 chars should be enough, but don't fail if a line is longer
max: 110
allow-non-breakable-words: true
level: warning
braces:
min-spaces-inside: 0
max-spaces-inside: 1
min-spaces-inside-empty: 0
max-spaces-inside-empty: 0
brackets:
min-spaces-inside: 0
max-spaces-inside: 1
min-spaces-inside-empty: 0
max-spaces-inside-empty: 0
colons: {max-spaces-before: 0, max-spaces-after: 1}
commas: {min-spaces-after: 1, max-spaces-after: 1}
comments:
require-starting-space: false
min-spaces-from-content: 1
comments-indentation: disable
document-start:
present: true
empty-lines:
max: 3
max-end: 1
empty-values:
forbid-in-block-mappings: true
forbid-in-flow-mappings: true
hyphens:
max-spaces-after: 1
indentation:
spaces: 2
indent-sequences: true
check-multi-line-strings: false
trailing-spaces: false
...@@ -3,6 +3,8 @@ DT_DOC_CHECKER ?= dt-doc-validate ...@@ -3,6 +3,8 @@ DT_DOC_CHECKER ?= dt-doc-validate
DT_EXTRACT_EX ?= dt-extract-example DT_EXTRACT_EX ?= dt-extract-example
DT_MK_SCHEMA ?= dt-mk-schema DT_MK_SCHEMA ?= dt-mk-schema
DT_SCHEMA_LINT = $(shell which yamllint)
DT_SCHEMA_MIN_VERSION = 2020.8.1 DT_SCHEMA_MIN_VERSION = 2020.8.1
PHONY += check_dtschema_version PHONY += check_dtschema_version
...@@ -24,6 +26,10 @@ find_cmd = find $(srctree)/$(src) \( -name '*.yaml' ! \ ...@@ -24,6 +26,10 @@ find_cmd = find $(srctree)/$(src) \( -name '*.yaml' ! \
-name 'processed-schema*' ! \ -name 'processed-schema*' ! \
-name '*.example.dt.yaml' \) -name '*.example.dt.yaml' \)
quiet_cmd_yamllint = LINT $(src)
cmd_yamllint = $(find_cmd) | \
xargs $(DT_SCHEMA_LINT) -f parsable -c $(srctree)/$(src)/.yamllint
quiet_cmd_chk_bindings = CHKDT $@ quiet_cmd_chk_bindings = CHKDT $@
cmd_chk_bindings = $(find_cmd) | \ cmd_chk_bindings = $(find_cmd) | \
xargs -n200 -P$$(nproc) $(DT_DOC_CHECKER) -u $(srctree)/$(src) xargs -n200 -P$$(nproc) $(DT_DOC_CHECKER) -u $(srctree)/$(src)
...@@ -37,6 +43,7 @@ quiet_cmd_mk_schema = SCHEMA $@ ...@@ -37,6 +43,7 @@ quiet_cmd_mk_schema = SCHEMA $@
rm -f $$f rm -f $$f
define rule_chkdt define rule_chkdt
$(if $(DT_SCHEMA_LINT),$(call cmd,yamllint),)
$(call cmd,chk_bindings) $(call cmd,chk_bindings)
$(call cmd,mk_schema) $(call cmd,mk_schema)
endef endef
...@@ -48,7 +55,7 @@ override DTC_FLAGS := \ ...@@ -48,7 +55,7 @@ override DTC_FLAGS := \
-Wno-graph_child_address \ -Wno-graph_child_address \
-Wno-interrupt_provider -Wno-interrupt_provider
$(obj)/processed-schema-examples.json: $(DT_DOCS) check_dtschema_version FORCE $(obj)/processed-schema-examples.json: $(DT_DOCS) $(src)/.yamllint check_dtschema_version FORCE
$(call if_changed_rule,chkdt) $(call if_changed_rule,chkdt)
ifeq ($(DT_SCHEMA_FILES),) ifeq ($(DT_SCHEMA_FILES),)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment