Commit 4b4e02c8 authored by Guenter Roeck's avatar Guenter Roeck Committed by Greg Kroah-Hartman

typec: tcpm: Move out of staging

Move tcpm (USB Type-C Port Manager) out of staging.
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 70cd90be
menu "USB Power Delivery and Type-C drivers" menu "USB Power Delivery and Type-C drivers"
config TYPEC_TCPM
tristate "USB Type-C Port Controller Manager"
depends on USB
select TYPEC
help
The Type-C Port Controller Manager provides a USB PD and USB Type-C
state machine for use with Type-C Port Controllers.
if TYPEC_TCPM if TYPEC_TCPM
config TYPEC_TCPCI config TYPEC_TCPCI
......
obj-$(CONFIG_TYPEC_TCPM) += tcpm.o
obj-$(CONFIG_TYPEC_TCPCI) += tcpci.o obj-$(CONFIG_TYPEC_TCPCI) += tcpci.o
obj-y += fusb302/ obj-y += fusb302/
tcpm:
- Add documentation (at the very least for the API to low level drivers)
- Split PD code into separate file
- Check if it makes sense to use tracepoints instead of debugfs for debug logs
- Implement Alternate Mode handling
- Address "#if 0" code if not addressed with the above
- Validate all comments marked with "XXX"; either address or remove comments
- Add support for USB PD 3.0. While not mandatory, at least fast role swap
as well as authentication support would be very desirable.
tcpci: tcpci:
- Test with real hardware - Test with real hardware
......
...@@ -37,11 +37,11 @@ ...@@ -37,11 +37,11 @@
#include <linux/string.h> #include <linux/string.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/usb/typec.h> #include <linux/usb/typec.h>
#include <linux/usb/tcpm.h>
#include <linux/usb/pd.h>
#include <linux/workqueue.h> #include <linux/workqueue.h>
#include "fusb302_reg.h" #include "fusb302_reg.h"
#include "../tcpm.h"
#include "../pd.h"
/* /*
* When the device is SNK, BC_LVL interrupt is used to monitor cc pins * When the device is SNK, BC_LVL interrupt is used to monitor cc pins
......
...@@ -20,11 +20,11 @@ ...@@ -20,11 +20,11 @@
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/usb/pd.h>
#include <linux/usb/tcpm.h>
#include <linux/usb/typec.h> #include <linux/usb/typec.h>
#include "pd.h"
#include "tcpci.h" #include "tcpci.h"
#include "tcpm.h"
#define PD_RETRY_COUNT 3 #define PD_RETRY_COUNT 3
......
...@@ -4,6 +4,14 @@ menu "USB Power Delivery and Type-C drivers" ...@@ -4,6 +4,14 @@ menu "USB Power Delivery and Type-C drivers"
config TYPEC config TYPEC
tristate tristate
config TYPEC_TCPM
tristate "USB Type-C Port Controller Manager"
depends on USB
select TYPEC
help
The Type-C Port Controller Manager provides a USB PD and USB Type-C
state machine for use with Type-C Port Controllers.
config TYPEC_WCOVE config TYPEC_WCOVE
tristate "Intel WhiskeyCove PMIC USB Type-C PHY driver" tristate "Intel WhiskeyCove PMIC USB Type-C PHY driver"
depends on ACPI depends on ACPI
......
obj-$(CONFIG_TYPEC) += typec.o obj-$(CONFIG_TYPEC) += typec.o
obj-$(CONFIG_TYPEC_TCPM) += tcpm.o
obj-$(CONFIG_TYPEC_WCOVE) += typec_wcove.o obj-$(CONFIG_TYPEC_WCOVE) += typec_wcove.o
obj-$(CONFIG_TYPEC_UCSI) += ucsi/ obj-$(CONFIG_TYPEC_UCSI) += ucsi/
...@@ -26,14 +26,13 @@ ...@@ -26,14 +26,13 @@
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/usb/pd.h>
#include <linux/usb/pd_bdo.h>
#include <linux/usb/pd_vdo.h>
#include <linux/usb/tcpm.h>
#include <linux/usb/typec.h> #include <linux/usb/typec.h>
#include <linux/workqueue.h> #include <linux/workqueue.h>
#include "pd.h"
#include "pd_vdo.h"
#include "pd_bdo.h"
#include "tcpm.h"
#define FOREACH_STATE(S) \ #define FOREACH_STATE(S) \
S(INVALID_STATE), \ S(INVALID_STATE), \
S(DRP_TOGGLING), \ S(DRP_TOGGLING), \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment