brintos

brintos / linux-shallow public Read only

0
0
Text · 15.7 KiB · fb216ce Raw
481 lines · yaml
1# SPDX-License-Identifier: GPL-2.0-only2%YAML 1.23---4$id: http://devicetree.org/schemas/connector/usb-connector.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: USB Connector8 9maintainers:10  - Rob Herring <robh@kernel.org>11 12description:13  A USB connector node represents a physical USB connector. It should be a child14  of a USB interface controller or a separate node when it is attached to both15  MUX and USB interface controller.16 17properties:18  compatible:19    oneOf:20      - enum:21          - usb-a-connector22          - usb-b-connector23          - usb-c-connector24 25      - items:26          - const: gpio-usb-b-connector27          - const: usb-b-connector28 29      - items:30          - const: samsung,usb-connector-11pin31          - const: usb-b-connector32 33  reg:34    maxItems: 135 36  label:37    description: Symbolic name for the connector.38 39  type:40    description: Size of the connector, should be specified in case of41      non-fullsize 'usb-a-connector' or 'usb-b-connector' compatible42      connectors.43    $ref: /schemas/types.yaml#/definitions/string44 45    enum:46      - mini47      - micro48 49  self-powered:50    description: Set this property if the USB device has its own power source.51    type: boolean52 53  # The following are optional properties for "usb-b-connector".54  id-gpios:55    description: An input gpio for USB ID pin.56    maxItems: 157 58  vbus-gpios:59    description: An input gpio for USB VBus pin, used to detect presence of60      VBUS 5V.61    maxItems: 162 63  vbus-supply:64    description: A phandle to the regulator for USB VBUS if needed when host65      mode or dual role mode is supported.66      Particularly, if use an output GPIO to control a VBUS regulator, should67      model it as a regulator. See bindings/regulator/fixed-regulator.yaml68 69  power-role:70    description: Determines the power role that the Type C connector will71      support. "dual" refers to Dual Role Port (DRP).72    $ref: /schemas/types.yaml#/definitions/string73 74    enum:75      - source76      - sink77      - dual78 79  try-power-role:80    description: Preferred power role.81    $ref: /schemas/types.yaml#/definitions/string82 83    enum:84      - source85      - sink86      - dual87 88  data-role:89    description: Data role if Type C connector supports USB data. "dual" refers90      Dual Role Device (DRD).91    $ref: /schemas/types.yaml#/definitions/string92 93    enum:94      - host95      - device96      - dual97 98  typec-power-opmode:99    description: Determines the power operation mode that the Type C connector100      will support and will advertise through CC pins when it has no power101      delivery support.102      - "default" corresponds to default USB voltage and current defined by the103        USB 2.0 and USB 3.2 specifications, 5V 500mA for USB 2.0 ports and104        5V 900mA or 1500mA for USB 3.2 ports in single-lane or dual-lane105        operation respectively.106      - "1.5A" and "3.0A", 5V 1.5A and 5V 3.0A respectively, as defined in USB107        Type-C Cable and Connector specification, when Power Delivery is not108        supported.109    $ref: /schemas/types.yaml#/definitions/string110    enum:111      - default112      - 1.5A113      - 3.0A114 115  pd-disable:116    description: Set this property if the Type-C connector has no power delivery support.117    type: boolean118 119  # The following are optional properties for "usb-c-connector" with power120  # delivery support.121  sink-vdos:122    description: An array of u32 with each entry, a Vendor Defined Message Object (VDO),123      providing additional information corresponding to the product, the detailed bit124      definitions and the order of each VDO can be found in125      "USB Power Delivery Specification Revision 3.0, Version 2.0 + ECNs 2020-12-10"126      chapter 6.4.4.3.1 Discover Identity. User can specify the VDO array via127      VDO_IDH/_CERT/_PRODUCT/_UFP/_DFP/_PCABLE/_ACABLE(1/2)/_VPD() defined in128      dt-bindings/usb/pd.h.129    minItems: 3130    maxItems: 6131    $ref: /schemas/types.yaml#/definitions/uint32-array132 133  sink-vdos-v1:134    description: An array of u32 with each entry, a Vendor Defined Message Object (VDO),135      providing additional information corresponding to the product, the detailed bit136      definitions and the order of each VDO can be found in137      "USB Power Delivery Specification Revision 2.0, Version 1.3" chapter 6.4.4.3.1 Discover138      Identity. User can specify the VDO array via VDO_IDH/_CERT/_PRODUCT/_CABLE/_AMA defined in139      dt-bindings/usb/pd.h.140    minItems: 3141    maxItems: 6142    $ref: /schemas/types.yaml#/definitions/uint32-array143 144  accessory-mode-audio:145    type: boolean146    description: Whether the device supports Audio Adapter Accessory Mode. This147      is only necessary if there are no other means to discover supported148      alternative modes (e.g. through the UCSI firmware interface).149 150  accessory-mode-debug:151    type: boolean152    description: Whether the device supports Debug Accessory Mode. This153      is only necessary if there are no other means to discover supported154      alternative modes (e.g. through the UCSI firmware interface).155 156  altmodes:157    type: object158    description: List of Alternative Modes supported by the schematics on the159      particular device. This is only necessary if there are no other means to160      discover supported alternative modes (e.g. through the UCSI firmware161      interface).162 163    additionalProperties: false164 165    patternProperties:166      "^(displayport)$":167        type: object168        description:169          A single USB-C Alternative Mode as supported by the USB-C connector logic.170 171        additionalProperties: false172 173        properties:174          svid:175            $ref: /schemas/types.yaml#/definitions/uint16176            description: Unique value assigned by USB-IF to the Vendor / AltMode.177            enum: [ 0xff01 ]178          vdo:179            $ref: /schemas/types.yaml#/definitions/uint32180            description: VDO returned by Discover Modes USB PD command.181 182  port:183    $ref: /schemas/graph.yaml#/properties/port184    description: OF graph bindings modeling a data bus to the connector, e.g.185      there is a single High Speed (HS) port present in this connector. If there186      is more than one bus (several port, with 'reg' property), they can be grouped187      under 'ports'.188 189  ports:190    $ref: /schemas/graph.yaml#/properties/ports191    description: OF graph bindings modeling any data bus to the connector192      unless the bus is between parent node and the connector. Since a single193      connector can have multiple data buses every bus has an assigned OF graph194      port number as described below.195 196    properties:197      port@0:198        $ref: /schemas/graph.yaml#/properties/port199        description: High Speed (HS), present in all connectors.200 201      port@1:202        $ref: /schemas/graph.yaml#/properties/port203        description: Super Speed (SS), present in SS capable connectors.204 205      port@2:206        $ref: /schemas/graph.yaml#/properties/port207        description: Sideband Use (SBU), present in USB-C. This describes the208          alternate mode connection of which SBU is a part.209 210    required:211      - port@0212 213  new-source-frs-typec-current:214    description: Initial current capability of the new source when vSafe5V215      is applied during PD3.0 Fast Role Swap. "Table 6-14 Fixed Supply PDO - Sink"216      of "USB Power Delivery Specification Revision 3.0, Version 1.2" provides the217      different power levels and "6.4.1.3.1.6 Fast Role Swap USB Type-C Current"218      provides a detailed description of the field. The sink PDO from current source219      reflects the current source's(i.e. transmitter of the FRS signal) power220      requirement during fr swap. The current sink (i.e. receiver of the FRS signal),221      a.k.a new source, should check if it will be able to satisfy the current source's,222      new sink's, requirement during frswap before enabling the frs signal reception.223      This property refers to maximum current capability that the current sink can224      satisfy. During FRS, VBUS voltage is at 5V, as the partners are in implicit225      contract, hence, the power level is only a function of the current capability.226      "1" refers to default USB power level as described by "Table 6-14 Fixed Supply PDO - Sink".227      "2" refers to 1.5A@5V.228      "3" refers to 3.0A@5V.229    $ref: /schemas/types.yaml#/definitions/uint32230    enum: [1, 2, 3]231 232  slow-charger-loop:233    description: Allows PMIC charger loops which are slow(i.e. cannot meet the 15ms deadline) to234      still comply to pSnkStby i.e Maximum power that can be consumed by sink while in Sink Standby235      state as defined in 7.4.2 Sink Electrical Parameters of USB Power Delivery Specification236      Revision 3.0, Version 1.2. When the property is set, the port requests pSnkStby(2.5W -237      5V@500mA) upon entering SNK_DISCOVERY(instead of 3A or the 1.5A, Rp current advertised, during238      SNK_DISCOVERY) and the actual current limit after reception of PS_Ready for PD link or during239      SNK_READY for non-pd link.240    type: boolean241 242  capabilities:243    description: A child node to contain all the selectable USB Power Delivery capabilities.244    type: object245 246    patternProperties:247      "^caps-[0-9]+$":248        description: Child nodes under "capabilities" node. Each node contains a selectable USB249          Power Delivery capability.250        type: object251        $ref: "#/$defs/capabilities"252        unevaluatedProperties: false253 254    additionalProperties: false255 256dependencies:257  sink-vdos-v1: [ sink-vdos ]258  sink-vdos: [ sink-vdos-v1 ]259 260required:261  - compatible262 263$defs:264  capabilities:265    type: object266 267    properties:268      source-pdos:269        description: An array of u32 with each entry providing supported power270          source data object(PDO), the detailed bit definitions of PDO can be found271          in "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.2272          Source_Capabilities Message, the order of each entry(PDO) should follow273          the PD spec chapter 6.4.1. Required for power source and power dual role.274          User can specify the source PDO array via PDO_FIXED/BATT/VAR/PPS_APDO()275          defined in dt-bindings/usb/pd.h.276        minItems: 1277        maxItems: 7278        $ref: /schemas/types.yaml#/definitions/uint32-array279 280      sink-pdos:281        description: An array of u32 with each entry providing supported power sink282          data object(PDO), the detailed bit definitions of PDO can be found in283          "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.3284          Sink Capabilities Message, the order of each entry(PDO) should follow the285          PD spec chapter 6.4.1. Required for power sink and power dual role. User286          can specify the sink PDO array via PDO_FIXED/BATT/VAR/PPS_APDO() defined287          in dt-bindings/usb/pd.h.288        minItems: 1289        maxItems: 7290        $ref: /schemas/types.yaml#/definitions/uint32-array291 292      op-sink-microwatt:293        description: Sink required operating power in microwatt, if source can't294          offer the power, Capability Mismatch is set. Required for power sink and295          power dual role.296 297allOf:298  - $ref: "#/$defs/capabilities"299  - if:300      properties:301        compatible:302          contains:303            const: gpio-usb-b-connector304    then:305      anyOf:306        - required:307            - vbus-gpios308        - required:309            - id-gpios310 311  - if:312      properties:313        compatible:314          contains:315            const: samsung,usb-connector-11pin316    then:317      properties:318        type:319          const: micro320 321anyOf:322  - not:323      required:324        - typec-power-opmode325        - new-source-frs-typec-current326 327unevaluatedProperties: false328 329examples:330  # Micro-USB connector with HS lines routed via controller (MUIC).331  - |332    muic-max77843 {333        usb_con1: connector {334            compatible = "usb-b-connector";335            label = "micro-USB";336            type = "micro";337        };338    };339 340  # USB-C connector attached to CC controller (s2mm005), HS lines routed341  # to companion PMIC (max77865), SS lines to USB3 PHY and SBU to DisplayPort.342  # DisplayPort video lines are routed to the connector via SS mux in USB3 PHY.343  - |344    ccic: s2mm005 {345        usb_con2: connector {346            compatible = "usb-c-connector";347            label = "USB-C";348 349            altmodes {350                displayport {351                    svid = /bits/ 16 <0xff01>;352                    vdo = <0x00001c46>;353                };354            };355 356            ports {357                #address-cells = <1>;358                #size-cells = <0>;359 360                port@0 {361                    reg = <0>;362                    usb_con_hs: endpoint {363                        remote-endpoint = <&max77865_usbc_hs>;364                    };365                };366                port@1 {367                    reg = <1>;368                    usb_con_ss: endpoint {369                        remote-endpoint = <&usbdrd_phy_ss>;370                    };371                };372                port@2 {373                    reg = <2>;374                    usb_con_sbu: endpoint {375                        remote-endpoint = <&dp_aux>;376                    };377                };378            };379        };380    };381 382  # USB-C connector attached to a typec port controller(ptn5110), which has383  # power delivery support and enables drp.384  - |385    #include <dt-bindings/usb/pd.h>386    typec: ptn5110 {387        usb_con3: connector {388            compatible = "usb-c-connector";389            label = "USB-C";390            power-role = "dual";391            try-power-role = "sink";392            source-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)>;393            sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)394                         PDO_VAR(5000, 12000, 2000)>;395            op-sink-microwatt = <10000000>;396        };397    };398 399  # USB-C connector attached to SoC with a single High-Speed controller400  - |401    connector {402        compatible = "usb-c-connector";403        label = "USB-C";404 405        port {406            high_speed_ep: endpoint {407                remote-endpoint = <&usb_hs_ep>;408            };409        };410    };411 412  # USB-C connector attached to SoC and USB3 typec port controller(hd3ss3220)413  # with SS 2:1 MUX. HS lines routed to SoC, SS lines routed to the MUX and414  # the output of MUX is connected to the SoC.415  - |416    connector {417        compatible = "usb-c-connector";418        label = "USB-C";419        data-role = "dual";420 421        ports {422            #address-cells = <1>;423            #size-cells = <0>;424            port@0 {425                reg = <0>;426                hs_ep: endpoint {427                    remote-endpoint = <&usb3_hs_ep>;428                };429            };430            port@1 {431                reg = <1>;432                ss_ep: endpoint {433                    remote-endpoint = <&hd3ss3220_in_ep>;434                };435            };436        };437    };438 439  # USB connector with GPIO control lines440  - |441    #include <dt-bindings/gpio/gpio.h>442 443    usb {444        connector {445            compatible = "gpio-usb-b-connector", "usb-b-connector";446            type = "micro";447            id-gpios = <&pio 12 GPIO_ACTIVE_HIGH>;448            vbus-supply = <&usb_p0_vbus>;449        };450    };451 452  # Micro-USB connector with HS lines routed via controller (MUIC) and MHL453  # lines connected to HDMI-MHL bridge (sii8620) on Samsung Exynos5433-based454  # mobile phone455  - |456    muic-max77843 {457        usb_con4: connector {458            compatible = "samsung,usb-connector-11pin", "usb-b-connector";459            label = "micro-USB";460            type = "micro";461 462            ports {463                #address-cells = <1>;464                #size-cells = <0>;465 466                port@0 {467                    reg = <0>;468                    muic_to_usb: endpoint {469                        remote-endpoint = <&usb_to_muic>;470                    };471                };472                port@3 {473                    reg = <3>;474                    usb_con_mhl: endpoint {475                        remote-endpoint = <&sii8620_mhl>;476                    };477                };478            };479        };480    };481