if ARCH_UNIPHIER

config SYS_CONFIG_NAME
	default "uniphier"

choice
        prompt "UniPhier SoC select"
        default ARCH_UNIPHIER_PH1_PRO4

config ARCH_UNIPHIER_PH1_SLD3
	bool "UniPhier PH1-sLD3 SoC"
	select CPU_V7

config ARCH_UNIPHIER_LD4_SLD8
	bool "UniPhier PH1-LD4/PH1-sLD8 SoC"
	select CPU_V7

config ARCH_UNIPHIER_PH1_PRO4
	bool "UniPhier PH1-Pro4 SoC"
	select CPU_V7

config ARCH_UNIPHIER_PRO5_PXS2_LD6B
	bool "UniPhier PH1-Pro5/ProXstream2/PH1-LD6b SoC"
	select CPU_V7

endchoice

config ARCH_UNIPHIER_PH1_LD4
	bool "Enable UniPhier PH1-LD4 SoC support"
	depends on ARCH_UNIPHIER_LD4_SLD8
	default y

config ARCH_UNIPHIER_PH1_SLD8
	bool "Enable UniPhier PH1-sLD8 SoC support"
	depends on ARCH_UNIPHIER_LD4_SLD8
	default y

config ARCH_UNIPHIER_PH1_PRO5
	bool "Enable UniPhier PH1-Pro5 SoC support"
	depends on ARCH_UNIPHIER_PRO5_PXS2_LD6B
	default y

config ARCH_UNIPHIER_PROXSTREAM2
	bool "Enable UniPhier ProXstream2 SoC support"
	depends on ARCH_UNIPHIER_PRO5_PXS2_LD6B
	default y

config ARCH_UNIPHIER_PH1_LD6B
	bool "Enable UniPhier PH1-LD6b SoC support"
	depends on ARCH_UNIPHIER_PRO5_PXS2_LD6B
	default y

config MICRO_SUPPORT_CARD
	bool "Use Micro Support Card"
	help
	  This option provides support for the expansion board, available
	  on some UniPhier reference boards.

	  Say Y to use the on-board UART, Ether, LED devices.

config CMD_PINMON
	bool "Enable boot mode pins monitor command"
	default y
	help
	  The command "pinmon" shows the state of the boot mode pins.
	  The boot mode pins are latched when the system reset is deasserted
	  and determine which device the system should load a boot image from.

config CMD_DDRPHY_DUMP
	bool "Enable dump command of DDR PHY parameters"
	depends on ARCH_UNIPHIER_PH1_LD4 || ARCH_UNIPHIER_PH1_PRO4 || \
		   ARCH_UNIPHIER_PH1_SLD8
	help
	  The command "ddrphy" shows the resulting parameters of DDR PHY
	  training; it is useful for the evaluation of DDR PHY training.

config CMD_DDRMPHY_DUMP
	bool "Enable dump command of DDR Multi PHY parameters"
	depends on ARCH_UNIPHIER_PROXSTREAM2 || ARCH_UNIPHIER_PH1_LD6B
	help
	  The command "ddrmphy" shows the resulting parameters of DDR Multi PHY
	  training; it is useful for the evaluation of DDR Multi PHY training.

endif
