This patch set adds sink side support for the PPS feature introduced in the
USB PD 3.0 specification.

The source PPS supply is represented using the Power Supply framework to provide
access and control APIs for dealing with it's operating voltage and current,
and switching between a standard PDO and PPS APDO operation. During standard PDO
operation the voltage and current is read-only, but for APDO PPS these are
writable as well to allow for control.

It should be noted that the keepalive for PPS is not handled within TCPM. The
expectation is that the external user will be required to ensure re-requests
occur regularly to ensure PPS remains and the source does not hard reset.

So with all of that covered, please feel free to rip this apart as you see fit.

Note: Code changes are based on linux-next tag 'next-20171017' to pick up
the move out of staging of TCPM related code.

Adam Thomson (7):
  typec: tcpm: Add PD Rev 3.0 definitions to PD header
  typec: tcpm: Add ADO header for Alert message handling
  typec: tcpm: Add SDB header for Status message handling
  typec: tcpm: Add core support for sink side PPS
  power: supply: Add type for USB PD PPS chargers
  typec: tcpm: Represent source supply through power_supply class
  typec: tcpm: Add support for sink PPS related messages

 drivers/power/supply/power_supply_sysfs.c |   2 +-
 drivers/usb/typec/Kconfig                 |   1 +
 drivers/usb/typec/fusb302/Kconfig         |   2 +-
 drivers/usb/typec/fusb302/fusb302.c       |  63 +--
 drivers/usb/typec/tcpm.c                  | 816 +++++++++++++++++++++++++++++-
 include/linux/power_supply.h              |   1 +
 include/linux/usb/pd.h                    | 162 +++++-
 include/linux/usb/pd_ado.h                |  49 ++
 include/linux/usb/pd_ext_sdb.h            |  40 ++
 include/linux/usb/tcpm.h                  |   2 +-
 10 files changed, 1041 insertions(+), 97 deletions(-)
 create mode 100644 include/linux/usb/pd_ado.h
 create mode 100644 include/linux/usb/pd_ext_sdb.h

-- 
1.9.1

Reply via email to