blob: a8b34a2d08aad2d4660ee2a8fc8dc4e88f872526 [file] [view]
# 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.