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