162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/ata/baikal,bt1-ahci.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Baikal-T1 SoC AHCI SATA controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Serge Semin <fancer.lancer@gmail.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription:
1362306a36Sopenharmony_ci  AHCI SATA controller embedded into the Baikal-T1 SoC is based on the
1462306a36Sopenharmony_ci  DWC AHCI SATA v4.10a IP-core.
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciallOf:
1762306a36Sopenharmony_ci  - $ref: snps,dwc-ahci-common.yaml#
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ciproperties:
2062306a36Sopenharmony_ci  compatible:
2162306a36Sopenharmony_ci    const: baikal,bt1-ahci
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci  clocks:
2462306a36Sopenharmony_ci    items:
2562306a36Sopenharmony_ci      - description: Peripheral APB bus clock
2662306a36Sopenharmony_ci      - description: Application AXI BIU clock
2762306a36Sopenharmony_ci      - description: SATA Ports reference clock
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  clock-names:
3062306a36Sopenharmony_ci    items:
3162306a36Sopenharmony_ci      - const: pclk
3262306a36Sopenharmony_ci      - const: aclk
3362306a36Sopenharmony_ci      - const: ref
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci  resets:
3662306a36Sopenharmony_ci    items:
3762306a36Sopenharmony_ci      - description: Application AXI BIU domain reset
3862306a36Sopenharmony_ci      - description: SATA Ports clock domain reset
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci  reset-names:
4162306a36Sopenharmony_ci    items:
4262306a36Sopenharmony_ci      - const: arst
4362306a36Sopenharmony_ci      - const: ref
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci  ports-implemented:
4662306a36Sopenharmony_ci    maximum: 0x3
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_cipatternProperties:
4962306a36Sopenharmony_ci  "^sata-port@[0-1]$":
5062306a36Sopenharmony_ci    $ref: /schemas/ata/snps,dwc-ahci-common.yaml#/$defs/dwc-ahci-port
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci    properties:
5362306a36Sopenharmony_ci      reg:
5462306a36Sopenharmony_ci        minimum: 0
5562306a36Sopenharmony_ci        maximum: 1
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci      snps,tx-ts-max:
5862306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/uint32
5962306a36Sopenharmony_ci        description:
6062306a36Sopenharmony_ci          Due to having AXI3 bus interface utilized the maximum Tx DMA
6162306a36Sopenharmony_ci          transaction size can't exceed 16 beats (AxLEN[3:0]).
6262306a36Sopenharmony_ci        enum: [ 1, 2, 4, 8, 16 ]
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci      snps,rx-ts-max:
6562306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/uint32
6662306a36Sopenharmony_ci        description:
6762306a36Sopenharmony_ci          Due to having AXI3 bus interface utilized the maximum Rx DMA
6862306a36Sopenharmony_ci          transaction size can't exceed 16 beats (AxLEN[3:0]).
6962306a36Sopenharmony_ci        enum: [ 1, 2, 4, 8, 16 ]
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci    unevaluatedProperties: false
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_cirequired:
7462306a36Sopenharmony_ci  - compatible
7562306a36Sopenharmony_ci  - reg
7662306a36Sopenharmony_ci  - interrupts
7762306a36Sopenharmony_ci  - clocks
7862306a36Sopenharmony_ci  - clock-names
7962306a36Sopenharmony_ci  - resets
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ciunevaluatedProperties: false
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ciexamples:
8462306a36Sopenharmony_ci  - |
8562306a36Sopenharmony_ci    sata@1f050000 {
8662306a36Sopenharmony_ci      compatible = "baikal,bt1-ahci";
8762306a36Sopenharmony_ci      reg = <0x1f050000 0x2000>;
8862306a36Sopenharmony_ci      #address-cells = <1>;
8962306a36Sopenharmony_ci      #size-cells = <0>;
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci      interrupts = <0 64 4>;
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci      clocks = <&ccu_sys 1>, <&ccu_axi 2>, <&sata_ref_clk>;
9462306a36Sopenharmony_ci      clock-names = "pclk", "aclk", "ref";
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci      resets = <&ccu_axi 2>, <&ccu_sys 0>;
9762306a36Sopenharmony_ci      reset-names = "arst", "ref";
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci      ports-implemented = <0x3>;
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci      sata-port@0 {
10262306a36Sopenharmony_ci        reg = <0>;
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci        snps,tx-ts-max = <4>;
10562306a36Sopenharmony_ci        snps,rx-ts-max = <4>;
10662306a36Sopenharmony_ci      };
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci      sata-port@1 {
10962306a36Sopenharmony_ci        reg = <1>;
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci        snps,tx-ts-max = <4>;
11262306a36Sopenharmony_ci        snps,rx-ts-max = <4>;
11362306a36Sopenharmony_ci      };
11462306a36Sopenharmony_ci    };
11562306a36Sopenharmony_ci...
116