On Wed, Aug 24, 2022 at 03:54:26AM +0800, Xu Yang wrote: > Typec orientation switch can be implemented as a consumer of mux > controller. So we can use mux controller to control simple gpio switch > or other types of switch. This will cover the following typec switch > use case: High Speed, Super Speed and Sideband switch. > > Signed-off-by: Xu Yang <xu.yang_2@xxxxxxx> Please see and participate in the recent discussions around USB-C connectors: https://lore.kernel.org/all/20220810204750.3672362-2-bjorn.andersson@xxxxxxxxxx/ https://lore.kernel.org/all/20220622173605.1168416-1-pmalani@xxxxxxxxxxxx/ As mentioned there, I want to see block diagrams of the h/w for these bindings. The mux binding may be a good solution here, but different muxing scenarios need to be considered. > --- > Changes since v1: > - No changes. > > .../bindings/connector/usb-connector.yaml | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml > index ae515651fc6b..47f53cdbf31a 100644 > --- a/Documentation/devicetree/bindings/connector/usb-connector.yaml > +++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml > @@ -221,6 +221,24 @@ properties: > SNK_READY for non-pd link. > type: boolean > > + # The following are optional properties for "usb-c-connector". > + mux-controls: > + description: Mux controller node to use for orientation switch selection. This mux controller > + could handle High Speed, Super Speed and Sideband switch use case one time. In orde to do so, > + besides mux settings need to be properly configured for each switch under mux-controller node, > + correct states should also be assigned to typec-switch-states parameter. Wrap lines at 80 char. > + maxItems: 1 > + > + typec-switch-states: > + description: An ordered u32 array describing the mux state value for each typec orientations. > + Three states correspond to NONE(high impedance), NORMAL, REVERSE respectively. If there is > + no HW mux state for NONE, use value of NORMAL or REVERSE for it. If this mux controller > + handle more than 1 switch, correct states value need to be caculated according to the mux > + settings. > + minItems: 3 > + maxItems: 3 > + $ref: /schemas/types.yaml#/definitions/uint32-array I think that 'mux-states' is what you want to use here. Rob