2021-01-06 21:58:36 +01:00
# 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 :
2021-01-06 21:58:37 +01:00
- brcm,bcm4908-usb-phy
2021-01-06 21:58:36 +01:00
- 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
2021-03-09 19:26:16 +01:00
power-domains :
maxItems : 1
2021-01-06 21:58:36 +01:00
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 :
2021-01-06 21:58:37 +01:00
enum :
- const : brcm,bcm4908-usb-phy
- const : brcm,brcmstb-usb-phy
2021-01-06 21:58:36 +01:00
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";
};