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