# Copyright 2024 Google LLC
# SPDX-License-Identifier: Apache-2.0

config INPUT_PAW32XX
	bool "PAW32xx ultra low power wireless mouse chip"
	default y
	depends on DT_HAS_PIXART_PAW32XX_ENABLED
	select SPI
	help
	  PAW32XX low power laser mouse sensor input driver
