# SPDX-License-Identifier: GPL-2.0-only
-menu "I2C HID support"
-       depends on I2C
+menuconfig I2C_HID
+       tristate "I2C HID support"
+       default y
+       depends on I2C && INPUT && HID
+
+if I2C_HID
 
 config I2C_HID_ACPI
        tristate "HID over I2C transport layer ACPI driver"
-       default n
-       depends on I2C && INPUT && ACPI
+       depends on ACPI
+       select I2C_HID_CORE
        help
          Say Y here if you use a keyboard, a touchpad, a touchscreen, or any
          other HID based devices which is connected to your computer via I2C.
 
 config I2C_HID_OF
        tristate "HID over I2C transport layer Open Firmware driver"
-       default n
-       depends on I2C && INPUT && OF
+       depends on OF
+       select I2C_HID_CORE
        help
          Say Y here if you use a keyboard, a touchpad, a touchscreen, or any
          other HID based devices which is connected to your computer via I2C.
 
 config I2C_HID_OF_ELAN
        tristate "Driver for Elan hid-i2c based devices on OF systems"
-       default n
-       depends on I2C && INPUT && OF
+       depends on OF
+       select I2C_HID_CORE
        help
          Say Y here if you want support for Elan i2c devices that use
          the i2c-hid protocol on Open Firmware (Device Tree)-based
 
 config I2C_HID_OF_GOODIX
        tristate "Driver for Goodix hid-i2c based devices on OF systems"
-       default n
-       depends on I2C && INPUT && OF
+       depends on OF
+       select I2C_HID_CORE
        help
          Say Y here if you want support for Goodix i2c devices that use
          the i2c-hid protocol on Open Firmware (Device Tree)-based
          will be called i2c-hid-of-goodix.  It will also build/depend on
          the module i2c-hid.
 
-endmenu
-
 config I2C_HID_CORE
        tristate
-       default y if I2C_HID_ACPI=y || I2C_HID_OF=y || I2C_HID_OF_GOODIX=y
-       default m if I2C_HID_ACPI=m || I2C_HID_OF=m || I2C_HID_OF_GOODIX=m
-       select HID
+endif
+