# SPDX-License-Identifier: GPL-2.0
if MACH_LOONGSON32

choice
	prompt "Machine Type"

config LOONGSON1_LS1B
	bool "Loongson LS1B board"
	select CEVT_R4K if !MIPS_EXTERNAL_TIMER
	select CSRC_R4K if !MIPS_EXTERNAL_TIMER
	select SYS_HAS_CPU_LOONGSON1B
	select DMA_NONCOHERENT
	select BOOT_ELF32
	select IRQ_MIPS_CPU
	select SYS_SUPPORTS_32BIT_KERNEL
	select SYS_SUPPORTS_LITTLE_ENDIAN
	select SYS_SUPPORTS_HIGHMEM
	select SYS_HAS_EARLY_PRINTK
	select USE_GENERIC_EARLY_PRINTK_8250
	select COMMON_CLK

config LOONGSON1_LS1C
	bool "Loongson LS1C board"
	select CEVT_R4K if !MIPS_EXTERNAL_TIMER
	select CSRC_R4K if !MIPS_EXTERNAL_TIMER
	select SYS_HAS_CPU_LOONGSON1C
	select DMA_NONCOHERENT
	select BOOT_ELF32
	select IRQ_MIPS_CPU
	select SYS_SUPPORTS_32BIT_KERNEL
	select SYS_SUPPORTS_LITTLE_ENDIAN
	select SYS_SUPPORTS_HIGHMEM
	select SYS_HAS_EARLY_PRINTK
	select USE_GENERIC_EARLY_PRINTK_8250
	select COMMON_CLK
endchoice

menuconfig CEVT_CSRC_LS1X
	bool "Use PWM Timer for clockevent/clocksource"
	select MIPS_EXTERNAL_TIMER
	depends on CPU_LOONGSON1
	help
	  This option changes the default clockevent/clocksource to PWM Timer,
	  and is required by Loongson1 CPUFreq support.

	  If unsure, say N.

choice
	prompt  "Select clockevent/clocksource"
	depends on CEVT_CSRC_LS1X
	default TIMER_USE_PWM0

config TIMER_USE_PWM0
	bool "Use PWM Timer 0"
	help
	  Use PWM Timer 0 as the default clockevent/clocksourcer.

config TIMER_USE_PWM1
	bool "Use PWM Timer 1"
	help
	  Use PWM Timer 1 as the default clockevent/clocksourcer.

config TIMER_USE_PWM2
	bool "Use PWM Timer 2"
	help
	  Use PWM Timer 2 as the default clockevent/clocksourcer.

config TIMER_USE_PWM3
	bool "Use PWM Timer 3"
	help
	  Use PWM Timer 3 as the default clockevent/clocksourcer.

endchoice

endif # MACH_LOONGSON32
