1# SPDX-License-Identifier: GPL-2.0 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/ata/ahci-platform.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: AHCI SATA Controller 8 9description: | 10 SATA nodes are defined to describe on-chip Serial ATA controllers. 11 Each SATA controller should have its own node. 12 13 It is possible, but not required, to represent each port as a sub-node. 14 It allows to enable each port independently when dealing with multiple 15 PHYs. 16 17maintainers: 18 - Hans de Goede <hdegoede@redhat.com> 19 - Jens Axboe <axboe@kernel.dk> 20 21select: 22 properties: 23 compatible: 24 contains: 25 enum: 26 - brcm,iproc-ahci 27 - cavium,octeon-7130-ahci 28 - hisilicon,hisi-ahci 29 - ibm,476gtr-ahci 30 - marvell,armada-3700-ahci 31 - marvell,armada-8k-ahci 32 - marvell,berlin2q-ahci 33 required: 34 - compatible 35 36allOf: 37 - $ref: "ahci-common.yaml#" 38 39properties: 40 compatible: 41 oneOf: 42 - items: 43 - enum: 44 - brcm,iproc-ahci 45 - marvell,armada-8k-ahci 46 - marvell,berlin2-ahci 47 - marvell,berlin2q-ahci 48 - const: generic-ahci 49 - enum: 50 - cavium,octeon-7130-ahci 51 - hisilicon,hisi-ahci 52 - ibm,476gtr-ahci 53 - marvell,armada-3700-ahci 54 55 reg: 56 minItems: 1 57 maxItems: 2 58 59 reg-names: 60 maxItems: 1 61 62 clocks: 63 minItems: 1 64 maxItems: 3 65 66 clock-names: 67 minItems: 1 68 maxItems: 3 69 70 interrupts: 71 maxItems: 1 72 73 power-domains: 74 maxItems: 1 75 76 resets: 77 maxItems: 1 78 79patternProperties: 80 "^sata-port@[0-9a-f]+$": 81 $ref: /schemas/ata/ahci-common.yaml#/$defs/ahci-port 82 83 anyOf: 84 - required: [ phys ] 85 - required: [ target-supply ] 86 87 unevaluatedProperties: false 88 89required: 90 - compatible 91 - reg 92 - interrupts 93 94unevaluatedProperties: false 95 96examples: 97 - | 98 sata@ffe08000 { 99 compatible = "snps,spear-ahci"; 100 reg = <0xffe08000 0x1000>; 101 interrupts = <115>; 102 }; 103 - | 104 #include <dt-bindings/interrupt-controller/arm-gic.h> 105 #include <dt-bindings/clock/berlin2q.h> 106 #include <dt-bindings/ata/ahci.h> 107 108 sata@f7e90000 { 109 compatible = "marvell,berlin2q-ahci", "generic-ahci"; 110 reg = <0xf7e90000 0x1000>; 111 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 112 clocks = <&chip CLKID_SATA>; 113 #address-cells = <1>; 114 #size-cells = <0>; 115 116 hba-cap = <HBA_SMPS>; 117 118 sata0: sata-port@0 { 119 reg = <0>; 120 121 phys = <&sata_phy 0>; 122 target-supply = <®_sata0>; 123 124 hba-port-cap = <(HBA_PORT_FBSCP | HBA_PORT_ESP)>; 125 }; 126 127 sata1: sata-port@1 { 128 reg = <1>; 129 130 phys = <&sata_phy 1>; 131 target-supply = <®_sata1>; 132 133 hba-port-cap = <(HBA_PORT_HPCP | HBA_PORT_MPSP | HBA_PORT_FBSCP)>; 134 }; 135 }; 136