Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/Documentation/devicetree/bindings/ata/ahci-platform.yaml
51353 views
1
# SPDX-License-Identifier: GPL-2.0
2
%YAML 1.2
3
---
4
$id: http://devicetree.org/schemas/ata/ahci-platform.yaml#
5
$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7
title: AHCI SATA Controller
8
9
description: |
10
SATA nodes are defined to describe on-chip Serial ATA controllers.
11
Each SATA controller should have its own node.
12
13
It is possible, but not required, to represent each port as a sub-node.
14
It allows to enable each port independently when dealing with multiple
15
PHYs.
16
17
maintainers:
18
- Hans de Goede <hdegoede@redhat.com>
19
- Jens Axboe <axboe@kernel.dk>
20
21
properties:
22
compatible:
23
oneOf:
24
- items:
25
- enum:
26
- brcm,iproc-ahci
27
- marvell,armada-8k-ahci
28
- marvell,berlin2-ahci
29
- marvell,berlin2q-ahci
30
- qcom,apq8064-ahci
31
- qcom,ipq806x-ahci
32
- socionext,uniphier-pro4-ahci
33
- socionext,uniphier-pxs2-ahci
34
- socionext,uniphier-pxs3-ahci
35
- const: generic-ahci
36
- enum:
37
- cavium,octeon-7130-ahci
38
- hisilicon,hisi-ahci
39
- ibm,476gtr-ahci
40
- marvell,armada-3700-ahci
41
42
reg:
43
minItems: 1
44
maxItems: 2
45
46
reg-names:
47
maxItems: 1
48
49
clocks:
50
minItems: 1
51
maxItems: 5
52
53
clock-names:
54
minItems: 1
55
maxItems: 5
56
57
interrupts:
58
maxItems: 1
59
60
power-domains:
61
maxItems: 1
62
63
resets:
64
minItems: 1
65
maxItems: 3
66
67
iommus:
68
maxItems: 1
69
70
patternProperties:
71
"^sata-port@[0-9a-f]+$":
72
$ref: /schemas/ata/ahci-common.yaml#/$defs/ahci-port
73
74
anyOf:
75
- required: [ phys ]
76
- required: [ target-supply ]
77
78
unevaluatedProperties: false
79
80
required:
81
- compatible
82
- reg
83
- interrupts
84
85
allOf:
86
- $ref: ahci-common.yaml#
87
88
- if:
89
properties:
90
compatible:
91
contains:
92
enum:
93
- qcom,apq8064-ahci
94
- qcom,ipq806x-ahci
95
then:
96
properties:
97
clocks:
98
minItems: 5
99
clock-names:
100
items:
101
- const: slave_iface
102
- const: iface
103
- const: core
104
- const: rxoob
105
- const: pmalive
106
required:
107
- phys
108
- phy-names
109
- clocks
110
- clock-names
111
112
- if:
113
properties:
114
compatible:
115
contains:
116
const: socionext,uniphier-pro4-ahci
117
then:
118
properties:
119
resets:
120
items:
121
- description: reset line for the parent
122
- description: reset line for the glue logic
123
- description: reset line for the controller
124
required:
125
- resets
126
else:
127
if:
128
properties:
129
compatible:
130
contains:
131
enum:
132
- socionext,uniphier-pxs2-ahci
133
- socionext,uniphier-pxs3-ahci
134
then:
135
properties:
136
resets:
137
items:
138
- description: reset for the glue logic
139
- description: reset for the controller
140
required:
141
- resets
142
else:
143
properties:
144
resets:
145
maxItems: 1
146
147
unevaluatedProperties: false
148
149
examples:
150
- |
151
sata@ffe08000 {
152
compatible = "snps,spear-ahci";
153
reg = <0xffe08000 0x1000>;
154
interrupts = <115>;
155
};
156
- |
157
#include <dt-bindings/interrupt-controller/arm-gic.h>
158
#include <dt-bindings/clock/berlin2q.h>
159
#include <dt-bindings/ata/ahci.h>
160
161
sata@f7e90000 {
162
compatible = "marvell,berlin2q-ahci", "generic-ahci";
163
reg = <0xf7e90000 0x1000>;
164
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
165
clocks = <&chip CLKID_SATA>;
166
#address-cells = <1>;
167
#size-cells = <0>;
168
169
hba-cap = <HBA_SMPS>;
170
171
sata0: sata-port@0 {
172
reg = <0>;
173
174
phys = <&sata_phy 0>;
175
target-supply = <&reg_sata0>;
176
177
hba-port-cap = <(HBA_PORT_FBSCP | HBA_PORT_ESP)>;
178
};
179
180
sata1: sata-port@1 {
181
reg = <1>;
182
183
phys = <&sata_phy 1>;
184
target-supply = <&reg_sata1>;
185
186
hba-port-cap = <(HBA_PORT_HPCP | HBA_PORT_MPSP | HBA_PORT_FBSCP)>;
187
};
188
};
189
190