Add placeholder identity response for GET_PD_MESSAGE

The RTS545X is currently not capable supplying all information required
for SOP, SOP' or SOP'' identity responses. But, it provides access to
some VDOs. This adds a placeholder GET_PD_MESSAGE response with 6 VDOs
to mimic a discover identity response so the UCSI driver can test
partner/cable identity discovery.

BUG=b:319302484
TEST=make local_tests, GET_VDO response correctly enumerated as partner
identity with modified UCSI driver.

Change-Id: I49e145f1474967bd21ea13da0d03017cd559dc3e
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/usb/um_ppm/+/5208532
Reviewed-by: Abhishek Pandit-Subedi <abhishekpandit@google.com>
Tested-by: Jameson Thies <jthies@google.com>
2 files changed
tree: 48f0d1fb207ec0b6f94e22aa8552ddad20810b6e
  1. include/
  2. test/
  3. .gitignore
  4. LICENSE
  5. main.c
  6. Makefile
  7. platform_usermode.c
  8. ppm_common.c
  9. ppm_common.h
  10. README.md
  11. rts5453.c
  12. rts5453.h
  13. rts5453_usermode.c
  14. smbus_usermode.c
  15. smbus_usermode.h
  16. um_ppm_chardev.c
  17. um_ppm_chardev.h
README.md

Usermode PPM implementation

Usermode UCSI PPM implementation for evaluation and testing usage. Try using this with the ucsi_um_test kernel driver.

Setup

For usermode implementations, we use libi2c and libgpiod to provide an smbus implementation. You will need the right libraries to build:

sudo apt-get install libi2c-dev libgpiod-dev

Architecture

┌─────────┐
│OPM      │
│kernel or│
│cli      │
└────┬────┘
     │
     │
     ▼          ┌───────────┐
 ┌────────┐     │ PD Driver │
 │        ├────►│           │
 │  PPM   │     ├───────────┤
 │        │     │           │
 └────────┘     │ I2C Driver│
                └───────────┘

The usermode ppm implementation consists of the PPM task, the PD driver and the I2C driver backing it. The OPM will either be a CLI (for locally triggering some functionality) or the ucsi_um_test kernel module.