blob: fd0bd8237d1c5c9cd4ac485d6aae110550edaa1f [file]
# SPDX-License-Identifier: GPL-2.0
# for the include dt-bindings header files in the kernel_device_modules-X.Y
# common, for include/dt-bindings
DTC_INCLUDE += $(DEVICE_MODULES_PATH)/include
# arm64
DTC_INCLUDE += $(DEVICE_MODULES_PATH)/arch/$(SRCARCH)/boot/dts $(DEVICE_MODULES_PATH)/arch/$(SRCARCH)/boot/dts/mediatek
# for cust.dtsi
#DTC_INCLUDE += $(DEVICE_MODULES_REL_PATH)/arch/$(SRCARCH)/boot/dts
DTC_INCLUDE += $(dir $(src))
# for devicetree overlay
DTC_FLAGS += -@
mt8696_dtb := \
mt8696.dtb
project_overlays := \
kirkwood_dongle.dtbo \
kirkwood_dongle-p0.dtbo \
kirkwood.dtbo \
kirkwoodpro.dtbo \
# Usage:
# $(call DTBS_overlay_template, overlay, base_dtb, suffix)
#
# This is a generic template to create the following construct:
# <overlay>-<suffix>-dtbs := <base_dtb>.dtb <overlay>.dtbo
define DTBS_overlay_template
$(1:%.dtbo=%-$(strip $3)-dtbs) := $2 $1
endef
# Usage:
# $(call DTB_object_template, CONFIG_, overlay, suffix)
#
# This is a generic template to create the following construct:
# dtb-$(CONFIG_) += <overlay>-<suffix>.dtb
define DTB_object_template
dtb-$(strip $1) += $(2:%.dtbo=%-$(strip $3).dtb)
endef
# Usage:
# $(call multi_dtbs_overlay, list_of_base_dtbs, list_of_overlays, CONFIG_)
#
# For each (base_dtb,overlay) pair, this will create the following constructs:
# <overlay>-<base_dtb>-dtbs := <base_dtb>.dtb <overlay>.dtbo
# dtb-$(CONFIG_) += <overlay>-<base_dtb>.dtb
define multi_dtbs_overlay
$(foreach base, $1, \
$(foreach overlay, $2, \
$(eval $(call DTBS_overlay_template, $(overlay), $(base), $(notdir $(base:%.dtb=%)))) \
$(eval $(call DTB_object_template, $3, $(overlay), $(notdir $(base:%.dtb=%))))))
endef
# Create the -dtbs and dtb-y constructs. We can do this by looping through the
# base dtbs and apply each overlay to it. Kbuild will use these -dtbs
# constructs to determine which dtbs are the base dtbs and which are the
# overlays. For the base dtbs, kbuild will expose the symbols as needed for the
# overlays. Additionally, kbuild will statically apply the overlay to the base
# dtb which could be used to verify the overlay applies cleanly.
$(call multi_dtbs_overlay, $(mt8696_dtb), $(project_overlays), y)