[PATCH 0/2] MIPI I3c HCI (Host Controller Interface) driver

Nicolas Pitre
2020-08-14T03:49:28Z

The MIPI I3C HCI (Host Controller Interface) specification defines
a common software driver interface to support compliant MIPI I3C
host controller hardware implementations from multiple vendors. This
is the initial Linux driver implementing support for this specification.

Due to limitations in the I3C subsystem, this driver doesn't implement
everything the spec specifies. For example, scheduled commands,
auto-commands and NCM are major features not yet supported.

There are different revisions of the spec: v1.0, v1.1 (to be released
imminently), and 2.0 (still under active development). All of them are
supported with varying degree due to the above, and of course v2 support
is likely to change as the spec is finalized. But it is included
nevertheless as all I have for testing at the moment is based on
an early v2 draft. Even v1.0 hardware is still scarse so it wasn't
tested yet. As more hardware becomes available for testing it is likely
that adjustments will be needed on top of this. But it is best to have
the code merged earlier so it gains better exposure for future
contributions, etc.

Feedback appreciated.

diffstat:

.../devicetree/bindings/i3c/mipi-i3c-hci.txt | 15 +
drivers/i3c/master/Kconfig | 13 +
drivers/i3c/master/Makefile | 1 +
drivers/i3c/master/mipi-i3c-hci/Makefile | 9 +
drivers/i3c/master/mipi-i3c-hci/cmd.h | 106 ++
drivers/i3c/master/mipi-i3c-hci/cmd_v1.c | 362 +++++++
drivers/i3c/master/mipi-i3c-hci/cmd_v2.c | 280 +++++
drivers/i3c/master/mipi-i3c-hci/core.c | 801 +++++++++++++++
drivers/i3c/master/mipi-i3c-hci/dat.h | 28 +
drivers/i3c/master/mipi-i3c-hci/dat_v1.c | 170 ++++
drivers/i3c/master/mipi-i3c-hci/dct.h | 16 +
drivers/i3c/master/mipi-i3c-hci/dct_v1.c | 36 +
drivers/i3c/master/mipi-i3c-hci/debug.c | 79 ++
drivers/i3c/master/mipi-i3c-hci/debug.h | 17 +
drivers/i3c/master/mipi-i3c-hci/dma.c | 767 ++++++++++++++
drivers/i3c/master/mipi-i3c-hci/ext_caps.c | 249 +++++
drivers/i3c/master/mipi-i3c-hci/ext_caps.h | 19 +
drivers/i3c/master/mipi-i3c-hci/hci.h | 150 +++
drivers/i3c/master/mipi-i3c-hci/ibi.h | 42 +
drivers/i3c/master/mipi-i3c-hci/pio.c | 961 ++++++++++++++++++
20 files changed, 4121 insertions(+)