#
# Device Tree Control
#

config SUPPORT_OF_CONTROL
	bool

menu "Device Tree Control"
	depends on SUPPORT_OF_CONTROL

config OF_CONTROL
	bool "Run-time configuration via Device Tree"
	help
	  This feature provides for run-time configuration of U-Boot
	  via a flattened device tree.

config SPL_OF_CONTROL
	bool "Enable run-time configuration via Device Tree in SPL"
	depends on SPL && OF_CONTROL
	help
	  Some boards use device tree in U-Boot but only have 4KB of SRAM
	  which is not enough to support device tree. Enable this option to
	  allow such boards to be supported by U-Boot SPL.

choice
	prompt "Provider of DTB for DT control"
	depends on OF_CONTROL

config OF_SEPARATE
	bool "Separate DTB for DT control"
	depends on !SANDBOX
	help
	  If this option is enabled, the device tree will be built and
	  placed as a separate u-boot.dtb file alongside the U-Boot image.

config OF_EMBED
	bool "Embedded DTB for DT control"
	help
	  If this option is enabled, the device tree will be picked up and
	  built into the U-Boot image. This is suitable for local debugging
	  and development only and is not recommended for production devices.
	  Boards in the mainline U-Boot tree should not use it.

config OF_HOSTFILE
	bool "Host filed DTB for DT control"
	depends on SANDBOX
	help
	  If this option is enabled, DTB will be read from a file on startup.
	  This is only useful for Sandbox.  Use the -d flag to U-Boot to
	  specify the file to read.

endchoice

config DEFAULT_DEVICE_TREE
	string "Default Device Tree for DT control"
	depends on OF_CONTROL
	help
	  This option specifies the default Device Tree used for DT control.
	  It can be overridden from the command line:
	  $ make DEVICE_TREE=<device-tree-name>

config OF_LIST
	string "List of device tree files to include for DT control"
	depends on SPL_LOAD_FIT
	help
	  This option specifies a list of device tree files to use for DT
	  control. These will be packaged into a FIT. At run-time, SPL will
	  select the correct DT to use by examining the hardware (e.g.
	  reading a board ID value). This is a list of device tree files
	  (without the directory or .dtb suffix) separated by <space>.

config OF_SPL_REMOVE_PROPS
	string "List of device tree properties to drop for SPL"
	depends on SPL_OF_CONTROL
	default "interrupt-parent" if SPL_PINCTRL_FULL && SPL_CLK
	default "clocks clock-names interrupt-parent" if SPL_PINCTRL_FULL
	default "pinctrl-0 pinctrl-names interrupt-parent" if SPL_CLK
	default "pinctrl-0 pinctrl-names clocks clock-names interrupt-parent"
	help
	  Since SPL normally runs in a reduced memory space, the device tree
	  is cut down to only what is needed to load and start U-Boot. Only
	  nodes marked with the property "u-boot,dm-pre-reloc" will be
	  included. In addition, some properties are not used by U-Boot and
	  can be discarded. This option defines the list of properties to
	  discard.

endmenu