| # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/phy/brcm,brcmstb-usb-phy.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Broadcom STB USB PHY |
| |
| description: Broadcom's PHY that handles EHCI/OHCI and/or XHCI |
| |
| maintainers: |
| - Al Cooper <alcooperx@gmail.com> |
| - Rafał Miłecki <rafal@milecki.pl> |
| |
| properties: |
| compatible: |
| enum: |
| - brcm,bcm4908-usb-phy |
| - brcm,bcm7211-usb-phy |
| - brcm,bcm7216-usb-phy |
| - brcm,brcmstb-usb-phy |
| |
| reg: |
| minItems: 1 |
| items: |
| - description: the base CTRL register |
| - description: XHCI EC register |
| - description: XHCI GBL register |
| - description: USB PHY register |
| - description: USB MDIO register |
| - description: BDC register |
| |
| reg-names: |
| minItems: 1 |
| items: |
| - const: ctrl |
| - const: xhci_ec |
| - const: xhci_gbl |
| - const: usb_phy |
| - const: usb_mdio |
| - const: bdc_ec |
| |
| power-domains: |
| maxItems: 1 |
| |
| clocks: |
| minItems: 1 |
| maxItems: 2 |
| |
| clock-names: |
| minItems: 1 |
| items: |
| - const: sw_usb |
| - const: sw_usb3 |
| |
| interrupts: |
| description: wakeup interrupt |
| |
| interrupt-names: |
| const: wake |
| |
| brcm,ipp: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| description: Invert Port Power |
| minimum: 0 |
| maximum: 1 |
| |
| brcm,ioc: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| description: Invert Over Current detection |
| minimum: 0 |
| maximum: 1 |
| |
| dr_mode: |
| description: PHY Device mode. If this property is not defined, the PHY will |
| default to "host" mode. |
| enum: |
| - host |
| - peripheral |
| - drd |
| - typec-pd |
| |
| brcm,syscon-piarbctl: |
| description: phandle to syscon for handling config registers |
| $ref: /schemas/types.yaml#/definitions/phandle |
| |
| brcm,has-xhci: |
| description: Indicates the PHY has an XHCI PHY. |
| type: boolean |
| |
| brcm,has-eohci: |
| description: Indicates the PHY has an EHCI/OHCI PHY. |
| type: boolean |
| |
| "#phy-cells": |
| description: | |
| Cell allows setting the type of the PHY. Possible values are: |
| - PHY_TYPE_USB2 for USB1.1/2.0 PHY |
| - PHY_TYPE_USB3 for USB3.x PHY |
| const: 1 |
| |
| required: |
| - reg |
| - "#phy-cells" |
| |
| anyOf: |
| - required: |
| - brcm,has-xhci |
| - required: |
| - brcm,has-eohci |
| |
| allOf: |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - brcm,bcm4908-usb-phy |
| - brcm,brcmstb-usb-phy |
| then: |
| properties: |
| reg: |
| minItems: 1 |
| maxItems: 2 |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: brcm,bcm7211-usb-phy |
| then: |
| properties: |
| reg: |
| minItems: 5 |
| maxItems: 6 |
| reg-names: |
| minItems: 5 |
| maxItems: 6 |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: brcm,bcm7216-usb-phy |
| then: |
| properties: |
| reg: |
| minItems: 3 |
| maxItems: 3 |
| reg-names: |
| minItems: 3 |
| maxItems: 3 |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/phy/phy.h> |
| |
| usb-phy@f0470200 { |
| compatible = "brcm,brcmstb-usb-phy"; |
| reg = <0xf0470200 0xb8>, |
| <0xf0471940 0x6c0>; |
| #phy-cells = <1>; |
| dr_mode = "host"; |
| brcm,ioc = <1>; |
| brcm,ipp = <1>; |
| brcm,has-xhci; |
| brcm,has-eohci; |
| clocks = <&usb20>, <&usb30>; |
| clock-names = "sw_usb", "sw_usb3"; |
| }; |
| - | |
| #include <dt-bindings/phy/phy.h> |
| |
| usb-phy@29f0200 { |
| compatible = "brcm,bcm7211-usb-phy"; |
| reg = <0x29f0200 0x200>, |
| <0x29c0880 0x30>, |
| <0x29cc100 0x534>, |
| <0x2808000 0x24>, |
| <0x2980080 0x8>; |
| reg-names = "ctrl", |
| "xhci_ec", |
| "xhci_gbl", |
| "usb_phy", |
| "usb_mdio"; |
| brcm,ioc = <0x0>; |
| brcm,ipp = <0x0>; |
| interrupts = <0x30>; |
| interrupt-parent = <&vpu_intr1_nosec_intc>; |
| interrupt-names = "wake"; |
| #phy-cells = <0x1>; |
| brcm,has-xhci; |
| brcm,syscon-piarbctl = <&syscon_piarbctl>; |
| clocks = <&scmi_clk 256>; |
| clock-names = "sw_usb"; |
| }; |