USB Connector
=============

USB connector node represents physical USB connector. It should be
a child of USB interface controller.

Required properties:
- compatible: describes type of the connector, must be one of:
    "usb-a-connector",
    "usb-b-connector",
    "usb-c-connector".

Optional properties:
- label: symbolic name for the connector,
- type: size of the connector, should be specified in case of USB-A, USB-B
  non-fullsize connectors: "mini", "micro".

Optional properties for usb-c-connector:
- power-role: should be one of "source", "sink" or "dual"(DRP) if typec
  connector has power support.
- try-power-role: preferred power role if "dual"(DRP) can support Try.SNK
  or Try.SRC, should be "sink" for Try.SNK or "source" for Try.SRC.
- data-role: should be one of "host", "device", "dual"(DRD) if typec
  connector supports USB data.

Required properties for usb-c-connector with power delivery support:
- source-pdos: An array of u32 with each entry providing supported power
  source data object(PDO), the detailed bit definitions of PDO can be found
  in "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.2
  Source_Capabilities Message, the order of each entry(PDO) should follow
  the PD spec chapter 6.4.1. Required for power source and power dual role.
  User can specify the source PDO array via PDO_FIXED/BATT/VAR() defined in
  dt-bindings/usb/pd.h.
- sink-pdos: An array of u32 with each entry providing supported power
  sink data object(PDO), the detailed bit definitions of PDO can be found
  in "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.3
  Sink Capabilities Message, the order of each entry(PDO) should follow
  the PD spec chapter 6.4.1. Required for power sink and power dual role.
  User can specify the sink PDO array via PDO_FIXED/BATT/VAR() defined in
  dt-bindings/usb/pd.h.
- op-sink-microwatt: Sink required operating power in microwatt, if source
  can't offer the power, Capability Mismatch is set. Required for power
  sink and power dual role.

Required nodes:
- any data bus to the connector should be modeled using the OF graph bindings
  specified in bindings/graph.txt, unless the bus is between parent node and
  the connector. Since single connector can have multpile data buses every bus
  has assigned OF graph port number as follows:
    0: High Speed (HS), present in all connectors,
    1: Super Speed (SS), present in SS capable connectors,
    2: Sideband use (SBU), present in USB-C.

Examples
--------

1. Micro-USB connector with HS lines routed via controller (MUIC):

muic-max77843@66 {
	...
	usb_con: connector {
		compatible = "usb-b-connector";
		label = "micro-USB";
		type = "micro";
	};
};

2. USB-C connector attached to CC controller (s2mm005), HS lines routed
to companion PMIC (max77865), SS lines to USB3 PHY and SBU to DisplayPort.
DisplayPort video lines are routed to the connector via SS mux in USB3 PHY.

ccic: s2mm005@33 {
	...
	usb_con: connector {
		compatible = "usb-c-connector";
		label = "USB-C";

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				reg = <0>;
				usb_con_hs: endpoint {
					remote-endpoint = <&max77865_usbc_hs>;
				};
			};
			port@1 {
				reg = <1>;
				usb_con_ss: endpoint {
					remote-endpoint = <&usbdrd_phy_ss>;
				};
			};
			port@2 {
				reg = <2>;
				usb_con_sbu: endpoint {
					remote-endpoint = <&dp_aux>;
				};
			};
		};
	};
};

3. USB-C connector attached to a typec port controller(ptn5110), which has
power delivery support and enables drp.

typec: ptn5110@50 {
	...
	usb_con: connector {
		compatible = "usb-c-connector";
		label = "USB-C";
		power-role = "dual";
		try-power-role = "sink";
		source-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)>;
		sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)
			     PDO_VAR(5000, 12000, 2000)>;
		op-sink-microwatt = <10000000>;
	};
};
