xref: /freebsd/sys/contrib/device-tree/Bindings/phy/rockchip,pcie3-phy.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
1*7ef62cebSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*7ef62cebSEmmanuel Vadot%YAML 1.2
3*7ef62cebSEmmanuel Vadot---
4*7ef62cebSEmmanuel Vadot$id: http://devicetree.org/schemas/phy/rockchip,pcie3-phy.yaml#
5*7ef62cebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*7ef62cebSEmmanuel Vadot
7*7ef62cebSEmmanuel Vadottitle: Rockchip PCIe v3 phy
8*7ef62cebSEmmanuel Vadot
9*7ef62cebSEmmanuel Vadotmaintainers:
10*7ef62cebSEmmanuel Vadot  - Heiko Stuebner <heiko@sntech.de>
11*7ef62cebSEmmanuel Vadot
12*7ef62cebSEmmanuel Vadotproperties:
13*7ef62cebSEmmanuel Vadot  compatible:
14*7ef62cebSEmmanuel Vadot    enum:
15*7ef62cebSEmmanuel Vadot      - rockchip,rk3568-pcie3-phy
16*7ef62cebSEmmanuel Vadot
17*7ef62cebSEmmanuel Vadot  reg:
18*7ef62cebSEmmanuel Vadot    maxItems: 1
19*7ef62cebSEmmanuel Vadot
20*7ef62cebSEmmanuel Vadot  clocks:
21*7ef62cebSEmmanuel Vadot    minItems: 3
22*7ef62cebSEmmanuel Vadot    maxItems: 3
23*7ef62cebSEmmanuel Vadot
24*7ef62cebSEmmanuel Vadot  clock-names:
25*7ef62cebSEmmanuel Vadot    items:
26*7ef62cebSEmmanuel Vadot      - const: refclk_m
27*7ef62cebSEmmanuel Vadot      - const: refclk_n
28*7ef62cebSEmmanuel Vadot      - const: pclk
29*7ef62cebSEmmanuel Vadot
30*7ef62cebSEmmanuel Vadot  data-lanes:
31*7ef62cebSEmmanuel Vadot    description: which lanes (by position) should be mapped to which
32*7ef62cebSEmmanuel Vadot      controller (value). 0 means lane disabled, higher value means used.
33*7ef62cebSEmmanuel Vadot      (controller-number +1 )
34*7ef62cebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
35*7ef62cebSEmmanuel Vadot    minItems: 2
36*7ef62cebSEmmanuel Vadot    maxItems: 16
37*7ef62cebSEmmanuel Vadot    items:
38*7ef62cebSEmmanuel Vadot      minimum: 0
39*7ef62cebSEmmanuel Vadot      maximum: 16
40*7ef62cebSEmmanuel Vadot
41*7ef62cebSEmmanuel Vadot  "#phy-cells":
42*7ef62cebSEmmanuel Vadot    const: 0
43*7ef62cebSEmmanuel Vadot
44*7ef62cebSEmmanuel Vadot  resets:
45*7ef62cebSEmmanuel Vadot    maxItems: 1
46*7ef62cebSEmmanuel Vadot
47*7ef62cebSEmmanuel Vadot  reset-names:
48*7ef62cebSEmmanuel Vadot    const: phy
49*7ef62cebSEmmanuel Vadot
50*7ef62cebSEmmanuel Vadot  rockchip,phy-grf:
51*7ef62cebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
52*7ef62cebSEmmanuel Vadot    description: phandle to the syscon managing the phy "general register files"
53*7ef62cebSEmmanuel Vadot
54*7ef62cebSEmmanuel Vadot  rockchip,pipe-grf:
55*7ef62cebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
56*7ef62cebSEmmanuel Vadot    description: phandle to the syscon managing the pipe "general register files"
57*7ef62cebSEmmanuel Vadot
58*7ef62cebSEmmanuel Vadotrequired:
59*7ef62cebSEmmanuel Vadot  - compatible
60*7ef62cebSEmmanuel Vadot  - reg
61*7ef62cebSEmmanuel Vadot  - rockchip,phy-grf
62*7ef62cebSEmmanuel Vadot  - "#phy-cells"
63*7ef62cebSEmmanuel Vadot
64*7ef62cebSEmmanuel VadotadditionalProperties: false
65*7ef62cebSEmmanuel Vadot
66*7ef62cebSEmmanuel Vadotexamples:
67*7ef62cebSEmmanuel Vadot  - |
68*7ef62cebSEmmanuel Vadot    #include <dt-bindings/clock/rk3568-cru.h>
69*7ef62cebSEmmanuel Vadot    pcie30phy: phy@fe8c0000 {
70*7ef62cebSEmmanuel Vadot      compatible = "rockchip,rk3568-pcie3-phy";
71*7ef62cebSEmmanuel Vadot      reg = <0xfe8c0000 0x20000>;
72*7ef62cebSEmmanuel Vadot      #phy-cells = <0>;
73*7ef62cebSEmmanuel Vadot      clocks = <&pmucru CLK_PCIE30PHY_REF_M>,
74*7ef62cebSEmmanuel Vadot               <&pmucru CLK_PCIE30PHY_REF_N>,
75*7ef62cebSEmmanuel Vadot               <&cru PCLK_PCIE30PHY>;
76*7ef62cebSEmmanuel Vadot      clock-names = "refclk_m", "refclk_n", "pclk";
77*7ef62cebSEmmanuel Vadot      resets = <&cru SRST_PCIE30PHY>;
78*7ef62cebSEmmanuel Vadot      reset-names = "phy";
79*7ef62cebSEmmanuel Vadot      rockchip,phy-grf = <&pcie30_phy_grf>;
80*7ef62cebSEmmanuel Vadot    };
81