Re: [PATCH v17 2/3] usb: USB Type-C connector class

From: Mats Karrman
Date: Tue Mar 07 2017 - 17:33:21 EST


On 2017-03-06 14:14, Heikki Krogerus wrote:

Hi Mats,

On Fri, Mar 03, 2017 at 08:27:08PM +0100, Mats Karrman wrote:
My system is a bit different. It's an i.MX6 SoC with the typec phy and DP controller connected
directly to the SoC and it's using DTB/OF.
Is this "DP controller" a controller that is capable of taking care of
the USB Power Delivery communication with the partner regarding
DisplayPort alternate mode?
No, the "DP controller" just talks DP and knows nothing about Type-C or USB PD.
It takes a video stream from the SoC and turns it into a DP link, set up and orchestrated
by the corresponding driver. And all the driver needs from Type-C is the plugged in / interrupt /
plugged out events.
Got it.

The analog switching between USB / safe / DP signal levels in the Type-C connector is, I think,
best handled by the software doing the USB PD negotiation / Altmode handling (using some GPIOs).

Do we need to further standardize attributes under (each) specific alternate mode to
include things such as HPD for the DP mode?
I'm not completely sure what kind of system you have, but I would
imagine that if we had the bus, your DP controller driver would be the
port (and partner) alternate mode driver. The bus would bind you to
the typec phy.
So, both the DP controller and the USB PD phy are I2C devices, and now I have to make them both
attach to the AM bus as well?
The DP controller would provide the driver and the USB PD phy
(actually, the typec class) the device.

Would it be a problem to register these I2C devices with some other
subsystem, was it extcon or something like AM bus? It really would not
be that uncommon. Or have I misunderstood your question?

OK, so a bus could be used for drivers to find each other but it still does not say
anything about how those drivers are supposed to communicate so that must be prescribed
separately, right?

If I read Heikki's original suggestion I understand it like the DP driver would be
responsible for AM specific USB PD/VDM communication. But wouldn't that lead
to a lot of code duplication since the AM protocol is the same for all drivers of
a kind?

I'm still struggling to catch up on what you guys have been up to during the
last year or so :-) and came across some patches of Guenter from last October:

http://www.mail-archive.com/linux-kernel@xxxxxxxxxxxxxxx/msg1243527.html

What happened to them? Has there been any progress since then?

BR // Mats