ifeq ($(CONFIG_OF),y)

# Keep at91 dtb files sorted alphabetically for each SoC
# rm9200
dtb-$(CONFIG_ARCH_AT91) += at91rm9200ek.dtb
dtb-$(CONFIG_ARCH_AT91) += mpa1600.dtb
# sam9260
dtb-$(CONFIG_ARCH_AT91) += animeo_ip.dtb
dtb-$(CONFIG_ARCH_AT91) += aks-cdu.dtb
dtb-$(CONFIG_ARCH_AT91) += ethernut5.dtb
dtb-$(CONFIG_ARCH_AT91) += evk-pro3.dtb
dtb-$(CONFIG_ARCH_AT91) += tny_a9260.dtb
dtb-$(CONFIG_ARCH_AT91) += usb_a9260.dtb
# sam9263
dtb-$(CONFIG_ARCH_AT91) += at91sam9263ek.dtb
dtb-$(CONFIG_ARCH_AT91) += tny_a9263.dtb
dtb-$(CONFIG_ARCH_AT91) += usb_a9263.dtb
# sam9g20
dtb-$(CONFIG_ARCH_AT91) += at91-foxg20.dtb
dtb-$(CONFIG_ARCH_AT91) += at91sam9g20ek.dtb
dtb-$(CONFIG_ARCH_AT91) += at91sam9g20ek_2mmc.dtb
dtb-$(CONFIG_ARCH_AT91) += kizbox.dtb
dtb-$(CONFIG_ARCH_AT91) += tny_a9g20.dtb
dtb-$(CONFIG_ARCH_AT91) += usb_a9g20.dtb
dtb-$(CONFIG_ARCH_AT91) += usb_a9g20_lpw.dtb
# sam9g45
dtb-$(CONFIG_ARCH_AT91) += at91sam9m10g45ek.dtb
dtb-$(CONFIG_ARCH_AT91) += pm9g45.dtb
# sam9n12
dtb-$(CONFIG_ARCH_AT91) += at91sam9n12ek.dtb
# sam9x5
dtb-$(CONFIG_ARCH_AT91) += at91-ariag25.dtb
dtb-$(CONFIG_ARCH_AT91) += at91sam9g15ek.dtb
dtb-$(CONFIG_ARCH_AT91) += at91sam9g25ek.dtb
dtb-$(CONFIG_ARCH_AT91) += at91sam9g35ek.dtb
dtb-$(CONFIG_ARCH_AT91) += at91sam9x25ek.dtb
dtb-$(CONFIG_ARCH_AT91) += at91sam9x35ek.dtb
# sama5d3
dtb-$(CONFIG_ARCH_AT91)	+= sama5d31ek.dtb
dtb-$(CONFIG_ARCH_AT91)	+= sama5d33ek.dtb
dtb-$(CONFIG_ARCH_AT91)	+= sama5d34ek.dtb
dtb-$(CONFIG_ARCH_AT91)	+= sama5d35ek.dtb

dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb
dtb-$(CONFIG_ARCH_BCM) += bcm11351-brt.dtb \
	bcm28155-ap.dtb
dtb-$(CONFIG_ARCH_DAVINCI) += da850-enbw-cmc.dtb \
	da850-evm.dtb
dtb-$(CONFIG_ARCH_DOVE) += dove-cm-a510.dtb \
	dove-cubox.dtb \
	dove-d2plug.dtb \
	dove-dove-db.dtb
dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
	exynos4210-smdkv310.dtb \
	exynos4210-trats.dtb \
	exynos4210-universal_c210.dtb \
	exynos4412-odroidx.dtb \
	exynos4412-origen.dtb \
	exynos4412-smdk4412.dtb \
	exynos4412-trats2.dtb \
	exynos5250-arndale.dtb \
	exynos5250-smdk5250.dtb \
	exynos5250-snow.dtb \
	exynos5420-smdk5420.dtb \
	exynos5440-sd5v1.dtb \
	exynos5440-ssdk5440.dtb
dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb \
	ecx-2000.dtb
dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \
	integratorcp.dtb
dtb-$(CONFIG_ARCH_LPC32XX) += ea3250.dtb phy3250.dtb
dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-cloudbox.dtb \
	kirkwood-db-88f6281.dtb \
	kirkwood-db-88f6282.dtb \
	kirkwood-dns320.dtb \
	kirkwood-dns325.dtb \
	kirkwood-dockstar.dtb \
	kirkwood-dreamplug.dtb \
	kirkwood-goflexnet.dtb \
	kirkwood-guruplug-server-plus.dtb \
	kirkwood-ib62x0.dtb \
	kirkwood-iconnect.dtb \
	kirkwood-iomega_ix2_200.dtb \
	kirkwood-is2.dtb \
	kirkwood-km_kirkwood.dtb \
	kirkwood-lschlv2.dtb \
	kirkwood-lsxhl.dtb \
	kirkwood-mplcec4.dtb \
	kirkwood-mv88f6281gtw-ge.dtb \
	kirkwood-netgear_readynas_duo_v2.dtb \
	kirkwood-ns2.dtb \
	kirkwood-ns2lite.dtb \
	kirkwood-ns2max.dtb \
	kirkwood-ns2mini.dtb \
	kirkwood-nsa310.dtb \
	kirkwood-nsa310a.dtb \
	kirkwood-sheevaplug.dtb \
	kirkwood-sheevaplug-esata.dtb \
	kirkwood-topkick.dtb \
	kirkwood-ts219-6281.dtb \
	kirkwood-ts219-6282.dtb \
	kirkwood-openblocks_a6.dtb
dtb-$(CONFIG_ARCH_MARCO) += marco-evb.dtb
dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.dtb \
	msm8960-cdp.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \
	armada-370-mirabox.dtb \
	armada-370-netgear-rn102.dtb \
	armada-370-rd.dtb \
	armada-xp-axpwifiap.dtb \
	armada-xp-db.dtb \
	armada-xp-gp.dtb \
	armada-xp-openblocks-ax3-4.dtb
dtb-$(CONFIG_ARCH_MXC) += \
	imx25-karo-tx25.dtb \
	imx25-pdk.dtb \
	imx27-apf27.dtb \
	imx27-apf27dev.dtb \
	imx27-pdk.dtb \
	imx27-phytec-phycore-som.dtb \
	imx27-phytec-phycore-rdk.dtb \
	imx27-phytec-phycard-s-som.dtb \
	imx27-phytec-phycard-s-rdk.dtb \
	imx31-bug.dtb \
	imx51-apf51.dtb \
	imx51-apf51dev.dtb \
	imx51-babbage.dtb \
	imx53-ard.dtb \
	imx53-evk.dtb \
	imx53-m53evk.dtb \
	imx53-mba53.dtb \
	imx53-qsb.dtb \
	imx53-smd.dtb \
	imx6dl-sabreauto.dtb \
	imx6dl-sabresd.dtb \
	imx6dl-wandboard.dtb \
	imx6q-arm2.dtb \
	imx6q-phytec-pbab01.dtb \
	imx6q-sabreauto.dtb \
	imx6q-sabrelite.dtb \
	imx6q-sabresd.dtb \
	imx6q-sbc6x.dtb \
	imx6q-wandboard.dtb \
	imx6sl-evk.dtb \
	vf610-twr.dtb
dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \
	imx23-olinuxino.dtb \
	imx23-stmp378x_devb.dtb \
	imx28-apf28.dtb \
	imx28-apf28dev.dtb \
	imx28-apx4devkit.dtb \
	imx28-cfa10036.dtb \
	imx28-cfa10037.dtb \
	imx28-cfa10049.dtb \
	imx28-cfa10055.dtb \
	imx28-cfa10056.dtb \
	imx28-cfa10057.dtb \
	imx28-cfa10058.dtb \
	imx28-evk.dtb \
	imx28-m28evk.dtb \
	imx28-sps1.dtb \
	imx28-tx28.dtb
dtb-$(CONFIG_ARCH_NOMADIK) += ste-nomadik-s8815.dtb
dtb-$(CONFIG_ARCH_NSPIRE) += nspire-cx.dtb \
	nspire-tp.dtb \
	nspire-clp.dtb
dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
	omap3430-sdp.dtb \
	omap3-beagle.dtb \
	omap3-devkit8000.dtb \
	omap3-beagle-xm.dtb \
	omap3-evm.dtb \
	omap3-tobi.dtb \
	omap3-igep0020.dtb \
	omap3-igep0030.dtb \
	omap4-panda.dtb \
	omap4-panda-a4.dtb \
	omap4-panda-es.dtb \
	omap4-var-som.dtb \
	omap4-sdp.dtb \
	omap4-sdp-es23plus.dtb \
	omap5-uevm.dtb \
	am335x-evm.dtb \
	am335x-evmsk.dtb \
	am335x-bone.dtb \
	am3517-evm.dtb \
	am3517_mt_ventoux.dtb \
	am43x-epos-evm.dtb
dtb-$(CONFIG_ARCH_ORION5X) += orion5x-lacie-ethernet-disk-mini-v2.dtb
dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb
dtb-$(CONFIG_ARCH_U8500) += ste-snowball.dtb \
	ste-hrefprev60.dtb \
	ste-hrefv60plus.dtb \
	ste-ccu8540.dtb \
	ste-ccu9540.dtb
dtb-$(CONFIG_ARCH_S3C24XX) += s3c2416-smdk2416.dtb
dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \
	emev2-kzm9d-reference.dtb \
	r7s72100-genmai.dtb \
	r8a7740-armadillo800eva.dtb \
	r8a7778-bockw.dtb \
	r8a7778-bockw-reference.dtb \
	r8a7740-armadillo800eva-reference.dtb \
	r8a7779-marzen.dtb \
	r8a7779-marzen-reference.dtb \
	r8a7791-koelsch.dtb \
	r8a7790-lager.dtb \
	r8a7790-lager-reference.dtb \
	sh73a0-kzm9g.dtb \
	sh73a0-kzm9g-reference.dtb \
	r8a73a4-ape6evm.dtb \
	r8a73a4-ape6evm-reference.dtb \
	sh7372-mackerel.dtb
dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += emev2-kzm9d-reference.dtb
dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_cyclone5.dtb \
	socfpga_vt.dtb
dtb-$(CONFIG_ARCH_SPEAR13XX) += spear1310-evb.dtb \
	spear1340-evb.dtb
dtb-$(CONFIG_ARCH_SPEAR3XX)+= spear300-evb.dtb \
	spear310-evb.dtb \
	spear320-evb.dtb \
	spear320-hmi.dtb
dtb-$(CONFIG_ARCH_SPEAR6XX)+= spear600-evb.dtb
dtb-$(CONFIG_ARCH_STI)+= stih415-b2000.dtb \
	stih416-b2000.dtb \
	stih415-b2020.dtb \
	stih416-b2020.dtb
dtb-$(CONFIG_ARCH_SUNXI) += \
	sun4i-a10-a1000.dtb \
	sun4i-a10-cubieboard.dtb \
	sun4i-a10-mini-xplus.dtb \
	sun4i-a10-hackberry.dtb \
	sun5i-a10s-olinuxino-micro.dtb \
	sun5i-a13-olinuxino.dtb \
	sun6i-a31-colombus.dtb \
	sun7i-a20-cubieboard2.dtb \
	sun7i-a20-olinuxino-micro.dtb
dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
	tegra20-iris-512.dtb \
	tegra20-medcom-wide.dtb \
	tegra20-paz00.dtb \
	tegra20-plutux.dtb \
	tegra20-seaboard.dtb \
	tegra20-tec.dtb \
	tegra20-trimslice.dtb \
	tegra20-ventana.dtb \
	tegra20-whistler.dtb \
	tegra30-beaver.dtb \
	tegra30-cardhu-a02.dtb \
	tegra30-cardhu-a04.dtb \
	tegra114-dalmore.dtb
dtb-$(CONFIG_ARCH_VERSATILE) += versatile-ab.dtb \
	versatile-pb.dtb
dtb-$(CONFIG_ARCH_U300) += ste-u300.dtb
dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2p-ca5s.dtb \
	vexpress-v2p-ca9.dtb \
	vexpress-v2p-ca15-tc1.dtb \
	vexpress-v2p-ca15_a7.dtb
dtb-$(CONFIG_ARCH_VIRT) += xenvm-4.2.dtb
dtb-$(CONFIG_ARCH_VT8500) += vt8500-bv07.dtb \
	wm8505-ref.dtb \
	wm8650-mid.dtb \
	wm8750-apc8750.dtb \
	wm8850-w70v2.dtb
dtb-$(CONFIG_ARCH_ZYNQ) += zynq-zc702.dtb \
	zynq-zc706.dtb \
	zynq-zed.dtb

targets += dtbs
targets += $(dtb-y)
endif

# *.dtb used to be generated in the directory above. Clean out the
# old build results so people don't accidentally use them.
dtbs: $(addprefix $(obj)/, $(dtb-y))
	$(Q)rm -f $(obj)/../*.dtb

clean-files := *.dtb
