# 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_LOONGSON32
	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
