# SPDX-License-Identifier: GPL-2.0-only
#
# MIPS Platform Specific Drivers
#

menuconfig MIPS_PLATFORM_DEVICES
	bool "MIPS Platform Specific Device Drivers"
	default y
	depends on MIPS
	help
	  Say Y here to get to see options for device drivers of various
	  MIPS platforms, including vendor-specific netbook/laptop/desktop
	  extension and hardware monitor drivers. This option itself does
	  not add any kernel code.

	  If you say N, all options in this submenu will be skipped and disabled.

if MIPS_PLATFORM_DEVICES

config CPU_HWMON
	bool "Loongson-3 CPU HWMon Driver"
	depends on MACH_LOONGSON64
	select HWMON
	default y
	help
	  Loongson-3A/3B CPU Hwmon (temperature sensor) driver.

config RS780E_ACPI
	bool "Loongson RS780E ACPI Controller"
	depends on MACH_LOONGSON64 || COMPILE_TEST
	help
	  Loongson RS780E PCH ACPI Controller driver.

config LS2K_RESET
	bool "Loongson-2K1000 Reset Controller"
	depends on MACH_LOONGSON64 || COMPILE_TEST
	help
	  Loongson-2K1000 Reset Controller driver.

endif # MIPS_PLATFORM_DEVICES
