xref: /freebsd/sys/contrib/device-tree/Bindings/phy/brcm,brcmstb-usb-phy.yaml (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
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    items:
265def4c47SEmmanuel Vadot      - description: the base CTRL register
275def4c47SEmmanuel Vadot      - description: XHCI EC register
285def4c47SEmmanuel Vadot      - description: XHCI GBL register
295def4c47SEmmanuel Vadot      - description: USB PHY register
305def4c47SEmmanuel Vadot      - description: USB MDIO register
315def4c47SEmmanuel Vadot      - description: BDC register
325def4c47SEmmanuel Vadot
335def4c47SEmmanuel Vadot  reg-names:
345def4c47SEmmanuel Vadot    minItems: 1
355def4c47SEmmanuel Vadot    items:
365def4c47SEmmanuel Vadot      - const: ctrl
375def4c47SEmmanuel Vadot      - const: xhci_ec
385def4c47SEmmanuel Vadot      - const: xhci_gbl
395def4c47SEmmanuel Vadot      - const: usb_phy
405def4c47SEmmanuel Vadot      - const: usb_mdio
415def4c47SEmmanuel Vadot      - const: bdc_ec
425def4c47SEmmanuel Vadot
432eb4d8dcSEmmanuel Vadot  power-domains:
442eb4d8dcSEmmanuel Vadot    maxItems: 1
452eb4d8dcSEmmanuel Vadot
465def4c47SEmmanuel Vadot  clocks:
475def4c47SEmmanuel Vadot    minItems: 1
485def4c47SEmmanuel Vadot    maxItems: 2
495def4c47SEmmanuel Vadot
505def4c47SEmmanuel Vadot  clock-names:
515def4c47SEmmanuel Vadot    minItems: 1
525def4c47SEmmanuel Vadot    items:
535def4c47SEmmanuel Vadot      - const: sw_usb
545def4c47SEmmanuel Vadot      - const: sw_usb3
555def4c47SEmmanuel Vadot
565def4c47SEmmanuel Vadot  interrupts:
575def4c47SEmmanuel Vadot    description: wakeup interrupt
585def4c47SEmmanuel Vadot
595def4c47SEmmanuel Vadot  interrupt-names:
605def4c47SEmmanuel Vadot    const: wake
615def4c47SEmmanuel Vadot
625def4c47SEmmanuel Vadot  brcm,ipp:
635def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
645def4c47SEmmanuel Vadot    description: Invert Port Power
655def4c47SEmmanuel Vadot    minimum: 0
665def4c47SEmmanuel Vadot    maximum: 1
675def4c47SEmmanuel Vadot
685def4c47SEmmanuel Vadot  brcm,ioc:
695def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
705def4c47SEmmanuel Vadot    description: Invert Over Current detection
715def4c47SEmmanuel Vadot    minimum: 0
725def4c47SEmmanuel Vadot    maximum: 1
735def4c47SEmmanuel Vadot
745def4c47SEmmanuel Vadot  dr_mode:
755def4c47SEmmanuel Vadot    description: PHY Device mode. If this property is not defined, the PHY will
765def4c47SEmmanuel Vadot      default to "host" mode.
775def4c47SEmmanuel Vadot    enum:
785def4c47SEmmanuel Vadot      - host
795def4c47SEmmanuel Vadot      - peripheral
805def4c47SEmmanuel Vadot      - drd
815def4c47SEmmanuel Vadot      - typec-pd
825def4c47SEmmanuel Vadot
835def4c47SEmmanuel Vadot  brcm,syscon-piarbctl:
845def4c47SEmmanuel Vadot    description: phandle to syscon for handling config registers
855def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
865def4c47SEmmanuel Vadot
875def4c47SEmmanuel Vadot  brcm,has-xhci:
885def4c47SEmmanuel Vadot    description: Indicates the PHY has an XHCI PHY.
895def4c47SEmmanuel Vadot    type: boolean
905def4c47SEmmanuel Vadot
915def4c47SEmmanuel Vadot  brcm,has-eohci:
925def4c47SEmmanuel Vadot    description: Indicates the PHY has an EHCI/OHCI PHY.
935def4c47SEmmanuel Vadot    type: boolean
945def4c47SEmmanuel Vadot
955def4c47SEmmanuel Vadot  "#phy-cells":
965def4c47SEmmanuel Vadot    description: |
975def4c47SEmmanuel Vadot      Cell allows setting the type of the PHY. Possible values are:
985def4c47SEmmanuel Vadot      - PHY_TYPE_USB2 for USB1.1/2.0 PHY
995def4c47SEmmanuel Vadot      - PHY_TYPE_USB3 for USB3.x PHY
1005def4c47SEmmanuel Vadot    const: 1
1015def4c47SEmmanuel Vadot
1025def4c47SEmmanuel Vadotrequired:
1035def4c47SEmmanuel Vadot  - reg
1045def4c47SEmmanuel Vadot  - "#phy-cells"
1055def4c47SEmmanuel Vadot
1065def4c47SEmmanuel VadotanyOf:
1075def4c47SEmmanuel Vadot  - required:
1085def4c47SEmmanuel Vadot      - brcm,has-xhci
1095def4c47SEmmanuel Vadot  - required:
1105def4c47SEmmanuel Vadot      - brcm,has-eohci
1115def4c47SEmmanuel Vadot
1125def4c47SEmmanuel VadotallOf:
1135def4c47SEmmanuel Vadot  - if:
1145def4c47SEmmanuel Vadot      properties:
1155def4c47SEmmanuel Vadot        compatible:
1165def4c47SEmmanuel Vadot          contains:
1175def4c47SEmmanuel Vadot            enum:
118*f126890aSEmmanuel Vadot              - brcm,bcm4908-usb-phy
119*f126890aSEmmanuel Vadot              - brcm,brcmstb-usb-phy
1205def4c47SEmmanuel Vadot    then:
1215def4c47SEmmanuel Vadot      properties:
1225def4c47SEmmanuel Vadot        reg:
1235def4c47SEmmanuel Vadot          minItems: 1
1245def4c47SEmmanuel Vadot          maxItems: 2
1255def4c47SEmmanuel Vadot  - if:
1265def4c47SEmmanuel Vadot      properties:
1275def4c47SEmmanuel Vadot        compatible:
1285def4c47SEmmanuel Vadot          contains:
1295def4c47SEmmanuel Vadot            const: brcm,bcm7211-usb-phy
1305def4c47SEmmanuel Vadot    then:
1315def4c47SEmmanuel Vadot      properties:
1325def4c47SEmmanuel Vadot        reg:
1335def4c47SEmmanuel Vadot          minItems: 5
1345def4c47SEmmanuel Vadot          maxItems: 6
1355def4c47SEmmanuel Vadot        reg-names:
1365def4c47SEmmanuel Vadot          minItems: 5
1375def4c47SEmmanuel Vadot          maxItems: 6
1385def4c47SEmmanuel Vadot  - if:
1395def4c47SEmmanuel Vadot      properties:
1405def4c47SEmmanuel Vadot        compatible:
1415def4c47SEmmanuel Vadot          contains:
1425def4c47SEmmanuel Vadot            const: brcm,bcm7216-usb-phy
1435def4c47SEmmanuel Vadot    then:
1445def4c47SEmmanuel Vadot      properties:
1455def4c47SEmmanuel Vadot        reg:
1465def4c47SEmmanuel Vadot          minItems: 3
1475def4c47SEmmanuel Vadot          maxItems: 3
1485def4c47SEmmanuel Vadot        reg-names:
1495def4c47SEmmanuel Vadot          minItems: 3
1505def4c47SEmmanuel Vadot          maxItems: 3
1515def4c47SEmmanuel Vadot
1525def4c47SEmmanuel VadotadditionalProperties: false
1535def4c47SEmmanuel Vadot
1545def4c47SEmmanuel Vadotexamples:
1555def4c47SEmmanuel Vadot  - |
1565def4c47SEmmanuel Vadot    #include <dt-bindings/phy/phy.h>
1575def4c47SEmmanuel Vadot
1585def4c47SEmmanuel Vadot    usb-phy@f0470200 {
1595def4c47SEmmanuel Vadot        compatible = "brcm,brcmstb-usb-phy";
1605def4c47SEmmanuel Vadot        reg = <0xf0470200 0xb8>,
1615def4c47SEmmanuel Vadot              <0xf0471940 0x6c0>;
1625def4c47SEmmanuel Vadot        #phy-cells = <1>;
1635def4c47SEmmanuel Vadot        dr_mode = "host";
1645def4c47SEmmanuel Vadot        brcm,ioc = <1>;
1655def4c47SEmmanuel Vadot        brcm,ipp = <1>;
1665def4c47SEmmanuel Vadot        brcm,has-xhci;
1675def4c47SEmmanuel Vadot        brcm,has-eohci;
1685def4c47SEmmanuel Vadot        clocks = <&usb20>, <&usb30>;
1695def4c47SEmmanuel Vadot        clock-names = "sw_usb", "sw_usb3";
1705def4c47SEmmanuel Vadot    };
1715def4c47SEmmanuel Vadot  - |
1725def4c47SEmmanuel Vadot    #include <dt-bindings/phy/phy.h>
1735def4c47SEmmanuel Vadot
1745def4c47SEmmanuel Vadot    usb-phy@29f0200 {
1755def4c47SEmmanuel Vadot        compatible = "brcm,bcm7211-usb-phy";
1765def4c47SEmmanuel Vadot        reg = <0x29f0200 0x200>,
1775def4c47SEmmanuel Vadot              <0x29c0880 0x30>,
1785def4c47SEmmanuel Vadot              <0x29cc100 0x534>,
1795def4c47SEmmanuel Vadot              <0x2808000 0x24>,
1805def4c47SEmmanuel Vadot              <0x2980080 0x8>;
1815def4c47SEmmanuel Vadot        reg-names = "ctrl",
1825def4c47SEmmanuel Vadot            "xhci_ec",
1835def4c47SEmmanuel Vadot            "xhci_gbl",
1845def4c47SEmmanuel Vadot            "usb_phy",
1855def4c47SEmmanuel Vadot            "usb_mdio";
1865def4c47SEmmanuel Vadot        brcm,ioc = <0x0>;
1875def4c47SEmmanuel Vadot        brcm,ipp = <0x0>;
1885def4c47SEmmanuel Vadot        interrupts = <0x30>;
1895def4c47SEmmanuel Vadot        interrupt-parent = <&vpu_intr1_nosec_intc>;
1905def4c47SEmmanuel Vadot        interrupt-names = "wake";
1915def4c47SEmmanuel Vadot        #phy-cells = <0x1>;
1925def4c47SEmmanuel Vadot        brcm,has-xhci;
1935def4c47SEmmanuel Vadot        brcm,syscon-piarbctl = <&syscon_piarbctl>;
1945def4c47SEmmanuel Vadot        clocks = <&scmi_clk 256>;
1955def4c47SEmmanuel Vadot        clock-names = "sw_usb";
1965def4c47SEmmanuel Vadot    };
197