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