13d0407baSopenharmony_ci# SPDX-License-Identifier: GPL-2.0
23d0407baSopenharmony_ciconfig DTC
33d0407baSopenharmony_ci	bool
43d0407baSopenharmony_ci
53d0407baSopenharmony_cimenuconfig OF
63d0407baSopenharmony_ci	bool "Device Tree and Open Firmware support"
73d0407baSopenharmony_ci	help
83d0407baSopenharmony_ci	  This option enables the device tree infrastructure.
93d0407baSopenharmony_ci	  It is automatically selected by platforms that need it or can
103d0407baSopenharmony_ci	  be enabled manually for unittests, overlays or
113d0407baSopenharmony_ci	  compile-coverage.
123d0407baSopenharmony_ci
133d0407baSopenharmony_ciif OF
143d0407baSopenharmony_ci
153d0407baSopenharmony_ciconfig DTC_SYMBOLS
163d0407baSopenharmony_ci	bool "Enable dtc generation of symbols for overlays support"
173d0407baSopenharmony_ci	depends on DTC && ARCH_ROCKCHIP
183d0407baSopenharmony_ci	help
193d0407baSopenharmony_ci	  Set DTC_FLAGS += -@
203d0407baSopenharmony_ci	  Android OS must enable this option.
213d0407baSopenharmony_ci
223d0407baSopenharmony_ciconfig OF_UNITTEST
233d0407baSopenharmony_ci	bool "Device Tree runtime unit tests"
243d0407baSopenharmony_ci	depends on !SPARC
253d0407baSopenharmony_ci	select IRQ_DOMAIN
263d0407baSopenharmony_ci	select OF_EARLY_FLATTREE
273d0407baSopenharmony_ci	select OF_RESOLVE
283d0407baSopenharmony_ci	help
293d0407baSopenharmony_ci	  This option builds in test cases for the device tree infrastructure
303d0407baSopenharmony_ci	  that are executed once at boot time, and the results dumped to the
313d0407baSopenharmony_ci	  console.
323d0407baSopenharmony_ci
333d0407baSopenharmony_ci	  If unsure, say N here, but this option is safe to enable.
343d0407baSopenharmony_ci
353d0407baSopenharmony_ciconfig OF_ALL_DTBS
363d0407baSopenharmony_ci	bool "Build all Device Tree Blobs"
373d0407baSopenharmony_ci	depends on COMPILE_TEST
383d0407baSopenharmony_ci	select DTC
393d0407baSopenharmony_ci	help
403d0407baSopenharmony_ci	  This option builds all possible Device Tree Blobs (DTBs) for the
413d0407baSopenharmony_ci	  current architecture.
423d0407baSopenharmony_ci
433d0407baSopenharmony_ci	  If unsure, say N here, but this option is safe to enable.
443d0407baSopenharmony_ci
453d0407baSopenharmony_ciconfig OF_FLATTREE
463d0407baSopenharmony_ci	bool
473d0407baSopenharmony_ci	select DTC
483d0407baSopenharmony_ci	select LIBFDT
493d0407baSopenharmony_ci	select CRC32
503d0407baSopenharmony_ci
513d0407baSopenharmony_ciconfig OF_EARLY_FLATTREE
523d0407baSopenharmony_ci	bool
533d0407baSopenharmony_ci	select DMA_DECLARE_COHERENT if HAS_DMA
543d0407baSopenharmony_ci	select OF_FLATTREE
553d0407baSopenharmony_ci
563d0407baSopenharmony_ciconfig OF_PROMTREE
573d0407baSopenharmony_ci	bool
583d0407baSopenharmony_ci
593d0407baSopenharmony_ciconfig OF_KOBJ
603d0407baSopenharmony_ci	def_bool SYSFS
613d0407baSopenharmony_ci
623d0407baSopenharmony_ci# Hardly any platforms need this.  It is safe to select, but only do so if you
633d0407baSopenharmony_ci# need it.
643d0407baSopenharmony_ciconfig OF_DYNAMIC
653d0407baSopenharmony_ci	bool "Support for dynamic device trees" if OF_UNITTEST
663d0407baSopenharmony_ci	select OF_KOBJ
673d0407baSopenharmony_ci	help
683d0407baSopenharmony_ci	  On some platforms, the device tree can be manipulated at runtime.
693d0407baSopenharmony_ci	  While this option is selected automatically on such platforms, you
703d0407baSopenharmony_ci	  can enable it manually to improve device tree unit test coverage.
713d0407baSopenharmony_ci
723d0407baSopenharmony_ciconfig OF_ADDRESS
733d0407baSopenharmony_ci	def_bool y
743d0407baSopenharmony_ci	depends on !SPARC && (HAS_IOMEM || UML)
753d0407baSopenharmony_ci
763d0407baSopenharmony_ciconfig OF_IRQ
773d0407baSopenharmony_ci	def_bool y
783d0407baSopenharmony_ci	depends on !SPARC && IRQ_DOMAIN
793d0407baSopenharmony_ci
803d0407baSopenharmony_ciconfig OF_NET
813d0407baSopenharmony_ci	depends on NETDEVICES
823d0407baSopenharmony_ci	def_bool y
833d0407baSopenharmony_ci
843d0407baSopenharmony_ciconfig OF_RESERVED_MEM
853d0407baSopenharmony_ci	bool
863d0407baSopenharmony_ci	depends on OF_EARLY_FLATTREE
873d0407baSopenharmony_ci	default y if DMA_DECLARE_COHERENT || DMA_CMA
883d0407baSopenharmony_ci
893d0407baSopenharmony_ciconfig OF_RESOLVE
903d0407baSopenharmony_ci	bool
913d0407baSopenharmony_ci
923d0407baSopenharmony_ciconfig OF_OVERLAY
933d0407baSopenharmony_ci	bool "Device Tree overlays"
943d0407baSopenharmony_ci	select OF_DYNAMIC
953d0407baSopenharmony_ci	select OF_FLATTREE
963d0407baSopenharmony_ci	select OF_RESOLVE
973d0407baSopenharmony_ci	help
983d0407baSopenharmony_ci	  Overlays are a method to dynamically modify part of the kernel's
993d0407baSopenharmony_ci	  device tree with dynamically loaded data.
1003d0407baSopenharmony_ci	  While this option is selected automatically when needed, you can
1013d0407baSopenharmony_ci	  enable it manually to improve device tree unit test coverage.
1023d0407baSopenharmony_ci
1033d0407baSopenharmony_ciconfig OF_NUMA
1043d0407baSopenharmony_ci	bool
1053d0407baSopenharmony_ci
1063d0407baSopenharmony_ciconfig OF_DMA_DEFAULT_COHERENT
1073d0407baSopenharmony_ci	# arches should select this if DMA is coherent by default for OF devices
1083d0407baSopenharmony_ci	bool
1093d0407baSopenharmony_ci
1103d0407baSopenharmony_ciendif # OF
111