# SPDX-License-Identifier: GPL-2.0-only

if BOARD_AMD_PADMELON

config BOARD_SPECIFIC_OPTIONS
	def_bool y
	select SOC_AMD_STONEYRIDGE
	select AMD_APU_PKG_FP4
	select BOARD_ROMSIZE_KB_8192
	select DRIVERS_I2C_GENERIC
	select HAVE_ACPI_TABLES
	select GFXUMA
	select STONEYRIDGE_LEGACY_FREE
	select ONBOARD_VGA_IS_PRIMARY
	select SUPERIO_FINTEK_F81803A
	select SUPERIO_FINTEK_COMMON_PRE_RAM
	select SUPERIO_FINTEK_FAN_CONTROL
	select SUPERIO_FINTEK_FAN_API_CALL
	select VGA_BIOS
	select AZALIA_PLUGIN_SUPPORT

config MAINBOARD_DIR
	string
	default "amd/padmelon"

config MAINBOARD_PART_NUMBER
	string
	default "Padmelon"

choice
	prompt "SOC used in padmelon board"
	default PADMELON_MERLIN_FALCON

config PADMELON_MERLIN_FALCON
	bool "Merlin Falcon"

config PADMELON_PRAIRIE_FALCON
	bool "Prairie Falcon"

endchoice

config PADMELON_SOC_IN_USE
	def_bool y
	select AMD_APU_MERLINFALCON if PADMELON_MERLIN_FALCON
	select AMD_APU_PRAIRIEFALCON if PADMELON_PRAIRIE_FALCON

config HAVE_S3_SUPPORT
	bool
	default n

config MAX_CPUS
	int
	default 4

config IRQ_SLOT_COUNT
	int
	default 11

config HWM_PORT
	hex
	default 0x0225
	help
	  HWM base address must be an odd address. Hardware monitor used
	  addresses are HWM_PORT for index an HWM_PORT + 1 for data.
	  If changed, make sure fan_init.c IO window setting. The HWM
	  (Hardware Monitor) is used for fan control within padmelon.

endif # BOARD_AMD_PADMELON
