On Sun, 21 Apr 2019, Ronald Tschalär wrote: > The iBridge device provides access to several devices, including: > - the Touch Bar > - the iSight webcam > - the light sensor > - the fingerprint sensor > > This driver provides the core support for managing the iBridge device > and the access to the underlying devices. In particular, since the > functionality for the touch bar and light sensor is exposed via USB HID > interfaces, and the same HID device is used for multiple functions, this > driver provides a multiplexing layer that allows multiple HID drivers to > be registered for a given HID device. This allows the touch bar and ALS > driver to be separated out into their own modules. > > Signed-off-by: Ronald Tschalär <ronald@xxxxxxxxxxxxx> > --- > drivers/mfd/Kconfig | 15 + > drivers/mfd/Makefile | 1 + > drivers/mfd/apple-ibridge.c | 883 ++++++++++++++++++++++++++++++ I haven't taken a thorough look through, but I can tell you that the vast majority of what you're trying to do here does not belong in MFD. MFD drivers are used to register child devices. Almost all functionality or 'real work' should be contained in the drivers the MFD registers, not in the MFD parent itself. You will need to move all 'real work' out into the subordinate device drivers for acceptance. > include/linux/mfd/apple-ibridge.h | 39 ++ > 4 files changed, 938 insertions(+) > create mode 100644 drivers/mfd/apple-ibridge.c > create mode 100644 include/linux/mfd/apple-ibridge.h -- Lee Jones [李琼斯] Linaro Services Technical Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog