Re: [PATCH 0/3] usb: USB Type-C Class and driver for UCSI

From: Rajaram R
Date: Wed Feb 17 2016 - 14:34:57 EST


On Tue, Feb 9, 2016 at 10:31 PM, Heikki Krogerus
<heikki.krogerus@xxxxxxxxxxxxxxx> wrote:
> Hi,
>
> The OS, or more precisely the user space, needs to be able to control
> a few things regarding USB Type-C ports. The first thing that must be
> allowed to be controlled is the data role. USB Type-C ports will
> select the data role randomly with DRP ports. When USB PD is
> supported, also independent (from data role) power role swapping can
> be supported together with Alternate Mode control.
>
> I'm proposing with this set a Class for the Type-C connectors that
> gives the user space control over those things on top of getting basic
> details about the USB Type-C connectors and also partners. The details
> include the capabilities of the port, the supported data and power
> roles, supported accessories (audio and debug), supported Alternate
> Modes, USB PD support and of course the type of the partner (USB, Alt
> Mode, Accessory or Charger), and more or less the same details about
> the partner.
>
> I'm not considering cables with this Class, and I have deliberately

Since we have capability details of ports in user space, I believe
cable capability is also necessary for policy decision(power, alt
mode). Is that something we are cautiously leaving out ? pls explain

> left out some more technical details, like cable orientation, firstly
> because I did not see much use for the user space from knowing that
> an secondly because that kind of details are not always available for
> example with UCSI.
>
> So the interface to the user space is kept as simple as I dared to
> make it.
>
> NOTE: In case there is somebody wondering, this is not adding USB PD
> support to Linux kernel. This is just about USB Type-C.
>
>
> Heikki Krogerus (3):
> usb: USB Type-C Connector Class
> usb: type-c: USB Type-C Connector System Software Interface
> usb: type-c: UCSI ACPI driver
>
> drivers/usb/Kconfig | 2 +
> drivers/usb/Makefile | 2 +
> drivers/usb/type-c/Kconfig | 25 +++
> drivers/usb/type-c/Makefile | 3 +
> drivers/usb/type-c/typec.c | 446 ++++++++++++++++++++++++++++++++++++++++
> drivers/usb/type-c/ucsi.c | 450 +++++++++++++++++++++++++++++++++++++++++
> drivers/usb/type-c/ucsi.h | 219 ++++++++++++++++++++
> drivers/usb/type-c/ucsi_acpi.c | 133 ++++++++++++
> include/linux/usb/typec.h | 114 +++++++++++
> 9 files changed, 1394 insertions(+)
> create mode 100644 drivers/usb/type-c/Kconfig
> create mode 100644 drivers/usb/type-c/Makefile
> create mode 100644 drivers/usb/type-c/typec.c
> create mode 100644 drivers/usb/type-c/ucsi.c
> create mode 100644 drivers/usb/type-c/ucsi.h
> create mode 100644 drivers/usb/type-c/ucsi_acpi.c
> create mode 100644 include/linux/usb/typec.h
>
> --
> 2.7.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html