drivers: hierarchize drivers Kconfig menu
The menuconfig for drivers are getting more and more cluttered
and unreadable because too many entries are displayed in a single
flat menu. Use hierarchic menu for each category.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
[trini: Update to apply again in a few places, drop USB hunk]
Signed-off-by: Tom Rini <trini@konsulko.com>
diff --git a/drivers/core/Kconfig b/drivers/core/Kconfig
index c82b564..788f8b7 100644
--- a/drivers/core/Kconfig
+++ b/drivers/core/Kconfig
@@ -1,3 +1,5 @@
+menu "Generic Driver Options"
+
config DM
bool "Enable Driver Model"
help
@@ -102,3 +104,5 @@
debug resource management for a managed device.
If you are unsure about this, Say N here.
+
+endmenu
diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig
index bd26a2b..1ea116b 100644
--- a/drivers/crypto/Kconfig
+++ b/drivers/crypto/Kconfig
@@ -1 +1,5 @@
+menu "Hardware crypto devices"
+
source drivers/crypto/fsl/Kconfig
+
+endmenu
diff --git a/drivers/demo/Kconfig b/drivers/demo/Kconfig
index 7a8ce18..98bb633 100644
--- a/drivers/demo/Kconfig
+++ b/drivers/demo/Kconfig
@@ -1,3 +1,5 @@
+menu "Demo for driver model"
+
config DM_DEMO
bool "Enable demo uclass support"
depends on DM
@@ -24,3 +26,5 @@
a shape when the 'demo hello' command is executed which targets
this device. It can be used to help understand how driver model
works.
+
+endmenu
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index 0c43777..5934597 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -1,3 +1,9 @@
+#
+# GPIO infrastructure and drivers
+#
+
+menu "GPIO Support"
+
config DM_GPIO
bool "Enable Driver Model for GPIO drivers"
depends on DM
@@ -42,3 +48,5 @@
default n
help
Say yes here to support Vybrid vf610 GPIOs.
+
+endmenu
diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig
index 9a62ddd..c40bd5c 100644
--- a/drivers/i2c/Kconfig
+++ b/drivers/i2c/Kconfig
@@ -1,3 +1,9 @@
+#
+# I2C subsystem configuration
+#
+
+menu "I2C support"
+
config DM_I2C
bool "Enable Driver Model for I2C drivers"
depends on DM
@@ -99,3 +105,5 @@
This I2C controller is used on PH1-Pro4 or newer UniPhier SoCs.
source "drivers/i2c/muxes/Kconfig"
+
+endmenu
diff --git a/drivers/led/Kconfig b/drivers/led/Kconfig
index de5feea..b21bc94 100644
--- a/drivers/led/Kconfig
+++ b/drivers/led/Kconfig
@@ -1,3 +1,5 @@
+menu "LED Support"
+
config LED
bool "Enable LED support"
depends on DM
@@ -24,3 +26,5 @@
GPIOs may be on the SoC or some other device which provides GPIOs.
The GPIO driver must used driver model. LEDs are configured using
the device tree.
+
+endmenu
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index 3b7f76a..f29a169 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -1,3 +1,9 @@
+#
+# Multifunction miscellaneous devices
+#
+
+menu "Multifunction device drivers"
+
config CMD_CROS_EC
bool "Enable crosec command"
depends on CROS_EC
@@ -82,3 +88,5 @@
Each driver can provide a reset method which will be called to
effect a reset. The uclass will try all available drivers when
reset_walk() is called.
+
+endmenu
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index bd63621..b5d9048 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -1,3 +1,9 @@
+#
+# RTC drivers configuration
+#
+
+menu "Real Time Clock"
+
config DM_RTC
bool "Enable Driver Model for RTC drivers"
depends on DM
@@ -6,3 +12,5 @@
then provides the rtc_get()/rtc_set() interface, delegating to
drivers to perform the actual functions. See rtc.h for a
description of the API.
+
+endmenu
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig
index a880eac..4f6a3b8 100644
--- a/drivers/serial/Kconfig
+++ b/drivers/serial/Kconfig
@@ -1,3 +1,9 @@
+#
+# Serial device configuration
+#
+
+menu "Serial drivers"
+
config REQUIRE_SERIAL_CONSOLE
bool "Require a serial port for console"
# Running without a serial console is not supported by the
@@ -139,3 +145,5 @@
enabled in the device tree with the correct input clock frequency
provided (default 1843200). Enable this to obtain serial console
output.
+
+endmenu
diff --git a/drivers/sound/Kconfig b/drivers/sound/Kconfig
index 3b96e84..5de86c0 100644
--- a/drivers/sound/Kconfig
+++ b/drivers/sound/Kconfig
@@ -1,3 +1,5 @@
+menu "Sound support"
+
config SOUND
bool "Enable sound support"
help
@@ -53,3 +55,5 @@
Enable the wm8994 audio codec. This is connected via I2S for
audio data and I2C for codec control. At present it only works
with the Samsung I2S driver.
+
+endmenu
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 3244cd7..5cb3685 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -1,3 +1,9 @@
+#
+# Video configuration
+#
+
+menu "Graphics support"
+
config VIDEO_VESA
bool "Enable VESA video driver support"
default n
@@ -242,3 +248,5 @@
have an eDP display connected.
source "drivers/video/bridge/Kconfig"
+
+endmenu