File Index
Files and directories
Sign in
FILE

ahci-platform.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/ata/ahci-platform.yaml YAML
  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
  7title: AHCI SATA Controller
  8
  9description: |
 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
 17maintainers:
 18  - Hans de Goede <hdegoede@redhat.com>
 19  - Jens Axboe <axboe@kernel.dk>
 20
 21select:
 22  properties:
 23    compatible:
 24      contains:
 25        enum:
 26          - brcm,iproc-ahci
 27          - cavium,octeon-7130-ahci
 28          - hisilicon,hisi-ahci
 29          - ibm,476gtr-ahci
 30          - marvell,armada-3700-ahci
 31          - marvell,armada-8k-ahci
 32          - marvell,berlin2q-ahci
 33          - qcom,apq8064-ahci
 34          - qcom,ipq806x-ahci
 35          - socionext,uniphier-pro4-ahci
 36          - socionext,uniphier-pxs2-ahci
 37          - socionext,uniphier-pxs3-ahci
 38  required:
 39    - compatible
 40
 41properties:
 42  compatible:
 43    oneOf:
 44      - items:
 45          - enum:
 46              - brcm,iproc-ahci
 47              - marvell,armada-8k-ahci
 48              - marvell,berlin2-ahci
 49              - marvell,berlin2q-ahci
 50              - qcom,apq8064-ahci
 51              - qcom,ipq806x-ahci
 52              - socionext,uniphier-pro4-ahci
 53              - socionext,uniphier-pxs2-ahci
 54              - socionext,uniphier-pxs3-ahci
 55          - const: generic-ahci
 56      - enum:
 57          - cavium,octeon-7130-ahci
 58          - hisilicon,hisi-ahci
 59          - ibm,476gtr-ahci
 60          - marvell,armada-3700-ahci
 61
 62  reg:
 63    minItems: 1
 64    maxItems: 2
 65
 66  reg-names:
 67    maxItems: 1
 68
 69  clocks:
 70    minItems: 1
 71    maxItems: 5
 72
 73  clock-names:
 74    minItems: 1
 75    maxItems: 5
 76
 77  interrupts:
 78    maxItems: 1
 79
 80  power-domains:
 81    maxItems: 1
 82
 83  resets:
 84    minItems: 1
 85    maxItems: 3
 86
 87  iommus:
 88    maxItems: 1
 89
 90patternProperties:
 91  "^sata-port@[0-9a-f]+$":
 92    $ref: /schemas/ata/ahci-common.yaml#/$defs/ahci-port
 93
 94    anyOf:
 95      - required: [ phys ]
 96      - required: [ target-supply ]
 97
 98    unevaluatedProperties: false
 99
100required:
101  - compatible
102  - reg
103  - interrupts
104
105allOf:
106  - $ref: ahci-common.yaml#
107
108  - if:
109      properties:
110        compatible:
111          contains:
112            enum:
113              - qcom,apq8064-ahci
114              - qcom,ipq806x-ahci
115    then:
116      properties:
117        clocks:
118          minItems: 5
119        clock-names:
120          items:
121            - const: slave_iface
122            - const: iface
123            - const: core
124            - const: rxoob
125            - const: pmalive
126      required:
127        - phys
128        - phy-names
129        - clocks
130        - clock-names
131
132  - if:
133      properties:
134        compatible:
135          contains:
136            const: socionext,uniphier-pro4-ahci
137    then:
138      properties:
139        resets:
140          items:
141            - description: reset line for the parent
142            - description: reset line for the glue logic
143            - description: reset line for the controller
144      required:
145        - resets
146    else:
147      if:
148        properties:
149          compatible:
150            contains:
151              enum:
152                - socionext,uniphier-pxs2-ahci
153                - socionext,uniphier-pxs3-ahci
154      then:
155        properties:
156          resets:
157            items:
158              - description: reset for the glue logic
159              - description: reset for the controller
160        required:
161          - resets
162      else:
163        properties:
164          resets:
165            maxItems: 1
166
167unevaluatedProperties: false
168
169examples:
170  - |
171    sata@ffe08000 {
172        compatible = "snps,spear-ahci";
173        reg = <0xffe08000 0x1000>;
174        interrupts = <115>;
175    };
176  - |
177    #include <dt-bindings/interrupt-controller/arm-gic.h>
178    #include <dt-bindings/clock/berlin2q.h>
179    #include <dt-bindings/ata/ahci.h>
180
181    sata@f7e90000 {
182        compatible = "marvell,berlin2q-ahci", "generic-ahci";
183        reg = <0xf7e90000 0x1000>;
184        interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
185        clocks = <&chip CLKID_SATA>;
186        #address-cells = <1>;
187        #size-cells = <0>;
188
189        hba-cap = <HBA_SMPS>;
190
191        sata0: sata-port@0 {
192            reg = <0>;
193
194            phys = <&sata_phy 0>;
195            target-supply = <&reg_sata0>;
196
197            hba-port-cap = <(HBA_PORT_FBSCP | HBA_PORT_ESP)>;
198        };
199
200        sata1: sata-port@1 {
201            reg = <1>;
202
203            phys = <&sata_phy 1>;
204            target-supply = <&reg_sata1>;
205
206            hba-port-cap = <(HBA_PORT_HPCP | HBA_PORT_MPSP | HBA_PORT_FBSCP)>;
207        };
208    };
~/ Read-only file preview.