xref: /freebsd/sys/contrib/device-tree/Bindings/phy/brcm,brcmstb-usb-phy.yaml (revision 2eb4d8dc723da3cf7d735a3226ae49da4c8c5dbc)
15def4c47SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
25def4c47SEmmanuel Vadot%YAML 1.2
35def4c47SEmmanuel Vadot---
45def4c47SEmmanuel Vadot$id: http://devicetree.org/schemas/phy/brcm,brcmstb-usb-phy.yaml#
55def4c47SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
65def4c47SEmmanuel Vadot
75def4c47SEmmanuel Vadottitle: Broadcom STB USB PHY
85def4c47SEmmanuel Vadot
95def4c47SEmmanuel Vadotdescription: Broadcom's PHY that handles EHCI/OHCI and/or XHCI
105def4c47SEmmanuel Vadot
115def4c47SEmmanuel Vadotmaintainers:
125def4c47SEmmanuel Vadot  - Al Cooper <alcooperx@gmail.com>
135def4c47SEmmanuel Vadot  - Rafał Miłecki <rafal@milecki.pl>
145def4c47SEmmanuel Vadot
155def4c47SEmmanuel Vadotproperties:
165def4c47SEmmanuel Vadot  compatible:
175def4c47SEmmanuel Vadot    enum:
185def4c47SEmmanuel Vadot      - brcm,bcm4908-usb-phy
195def4c47SEmmanuel Vadot      - brcm,bcm7211-usb-phy
205def4c47SEmmanuel Vadot      - brcm,bcm7216-usb-phy
215def4c47SEmmanuel Vadot      - brcm,brcmstb-usb-phy
225def4c47SEmmanuel Vadot
235def4c47SEmmanuel Vadot  reg:
245def4c47SEmmanuel Vadot    minItems: 1
255def4c47SEmmanuel Vadot    maxItems: 6
265def4c47SEmmanuel Vadot    items:
275def4c47SEmmanuel Vadot      - description: the base CTRL register
285def4c47SEmmanuel Vadot      - description: XHCI EC register
295def4c47SEmmanuel Vadot      - description: XHCI GBL register
305def4c47SEmmanuel Vadot      - description: USB PHY register
315def4c47SEmmanuel Vadot      - description: USB MDIO register
325def4c47SEmmanuel Vadot      - description: BDC register
335def4c47SEmmanuel Vadot
345def4c47SEmmanuel Vadot  reg-names:
355def4c47SEmmanuel Vadot    minItems: 1
365def4c47SEmmanuel Vadot    maxItems: 6
375def4c47SEmmanuel Vadot    items:
385def4c47SEmmanuel Vadot      - const: ctrl
395def4c47SEmmanuel Vadot      - const: xhci_ec
405def4c47SEmmanuel Vadot      - const: xhci_gbl
415def4c47SEmmanuel Vadot      - const: usb_phy
425def4c47SEmmanuel Vadot      - const: usb_mdio
435def4c47SEmmanuel Vadot      - const: bdc_ec
445def4c47SEmmanuel Vadot
45*2eb4d8dcSEmmanuel Vadot  power-domains:
46*2eb4d8dcSEmmanuel Vadot    maxItems: 1
47*2eb4d8dcSEmmanuel Vadot
485def4c47SEmmanuel Vadot  clocks:
495def4c47SEmmanuel Vadot    minItems: 1
505def4c47SEmmanuel Vadot    maxItems: 2
515def4c47SEmmanuel Vadot
525def4c47SEmmanuel Vadot  clock-names:
535def4c47SEmmanuel Vadot    minItems: 1
545def4c47SEmmanuel Vadot    maxItems: 2
555def4c47SEmmanuel Vadot    items:
565def4c47SEmmanuel Vadot      - const: sw_usb
575def4c47SEmmanuel Vadot      - const: sw_usb3
585def4c47SEmmanuel Vadot
595def4c47SEmmanuel Vadot  interrupts:
605def4c47SEmmanuel Vadot    description: wakeup interrupt
615def4c47SEmmanuel Vadot
625def4c47SEmmanuel Vadot  interrupt-names:
635def4c47SEmmanuel Vadot    const: wake
645def4c47SEmmanuel Vadot
655def4c47SEmmanuel Vadot  brcm,ipp:
665def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
675def4c47SEmmanuel Vadot    description: Invert Port Power
685def4c47SEmmanuel Vadot    minimum: 0
695def4c47SEmmanuel Vadot    maximum: 1
705def4c47SEmmanuel Vadot
715def4c47SEmmanuel Vadot  brcm,ioc:
725def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
735def4c47SEmmanuel Vadot    description: Invert Over Current detection
745def4c47SEmmanuel Vadot    minimum: 0
755def4c47SEmmanuel Vadot    maximum: 1
765def4c47SEmmanuel Vadot
775def4c47SEmmanuel Vadot  dr_mode:
785def4c47SEmmanuel Vadot    description: PHY Device mode. If this property is not defined, the PHY will
795def4c47SEmmanuel Vadot      default to "host" mode.
805def4c47SEmmanuel Vadot    enum:
815def4c47SEmmanuel Vadot      - host
825def4c47SEmmanuel Vadot      - peripheral
835def4c47SEmmanuel Vadot      - drd
845def4c47SEmmanuel Vadot      - typec-pd
855def4c47SEmmanuel Vadot
865def4c47SEmmanuel Vadot  brcm,syscon-piarbctl:
875def4c47SEmmanuel Vadot    description: phandle to syscon for handling config registers
885def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
895def4c47SEmmanuel Vadot
905def4c47SEmmanuel Vadot  brcm,has-xhci:
915def4c47SEmmanuel Vadot    description: Indicates the PHY has an XHCI PHY.
925def4c47SEmmanuel Vadot    type: boolean
935def4c47SEmmanuel Vadot
945def4c47SEmmanuel Vadot  brcm,has-eohci:
955def4c47SEmmanuel Vadot    description: Indicates the PHY has an EHCI/OHCI PHY.
965def4c47SEmmanuel Vadot    type: boolean
975def4c47SEmmanuel Vadot
985def4c47SEmmanuel Vadot  "#phy-cells":
995def4c47SEmmanuel Vadot    description: |
1005def4c47SEmmanuel Vadot      Cell allows setting the type of the PHY. Possible values are:
1015def4c47SEmmanuel Vadot      - PHY_TYPE_USB2 for USB1.1/2.0 PHY
1025def4c47SEmmanuel Vadot      - PHY_TYPE_USB3 for USB3.x PHY
1035def4c47SEmmanuel Vadot    const: 1
1045def4c47SEmmanuel Vadot
1055def4c47SEmmanuel Vadotrequired:
1065def4c47SEmmanuel Vadot  - reg
1075def4c47SEmmanuel Vadot  - "#phy-cells"
1085def4c47SEmmanuel Vadot
1095def4c47SEmmanuel VadotanyOf:
1105def4c47SEmmanuel Vadot  - required:
1115def4c47SEmmanuel Vadot      - brcm,has-xhci
1125def4c47SEmmanuel Vadot  - required:
1135def4c47SEmmanuel Vadot      - brcm,has-eohci
1145def4c47SEmmanuel Vadot
1155def4c47SEmmanuel VadotallOf:
1165def4c47SEmmanuel Vadot  - if:
1175def4c47SEmmanuel Vadot      properties:
1185def4c47SEmmanuel Vadot        compatible:
1195def4c47SEmmanuel Vadot          contains:
1205def4c47SEmmanuel Vadot            enum:
1215def4c47SEmmanuel Vadot              - const: brcm,bcm4908-usb-phy
1225def4c47SEmmanuel Vadot              - const: brcm,brcmstb-usb-phy
1235def4c47SEmmanuel Vadot    then:
1245def4c47SEmmanuel Vadot      properties:
1255def4c47SEmmanuel Vadot        reg:
1265def4c47SEmmanuel Vadot          minItems: 1
1275def4c47SEmmanuel Vadot          maxItems: 2
1285def4c47SEmmanuel Vadot  - if:
1295def4c47SEmmanuel Vadot      properties:
1305def4c47SEmmanuel Vadot        compatible:
1315def4c47SEmmanuel Vadot          contains:
1325def4c47SEmmanuel Vadot            const: brcm,bcm7211-usb-phy
1335def4c47SEmmanuel Vadot    then:
1345def4c47SEmmanuel Vadot      properties:
1355def4c47SEmmanuel Vadot        reg:
1365def4c47SEmmanuel Vadot          minItems: 5
1375def4c47SEmmanuel Vadot          maxItems: 6
1385def4c47SEmmanuel Vadot        reg-names:
1395def4c47SEmmanuel Vadot          minItems: 5
1405def4c47SEmmanuel Vadot          maxItems: 6
1415def4c47SEmmanuel Vadot  - if:
1425def4c47SEmmanuel Vadot      properties:
1435def4c47SEmmanuel Vadot        compatible:
1445def4c47SEmmanuel Vadot          contains:
1455def4c47SEmmanuel Vadot            const: brcm,bcm7216-usb-phy
1465def4c47SEmmanuel Vadot    then:
1475def4c47SEmmanuel Vadot      properties:
1485def4c47SEmmanuel Vadot        reg:
1495def4c47SEmmanuel Vadot          minItems: 3
1505def4c47SEmmanuel Vadot          maxItems: 3
1515def4c47SEmmanuel Vadot        reg-names:
1525def4c47SEmmanuel Vadot          minItems: 3
1535def4c47SEmmanuel Vadot          maxItems: 3
1545def4c47SEmmanuel Vadot
1555def4c47SEmmanuel VadotadditionalProperties: false
1565def4c47SEmmanuel Vadot
1575def4c47SEmmanuel Vadotexamples:
1585def4c47SEmmanuel Vadot  - |
1595def4c47SEmmanuel Vadot    #include <dt-bindings/phy/phy.h>
1605def4c47SEmmanuel Vadot
1615def4c47SEmmanuel Vadot    usb-phy@f0470200 {
1625def4c47SEmmanuel Vadot        compatible = "brcm,brcmstb-usb-phy";
1635def4c47SEmmanuel Vadot        reg = <0xf0470200 0xb8>,
1645def4c47SEmmanuel Vadot              <0xf0471940 0x6c0>;
1655def4c47SEmmanuel Vadot        #phy-cells = <1>;
1665def4c47SEmmanuel Vadot        dr_mode = "host";
1675def4c47SEmmanuel Vadot        brcm,ioc = <1>;
1685def4c47SEmmanuel Vadot        brcm,ipp = <1>;
1695def4c47SEmmanuel Vadot        brcm,has-xhci;
1705def4c47SEmmanuel Vadot        brcm,has-eohci;
1715def4c47SEmmanuel Vadot        clocks = <&usb20>, <&usb30>;
1725def4c47SEmmanuel Vadot        clock-names = "sw_usb", "sw_usb3";
1735def4c47SEmmanuel Vadot    };
1745def4c47SEmmanuel Vadot  - |
1755def4c47SEmmanuel Vadot    #include <dt-bindings/phy/phy.h>
1765def4c47SEmmanuel Vadot
1775def4c47SEmmanuel Vadot    usb-phy@29f0200 {
1785def4c47SEmmanuel Vadot        compatible = "brcm,bcm7211-usb-phy";
1795def4c47SEmmanuel Vadot        reg = <0x29f0200 0x200>,
1805def4c47SEmmanuel Vadot              <0x29c0880 0x30>,
1815def4c47SEmmanuel Vadot              <0x29cc100 0x534>,
1825def4c47SEmmanuel Vadot              <0x2808000 0x24>,
1835def4c47SEmmanuel Vadot              <0x2980080 0x8>;
1845def4c47SEmmanuel Vadot        reg-names = "ctrl",
1855def4c47SEmmanuel Vadot            "xhci_ec",
1865def4c47SEmmanuel Vadot            "xhci_gbl",
1875def4c47SEmmanuel Vadot            "usb_phy",
1885def4c47SEmmanuel Vadot            "usb_mdio";
1895def4c47SEmmanuel Vadot        brcm,ioc = <0x0>;
1905def4c47SEmmanuel Vadot        brcm,ipp = <0x0>;
1915def4c47SEmmanuel Vadot        interrupts = <0x30>;
1925def4c47SEmmanuel Vadot        interrupt-parent = <&vpu_intr1_nosec_intc>;
1935def4c47SEmmanuel Vadot        interrupt-names = "wake";
1945def4c47SEmmanuel Vadot        #phy-cells = <0x1>;
1955def4c47SEmmanuel Vadot        brcm,has-xhci;
1965def4c47SEmmanuel Vadot        brcm,syscon-piarbctl = <&syscon_piarbctl>;
1975def4c47SEmmanuel Vadot        clocks = <&scmi_clk 256>;
1985def4c47SEmmanuel Vadot        clock-names = "sw_usb";
1995def4c47SEmmanuel Vadot    };
200