1*af89e575SFlorian Fainelli# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*af89e575SFlorian Fainelli%YAML 1.2
3*af89e575SFlorian Fainelli---
4*af89e575SFlorian Fainelli$id: "http://devicetree.org/schemas/phy/brcm,sata-phy.yaml#"
5*af89e575SFlorian Fainelli$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6*af89e575SFlorian Fainelli
7*af89e575SFlorian Fainellititle: Broadcom SATA3 PHY
8*af89e575SFlorian Fainelli
9*af89e575SFlorian Fainellimaintainers:
10*af89e575SFlorian Fainelli  - Florian Fainelli <f.fainelli@gmail.com>
11*af89e575SFlorian Fainelli
12*af89e575SFlorian Fainelliproperties:
13*af89e575SFlorian Fainelli  $nodename:
14*af89e575SFlorian Fainelli    pattern: "^sata[-|_]phy(@.*)?$"
15*af89e575SFlorian Fainelli
16*af89e575SFlorian Fainelli  compatible:
17*af89e575SFlorian Fainelli    oneOf:
18*af89e575SFlorian Fainelli      - items:
19*af89e575SFlorian Fainelli          - enum:
20*af89e575SFlorian Fainelli              - brcm,bcm7216-sata-phy
21*af89e575SFlorian Fainelli              - brcm,bcm7425-sata-phy
22*af89e575SFlorian Fainelli              - brcm,bcm7445-sata-phy
23*af89e575SFlorian Fainelli              - brcm,bcm63138-sata-phy
24*af89e575SFlorian Fainelli          - const: brcm,phy-sata3
25*af89e575SFlorian Fainelli      - items:
26*af89e575SFlorian Fainelli          - const: brcm,iproc-nsp-sata-phy
27*af89e575SFlorian Fainelli      - items:
28*af89e575SFlorian Fainelli          - const: brcm,iproc-ns2-sata-phy
29*af89e575SFlorian Fainelli      - items:
30*af89e575SFlorian Fainelli          - const: brcm,iproc-sr-sata-phy
31*af89e575SFlorian Fainelli
32*af89e575SFlorian Fainelli  reg:
33*af89e575SFlorian Fainelli    minItems: 1
34*af89e575SFlorian Fainelli    maxItems: 2
35*af89e575SFlorian Fainelli
36*af89e575SFlorian Fainelli  reg-names:
37*af89e575SFlorian Fainelli    minItems: 1
38*af89e575SFlorian Fainelli    maxItems: 2
39*af89e575SFlorian Fainelli    items:
40*af89e575SFlorian Fainelli      - const: phy
41*af89e575SFlorian Fainelli      - const: phy-ctrl
42*af89e575SFlorian Fainelli
43*af89e575SFlorian Fainelli  "#address-cells":
44*af89e575SFlorian Fainelli    const: 1
45*af89e575SFlorian Fainelli
46*af89e575SFlorian Fainelli  "#size-cells":
47*af89e575SFlorian Fainelli    const: 0
48*af89e575SFlorian Fainelli
49*af89e575SFlorian FainellipatternProperties:
50*af89e575SFlorian Fainelli  "^sata-phy@[0-9]+$":
51*af89e575SFlorian Fainelli    type: object
52*af89e575SFlorian Fainelli    description: |
53*af89e575SFlorian Fainelli      Each port's PHY should be represented as a sub-node.
54*af89e575SFlorian Fainelli
55*af89e575SFlorian Fainelli    properties:
56*af89e575SFlorian Fainelli      reg:
57*af89e575SFlorian Fainelli        description: The SATA PHY port number
58*af89e575SFlorian Fainelli        maxItems: 1
59*af89e575SFlorian Fainelli
60*af89e575SFlorian Fainelli      "#phy-cells":
61*af89e575SFlorian Fainelli        const: 0
62*af89e575SFlorian Fainelli
63*af89e575SFlorian Fainelli      "brcm,enable-ssc":
64*af89e575SFlorian Fainelli        $ref: /schemas/types.yaml#/definitions/flag
65*af89e575SFlorian Fainelli        description: |
66*af89e575SFlorian Fainelli          Use spread spectrum clocking (SSC) on this port
67*af89e575SFlorian Fainelli          This property is not applicable for "brcm,iproc-ns2-sata-phy",
68*af89e575SFlorian Fainelli          "brcm,iproc-nsp-sata-phy" and "brcm,iproc-sr-sata-phy".
69*af89e575SFlorian Fainelli
70*af89e575SFlorian Fainelli      "brcm,rxaeq-mode":
71*af89e575SFlorian Fainelli        $ref: /schemas/types.yaml#/definitions/string
72*af89e575SFlorian Fainelli        description:
73*af89e575SFlorian Fainelli          String that indicates the desired RX equalizer mode.
74*af89e575SFlorian Fainelli        enum:
75*af89e575SFlorian Fainelli          - off
76*af89e575SFlorian Fainelli          - auto
77*af89e575SFlorian Fainelli          - manual
78*af89e575SFlorian Fainelli
79*af89e575SFlorian Fainelli      "brcm,rxaeq-value":
80*af89e575SFlorian Fainelli        $ref: /schemas/types.yaml#/definitions/uint32
81*af89e575SFlorian Fainelli        description: |
82*af89e575SFlorian Fainelli            When 'brcm,rxaeq-mode' is set to "manual", provides the RX
83*af89e575SFlorian Fainelli            equalizer value that should be used.
84*af89e575SFlorian Fainelli        minimum: 0
85*af89e575SFlorian Fainelli        maximum: 63
86*af89e575SFlorian Fainelli
87*af89e575SFlorian Fainelli      "brcm,tx-amplitude-millivolt":
88*af89e575SFlorian Fainelli        description: |
89*af89e575SFlorian Fainelli            Transmit amplitude voltage in millivolt.
90*af89e575SFlorian Fainelli        $ref: /schemas/types.yaml#/definitions/uint32
91*af89e575SFlorian Fainelli        enum: [400, 500, 600, 800]
92*af89e575SFlorian Fainelli
93*af89e575SFlorian Fainelli    required:
94*af89e575SFlorian Fainelli      - reg
95*af89e575SFlorian Fainelli      - "#phy-cells"
96*af89e575SFlorian Fainelli
97*af89e575SFlorian Fainelli    additionalProperties: false
98*af89e575SFlorian Fainelli
99*af89e575SFlorian Fainelliif:
100*af89e575SFlorian Fainelli  properties:
101*af89e575SFlorian Fainelli    compatible:
102*af89e575SFlorian Fainelli      items:
103*af89e575SFlorian Fainelli        const: brcm,iproc-ns2-sata-phy
104*af89e575SFlorian Fainellithen:
105*af89e575SFlorian Fainelli  properties:
106*af89e575SFlorian Fainelli    reg:
107*af89e575SFlorian Fainelli      maxItems: 2
108*af89e575SFlorian Fainelli    reg-names:
109*af89e575SFlorian Fainelli      items:
110*af89e575SFlorian Fainelli        - const: "phy"
111*af89e575SFlorian Fainelli        - const: "phy-ctrl"
112*af89e575SFlorian Fainellielse:
113*af89e575SFlorian Fainelli  properties:
114*af89e575SFlorian Fainelli    reg:
115*af89e575SFlorian Fainelli      maxItems: 1
116*af89e575SFlorian Fainelli    reg-names:
117*af89e575SFlorian Fainelli      maxItems: 1
118*af89e575SFlorian Fainelli      items:
119*af89e575SFlorian Fainelli        - const: "phy"
120*af89e575SFlorian Fainelli
121*af89e575SFlorian Fainellirequired:
122*af89e575SFlorian Fainelli  - compatible
123*af89e575SFlorian Fainelli  - "#address-cells"
124*af89e575SFlorian Fainelli  - "#size-cells"
125*af89e575SFlorian Fainelli  - reg
126*af89e575SFlorian Fainelli  - reg-names
127*af89e575SFlorian Fainelli
128*af89e575SFlorian FainelliadditionalProperties: false
129*af89e575SFlorian Fainelli
130*af89e575SFlorian Fainelliexamples:
131*af89e575SFlorian Fainelli  - |
132*af89e575SFlorian Fainelli    sata_phy@f0458100 {
133*af89e575SFlorian Fainelli        compatible = "brcm,bcm7445-sata-phy", "brcm,phy-sata3";
134*af89e575SFlorian Fainelli        reg = <0xf0458100 0x1e00>;
135*af89e575SFlorian Fainelli        reg-names = "phy";
136*af89e575SFlorian Fainelli        #address-cells = <1>;
137*af89e575SFlorian Fainelli        #size-cells = <0>;
138*af89e575SFlorian Fainelli
139*af89e575SFlorian Fainelli        sata-phy@0 {
140*af89e575SFlorian Fainelli                reg = <0>;
141*af89e575SFlorian Fainelli                #phy-cells = <0>;
142*af89e575SFlorian Fainelli        };
143*af89e575SFlorian Fainelli
144*af89e575SFlorian Fainelli        sata-phy@1 {
145*af89e575SFlorian Fainelli                reg = <1>;
146*af89e575SFlorian Fainelli                #phy-cells = <0>;
147*af89e575SFlorian Fainelli        };
148*af89e575SFlorian Fainelli    };
149