xref: /src/sys/contrib/device-tree/Bindings/phy/phy-cadence-sierra.yaml (revision 5f62a964e9f8abc6a05d8338273fadd154f0a206)
1f544df78SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2f544df78SEmmanuel Vadot%YAML 1.2
3f544df78SEmmanuel Vadot---
4c47d0ea1SEmmanuel Vadot$id: http://devicetree.org/schemas/phy/phy-cadence-sierra.yaml#
5c47d0ea1SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6f544df78SEmmanuel Vadot
7c227958aSEmmanuel Vadottitle: Cadence Sierra PHY
8f544df78SEmmanuel Vadot
9f544df78SEmmanuel Vadotdescription:
10f544df78SEmmanuel Vadot  This binding describes the Cadence Sierra PHY. Sierra PHY supports multilink
11f544df78SEmmanuel Vadot  multiprotocol combinations including protocols such as PCIe, USB etc.
12f544df78SEmmanuel Vadot
13f544df78SEmmanuel Vadotmaintainers:
14f544df78SEmmanuel Vadot  - Swapnil Jakhade <sjakhade@cadence.com>
15f544df78SEmmanuel Vadot  - Yuti Amonkar <yamonkar@cadence.com>
16f544df78SEmmanuel Vadot
17f544df78SEmmanuel Vadotproperties:
18f544df78SEmmanuel Vadot  compatible:
19f544df78SEmmanuel Vadot    enum:
20f544df78SEmmanuel Vadot      - cdns,sierra-phy-t0
21f544df78SEmmanuel Vadot      - ti,sierra-phy-t0
22f544df78SEmmanuel Vadot
23f544df78SEmmanuel Vadot  '#address-cells':
24f544df78SEmmanuel Vadot    const: 1
25f544df78SEmmanuel Vadot
26f544df78SEmmanuel Vadot  '#size-cells':
27f544df78SEmmanuel Vadot    const: 0
28f544df78SEmmanuel Vadot
2971ca10f8SEmmanuel Vadot  '#clock-cells':
3071ca10f8SEmmanuel Vadot    const: 1
3171ca10f8SEmmanuel Vadot
32f544df78SEmmanuel Vadot  resets:
33f544df78SEmmanuel Vadot    minItems: 1
34f544df78SEmmanuel Vadot    items:
35f544df78SEmmanuel Vadot      - description: Sierra PHY reset.
36f544df78SEmmanuel Vadot      - description: Sierra APB reset. This is optional.
37f544df78SEmmanuel Vadot
38f544df78SEmmanuel Vadot  reset-names:
39f544df78SEmmanuel Vadot    minItems: 1
40f544df78SEmmanuel Vadot    items:
41f544df78SEmmanuel Vadot      - const: sierra_reset
42f544df78SEmmanuel Vadot      - const: sierra_apb
43f544df78SEmmanuel Vadot
44f544df78SEmmanuel Vadot  reg:
45f544df78SEmmanuel Vadot    maxItems: 1
46f544df78SEmmanuel Vadot    description:
47f544df78SEmmanuel Vadot      Offset of the Sierra PHY configuration registers.
48f544df78SEmmanuel Vadot
49f544df78SEmmanuel Vadot  reg-names:
50f544df78SEmmanuel Vadot    const: serdes
51f544df78SEmmanuel Vadot
52f544df78SEmmanuel Vadot  clocks:
5371ca10f8SEmmanuel Vadot    minItems: 2
5471ca10f8SEmmanuel Vadot    maxItems: 4
55f544df78SEmmanuel Vadot
56f544df78SEmmanuel Vadot  clock-names:
5771ca10f8SEmmanuel Vadot    minItems: 2
58f544df78SEmmanuel Vadot    items:
59f544df78SEmmanuel Vadot      - const: cmn_refclk_dig_div
60f544df78SEmmanuel Vadot      - const: cmn_refclk1_dig_div
6171ca10f8SEmmanuel Vadot      - const: pll0_refclk
6271ca10f8SEmmanuel Vadot      - const: pll1_refclk
6371ca10f8SEmmanuel Vadot
64f544df78SEmmanuel Vadot  cdns,autoconf:
65f544df78SEmmanuel Vadot    type: boolean
66f544df78SEmmanuel Vadot    description:
67f544df78SEmmanuel Vadot      A boolean property whose presence indicates that the PHY registers will be
68f544df78SEmmanuel Vadot      configured by hardware. If not present, all sub-node optional properties
69f544df78SEmmanuel Vadot      must be provided.
70f544df78SEmmanuel Vadot
71f544df78SEmmanuel VadotpatternProperties:
72f544df78SEmmanuel Vadot  '^phy@[0-9a-f]$':
73f544df78SEmmanuel Vadot    type: object
74f544df78SEmmanuel Vadot    description:
75f544df78SEmmanuel Vadot      Each group of PHY lanes with a single master lane should be represented as
76f544df78SEmmanuel Vadot      a sub-node. Note that the actual configuration of each lane is determined
77f544df78SEmmanuel Vadot      by hardware strapping, and must match the configuration specified here.
78f544df78SEmmanuel Vadot    properties:
79f544df78SEmmanuel Vadot      reg:
80f544df78SEmmanuel Vadot        description:
81f544df78SEmmanuel Vadot          The master lane number. This is the lowest numbered lane in the lane group.
82f544df78SEmmanuel Vadot        minimum: 0
83f544df78SEmmanuel Vadot        maximum: 15
84f544df78SEmmanuel Vadot
85f544df78SEmmanuel Vadot      resets:
86f544df78SEmmanuel Vadot        minItems: 1
87f544df78SEmmanuel Vadot        maxItems: 4
88f544df78SEmmanuel Vadot        description:
89f544df78SEmmanuel Vadot          Contains list of resets, one per lane, to get all the link lanes out of reset.
90f544df78SEmmanuel Vadot
91f544df78SEmmanuel Vadot      "#phy-cells":
92f544df78SEmmanuel Vadot        const: 0
93f544df78SEmmanuel Vadot
94f544df78SEmmanuel Vadot      cdns,phy-type:
95f544df78SEmmanuel Vadot        description:
96f544df78SEmmanuel Vadot          Specifies the type of PHY for which the group of PHY lanes is used.
97f544df78SEmmanuel Vadot          Refer include/dt-bindings/phy/phy.h. Constants from the header should be used.
98f544df78SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
992aa9fc59SEmmanuel Vadot        enum: [2, 4, 8, 9]
100f544df78SEmmanuel Vadot
101f544df78SEmmanuel Vadot      cdns,num-lanes:
102f544df78SEmmanuel Vadot        description:
103f544df78SEmmanuel Vadot          Number of lanes in this group. The group is made up of consecutive lanes.
104f544df78SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
105f544df78SEmmanuel Vadot        minimum: 1
106f544df78SEmmanuel Vadot        maximum: 16
107f544df78SEmmanuel Vadot
108b7d8b563SEmmanuel Vadot      cdns,ssc-mode:
109b7d8b563SEmmanuel Vadot        description:
110b7d8b563SEmmanuel Vadot          Specifies the Spread Spectrum Clocking mode used. It can be NO_SSC,
111b7d8b563SEmmanuel Vadot          EXTERNAL_SSC or INTERNAL_SSC.
112b7d8b563SEmmanuel Vadot          Refer include/dt-bindings/phy/phy-cadence.h for the constants to be used.
113b7d8b563SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
114b7d8b563SEmmanuel Vadot        enum: [0, 1, 2]
115b7d8b563SEmmanuel Vadot        default: 1
116b7d8b563SEmmanuel Vadot
117f544df78SEmmanuel Vadot    required:
118f544df78SEmmanuel Vadot      - reg
119f544df78SEmmanuel Vadot      - resets
120f544df78SEmmanuel Vadot      - "#phy-cells"
121f544df78SEmmanuel Vadot
122f544df78SEmmanuel Vadot    additionalProperties: false
123f544df78SEmmanuel Vadot
124f544df78SEmmanuel Vadotrequired:
125f544df78SEmmanuel Vadot  - compatible
126f544df78SEmmanuel Vadot  - "#address-cells"
127f544df78SEmmanuel Vadot  - "#size-cells"
128f544df78SEmmanuel Vadot  - reg
129f544df78SEmmanuel Vadot  - resets
130f544df78SEmmanuel Vadot  - reset-names
131f544df78SEmmanuel Vadot
132f544df78SEmmanuel VadotadditionalProperties: false
133f544df78SEmmanuel Vadot
134f544df78SEmmanuel Vadotexamples:
135f544df78SEmmanuel Vadot  - |
136f544df78SEmmanuel Vadot    #include <dt-bindings/phy/phy.h>
137f544df78SEmmanuel Vadot
138f544df78SEmmanuel Vadot    bus {
139f544df78SEmmanuel Vadot        #address-cells = <2>;
140f544df78SEmmanuel Vadot        #size-cells = <2>;
141f544df78SEmmanuel Vadot
142f544df78SEmmanuel Vadot        sierra-phy@fd240000 {
143f544df78SEmmanuel Vadot            compatible = "cdns,sierra-phy-t0";
144f544df78SEmmanuel Vadot            reg = <0x0 0xfd240000 0x0 0x40000>;
145f544df78SEmmanuel Vadot            resets = <&phyrst 0>, <&phyrst 1>;
146f544df78SEmmanuel Vadot            reset-names = "sierra_reset", "sierra_apb";
147f544df78SEmmanuel Vadot            clocks = <&cmn_refclk_dig_div>, <&cmn_refclk1_dig_div>;
148f544df78SEmmanuel Vadot            clock-names = "cmn_refclk_dig_div", "cmn_refclk1_dig_div";
149f544df78SEmmanuel Vadot            #address-cells = <1>;
150f544df78SEmmanuel Vadot            #size-cells = <0>;
151f544df78SEmmanuel Vadot            pcie0_phy0: phy@0 {
152f544df78SEmmanuel Vadot                reg = <0>;
153f544df78SEmmanuel Vadot                resets = <&phyrst 2>;
154f544df78SEmmanuel Vadot                cdns,num-lanes = <2>;
155f544df78SEmmanuel Vadot                #phy-cells = <0>;
156f544df78SEmmanuel Vadot                cdns,phy-type = <PHY_TYPE_PCIE>;
157f544df78SEmmanuel Vadot            };
158f544df78SEmmanuel Vadot            pcie0_phy1: phy@2 {
159f544df78SEmmanuel Vadot                reg = <2>;
160f544df78SEmmanuel Vadot                resets = <&phyrst 4>;
161f544df78SEmmanuel Vadot                cdns,num-lanes = <1>;
162f544df78SEmmanuel Vadot                #phy-cells = <0>;
163f544df78SEmmanuel Vadot                cdns,phy-type = <PHY_TYPE_PCIE>;
164f544df78SEmmanuel Vadot            };
165f544df78SEmmanuel Vadot        };
166f544df78SEmmanuel Vadot    };
167