xref: /freebsd/sys/contrib/device-tree/Bindings/phy/phy-cadence-sierra.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
15def4c47SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
25def4c47SEmmanuel Vadot%YAML 1.2
35def4c47SEmmanuel Vadot---
4*fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/phy/phy-cadence-sierra.yaml#
5*fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
65def4c47SEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: Cadence Sierra PHY
85def4c47SEmmanuel Vadot
95def4c47SEmmanuel Vadotdescription:
105def4c47SEmmanuel Vadot  This binding describes the Cadence Sierra PHY. Sierra PHY supports multilink
115def4c47SEmmanuel Vadot  multiprotocol combinations including protocols such as PCIe, USB etc.
125def4c47SEmmanuel Vadot
135def4c47SEmmanuel Vadotmaintainers:
145def4c47SEmmanuel Vadot  - Swapnil Jakhade <sjakhade@cadence.com>
155def4c47SEmmanuel Vadot  - Yuti Amonkar <yamonkar@cadence.com>
165def4c47SEmmanuel Vadot
175def4c47SEmmanuel Vadotproperties:
185def4c47SEmmanuel Vadot  compatible:
195def4c47SEmmanuel Vadot    enum:
205def4c47SEmmanuel Vadot      - cdns,sierra-phy-t0
215def4c47SEmmanuel Vadot      - ti,sierra-phy-t0
225def4c47SEmmanuel Vadot
235def4c47SEmmanuel Vadot  '#address-cells':
245def4c47SEmmanuel Vadot    const: 1
255def4c47SEmmanuel Vadot
265def4c47SEmmanuel Vadot  '#size-cells':
275def4c47SEmmanuel Vadot    const: 0
285def4c47SEmmanuel Vadot
292eb4d8dcSEmmanuel Vadot  '#clock-cells':
302eb4d8dcSEmmanuel Vadot    const: 1
312eb4d8dcSEmmanuel Vadot
325def4c47SEmmanuel Vadot  resets:
335def4c47SEmmanuel Vadot    minItems: 1
345def4c47SEmmanuel Vadot    items:
355def4c47SEmmanuel Vadot      - description: Sierra PHY reset.
365def4c47SEmmanuel Vadot      - description: Sierra APB reset. This is optional.
375def4c47SEmmanuel Vadot
385def4c47SEmmanuel Vadot  reset-names:
395def4c47SEmmanuel Vadot    minItems: 1
405def4c47SEmmanuel Vadot    items:
415def4c47SEmmanuel Vadot      - const: sierra_reset
425def4c47SEmmanuel Vadot      - const: sierra_apb
435def4c47SEmmanuel Vadot
445def4c47SEmmanuel Vadot  reg:
455def4c47SEmmanuel Vadot    maxItems: 1
465def4c47SEmmanuel Vadot    description:
475def4c47SEmmanuel Vadot      Offset of the Sierra PHY configuration registers.
485def4c47SEmmanuel Vadot
495def4c47SEmmanuel Vadot  reg-names:
505def4c47SEmmanuel Vadot    const: serdes
515def4c47SEmmanuel Vadot
525def4c47SEmmanuel Vadot  clocks:
532eb4d8dcSEmmanuel Vadot    minItems: 2
542eb4d8dcSEmmanuel Vadot    maxItems: 4
555def4c47SEmmanuel Vadot
565def4c47SEmmanuel Vadot  clock-names:
572eb4d8dcSEmmanuel Vadot    minItems: 2
585def4c47SEmmanuel Vadot    items:
595def4c47SEmmanuel Vadot      - const: cmn_refclk_dig_div
605def4c47SEmmanuel Vadot      - const: cmn_refclk1_dig_div
612eb4d8dcSEmmanuel Vadot      - const: pll0_refclk
622eb4d8dcSEmmanuel Vadot      - const: pll1_refclk
632eb4d8dcSEmmanuel Vadot
645def4c47SEmmanuel Vadot  cdns,autoconf:
655def4c47SEmmanuel Vadot    type: boolean
665def4c47SEmmanuel Vadot    description:
675def4c47SEmmanuel Vadot      A boolean property whose presence indicates that the PHY registers will be
685def4c47SEmmanuel Vadot      configured by hardware. If not present, all sub-node optional properties
695def4c47SEmmanuel Vadot      must be provided.
705def4c47SEmmanuel Vadot
715def4c47SEmmanuel VadotpatternProperties:
725def4c47SEmmanuel Vadot  '^phy@[0-9a-f]$':
735def4c47SEmmanuel Vadot    type: object
745def4c47SEmmanuel Vadot    description:
755def4c47SEmmanuel Vadot      Each group of PHY lanes with a single master lane should be represented as
765def4c47SEmmanuel Vadot      a sub-node. Note that the actual configuration of each lane is determined
775def4c47SEmmanuel Vadot      by hardware strapping, and must match the configuration specified here.
785def4c47SEmmanuel Vadot    properties:
795def4c47SEmmanuel Vadot      reg:
805def4c47SEmmanuel Vadot        description:
815def4c47SEmmanuel Vadot          The master lane number. This is the lowest numbered lane in the lane group.
825def4c47SEmmanuel Vadot        minimum: 0
835def4c47SEmmanuel Vadot        maximum: 15
845def4c47SEmmanuel Vadot
855def4c47SEmmanuel Vadot      resets:
865def4c47SEmmanuel Vadot        minItems: 1
875def4c47SEmmanuel Vadot        maxItems: 4
885def4c47SEmmanuel Vadot        description:
895def4c47SEmmanuel Vadot          Contains list of resets, one per lane, to get all the link lanes out of reset.
905def4c47SEmmanuel Vadot
915def4c47SEmmanuel Vadot      "#phy-cells":
925def4c47SEmmanuel Vadot        const: 0
935def4c47SEmmanuel Vadot
945def4c47SEmmanuel Vadot      cdns,phy-type:
955def4c47SEmmanuel Vadot        description:
965def4c47SEmmanuel Vadot          Specifies the type of PHY for which the group of PHY lanes is used.
975def4c47SEmmanuel Vadot          Refer include/dt-bindings/phy/phy.h. Constants from the header should be used.
985def4c47SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
995def4c47SEmmanuel Vadot        enum: [2, 4]
1005def4c47SEmmanuel Vadot
1015def4c47SEmmanuel Vadot      cdns,num-lanes:
1025def4c47SEmmanuel Vadot        description:
1035def4c47SEmmanuel Vadot          Number of lanes in this group. The group is made up of consecutive lanes.
1045def4c47SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
1055def4c47SEmmanuel Vadot        minimum: 1
1065def4c47SEmmanuel Vadot        maximum: 16
1075def4c47SEmmanuel Vadot
108e67e8565SEmmanuel Vadot      cdns,ssc-mode:
109e67e8565SEmmanuel Vadot        description:
110e67e8565SEmmanuel Vadot          Specifies the Spread Spectrum Clocking mode used. It can be NO_SSC,
111e67e8565SEmmanuel Vadot          EXTERNAL_SSC or INTERNAL_SSC.
112e67e8565SEmmanuel Vadot          Refer include/dt-bindings/phy/phy-cadence.h for the constants to be used.
113e67e8565SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
114e67e8565SEmmanuel Vadot        enum: [0, 1, 2]
115e67e8565SEmmanuel Vadot        default: 1
116e67e8565SEmmanuel Vadot
1175def4c47SEmmanuel Vadot    required:
1185def4c47SEmmanuel Vadot      - reg
1195def4c47SEmmanuel Vadot      - resets
1205def4c47SEmmanuel Vadot      - "#phy-cells"
1215def4c47SEmmanuel Vadot
1225def4c47SEmmanuel Vadot    additionalProperties: false
1235def4c47SEmmanuel Vadot
1245def4c47SEmmanuel Vadotrequired:
1255def4c47SEmmanuel Vadot  - compatible
1265def4c47SEmmanuel Vadot  - "#address-cells"
1275def4c47SEmmanuel Vadot  - "#size-cells"
1285def4c47SEmmanuel Vadot  - reg
1295def4c47SEmmanuel Vadot  - resets
1305def4c47SEmmanuel Vadot  - reset-names
1315def4c47SEmmanuel Vadot
1325def4c47SEmmanuel VadotadditionalProperties: false
1335def4c47SEmmanuel Vadot
1345def4c47SEmmanuel Vadotexamples:
1355def4c47SEmmanuel Vadot  - |
1365def4c47SEmmanuel Vadot    #include <dt-bindings/phy/phy.h>
1375def4c47SEmmanuel Vadot
1385def4c47SEmmanuel Vadot    bus {
1395def4c47SEmmanuel Vadot        #address-cells = <2>;
1405def4c47SEmmanuel Vadot        #size-cells = <2>;
1415def4c47SEmmanuel Vadot
1425def4c47SEmmanuel Vadot        sierra-phy@fd240000 {
1435def4c47SEmmanuel Vadot            compatible = "cdns,sierra-phy-t0";
1445def4c47SEmmanuel Vadot            reg = <0x0 0xfd240000 0x0 0x40000>;
1455def4c47SEmmanuel Vadot            resets = <&phyrst 0>, <&phyrst 1>;
1465def4c47SEmmanuel Vadot            reset-names = "sierra_reset", "sierra_apb";
1475def4c47SEmmanuel Vadot            clocks = <&cmn_refclk_dig_div>, <&cmn_refclk1_dig_div>;
1485def4c47SEmmanuel Vadot            clock-names = "cmn_refclk_dig_div", "cmn_refclk1_dig_div";
1495def4c47SEmmanuel Vadot            #address-cells = <1>;
1505def4c47SEmmanuel Vadot            #size-cells = <0>;
1515def4c47SEmmanuel Vadot            pcie0_phy0: phy@0 {
1525def4c47SEmmanuel Vadot                reg = <0>;
1535def4c47SEmmanuel Vadot                resets = <&phyrst 2>;
1545def4c47SEmmanuel Vadot                cdns,num-lanes = <2>;
1555def4c47SEmmanuel Vadot                #phy-cells = <0>;
1565def4c47SEmmanuel Vadot                cdns,phy-type = <PHY_TYPE_PCIE>;
1575def4c47SEmmanuel Vadot            };
1585def4c47SEmmanuel Vadot            pcie0_phy1: phy@2 {
1595def4c47SEmmanuel Vadot                reg = <2>;
1605def4c47SEmmanuel Vadot                resets = <&phyrst 4>;
1615def4c47SEmmanuel Vadot                cdns,num-lanes = <1>;
1625def4c47SEmmanuel Vadot                #phy-cells = <0>;
1635def4c47SEmmanuel Vadot                cdns,phy-type = <PHY_TYPE_PCIE>;
1645def4c47SEmmanuel Vadot            };
1655def4c47SEmmanuel Vadot        };
1665def4c47SEmmanuel Vadot    };
167