# 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)>; }; };