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