Re: [PATCH v3 2/6] dt-bindings: usb: Add Qualcomm PMIC type C controller dt-binding

Wesley Cheng
2020-06-22T17:47:23Z

On 6/18/2020 3:23 PM, Rob Herring wrote:
> On Thu, Jun 18, 2020 at 2:09 PM Wesley Cheng <wcheng@codeaurora.org> wrote:
>>
>>
>> On 6/18/2020 11:33 AM, Rob Herring wrote:
>>> On Wed, Jun 17, 2020 at 12:02 PM Wesley Cheng <wcheng@codeaurora.org> wrote:
>>>
>>> You are duplicating everything in usb-connector.yaml. You should have
>>> a $ref to it.
>>>
>>
>> Hi Rob,
>>
>> Sure, I will add a reference to that doc.
>>
>>>
>>> This is wrong. The connector binding says port 0 is the connection the
>>> USB HS controller.
>>>
>>> What's a type C mux node? Is there a binding for that? There's an
>>> ongoing discussion with the CrOS folks on how to describe Alt mode
>>> mux/switches.
>>
>> I reviewed the connector binding previously, and couldn't seem to come
>> up with a model which fit a design where the type C controller (ie the
>> entity which does the CC orientation and role detection) does not have
>> the SS lane mux included. The SS lane mux is the HW which handles the
>> selection of the SS lanes to utilize based on cable orientation.
>
> The intent was the controller would be the parent node of the connector.
>

Hi Rob,

Correct, I agree with that point, and in the changes uploaded, the QCOM
PMIC type C controller will be the parent node for the connector.

> How the SS lane mux is represented is what needs to be figured out. I
> don't know what that looks like, but it needs to be something that
> works for multiple designs. Ideally, that's an extension of the
> existing 'usb-c-connector' binding, but if there's good reasons to
> redesign it that can happen.
>
> Rob
>

We probably wouldn't need to redesign it, but maybe if we can remove the
connector port assignments requirement, it would allow for some
flexibility. From my knowledge, I don't think any driver is actually
utilizing or checking the port number assignments, so there isn't a
limitation on what could be defined in there.

Here's a simplified diagram of the FUSB302 reference design from the
data sheet. The I2C bus is just for CSR access to the FUSB302.

_______ _______
______|FUSB302| |SOC |
| |Type C | | |
| |Cntrl |__I2C_______ | |
| |_______| | |
___ | | |
| |______ CC1/2 _________| | |
| |______ HS DP/DM __________________________________ | |
| | | |
________ | |
| |______ SS RX/TX1 ____________|FUSB304 |__SS RX/TX_ | |
| |______ SS RX/TX2 ____________|USB Mux | |_______|
| | |________|
| |
|___|

Otherwise, we can just simply add another port definition for external
SS lane muxes if possible.