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

A USB connector node represents a physical USB connector. It should be
a child of a 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".
- self-powered: Set this property if the usb device that has its own power
  source.

Optional properties for usb-b-connector:
- id-gpios: an input gpio for USB ID pin.
- vbus-gpios: an input gpio for USB VBUS pin, used to detect presence of
  VBUS 5V.
  see gpio/gpio.txt.
- vbus-supply: a phandle to the regulator for USB VBUS if needed when host
  mode or dual role mode is supported.
  Particularly, if use an output GPIO to control a VBUS regulator, should
  model it as a regulator.
  see regulator/fixed-regulator.yaml
- pinctrl-names : a pinctrl state named "default" is optional
- pinctrl-0 : pin control group
  see pinctrl/pinctrl-bindings.txt

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/PPS_APDO()
  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/PPS_APDO() 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 multiple 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>;
	};
};
