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