xref: /linux/Documentation/devicetree/bindings/ata/ceva,ahci-1v84.yaml (revision f2fb1b50fbac4a0a462e1705ac913abf52aae906)
1*f2fb1b50SPiyush Mehta# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*f2fb1b50SPiyush Mehta%YAML 1.2
3*f2fb1b50SPiyush Mehta---
4*f2fb1b50SPiyush Mehta$id: http://devicetree.org/schemas/ata/ceva,ahci-1v84.yaml#
5*f2fb1b50SPiyush Mehta$schema: http://devicetree.org/meta-schemas/core.yaml#
6*f2fb1b50SPiyush Mehta
7*f2fb1b50SPiyush Mehtatitle: Ceva AHCI SATA Controller
8*f2fb1b50SPiyush Mehta
9*f2fb1b50SPiyush Mehtamaintainers:
10*f2fb1b50SPiyush Mehta  - Piyush Mehta <piyush.mehta@xilinx.com>
11*f2fb1b50SPiyush Mehta
12*f2fb1b50SPiyush Mehtadescription: |
13*f2fb1b50SPiyush Mehta  The Ceva SATA controller mostly conforms to the AHCI interface with some
14*f2fb1b50SPiyush Mehta  special extensions to add functionality, is a high-performance dual-port
15*f2fb1b50SPiyush Mehta  SATA host controller with an AHCI compliant command layer which supports
16*f2fb1b50SPiyush Mehta  advanced features such as native command queuing and frame information
17*f2fb1b50SPiyush Mehta  structure (FIS) based switching for systems employing port multipliers.
18*f2fb1b50SPiyush Mehta
19*f2fb1b50SPiyush Mehtaproperties:
20*f2fb1b50SPiyush Mehta  compatible:
21*f2fb1b50SPiyush Mehta    const: ceva,ahci-1v84
22*f2fb1b50SPiyush Mehta
23*f2fb1b50SPiyush Mehta  reg:
24*f2fb1b50SPiyush Mehta    maxItems: 1
25*f2fb1b50SPiyush Mehta
26*f2fb1b50SPiyush Mehta  clocks:
27*f2fb1b50SPiyush Mehta    maxItems: 1
28*f2fb1b50SPiyush Mehta
29*f2fb1b50SPiyush Mehta  dma-coherent: true
30*f2fb1b50SPiyush Mehta
31*f2fb1b50SPiyush Mehta  interrupts:
32*f2fb1b50SPiyush Mehta    maxItems: 1
33*f2fb1b50SPiyush Mehta
34*f2fb1b50SPiyush Mehta  iommus:
35*f2fb1b50SPiyush Mehta    maxItems: 1
36*f2fb1b50SPiyush Mehta
37*f2fb1b50SPiyush Mehta  power-domains:
38*f2fb1b50SPiyush Mehta    maxItems: 1
39*f2fb1b50SPiyush Mehta
40*f2fb1b50SPiyush Mehta  ceva,p0-cominit-params:
41*f2fb1b50SPiyush Mehta    $ref: /schemas/types.yaml#/definitions/uint8-array
42*f2fb1b50SPiyush Mehta    description: |
43*f2fb1b50SPiyush Mehta      OOB timing value for COMINIT parameter for port 0.
44*f2fb1b50SPiyush Mehta      The fields for the above parameter must be as shown below:-
45*f2fb1b50SPiyush Mehta      ceva,p0-cominit-params = /bits/ 8 <CIBGMN CIBGMX CIBGN CINMP>;
46*f2fb1b50SPiyush Mehta    items:
47*f2fb1b50SPiyush Mehta      - description: CINMP - COMINIT Negate Minimum Period.
48*f2fb1b50SPiyush Mehta      - description: CIBGN - COMINIT Burst Gap Nominal.
49*f2fb1b50SPiyush Mehta      - description: CIBGMX - COMINIT Burst Gap Maximum.
50*f2fb1b50SPiyush Mehta      - description: CIBGMN - COMINIT Burst Gap Minimum.
51*f2fb1b50SPiyush Mehta
52*f2fb1b50SPiyush Mehta  ceva,p0-comwake-params:
53*f2fb1b50SPiyush Mehta    $ref: /schemas/types.yaml#/definitions/uint8-array
54*f2fb1b50SPiyush Mehta    description: |
55*f2fb1b50SPiyush Mehta      OOB timing value for COMWAKE parameter for port 0.
56*f2fb1b50SPiyush Mehta      The fields for the above parameter must be as shown below:-
57*f2fb1b50SPiyush Mehta      ceva,p0-comwake-params = /bits/ 8 <CWBGMN CWBGMX CWBGN CWNMP>;
58*f2fb1b50SPiyush Mehta    items:
59*f2fb1b50SPiyush Mehta      - description: CWBGMN - COMWAKE Burst Gap Minimum.
60*f2fb1b50SPiyush Mehta      - description: CWBGMX - COMWAKE Burst Gap Maximum.
61*f2fb1b50SPiyush Mehta      - description: CWBGN - COMWAKE Burst Gap Nominal.
62*f2fb1b50SPiyush Mehta      - description: CWNMP - COMWAKE Negate Minimum Period.
63*f2fb1b50SPiyush Mehta
64*f2fb1b50SPiyush Mehta  ceva,p0-burst-params:
65*f2fb1b50SPiyush Mehta    $ref: /schemas/types.yaml#/definitions/uint8-array
66*f2fb1b50SPiyush Mehta    description: |
67*f2fb1b50SPiyush Mehta      Burst timing value for COM parameter for port 0.
68*f2fb1b50SPiyush Mehta      The fields for the above parameter must be as shown below:-
69*f2fb1b50SPiyush Mehta      ceva,p0-burst-params = /bits/ 8 <BMX BNM SFD PTST>;
70*f2fb1b50SPiyush Mehta    items:
71*f2fb1b50SPiyush Mehta      - description: BMX - COM Burst Maximum.
72*f2fb1b50SPiyush Mehta      - description: BNM - COM Burst Nominal.
73*f2fb1b50SPiyush Mehta      - description: SFD - Signal Failure Detection value.
74*f2fb1b50SPiyush Mehta      - description: PTST - Partial to Slumber timer value.
75*f2fb1b50SPiyush Mehta
76*f2fb1b50SPiyush Mehta  ceva,p0-retry-params:
77*f2fb1b50SPiyush Mehta    $ref: /schemas/types.yaml#/definitions/uint16-array
78*f2fb1b50SPiyush Mehta    description: |
79*f2fb1b50SPiyush Mehta      Retry interval timing value for port 0.
80*f2fb1b50SPiyush Mehta      The fields for the above parameter must be as shown below:-
81*f2fb1b50SPiyush Mehta      ceva,p0-retry-params = /bits/ 16 <RIT RCT>;
82*f2fb1b50SPiyush Mehta    items:
83*f2fb1b50SPiyush Mehta      - description: RIT - Retry Interval Timer.
84*f2fb1b50SPiyush Mehta      - description: RCT - Rate Change Timer.
85*f2fb1b50SPiyush Mehta
86*f2fb1b50SPiyush Mehta  ceva,p1-cominit-params:
87*f2fb1b50SPiyush Mehta    $ref: /schemas/types.yaml#/definitions/uint8-array
88*f2fb1b50SPiyush Mehta    description: |
89*f2fb1b50SPiyush Mehta      OOB timing value for COMINIT parameter for port 1.
90*f2fb1b50SPiyush Mehta      The fields for the above parameter must be as shown below:-
91*f2fb1b50SPiyush Mehta      ceva,p1-cominit-params = /bits/ 8 <CIBGMN CIBGMX CIBGN CINMP>;
92*f2fb1b50SPiyush Mehta    items:
93*f2fb1b50SPiyush Mehta      - description: CINMP - COMINIT Negate Minimum Period.
94*f2fb1b50SPiyush Mehta      - description: CIBGN - COMINIT Burst Gap Nominal.
95*f2fb1b50SPiyush Mehta      - description: CIBGMX - COMINIT Burst Gap Maximum.
96*f2fb1b50SPiyush Mehta      - description: CIBGMN - COMINIT Burst Gap Minimum.
97*f2fb1b50SPiyush Mehta
98*f2fb1b50SPiyush Mehta  ceva,p1-comwake-params:
99*f2fb1b50SPiyush Mehta    $ref: /schemas/types.yaml#/definitions/uint8-array
100*f2fb1b50SPiyush Mehta    description: |
101*f2fb1b50SPiyush Mehta      OOB timing value for COMWAKE parameter for port 1.
102*f2fb1b50SPiyush Mehta      The fields for the above parameter must be as shown below:-
103*f2fb1b50SPiyush Mehta      ceva,p1-comwake-params = /bits/ 8 <CWBGMN CWBGMX CWBGN CWNMP>;
104*f2fb1b50SPiyush Mehta    items:
105*f2fb1b50SPiyush Mehta      - description: CWBGMN - COMWAKE Burst Gap Minimum.
106*f2fb1b50SPiyush Mehta      - description: CWBGMX - COMWAKE Burst Gap Maximum.
107*f2fb1b50SPiyush Mehta      - description: CWBGN - COMWAKE Burst Gap Nominal.
108*f2fb1b50SPiyush Mehta      - description: CWNMP - COMWAKE Negate Minimum Period.
109*f2fb1b50SPiyush Mehta
110*f2fb1b50SPiyush Mehta  ceva,p1-burst-params:
111*f2fb1b50SPiyush Mehta    $ref: /schemas/types.yaml#/definitions/uint8-array
112*f2fb1b50SPiyush Mehta    description: |
113*f2fb1b50SPiyush Mehta      Burst timing value for COM parameter for port 1.
114*f2fb1b50SPiyush Mehta      The fields for the above parameter must be as shown below:-
115*f2fb1b50SPiyush Mehta      ceva,p1-burst-params = /bits/ 8 <BMX BNM SFD PTST>;
116*f2fb1b50SPiyush Mehta    items:
117*f2fb1b50SPiyush Mehta      - description: BMX - COM Burst Maximum.
118*f2fb1b50SPiyush Mehta      - description: BNM - COM Burst Nominal.
119*f2fb1b50SPiyush Mehta      - description: SFD - Signal Failure Detection value.
120*f2fb1b50SPiyush Mehta      - description: PTST - Partial to Slumber timer value.
121*f2fb1b50SPiyush Mehta
122*f2fb1b50SPiyush Mehta  ceva,p1-retry-params:
123*f2fb1b50SPiyush Mehta    $ref: /schemas/types.yaml#/definitions/uint16-array
124*f2fb1b50SPiyush Mehta    description: |
125*f2fb1b50SPiyush Mehta      Retry interval timing value for port 1.
126*f2fb1b50SPiyush Mehta      The fields for the above parameter must be as shown below:-
127*f2fb1b50SPiyush Mehta      ceva,pN-retry-params = /bits/ 16 <RIT RCT>;
128*f2fb1b50SPiyush Mehta    items:
129*f2fb1b50SPiyush Mehta      - description: RIT - Retry Interval Timer.
130*f2fb1b50SPiyush Mehta      - description: RCT - Rate Change Timer.
131*f2fb1b50SPiyush Mehta
132*f2fb1b50SPiyush Mehta  ceva,broken-gen2:
133*f2fb1b50SPiyush Mehta    $ref: /schemas/types.yaml#/definitions/flag
134*f2fb1b50SPiyush Mehta    description: |
135*f2fb1b50SPiyush Mehta      limit to gen1 speed instead of gen2.
136*f2fb1b50SPiyush Mehta
137*f2fb1b50SPiyush Mehta  phys:
138*f2fb1b50SPiyush Mehta    maxItems: 1
139*f2fb1b50SPiyush Mehta
140*f2fb1b50SPiyush Mehta  phy-names:
141*f2fb1b50SPiyush Mehta    items:
142*f2fb1b50SPiyush Mehta      - const: sata-phy
143*f2fb1b50SPiyush Mehta
144*f2fb1b50SPiyush Mehta  resets:
145*f2fb1b50SPiyush Mehta    maxItems: 1
146*f2fb1b50SPiyush Mehta
147*f2fb1b50SPiyush Mehtarequired:
148*f2fb1b50SPiyush Mehta  - compatible
149*f2fb1b50SPiyush Mehta  - reg
150*f2fb1b50SPiyush Mehta  - clocks
151*f2fb1b50SPiyush Mehta  - interrupts
152*f2fb1b50SPiyush Mehta  - ceva,p0-cominit-params
153*f2fb1b50SPiyush Mehta  - ceva,p0-comwake-params
154*f2fb1b50SPiyush Mehta  - ceva,p0-burst-params
155*f2fb1b50SPiyush Mehta  - ceva,p0-retry-params
156*f2fb1b50SPiyush Mehta  - ceva,p1-cominit-params
157*f2fb1b50SPiyush Mehta  - ceva,p1-comwake-params
158*f2fb1b50SPiyush Mehta  - ceva,p1-burst-params
159*f2fb1b50SPiyush Mehta  - ceva,p1-retry-params
160*f2fb1b50SPiyush Mehta
161*f2fb1b50SPiyush MehtaadditionalProperties: false
162*f2fb1b50SPiyush Mehta
163*f2fb1b50SPiyush Mehtaexamples:
164*f2fb1b50SPiyush Mehta  - |
165*f2fb1b50SPiyush Mehta    #include <dt-bindings/clock/xlnx-zynqmp-clk.h>
166*f2fb1b50SPiyush Mehta    #include <dt-bindings/interrupt-controller/irq.h>
167*f2fb1b50SPiyush Mehta    #include <dt-bindings/power/xlnx-zynqmp-power.h>
168*f2fb1b50SPiyush Mehta    #include <dt-bindings/reset/xlnx-zynqmp-resets.h>
169*f2fb1b50SPiyush Mehta    #include <dt-bindings/clock/xlnx-zynqmp-clk.h>
170*f2fb1b50SPiyush Mehta    #include <dt-bindings/phy/phy.h>
171*f2fb1b50SPiyush Mehta
172*f2fb1b50SPiyush Mehta    sata: ahci@fd0c0000 {
173*f2fb1b50SPiyush Mehta        compatible = "ceva,ahci-1v84";
174*f2fb1b50SPiyush Mehta        reg = <0xfd0c0000 0x200>;
175*f2fb1b50SPiyush Mehta        interrupt-parent = <&gic>;
176*f2fb1b50SPiyush Mehta        interrupts = <0 133 IRQ_TYPE_LEVEL_HIGH>;
177*f2fb1b50SPiyush Mehta        clocks = <&zynqmp_clk SATA_REF>;
178*f2fb1b50SPiyush Mehta        ceva,p0-cominit-params = /bits/ 8 <0x0F 0x25 0x18 0x29>;
179*f2fb1b50SPiyush Mehta        ceva,p0-comwake-params = /bits/ 8 <0x04 0x0B 0x08 0x0F>;
180*f2fb1b50SPiyush Mehta        ceva,p0-burst-params = /bits/ 8 <0x0A 0x08 0x4A 0x06>;
181*f2fb1b50SPiyush Mehta        ceva,p0-retry-params = /bits/ 16 <0x0216 0x7F06>;
182*f2fb1b50SPiyush Mehta        ceva,p1-cominit-params = /bits/ 8 <0x0F 0x25 0x18 0x29>;
183*f2fb1b50SPiyush Mehta        ceva,p1-comwake-params = /bits/ 8 <0x04 0x0B 0x08 0x0F>;
184*f2fb1b50SPiyush Mehta        ceva,p1-burst-params = /bits/ 8 <0x0A 0x08 0x4A 0x06>;
185*f2fb1b50SPiyush Mehta        ceva,p1-retry-params = /bits/ 16 <0x0216 0x7F06>;
186*f2fb1b50SPiyush Mehta        ceva,broken-gen2;
187*f2fb1b50SPiyush Mehta        phys = <&psgtr 1 PHY_TYPE_SATA 1 1>;
188*f2fb1b50SPiyush Mehta        resets = <&zynqmp_reset ZYNQMP_RESET_SATA>;
189*f2fb1b50SPiyush Mehta    };
190