Re: [PATCH v5 1/9] dt-bindings: usb: Add Type-C switch binding
From: Prashant Malani
Date: Wed Jul 13 2022 - 17:58:22 EST
On Tue, Jul 12, 2022 at 10:45 AM Rob Herring <robh@xxxxxxxxxx> wrote:
>
> > I agree with you; I'm saying my interpretation of the comments of this
> > thread are that it's not the intended usage of the it6505 part, so the driver
> > shouldn't be updated to support that.
>
> That's not the right interpretation. There should not be some Type-C
> specific child mux/switch node because the device has no such h/w within
> it. Assuming all the possibilities Stephen outlined are valid, it's
> clear this lane selection has nothing to do with Type-C. It does have an
> output port for its DP output already and using that to describe the
> connection to DP connector(s) and/or Type-C connector(s) should be
> handled.
Got it. Thanks for the clarification.
>
> Whether the driver is type-C aware is a separate question from the
> binding. I would think the driver just needs to be told (or it can ask)
> which endpoint should be active and it just enables output on the
> corresponding lanes for that endpoint.
Is it acceptable to tag the end-points with a "mode-switch" /
"orientation-switch"
property? Something like the following:
```
dp-bridge@5c {
compatible = "ite,it6505";
...
port {
#adderss-cells = <1>;
#size-cells = <0>;
ite_typec0: endpoint@0 {
reg = <0>;
mode-switch;
remote-endpoint = <&typec_connector0>;
};
ite_typec1: endpoint@1 {
reg = <1>;
mode-switch;
remote-endpoint = <&typec_connector1>;
};
};
};
```
Or should the DRM bridge device binding not have those properties in
the end-points either?
The reasons those are required are:
- The Type-C matching code looks for the "mode-switch" identifier in
the fwnode while performing the switch matching [1]
- While we can look up whether the remote-endpoint is a
"usb-c-connector" in the bridge driver the
"mode-switch"/"orientation-switch" property tells the bridge driver
whether to register just a mode-switch, an orientation switch or both.
Best regards,
- Prashant
[1] https://elixir.bootlin.com/linux/v5.19-rc6/source/drivers/usb/typec/mux.c#L347