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