gpio: serial: max310x: Support open-drain configuration for GPIOs
authorJan Kundrát <jan.kundrat@cesnet.cz>
Fri, 22 Dec 2017 20:29:44 +0000 (21:29 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 9 Jan 2018 18:36:51 +0000 (19:36 +0100)
commite397824bf0953344000101dc8994e92a98add0fe
tree325fa58249fc09ab3ee5cc1b8456801f65c2ce39
parent7d09995dcb0577b4a56aad7f2bb56f28604e8f1a
gpio: serial: max310x: Support open-drain configuration for GPIOs

The push-pull vs. open-drain are the only supported output modes. The
inputs are always unconditionally equipped with weak pull-downs. That's
the only mode, so there's probably no point in exporting that. I wonder
if it's worthwhile to provide a custom dbg_show method to indicate the
current status of the outputs, though.

This patch and [1] for i2c-gpio together make it possible to bit-bang an
I2C bus over GPIOs of an UART which is connected via SPI :). Yes, this
is crazy, but it's fast enough (while on a 26Mhz SPI HW bus with a
dual-core 1.6GHz CPU) to drive an I2C bus at 200kHz, according to my
scope.

[1] https://patchwork.ozlabs.org/patch/852591/

Signed-off-by: Jan Kundrát <jan.kundrat@cesnet.cz>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/max310x.c