This is the bulk of the GPIO changes for the v5.2 kernel cycle:

Core changes:
- The gpiolib MMIO driver has been enhanced to handle two direction
  registers, i.e. one register to set lines as input and one register
  to set lines as output. It turns out some silicon engineer thinks
  the ability to configure a line as input and output at the same
  time makes sense, this can be debated but includes a lot of analog
  electronics reasoning, and the registers are there and need to
  be handled consistently. Unsurprisingly, we enforce the lines to
  be either inputs or outputs in such schemes.
- Send in the proper argument value to .set_config() dispatched to
  the pin control subsystem. Nobody used it before, now someone
  does, so fix it to work as expected.
- The ACPI gpiolib portions can now handle pin bias setting (pull up
  or pull down). This has been in the ACPI spec for years and we
  finally have it properly integrated with Linux GPIOs. It was based
  on an observation from Andy Schevchenko that Thomas Petazzoni's
  changes to the core for biasing the PCA950x GPIO expander actually
  happen to fit hand-in-glove with what the ACPI core needed.
  Such nice synergies happen sometimes.

New drivers:
- A new driver for the Mellanox BlueField GPIO controller. This is
  using 64bit MMIO registers and can configure lines as inputs
  and outputs at the same time and after improving the MMIO library
  we handle it just fine. Interesting.
- A new IXP4xx proper gpiochip driver with hierarchical interrupts
  should be coming in from the ARM SoC tree as well.

Driver enhancements:
- The PCA053x driver handles the CAT9554 GPIO expander.
- The PCA053x driver handles the NXP PCAL6416 GPIO expander.
- Wake-up support on PCA053x GPIO lines.
- OMAP now does a nice asynchronous IRQ handling on wake-ups by
  letting everything wake up on edges, and this makes runtime PM
  work as expected too.

Misc:
- Several cleanups such as devres fixes.
- Get rid of some languager comstructs that cause problems when
  compiling with LLVMs clang.
- Documentation review and update.
-----BEGIN PGP SIGNATURE-----

iQIcBAABAgAGBQJc1olZAAoJEEEQszewGV1zEU4P/RmTf3hG8xmNPS3MDTmR6gAy
/YJOXjXBf3CD/dmEAyyaNLnUQismrtRNvHSoEGbno7gkU+htzp9UfUJkj6+HIXs2
RpF+Hi78HzZNDxGWuBLu6OZolpmBtx+sRKOhHk/XfNS45qd1FgXWDuulzsYa9Xsr
hYMXdtdv9wY/vcc68q1rtKAbzlu5ZNCa3Zj1iNOr/XQt3Nl2BW66hGLgjK4mOvgx
fJy4rFXuDIMfDvo69U1Opz2b39sfE7XMhfZS/MOgg4yEV9zGRgDoI1tyMcTqGb8Q
8LQbp5dXkP+3dJQB8tgbu3Vk4WC1Rd/pmIli5sMgsk0HYQ6XegfT6HJKozSmwN9r
0s8jKlrocWZvdPo1aJwQgtRS56t2rFWcrcRye8bLqxkkW5cYIq9CwkE8USwB31Kv
PFpoOwRuCtj0gkCxf7WIEcC5NAkYPow3K1KPdk3E0Si6I3pj0NqqlaAD0JAlkC2V
aPq3xbTuFCAdmcADEt2Z+dUJ7WIs5Y9oQgosMAx+A2AD4K3QDBMu3pZsT6SCu4XZ
mK0eWJi9/CvOj/s7bA0BEJVxQA+p8KYsNRBOULg/8aAOqGcLnSydQjqrxDTE8YrL
xmmRG7i7ht0B9CchZuIB5hqdvjbCgvcVa5OnCUDfLxE0GdCx8iJ9y9OrsMXbabYq
8FcPDo1N38cTYLnLqvKI
=rhto
-----END PGP SIGNATURE-----
gpio: Update documentation

Strictify the language a bit, move things around, make proper
headings, mention pull-up and pull-down, expand unreadable
acronyms etc.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
1 file changed