# SPDX-License-Identifier: GPL-2.0-only
#
# EC-like Drivers for aarch64 based devices.
#

menuconfig ARM64_PLATFORM_DEVICES
	bool "ARM64 Platform-Specific Device Drivers"
	depends on ARM64 || COMPILE_TEST
	default y
	help
	  Say Y here to get to see options for platform-specific device drivers
	  for arm64 based devices, primarily EC-like device drivers.
	  This option alone does not add any kernel code.

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

if ARM64_PLATFORM_DEVICES

config EC_ACER_ASPIRE1
	tristate "Acer Aspire 1 Embedded Controller driver"
	depends on ARCH_QCOM || COMPILE_TEST
	depends on I2C
	depends on DRM
	depends on POWER_SUPPLY
	depends on INPUT
	help
	  Say Y here to enable the EC driver for the (Snapdragon-based)
	  Acer Aspire 1 laptop. The EC handles battery and charging
	  monitoring as well as some misc functions like the lid sensor
	  and USB Type-C DP HPD events.

	  This driver provides battery and AC status support for the mentioned
	  laptop where this information is not properly exposed via the
	  standard ACPI devices.

config EC_LENOVO_YOGA_C630
	tristate "Lenovo Yoga C630 Embedded Controller driver"
	depends on ARCH_QCOM || COMPILE_TEST
	depends on I2C
	select AUXILIARY_BUS
	help
	  Driver for the Embedded Controller in the Qualcomm Snapdragon-based
	  Lenovo Yoga C630, which provides battery and power adapter
	  information.

	  This driver provides battery and AC status support for the mentioned
	  laptop where this information is not properly exposed via the
	  standard ACPI devices.

	  Say M or Y here to include this support.

endif # ARM64_PLATFORM_DEVICES
