1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/phy/brcm,brcmstb-usb-phy.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Broadcom STB USB PHY 8 9description: Broadcom's PHY that handles EHCI/OHCI and/or XHCI 10 11maintainers: 12 - Al Cooper <alcooperx@gmail.com> 13 - Rafał Miłecki <rafal@milecki.pl> 14 15properties: 16 compatible: 17 enum: 18 - brcm,bcm4908-usb-phy 19 - brcm,bcm7211-usb-phy 20 - brcm,bcm7216-usb-phy 21 - brcm,brcmstb-usb-phy 22 23 reg: 24 minItems: 1 25 maxItems: 6 26 items: 27 - description: the base CTRL register 28 - description: XHCI EC register 29 - description: XHCI GBL register 30 - description: USB PHY register 31 - description: USB MDIO register 32 - description: BDC register 33 34 reg-names: 35 minItems: 1 36 maxItems: 6 37 items: 38 - const: ctrl 39 - const: xhci_ec 40 - const: xhci_gbl 41 - const: usb_phy 42 - const: usb_mdio 43 - const: bdc_ec 44 45 power-domains: 46 maxItems: 1 47 48 clocks: 49 minItems: 1 50 maxItems: 2 51 52 clock-names: 53 minItems: 1 54 maxItems: 2 55 items: 56 - const: sw_usb 57 - const: sw_usb3 58 59 interrupts: 60 description: wakeup interrupt 61 62 interrupt-names: 63 const: wake 64 65 brcm,ipp: 66 $ref: /schemas/types.yaml#/definitions/uint32 67 description: Invert Port Power 68 minimum: 0 69 maximum: 1 70 71 brcm,ioc: 72 $ref: /schemas/types.yaml#/definitions/uint32 73 description: Invert Over Current detection 74 minimum: 0 75 maximum: 1 76 77 dr_mode: 78 description: PHY Device mode. If this property is not defined, the PHY will 79 default to "host" mode. 80 enum: 81 - host 82 - peripheral 83 - drd 84 - typec-pd 85 86 brcm,syscon-piarbctl: 87 description: phandle to syscon for handling config registers 88 $ref: /schemas/types.yaml#/definitions/phandle 89 90 brcm,has-xhci: 91 description: Indicates the PHY has an XHCI PHY. 92 type: boolean 93 94 brcm,has-eohci: 95 description: Indicates the PHY has an EHCI/OHCI PHY. 96 type: boolean 97 98 "#phy-cells": 99 description: | 100 Cell allows setting the type of the PHY. Possible values are: 101 - PHY_TYPE_USB2 for USB1.1/2.0 PHY 102 - PHY_TYPE_USB3 for USB3.x PHY 103 const: 1 104 105required: 106 - reg 107 - "#phy-cells" 108 109anyOf: 110 - required: 111 - brcm,has-xhci 112 - required: 113 - brcm,has-eohci 114 115allOf: 116 - if: 117 properties: 118 compatible: 119 contains: 120 enum: 121 - const: brcm,bcm4908-usb-phy 122 - const: brcm,brcmstb-usb-phy 123 then: 124 properties: 125 reg: 126 minItems: 1 127 maxItems: 2 128 - if: 129 properties: 130 compatible: 131 contains: 132 const: brcm,bcm7211-usb-phy 133 then: 134 properties: 135 reg: 136 minItems: 5 137 maxItems: 6 138 reg-names: 139 minItems: 5 140 maxItems: 6 141 - if: 142 properties: 143 compatible: 144 contains: 145 const: brcm,bcm7216-usb-phy 146 then: 147 properties: 148 reg: 149 minItems: 3 150 maxItems: 3 151 reg-names: 152 minItems: 3 153 maxItems: 3 154 155additionalProperties: false 156 157examples: 158 - | 159 #include <dt-bindings/phy/phy.h> 160 161 usb-phy@f0470200 { 162 compatible = "brcm,brcmstb-usb-phy"; 163 reg = <0xf0470200 0xb8>, 164 <0xf0471940 0x6c0>; 165 #phy-cells = <1>; 166 dr_mode = "host"; 167 brcm,ioc = <1>; 168 brcm,ipp = <1>; 169 brcm,has-xhci; 170 brcm,has-eohci; 171 clocks = <&usb20>, <&usb30>; 172 clock-names = "sw_usb", "sw_usb3"; 173 }; 174 - | 175 #include <dt-bindings/phy/phy.h> 176 177 usb-phy@29f0200 { 178 compatible = "brcm,bcm7211-usb-phy"; 179 reg = <0x29f0200 0x200>, 180 <0x29c0880 0x30>, 181 <0x29cc100 0x534>, 182 <0x2808000 0x24>, 183 <0x2980080 0x8>; 184 reg-names = "ctrl", 185 "xhci_ec", 186 "xhci_gbl", 187 "usb_phy", 188 "usb_mdio"; 189 brcm,ioc = <0x0>; 190 brcm,ipp = <0x0>; 191 interrupts = <0x30>; 192 interrupt-parent = <&vpu_intr1_nosec_intc>; 193 interrupt-names = "wake"; 194 #phy-cells = <0x1>; 195 brcm,has-xhci; 196 brcm,syscon-piarbctl = <&syscon_piarbctl>; 197 clocks = <&scmi_clk 256>; 198 clock-names = "sw_usb"; 199 }; 200