197 lines · yaml
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause2%YAML 1.23---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 PHY8 9description: Broadcom's PHY that handles EHCI/OHCI and/or XHCI10 11maintainers:12 - Al Cooper <alcooperx@gmail.com>13 - Rafał Miłecki <rafal@milecki.pl>14 15properties:16 compatible:17 enum:18 - brcm,bcm4908-usb-phy19 - brcm,bcm7211-usb-phy20 - brcm,bcm7216-usb-phy21 - brcm,brcmstb-usb-phy22 23 reg:24 minItems: 125 items:26 - description: the base CTRL register27 - description: XHCI EC register28 - description: XHCI GBL register29 - description: USB PHY register30 - description: USB MDIO register31 - description: BDC register32 33 reg-names:34 minItems: 135 items:36 - const: ctrl37 - const: xhci_ec38 - const: xhci_gbl39 - const: usb_phy40 - const: usb_mdio41 - const: bdc_ec42 43 power-domains:44 maxItems: 145 46 clocks:47 minItems: 148 maxItems: 249 50 clock-names:51 minItems: 152 items:53 - const: sw_usb54 - const: sw_usb355 56 interrupts:57 description: wakeup interrupt58 59 interrupt-names:60 const: wake61 62 brcm,ipp:63 $ref: /schemas/types.yaml#/definitions/uint3264 description: Invert Port Power65 minimum: 066 maximum: 167 68 brcm,ioc:69 $ref: /schemas/types.yaml#/definitions/uint3270 description: Invert Over Current detection71 minimum: 072 maximum: 173 74 dr_mode:75 description: PHY Device mode. If this property is not defined, the PHY will76 default to "host" mode.77 enum:78 - host79 - peripheral80 - drd81 - typec-pd82 83 brcm,syscon-piarbctl:84 description: phandle to syscon for handling config registers85 $ref: /schemas/types.yaml#/definitions/phandle86 87 brcm,has-xhci:88 description: Indicates the PHY has an XHCI PHY.89 type: boolean90 91 brcm,has-eohci:92 description: Indicates the PHY has an EHCI/OHCI PHY.93 type: boolean94 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 PHY99 - PHY_TYPE_USB3 for USB3.x PHY100 const: 1101 102required:103 - reg104 - "#phy-cells"105 106anyOf:107 - required:108 - brcm,has-xhci109 - required:110 - brcm,has-eohci111 112allOf:113 - if:114 properties:115 compatible:116 contains:117 enum:118 - brcm,bcm4908-usb-phy119 - brcm,brcmstb-usb-phy120 then:121 properties:122 reg:123 minItems: 1124 maxItems: 2125 - if:126 properties:127 compatible:128 contains:129 const: brcm,bcm7211-usb-phy130 then:131 properties:132 reg:133 minItems: 5134 maxItems: 6135 reg-names:136 minItems: 5137 maxItems: 6138 - if:139 properties:140 compatible:141 contains:142 const: brcm,bcm7216-usb-phy143 then:144 properties:145 reg:146 minItems: 3147 maxItems: 3148 reg-names:149 minItems: 3150 maxItems: 3151 152additionalProperties: false153 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