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