xref: /freebsd/sys/contrib/device-tree/Bindings/ata/baikal,bt1-ahci.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
1*7ef62cebSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*7ef62cebSEmmanuel Vadot%YAML 1.2
3*7ef62cebSEmmanuel Vadot---
4*7ef62cebSEmmanuel Vadot$id: http://devicetree.org/schemas/ata/baikal,bt1-ahci.yaml#
5*7ef62cebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*7ef62cebSEmmanuel Vadot
7*7ef62cebSEmmanuel Vadottitle: Baikal-T1 SoC AHCI SATA controller
8*7ef62cebSEmmanuel Vadot
9*7ef62cebSEmmanuel Vadotmaintainers:
10*7ef62cebSEmmanuel Vadot  - Serge Semin <fancer.lancer@gmail.com>
11*7ef62cebSEmmanuel Vadot
12*7ef62cebSEmmanuel Vadotdescription:
13*7ef62cebSEmmanuel Vadot  AHCI SATA controller embedded into the Baikal-T1 SoC is based on the
14*7ef62cebSEmmanuel Vadot  DWC AHCI SATA v4.10a IP-core.
15*7ef62cebSEmmanuel Vadot
16*7ef62cebSEmmanuel VadotallOf:
17*7ef62cebSEmmanuel Vadot  - $ref: snps,dwc-ahci-common.yaml#
18*7ef62cebSEmmanuel Vadot
19*7ef62cebSEmmanuel Vadotproperties:
20*7ef62cebSEmmanuel Vadot  compatible:
21*7ef62cebSEmmanuel Vadot    const: baikal,bt1-ahci
22*7ef62cebSEmmanuel Vadot
23*7ef62cebSEmmanuel Vadot  clocks:
24*7ef62cebSEmmanuel Vadot    items:
25*7ef62cebSEmmanuel Vadot      - description: Peripheral APB bus clock
26*7ef62cebSEmmanuel Vadot      - description: Application AXI BIU clock
27*7ef62cebSEmmanuel Vadot      - description: SATA Ports reference clock
28*7ef62cebSEmmanuel Vadot
29*7ef62cebSEmmanuel Vadot  clock-names:
30*7ef62cebSEmmanuel Vadot    items:
31*7ef62cebSEmmanuel Vadot      - const: pclk
32*7ef62cebSEmmanuel Vadot      - const: aclk
33*7ef62cebSEmmanuel Vadot      - const: ref
34*7ef62cebSEmmanuel Vadot
35*7ef62cebSEmmanuel Vadot  resets:
36*7ef62cebSEmmanuel Vadot    items:
37*7ef62cebSEmmanuel Vadot      - description: Application AXI BIU domain reset
38*7ef62cebSEmmanuel Vadot      - description: SATA Ports clock domain reset
39*7ef62cebSEmmanuel Vadot
40*7ef62cebSEmmanuel Vadot  reset-names:
41*7ef62cebSEmmanuel Vadot    items:
42*7ef62cebSEmmanuel Vadot      - const: arst
43*7ef62cebSEmmanuel Vadot      - const: ref
44*7ef62cebSEmmanuel Vadot
45*7ef62cebSEmmanuel Vadot  ports-implemented:
46*7ef62cebSEmmanuel Vadot    maximum: 0x3
47*7ef62cebSEmmanuel Vadot
48*7ef62cebSEmmanuel VadotpatternProperties:
49*7ef62cebSEmmanuel Vadot  "^sata-port@[0-1]$":
50*7ef62cebSEmmanuel Vadot    $ref: /schemas/ata/snps,dwc-ahci-common.yaml#/$defs/dwc-ahci-port
51*7ef62cebSEmmanuel Vadot
52*7ef62cebSEmmanuel Vadot    properties:
53*7ef62cebSEmmanuel Vadot      reg:
54*7ef62cebSEmmanuel Vadot        minimum: 0
55*7ef62cebSEmmanuel Vadot        maximum: 1
56*7ef62cebSEmmanuel Vadot
57*7ef62cebSEmmanuel Vadot      snps,tx-ts-max:
58*7ef62cebSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
59*7ef62cebSEmmanuel Vadot        description:
60*7ef62cebSEmmanuel Vadot          Due to having AXI3 bus interface utilized the maximum Tx DMA
61*7ef62cebSEmmanuel Vadot          transaction size can't exceed 16 beats (AxLEN[3:0]).
62*7ef62cebSEmmanuel Vadot        enum: [ 1, 2, 4, 8, 16 ]
63*7ef62cebSEmmanuel Vadot
64*7ef62cebSEmmanuel Vadot      snps,rx-ts-max:
65*7ef62cebSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
66*7ef62cebSEmmanuel Vadot        description:
67*7ef62cebSEmmanuel Vadot          Due to having AXI3 bus interface utilized the maximum Rx DMA
68*7ef62cebSEmmanuel Vadot          transaction size can't exceed 16 beats (AxLEN[3:0]).
69*7ef62cebSEmmanuel Vadot        enum: [ 1, 2, 4, 8, 16 ]
70*7ef62cebSEmmanuel Vadot
71*7ef62cebSEmmanuel Vadot    unevaluatedProperties: false
72*7ef62cebSEmmanuel Vadot
73*7ef62cebSEmmanuel Vadotrequired:
74*7ef62cebSEmmanuel Vadot  - compatible
75*7ef62cebSEmmanuel Vadot  - reg
76*7ef62cebSEmmanuel Vadot  - interrupts
77*7ef62cebSEmmanuel Vadot  - clocks
78*7ef62cebSEmmanuel Vadot  - clock-names
79*7ef62cebSEmmanuel Vadot  - resets
80*7ef62cebSEmmanuel Vadot
81*7ef62cebSEmmanuel VadotunevaluatedProperties: false
82*7ef62cebSEmmanuel Vadot
83*7ef62cebSEmmanuel Vadotexamples:
84*7ef62cebSEmmanuel Vadot  - |
85*7ef62cebSEmmanuel Vadot    sata@1f050000 {
86*7ef62cebSEmmanuel Vadot      compatible = "baikal,bt1-ahci";
87*7ef62cebSEmmanuel Vadot      reg = <0x1f050000 0x2000>;
88*7ef62cebSEmmanuel Vadot      #address-cells = <1>;
89*7ef62cebSEmmanuel Vadot      #size-cells = <0>;
90*7ef62cebSEmmanuel Vadot
91*7ef62cebSEmmanuel Vadot      interrupts = <0 64 4>;
92*7ef62cebSEmmanuel Vadot
93*7ef62cebSEmmanuel Vadot      clocks = <&ccu_sys 1>, <&ccu_axi 2>, <&sata_ref_clk>;
94*7ef62cebSEmmanuel Vadot      clock-names = "pclk", "aclk", "ref";
95*7ef62cebSEmmanuel Vadot
96*7ef62cebSEmmanuel Vadot      resets = <&ccu_axi 2>, <&ccu_sys 0>;
97*7ef62cebSEmmanuel Vadot      reset-names = "arst", "ref";
98*7ef62cebSEmmanuel Vadot
99*7ef62cebSEmmanuel Vadot      ports-implemented = <0x3>;
100*7ef62cebSEmmanuel Vadot
101*7ef62cebSEmmanuel Vadot      sata-port@0 {
102*7ef62cebSEmmanuel Vadot        reg = <0>;
103*7ef62cebSEmmanuel Vadot
104*7ef62cebSEmmanuel Vadot        snps,tx-ts-max = <4>;
105*7ef62cebSEmmanuel Vadot        snps,rx-ts-max = <4>;
106*7ef62cebSEmmanuel Vadot      };
107*7ef62cebSEmmanuel Vadot
108*7ef62cebSEmmanuel Vadot      sata-port@1 {
109*7ef62cebSEmmanuel Vadot        reg = <1>;
110*7ef62cebSEmmanuel Vadot
111*7ef62cebSEmmanuel Vadot        snps,tx-ts-max = <4>;
112*7ef62cebSEmmanuel Vadot        snps,rx-ts-max = <4>;
113*7ef62cebSEmmanuel Vadot      };
114*7ef62cebSEmmanuel Vadot    };
115*7ef62cebSEmmanuel Vadot...
116