[PATCH v8 12/13] mfd: nct6694: Add a Kconfig symbol for the USB transport

From: a0282524688

Date: Wed Oct 07 2026 - 05:33:21 EST


From: Ming Yu <a0282524688@xxxxxxxxx>

Now that the sub-device drivers only access the device through regmap,
the core no longer depends on USB.

Build the USB transport under a new MFD_NCT6694_USB symbol and keep
MFD_NCT6694 for the core. MFD_NCT6694_USB defaults to MFD_NCT6694 so
that existing configurations keep the USB transport enabled.

Signed-off-by: Ming Yu <a0282524688@xxxxxxxxx>
---
Changes in v8:
- New patch. Split out of v7 "Rename driver to nct6694-usb and update
Kconfig"; MFD_NCT6694 remains the user visible core symbol and
MFD_NCT6694_USB defaults to it to keep existing configurations
working.

drivers/mfd/Kconfig | 20 ++++++++++++++++----
drivers/mfd/Makefile | 2 +-
2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index a0d9d6ccfb0c..de7d2171f514 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -1167,18 +1167,30 @@ config MFD_NCT6694
tristate "Nuvoton NCT6694 support"
select MFD_CORE
select REGMAP
- depends on USB
help
- This enables support for the Nuvoton USB device NCT6694, which shares
+ This enables support for the Nuvoton NCT6694, which shares
peripherals.
The Nuvoton NCT6694 is a peripheral expander with 16 GPIO chips,
6 I2C controllers, 2 CANfd controllers, 2 Watchdog timers, ADC,
PWM, and RTC.
- This driver provides core APIs to access the NCT6694 hardware
- monitoring and control features.
+ This driver provides the core support shared by the transport
+ interface drivers, at least one of which must be enabled.
Additional drivers must be enabled to utilize the specific
functionalities of the device.

+config MFD_NCT6694_USB
+ tristate "Nuvoton NCT6694 USB interface support"
+ depends on MFD_NCT6694 && USB
+ default MFD_NCT6694
+ help
+ This enables support for the Nuvoton NCT6694 connected through
+ its USB interface. The driver uses USB bulk transfers to send
+ commands to the device firmware and an interrupt transfer to
+ receive its interrupt status.
+
+ To compile this driver as a module, choose M here: the module
+ will be called nct6694-usb.
+
config MFD_OCELOT
tristate "Microsemi Ocelot External Control Support"
depends on SPI_MASTER
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
index dfd81356b485..a42b99250454 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -125,7 +125,7 @@ obj-$(CONFIG_MFD_MC13XXX_I2C) += mc13xxx-i2c.o
obj-$(CONFIG_MFD_PF1550) += pf1550.o

obj-$(CONFIG_MFD_NCT6694) += nct6694-core.o
-obj-$(CONFIG_MFD_NCT6694) += nct6694-usb.o
+obj-$(CONFIG_MFD_NCT6694_USB) += nct6694-usb.o

obj-$(CONFIG_MFD_CORE) += mfd-core.o

--
2.34.1