162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/usb/usb-drd.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Generic USB OTG Controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciproperties:
1362306a36Sopenharmony_ci  otg-rev:
1462306a36Sopenharmony_ci    description:
1562306a36Sopenharmony_ci      Tells usb driver the release number of the OTG and EH supplement with
1662306a36Sopenharmony_ci      which the device and its descriptors are compliant, in binary-coded
1762306a36Sopenharmony_ci      decimal (i.e. 2.0 is 0200H). This property is used if any real OTG
1862306a36Sopenharmony_ci      features (HNP/SRP/ADP) is enabled. If ADP is required, otg-rev should be
1962306a36Sopenharmony_ci      0x0200 or above.
2062306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
2162306a36Sopenharmony_ci    enum: [0x0100, 0x0120, 0x0130, 0x0200]
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci  dr_mode:
2462306a36Sopenharmony_ci    description:
2562306a36Sopenharmony_ci      Tells Dual-Role USB controllers that we want to work on a particular
2662306a36Sopenharmony_ci      mode. In case this attribute isn't passed via DT, USB DRD controllers
2762306a36Sopenharmony_ci      should default to OTG.
2862306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/string
2962306a36Sopenharmony_ci    enum: [host, peripheral, otg]
3062306a36Sopenharmony_ci    default: otg
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci  hnp-disable:
3362306a36Sopenharmony_ci    description:
3462306a36Sopenharmony_ci      Tells OTG controllers we want to disable OTG HNP. Normally HNP is the
3562306a36Sopenharmony_ci      basic function of real OTG except you want it to be a srp-capable only B
3662306a36Sopenharmony_ci      device.
3762306a36Sopenharmony_ci    type: boolean
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci  srp-disable:
4062306a36Sopenharmony_ci    description:
4162306a36Sopenharmony_ci      Tells OTG controllers we want to disable OTG SRP. SRP is optional for OTG
4262306a36Sopenharmony_ci      device.
4362306a36Sopenharmony_ci    type: boolean
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci  adp-disable:
4662306a36Sopenharmony_ci    description:
4762306a36Sopenharmony_ci      Tells OTG controllers we want to disable OTG ADP. ADP is optional for OTG
4862306a36Sopenharmony_ci      device.
4962306a36Sopenharmony_ci    type: boolean
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci  usb-role-switch:
5262306a36Sopenharmony_ci    description:
5362306a36Sopenharmony_ci      Indicates that the device is capable of assigning the USB data role
5462306a36Sopenharmony_ci      (USB host or USB device) for a given USB connector, such as Type-C,
5562306a36Sopenharmony_ci      Type-B(micro). See connector/usb-connector.yaml.
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci  role-switch-default-mode:
5862306a36Sopenharmony_ci    description:
5962306a36Sopenharmony_ci      Indicates if usb-role-switch is enabled, the device default operation
6062306a36Sopenharmony_ci      mode of controller while usb role is USB_ROLE_NONE.
6162306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/string
6262306a36Sopenharmony_ci    enum: [host, peripheral]
6362306a36Sopenharmony_ci    default: peripheral
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ciadditionalProperties: true
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ciexamples:
6862306a36Sopenharmony_ci  - |
6962306a36Sopenharmony_ci    usb@4a030000 {
7062306a36Sopenharmony_ci        compatible = "snps,dwc3";
7162306a36Sopenharmony_ci        reg = <0x4a030000 0xcfff>;
7262306a36Sopenharmony_ci        interrupts = <0 92 4>;
7362306a36Sopenharmony_ci        usb-phy = <&usb2_phy>, <&usb3_phy>;
7462306a36Sopenharmony_ci        maximum-speed = "super-speed";
7562306a36Sopenharmony_ci        dr_mode = "otg";
7662306a36Sopenharmony_ci        phy_type = "utmi_wide";
7762306a36Sopenharmony_ci        otg-rev = <0x0200>;
7862306a36Sopenharmony_ci        adp-disable;
7962306a36Sopenharmony_ci    };
80