#
# 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 OF_BOARD_FIXUP
	bool "Board-specific manipulation of Device Tree"
	help
	  In certain circumstances it is necessary to be able to modify
	  U-Boot's device tree (e.g. to delete device from it). This option
	  make the Device Tree writeable and provides a board-specific
	  "board_fix_fdt" callback (called during pre-relocation time), which
	  enables the board initialization to modifiy the Device Tree. The
	  modified copy is subsequently used by U-Boot after relocation.

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
	default DEFAULT_DEVICE_TREE
	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 && SPL_CLK
	default "clocks clock-names interrupt-parent" if SPL_PINCTRL
	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.

config SPL_OF_PLATDATA
	bool "Generate platform data for use in SPL"
	depends on SPL_OF_CONTROL
	help
	  For very constrained SPL environments the overhead of decoding
	  device tree nodes and converting their contents into platform data
	  is too large. This overhead includes libfdt code as well as the
	  device tree contents itself. The latter is fairly compact, but the
	  former can add 3KB or more to a Thumb 2 Image.

	  This option enables generation of platform data from the device
	  tree as C code. This code creates devices using U_BOOT_DEVICE()
	  declarations. The benefit is that it allows driver code to access
	  the platform data directly in C structures, avoidin the libfdt
	  overhead.

	  This option works by generating C structure declarations for each
	  compatible string, then adding platform data and U_BOOT_DEVICE
	  declarations for each node. See README.platdata for more
	  information.

endmenu
