mirror of
https://github.com/torvalds/linux.git
synced 2026-04-20 07:43:57 -04:00
Synopsys AHCI SATA controller is mainly compatible with the generic AHCI SATA controller except a few peculiarities and the platform environment requirements. In particular it can have at least two reference clocks to feed up its AHB/AXI interface and SATA PHYs domain and at least one reset control for the application clock domain. In addition to that the DMA interface of each port can be tuned up to work with the predefined maximum data chunk size. Note unlike generic AHCI controller DWC AHCI can't have more than 8 ports. All of that is reflected in the new DWC AHCI SATA device DT binding. Note the DWC AHCI SATA controller DT-schema has been created in a way so to be reused for the vendor-specific DT-schemas (see for example the "snps,dwc-ahci" compatible string binding). One of which we are about to introduce. Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
136 lines
2.8 KiB
YAML
136 lines
2.8 KiB
YAML
# SPDX-License-Identifier: GPL-2.0
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/ata/ahci-platform.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: AHCI SATA Controller
|
|
|
|
description: |
|
|
SATA nodes are defined to describe on-chip Serial ATA controllers.
|
|
Each SATA controller should have its own node.
|
|
|
|
It is possible, but not required, to represent each port as a sub-node.
|
|
It allows to enable each port independently when dealing with multiple
|
|
PHYs.
|
|
|
|
maintainers:
|
|
- Hans de Goede <hdegoede@redhat.com>
|
|
- Jens Axboe <axboe@kernel.dk>
|
|
|
|
select:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- brcm,iproc-ahci
|
|
- cavium,octeon-7130-ahci
|
|
- hisilicon,hisi-ahci
|
|
- ibm,476gtr-ahci
|
|
- marvell,armada-3700-ahci
|
|
- marvell,armada-8k-ahci
|
|
- marvell,berlin2q-ahci
|
|
required:
|
|
- compatible
|
|
|
|
allOf:
|
|
- $ref: "ahci-common.yaml#"
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- items:
|
|
- enum:
|
|
- brcm,iproc-ahci
|
|
- marvell,armada-8k-ahci
|
|
- marvell,berlin2-ahci
|
|
- marvell,berlin2q-ahci
|
|
- const: generic-ahci
|
|
- enum:
|
|
- cavium,octeon-7130-ahci
|
|
- hisilicon,hisi-ahci
|
|
- ibm,476gtr-ahci
|
|
- marvell,armada-3700-ahci
|
|
|
|
reg:
|
|
minItems: 1
|
|
maxItems: 2
|
|
|
|
reg-names:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
minItems: 1
|
|
maxItems: 3
|
|
|
|
clock-names:
|
|
minItems: 1
|
|
maxItems: 3
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
power-domains:
|
|
maxItems: 1
|
|
|
|
resets:
|
|
maxItems: 1
|
|
|
|
patternProperties:
|
|
"^sata-port@[0-9a-f]+$":
|
|
$ref: /schemas/ata/ahci-common.yaml#/$defs/ahci-port
|
|
|
|
anyOf:
|
|
- required: [ phys ]
|
|
- required: [ target-supply ]
|
|
|
|
unevaluatedProperties: false
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- interrupts
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
sata@ffe08000 {
|
|
compatible = "snps,spear-ahci";
|
|
reg = <0xffe08000 0x1000>;
|
|
interrupts = <115>;
|
|
};
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
#include <dt-bindings/clock/berlin2q.h>
|
|
#include <dt-bindings/ata/ahci.h>
|
|
|
|
sata@f7e90000 {
|
|
compatible = "marvell,berlin2q-ahci", "generic-ahci";
|
|
reg = <0xf7e90000 0x1000>;
|
|
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
|
|
clocks = <&chip CLKID_SATA>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
hba-cap = <HBA_SMPS>;
|
|
|
|
sata0: sata-port@0 {
|
|
reg = <0>;
|
|
|
|
phys = <&sata_phy 0>;
|
|
target-supply = <®_sata0>;
|
|
|
|
hba-port-cap = <(HBA_PORT_FBSCP | HBA_PORT_ESP)>;
|
|
};
|
|
|
|
sata1: sata-port@1 {
|
|
reg = <1>;
|
|
|
|
phys = <&sata_phy 1>;
|
|
target-supply = <®_sata1>;
|
|
|
|
hba-port-cap = <(HBA_PORT_HPCP | HBA_PORT_MPSP | HBA_PORT_FBSCP)>;
|
|
};
|
|
};
|