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 - socionext,uniphier-pro4-ahci 34 - socionext,uniphier-pxs2-ahci 35 - socionext,uniphier-pxs3-ahci 36 required: 37 - compatible 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 - socionext,uniphier-pro4-ahci 49 - socionext,uniphier-pxs2-ahci 50 - socionext,uniphier-pxs3-ahci 51 - const: generic-ahci 52 - enum: 53 - cavium,octeon-7130-ahci 54 - hisilicon,hisi-ahci 55 - ibm,476gtr-ahci 56 - marvell,armada-3700-ahci 57 58 reg: 59 minItems: 1 60 maxItems: 2 61 62 reg-names: 63 maxItems: 1 64 65 clocks: 66 minItems: 1 67 maxItems: 3 68 69 clock-names: 70 minItems: 1 71 maxItems: 3 72 73 interrupts: 74 maxItems: 1 75 76 power-domains: 77 maxItems: 1 78 79 resets: 80 minItems: 1 81 maxItems: 3 82 83patternProperties: 84 "^sata-port@[0-9a-f]+$": 85 $ref: /schemas/ata/ahci-common.yaml#/$defs/ahci-port 86 87 anyOf: 88 - required: [ phys ] 89 - required: [ target-supply ] 90 91 unevaluatedProperties: false 92 93required: 94 - compatible 95 - reg 96 - interrupts 97 98allOf: 99 - $ref: ahci-common.yaml# 100 - if: 101 properties: 102 compatible: 103 contains: 104 const: socionext,uniphier-pro4-ahci 105 then: 106 properties: 107 resets: 108 items: 109 - description: reset line for the parent 110 - description: reset line for the glue logic 111 - description: reset line for the controller 112 required: 113 - resets 114 else: 115 if: 116 properties: 117 compatible: 118 contains: 119 enum: 120 - socionext,uniphier-pxs2-ahci 121 - socionext,uniphier-pxs3-ahci 122 then: 123 properties: 124 resets: 125 items: 126 - description: reset for the glue logic 127 - description: reset for the controller 128 required: 129 - resets 130 else: 131 properties: 132 resets: 133 maxItems: 1 134 135unevaluatedProperties: false 136 137examples: 138 - | 139 sata@ffe08000 { 140 compatible = "snps,spear-ahci"; 141 reg = <0xffe08000 0x1000>; 142 interrupts = <115>; 143 }; 144 - | 145 #include <dt-bindings/interrupt-controller/arm-gic.h> 146 #include <dt-bindings/clock/berlin2q.h> 147 #include <dt-bindings/ata/ahci.h> 148 149 sata@f7e90000 { 150 compatible = "marvell,berlin2q-ahci", "generic-ahci"; 151 reg = <0xf7e90000 0x1000>; 152 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 153 clocks = <&chip CLKID_SATA>; 154 #address-cells = <1>; 155 #size-cells = <0>; 156 157 hba-cap = <HBA_SMPS>; 158 159 sata0: sata-port@0 { 160 reg = <0>; 161 162 phys = <&sata_phy 0>; 163 target-supply = <®_sata0>; 164 165 hba-port-cap = <(HBA_PORT_FBSCP | HBA_PORT_ESP)>; 166 }; 167 168 sata1: sata-port@1 { 169 reg = <1>; 170 171 phys = <&sata_phy 1>; 172 target-supply = <®_sata1>; 173 174 hba-port-cap = <(HBA_PORT_HPCP | HBA_PORT_MPSP | HBA_PORT_FBSCP)>; 175 }; 176 }; 177