Message ID | 20240308162518.1615468-1-Frank.Li@nxp.com (mailing list archive) |
---|---|
Headers | show |
Series | I3C target mode support | expand |
On Fri, Mar 08, 2024 at 11:25:10AM -0500, Frank Li wrote: > This patch introduces support for I3C target mode, which is referenced > with a PCIe Endpoint system. It also establishes a configuration framework > (configfs) for the I3C target controller driver and the I3C target function > driver Alex: Do you have any concern about these patches? Frank > > Typic usage as > > The user can configure the i3c-target-tty device using configfs entry. In > order to change the vendorid, the following commands can be used > > # echo 0x011b > functions/tty/func1/vendor_id > # echo 0x1000 > functions/tty/func1/part_id > # echo 0x6 > functions/tty/t/bcr > > Binding i3c-target-tty Device to target Controller > ------------------------------------------------ > > In order for the target function device to be useful, it has to be bound to > a I3C target controller driver. Use the configfs to bind the function > device to one of the controller driver present in the system:: > > # ln -s functions/pci_epf_test/func1 controllers/44330000.i3c-target/ > > Host side: > cat /dev/ttyI3C0 > Taret side: > echo abc >/dev/ttyI3C0 > > Notes about header files. > > About Ilpo Järvinen's header file comments, it can pass build, some header > should be included by other header files. > > I added some, but I am not sure that is all needs. There may have tools, > which can help check, but I don't know. > > Chagne from v2 to v3 > - using 'mode' distingiush master and target. > - move svc-i3c-target.c to under master, > - built together with svc-i3c-master.c > > Change from v1 to v2 > - change "slave" to "target" > - include master side tty patch > - fixed dtbcheck problem > - fixed kerne-doc check warning > > Some review comment may be lost since it is quite long time since v1. Now > master side dependent patches already in linux-next. So sent target side > patches with tty support again. > > No sure why an additional "\r\n" appended. > > Frank Li (8): > i3c: add target mode support > dt-bindings: i3c: svc: add proptery mode > Documentation: i3c: Add I3C target mode controller and function > i3c: svc: Add svc-i3c-main.c and svc-i3c.h > i3c: target: add svc target controller support > i3c: target: func: add tty driver > i3c: add API i3c_dev_gettstatus_format1() to get target device status > tty: i3c: add TTY over I3C master support > > .../bindings/i3c/silvaco,i3c-master.yaml | 11 +- > Documentation/driver-api/i3c/index.rst | 1 + > .../driver-api/i3c/target/i3c-target-cfs.rst | 109 +++ > .../driver-api/i3c/target/i3c-target.rst | 189 +++++ > .../driver-api/i3c/target/i3c-tty-howto.rst | 109 +++ > Documentation/driver-api/i3c/target/index.rst | 13 + > drivers/i3c/Kconfig | 31 +- > drivers/i3c/Makefile | 3 + > drivers/i3c/device.c | 24 + > drivers/i3c/func/Kconfig | 9 + > drivers/i3c/func/Makefile | 3 + > drivers/i3c/func/tty.c | 481 +++++++++++ > drivers/i3c/i3c-cfs.c | 389 +++++++++ > drivers/i3c/internals.h | 1 + > drivers/i3c/master.c | 26 + > drivers/i3c/master/Makefile | 3 +- > drivers/i3c/master/svc-i3c-main.c | 80 ++ > drivers/i3c/master/svc-i3c-master.c | 34 +- > drivers/i3c/master/svc-i3c-target.c | 776 ++++++++++++++++++ > drivers/i3c/master/svc-i3c.h | 15 + > drivers/i3c/target.c | 453 ++++++++++ > drivers/tty/Kconfig | 13 + > drivers/tty/Makefile | 1 + > drivers/tty/i3c_tty.c | 432 ++++++++++ > include/linux/i3c/device.h | 1 + > include/linux/i3c/target.h | 548 +++++++++++++ > 26 files changed, 3724 insertions(+), 31 deletions(-) > create mode 100644 Documentation/driver-api/i3c/target/i3c-target-cfs.rst > create mode 100644 Documentation/driver-api/i3c/target/i3c-target.rst > create mode 100644 Documentation/driver-api/i3c/target/i3c-tty-howto.rst > create mode 100644 Documentation/driver-api/i3c/target/index.rst > create mode 100644 drivers/i3c/func/Kconfig > create mode 100644 drivers/i3c/func/Makefile > create mode 100644 drivers/i3c/func/tty.c > create mode 100644 drivers/i3c/i3c-cfs.c > create mode 100644 drivers/i3c/master/svc-i3c-main.c > create mode 100644 drivers/i3c/master/svc-i3c-target.c > create mode 100644 drivers/i3c/master/svc-i3c.h > create mode 100644 drivers/i3c/target.c > create mode 100644 drivers/tty/i3c_tty.c > create mode 100644 include/linux/i3c/target.h > > -- > 2.34.1 >