1*4f0e3a57SRob Herring# SPDX-License-Identifier: GPL-2.0
2*4f0e3a57SRob HerringDT_DOC_CHECKER ?= dt-doc-validate
3*4f0e3a57SRob HerringDT_EXTRACT_EX ?= dt-extract-example
4*4f0e3a57SRob HerringDT_MK_SCHEMA ?= dt-mk-schema
5*4f0e3a57SRob HerringDT_MK_SCHEMA_FLAGS := $(if $(DT_SCHEMA_FILES), -u)
6*4f0e3a57SRob Herring
7*4f0e3a57SRob Herringquiet_cmd_chk_binding = CHKDT   $(patsubst $(srctree)/%,%,$<)
8*4f0e3a57SRob Herring      cmd_chk_binding = $(DT_DOC_CHECKER) $< ; \
9*4f0e3a57SRob Herring                        $(DT_EXTRACT_EX) $< > $@
10*4f0e3a57SRob Herring
11*4f0e3a57SRob Herring$(obj)/%.example.dts: $(src)/%.yaml FORCE
12*4f0e3a57SRob Herring	$(call if_changed,chk_binding)
13*4f0e3a57SRob Herring
14*4f0e3a57SRob HerringDT_TMP_SCHEMA := processed-schema.yaml
15*4f0e3a57SRob Herringextra-y += $(DT_TMP_SCHEMA)
16*4f0e3a57SRob Herring
17*4f0e3a57SRob Herringquiet_cmd_mk_schema = SCHEMA  $@
18*4f0e3a57SRob Herring      cmd_mk_schema = $(DT_MK_SCHEMA) $(DT_MK_SCHEMA_FLAGS) -o $@ $(filter-out FORCE, $^)
19*4f0e3a57SRob Herring
20*4f0e3a57SRob HerringDT_DOCS = $(shell cd $(srctree)/$(src) && find * -name '*.yaml')
21*4f0e3a57SRob HerringDT_SCHEMA_FILES ?= $(addprefix $(src)/,$(DT_DOCS))
22*4f0e3a57SRob Herring
23*4f0e3a57SRob Herringextra-y += $(patsubst $(src)/%.yaml,%.example.dts, $(DT_SCHEMA_FILES))
24*4f0e3a57SRob Herringextra-y += $(patsubst $(src)/%.yaml,%.example.dtb, $(DT_SCHEMA_FILES))
25*4f0e3a57SRob Herring
26*4f0e3a57SRob Herring$(obj)/$(DT_TMP_SCHEMA): $(DT_SCHEMA_FILES) FORCE
27*4f0e3a57SRob Herring	$(call if_changed,mk_schema)
28