Hi! Here's a new version of serdev multiplexing support. Thanks to everybody who commented; I think I have included all non-optional suggestions. :) Changes are manifold, please refer to the changelog below. This version drops "mux: include compiler.h from mux/consumer.h", which is on its way upstream by now. CU Uli Changes since RFC v2: - parity: use an enum instead of the traditional enable/odd flags - mux: include it in the serdev core, remove option - mux: add "select MULTIPLEXER" to Kconfig - serdev: use device "reg" node as serdev_device::nr - mux: check if device has an of_node before trying to register mux - serdev: remove check for !serdev->ops in, serdev_controller_write_wakeup(), it is not needed - max9260: replace register numbers, magic protocol bytes and device ID with macros - max9260: use enum instead of macros for the rx_state - max9260: use wait_event_timeout() instead of wait_event_interruptible_timeout() - max9260: pass all parameters for max9260_transact() as arguments - max9260: add "max9260_" prefix to max9260_wait_for_transaction() - max9260: return -ENODEV instead of -EINVAL if the device does not respond correctly - max9260: change a number of length-bearing variables to size_t - dt: number max9260 devices according to their "reg" node Ulrich Hecht (6): serdev: add method to set parity serdev: add multiplexer support serial: core: support deferring serdev controller registration max9260: add driver for i2c over GMSL passthrough ARM: dts: blanche: add SCIF1 and MAX9260 deserializer dt-bindings: slave-device: add reg property .../devicetree/bindings/serial/slave-device.txt | 2 + arch/arm/boot/dts/r8a7792-blanche.dts | 52 ++++ drivers/media/i2c/Kconfig | 6 + drivers/media/i2c/Makefile | 1 + drivers/media/i2c/max9260.c | 300 +++++++++++++++++++++ drivers/tty/serdev/Kconfig | 1 + drivers/tty/serdev/Makefile | 2 +- drivers/tty/serdev/core.c | 25 +- drivers/tty/serdev/mux.c | 66 +++++ drivers/tty/serdev/serdev-ttyport.c | 18 ++ drivers/tty/serial/serial_core.c | 4 + include/linux/serdev.h | 24 +- 12 files changed, 497 insertions(+), 4 deletions(-) create mode 100644 drivers/media/i2c/max9260.c create mode 100644 drivers/tty/serdev/mux.c -- 2.7.4