Messages in this thread | | | From | frank zago <> | Subject | [PATCH v6 0/4] add driver for the WCH CH341 in I2C/GPIO mode | Date | Wed, 15 Jun 2022 20:37:43 -0500 |
| |
The CH341 is a multifunction chip, presenting 3 different USB PID. One of these functions is for I2C/SPI/GPIO. This new set of drivers will manage I2C and GPIO.
Changes from v5: Addressed reviewers' comments. Better handling of 0-bytes i2c commands Use of better USB API.
Changes from v4: I should have addressed all the comments: rework of the GPIO interrupt handling code to be more modern, changes in Kconfig wording, some code cleanup. Driver was tested again with up to 4 of these devices. No error seen.
Changes from v3: - really converted to an MFD driver. Driver is now split into 3 modules (MFD+I2C+GPIO). - minor code cleanups
Changes from v2: - bug fixes - more robust USB enumeration - Changed to an MFD driver as suggested
During testing I found that i2c handles hot removal, but not gpio. The gpio subsystem will complain with 'REMOVING GPIOCHIP WITH GPIOS STILL REQUESTED', but it's a gpiolib issue.
Changes from v1: - Removed double Signed-off-by - Move Kconfig into the same directory as the driver
frank zago (4): mfd: ch341: add core driver for the WCH CH341 in I2C/SPI/GPIO mode gpio: ch341: add GPIO MFD cell driver for the CH341 i2c: ch341: add I2C MFD cell driver for the CH341 docs: misc: add documentation for ch341 driver
Documentation/misc-devices/ch341.rst | 109 ++++++++ Documentation/misc-devices/index.rst | 1 + MAINTAINERS | 9 + drivers/gpio/Kconfig | 10 + drivers/gpio/Makefile | 1 + drivers/gpio/gpio-ch341.c | 385 +++++++++++++++++++++++++++ drivers/i2c/busses/Kconfig | 10 + drivers/i2c/busses/Makefile | 1 + drivers/i2c/busses/i2c-ch341.c | 377 ++++++++++++++++++++++++++ drivers/mfd/Kconfig | 10 + drivers/mfd/Makefile | 1 + drivers/mfd/ch341-core.c | 90 +++++++ include/linux/mfd/ch341.h | 26 ++ 13 files changed, 1030 insertions(+) create mode 100644 Documentation/misc-devices/ch341.rst create mode 100644 drivers/gpio/gpio-ch341.c create mode 100644 drivers/i2c/busses/i2c-ch341.c create mode 100644 drivers/mfd/ch341-core.c create mode 100644 include/linux/mfd/ch341.h
-- 2.32.0
| |