# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) # Copyright (c) 2020 MediaTek %YAML 1.2 --- $id: http://devicetree.org/schemas/usb/mediatek,musb.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: MediaTek MUSB DRD/OTG Controller maintainers: - Min Guo properties: $nodename: pattern: '^usb@[0-9a-f]+$' compatible: items: - enum: - mediatek,mt8516-musb - mediatek,mt2701-musb - mediatek,mt7623-musb - const: mediatek,mtk-musb reg: maxItems: 1 interrupts: maxItems: 1 interrupt-names: items: - const: mc clocks: items: - description: The main/core clock - description: The system bus clock - description: The 48Mhz clock clock-names: items: - const: main - const: mcu - const: univpll phys: maxItems: 1 usb-role-switch: $ref: /schemas/types.yaml#/definitions/flag description: Support role switch. See usb/generic.txt type: boolean dr_mode: enum: - host - otg - peripheral power-domains: description: A phandle to USB power domain node to control USB's MTCMOS maxItems: 1 connector: $ref: /schemas/connector/usb-connector.yaml# description: Connector for dual role switch type: object dependencies: usb-role-switch: [ connector ] connector: [ usb-role-switch ] required: - compatible - reg - interrupts - interrupt-names - phys - clocks - clock-names additionalProperties: false examples: - | #include #include #include #include #include #include usb@11200000 { compatible = "mediatek,mt2701-musb", "mediatek,mtk-musb"; reg = <0x11200000 0x1000>; interrupts = ; interrupt-names = "mc"; phys = <&u2port2 PHY_TYPE_USB2>; dr_mode = "otg"; clocks = <&pericfg CLK_PERI_USB0>, <&pericfg CLK_PERI_USB0_MCU>, <&pericfg CLK_PERI_USB_SLV>; clock-names = "main","mcu","univpll"; power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>; usb-role-switch; connector { compatible = "gpio-usb-b-connector", "usb-b-connector"; type = "micro"; id-gpios = <&pio 44 GPIO_ACTIVE_HIGH>; vbus-supply = <&usb_vbus>; }; }; ...