1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/ata/rockchip,dwc-ahci.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Synopsys DWC AHCI SATA controller for Rockchip devices
8
9maintainers:
10  - Serge Semin <fancer.lancer@gmail.com>
11
12description:
13  This document defines device tree bindings for the Synopsys DWC
14  implementation of the AHCI SATA controller found in Rockchip
15  devices.
16
17select:
18  properties:
19    compatible:
20      contains:
21        enum:
22          - rockchip,rk3568-dwc-ahci
23          - rockchip,rk3588-dwc-ahci
24  required:
25    - compatible
26
27properties:
28  compatible:
29    items:
30      - enum:
31          - rockchip,rk3568-dwc-ahci
32          - rockchip,rk3588-dwc-ahci
33      - const: snps,dwc-ahci
34
35  ports-implemented:
36    const: 1
37
38  sata-port@0:
39    $ref: /schemas/ata/snps,dwc-ahci-common.yaml#/$defs/dwc-ahci-port
40
41    properties:
42      reg:
43        const: 0
44
45    unevaluatedProperties: false
46
47patternProperties:
48  "^sata-port@[1-9a-e]$": false
49
50required:
51  - compatible
52  - reg
53  - interrupts
54  - clocks
55  - clock-names
56  - ports-implemented
57
58allOf:
59  - $ref: snps,dwc-ahci-common.yaml#
60  - if:
61      properties:
62        compatible:
63          contains:
64            enum:
65              - rockchip,rk3588-dwc-ahci
66    then:
67      properties:
68        clocks:
69          maxItems: 5
70        clock-names:
71          items:
72            - const: sata
73            - const: pmalive
74            - const: rxoob
75            - const: ref
76            - const: asic
77  - if:
78      properties:
79        compatible:
80          contains:
81            enum:
82              - rockchip,rk3568-dwc-ahci
83    then:
84      properties:
85        clocks:
86          maxItems: 3
87        clock-names:
88          items:
89            - const: sata
90            - const: pmalive
91            - const: rxoob
92
93unevaluatedProperties: false
94
95examples:
96  - |
97    #include <dt-bindings/clock/rockchip,rk3588-cru.h>
98    #include <dt-bindings/interrupt-controller/arm-gic.h>
99    #include <dt-bindings/ata/ahci.h>
100    #include <dt-bindings/phy/phy.h>
101
102    sata@fe210000 {
103      compatible = "rockchip,rk3588-dwc-ahci", "snps,dwc-ahci";
104      reg = <0xfe210000 0x1000>;
105      clocks = <&cru ACLK_SATA0>, <&cru CLK_PMALIVE0>,
106               <&cru CLK_RXOOB0>, <&cru CLK_PIPEPHY0_REF>,
107               <&cru CLK_PIPEPHY0_PIPE_ASIC_G>;
108      clock-names = "sata", "pmalive", "rxoob", "ref", "asic";
109      interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH 0>;
110      ports-implemented = <0x1>;
111      #address-cells = <1>;
112      #size-cells = <0>;
113
114      sata-port@0 {
115        reg = <0>;
116        hba-port-cap = <HBA_PORT_FBSCP>;
117        phys = <&combphy0_ps PHY_TYPE_SATA>;
118        phy-names = "sata-phy";
119        snps,rx-ts-max = <32>;
120        snps,tx-ts-max = <32>;
121      };
122    };
123
124...
125