menuconfig SYSINFO
	bool "Device System Information"
	help
	  Support methods to query hardware configurations from internal
	  mechanisms (e.g. reading GPIO values, determining the presence of
	  devices on busses, etc.). This enables the usage of U-Boot with
	  modular board architectures.

if SYSINFO

config SYSINFO_EXTRA
	bool "Show extra information on startup"
	help
	  Enable this to see extra information on startup. Normally only the
	  model is shown, but with this option the vendor and any prior-stage
	  firmware's version and date are shown as well.

config SPL_SYSINFO
	depends on SPL_DM
	bool "Enable board driver support in SPL"

config SYSINFO_GAZERBEAM
	bool "Enable sysinfo driver for the Gazerbeam board"
	help
	  Support querying device information for the gdsys Gazerbeam board.

config SYSINFO_RCAR3
	bool "Enable sysinfo driver for the Renesas R-Car Gen3"
	depends on RCAR_GEN3 && I2C_EEPROM
	default y if RCAR_GEN3
	help
	  Support querying SoC version information for Renesas R-Car Gen3.

config SYSINFO_SANDBOX
	bool "Enable sysinfo driver for the Sandbox board"
	help
	  Support querying device information for the Sandbox boards.

config SYSINFO_SMBIOS
	bool "Provide a default sysinfo driver for SMBIOS information"
	help
	  Some boards want to specify the manufacturer or product name but do
	  not need to have their own sysinfo driver. This includes a default
	  one which provides a way to specify this SMBIOS information in the
	  devicetree, without needing any board-specific functionality.

config SYSINFO_GPIO
	bool "Enable gpio sysinfo driver"
	help
	  Support querying gpios to determine board revision. This uses gpios to
	  form a ternary number (when they are pulled-up, -down, or floating).
	  This ternary number is then mapped to a board revision name using
	  device tree properties.

endif
