177 lines
3.9 KiB
YAML
177 lines
3.9 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
|
|
- socionext,uniphier-pro4-ahci
|
|
- socionext,uniphier-pxs2-ahci
|
|
- socionext,uniphier-pxs3-ahci
|
|
required:
|
|
- compatible
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- items:
|
|
- enum:
|
|
- brcm,iproc-ahci
|
|
- marvell,armada-8k-ahci
|
|
- marvell,berlin2-ahci
|
|
- marvell,berlin2q-ahci
|
|
- socionext,uniphier-pro4-ahci
|
|
- socionext,uniphier-pxs2-ahci
|
|
- socionext,uniphier-pxs3-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:
|
|
minItems: 1
|
|
maxItems: 3
|
|
|
|
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
|
|
|
|
allOf:
|
|
- $ref: ahci-common.yaml#
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: socionext,uniphier-pro4-ahci
|
|
then:
|
|
properties:
|
|
resets:
|
|
items:
|
|
- description: reset line for the parent
|
|
- description: reset line for the glue logic
|
|
- description: reset line for the controller
|
|
required:
|
|
- resets
|
|
else:
|
|
if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- socionext,uniphier-pxs2-ahci
|
|
- socionext,uniphier-pxs3-ahci
|
|
then:
|
|
properties:
|
|
resets:
|
|
items:
|
|
- description: reset for the glue logic
|
|
- description: reset for the controller
|
|
required:
|
|
- resets
|
|
else:
|
|
properties:
|
|
resets:
|
|
maxItems: 1
|
|
|
|
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)>;
|
|
};
|
|
};
|