USB: serial: cp210x: implement GPIO support for CP2102N
authorKaroly Pados <pados@pados.hu>
Fri, 20 Jul 2018 10:52:40 +0000 (12:52 +0200)
committerJohan Hovold <johan@kernel.org>
Fri, 20 Jul 2018 16:22:52 +0000 (18:22 +0200)
commitc8acfe0aadbeb78f65826959891be15cc0a709a3
tree531af792a5b950c18a56369551f50f3496ed961f
parent5edb65a33710bbf10f38b42e0d497b35ec1ed908
USB: serial: cp210x: implement GPIO support for CP2102N

This patch adds GPIO support for CP2102N devices.

It introduces new generic code to support emulating separate
input and outputs directions even though these devices
only know output modes (open-drain and pushpull). Existing
GPIO support for CP2105 has been migrated over to the new
code structure.

Only limitation is that for the QFN28 variant, only 4 out of
7 GPIOs are supported. This is because the config array
locations of the last 3 pins are not documented, and reverse
engineering revealed offsets that conflicted with other
documented functions. Hence we'll play it safe instead
until somebody clears this up further.

Signed-off-by: Karoly Pados <pados@pados.hu>
[ johan: fix style issues and a couple of minor bugs; use Karoly's
         updated commit message ]
Acked-by: Martyn Welch <martyn.welch@collabora.co.uk>
Signed-off-by: Johan Hovold <johan@kernel.org>
drivers/usb/serial/cp210x.c