138 lines
4.6 KiB
Plaintext
138 lines
4.6 KiB
Plaintext
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".
|
|
- 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.
|
|
- power-opmode: should be one of "default", "1.5A", "3.0A" or
|
|
"usb_power_delivery" 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>;
|
|
};
|
|
};
|