18c2ecf20Sopenharmony_ci* AHCI SATA Controller
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciSATA nodes are defined to describe on-chip Serial ATA controllers.
48c2ecf20Sopenharmony_ciEach SATA controller should have its own node.
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ciIt is possible, but not required, to represent each port as a sub-node.
78c2ecf20Sopenharmony_ciIt allows to enable each port independently when dealing with multiple
88c2ecf20Sopenharmony_ciPHYs.
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ciRequired properties:
118c2ecf20Sopenharmony_ci- compatible        : compatible string, one of:
128c2ecf20Sopenharmony_ci  - "brcm,iproc-ahci"
138c2ecf20Sopenharmony_ci  - "hisilicon,hisi-ahci"
148c2ecf20Sopenharmony_ci  - "cavium,octeon-7130-ahci"
158c2ecf20Sopenharmony_ci  - "ibm,476gtr-ahci"
168c2ecf20Sopenharmony_ci  - "marvell,armada-380-ahci"
178c2ecf20Sopenharmony_ci  - "marvell,armada-3700-ahci"
188c2ecf20Sopenharmony_ci  - "snps,dwc-ahci"
198c2ecf20Sopenharmony_ci  - "snps,spear-ahci"
208c2ecf20Sopenharmony_ci  - "generic-ahci"
218c2ecf20Sopenharmony_ci- interrupts        : <interrupt mapping for SATA IRQ>
228c2ecf20Sopenharmony_ci- reg               : <registers mapping>
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciPlease note that when using "generic-ahci" you must also specify a SoC specific
258c2ecf20Sopenharmony_cicompatible:
268c2ecf20Sopenharmony_ci	compatible = "manufacturer,soc-model-ahci", "generic-ahci";
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ciOptional properties:
298c2ecf20Sopenharmony_ci- dma-coherent      : Present if dma operations are coherent
308c2ecf20Sopenharmony_ci- clocks            : a list of phandle + clock specifier pairs
318c2ecf20Sopenharmony_ci- resets            : a list of phandle + reset specifier pairs
328c2ecf20Sopenharmony_ci- target-supply     : regulator for SATA target power
338c2ecf20Sopenharmony_ci- phy-supply        : regulator for PHY power
348c2ecf20Sopenharmony_ci- phys              : reference to the SATA PHY node
358c2ecf20Sopenharmony_ci- phy-names         : must be "sata-phy"
368c2ecf20Sopenharmony_ci- ahci-supply       : regulator for AHCI controller
378c2ecf20Sopenharmony_ci- ports-implemented : Mask that indicates which ports that the HBA supports
388c2ecf20Sopenharmony_ci		      are available for software to use. Useful if PORTS_IMPL
398c2ecf20Sopenharmony_ci		      is not programmed by the BIOS, which is true with
408c2ecf20Sopenharmony_ci		      some embedded SOC's.
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ciRequired properties when using sub-nodes:
438c2ecf20Sopenharmony_ci- #address-cells    : number of cells to encode an address
448c2ecf20Sopenharmony_ci- #size-cells       : number of cells representing the size of an address
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ciSub-nodes required properties:
478c2ecf20Sopenharmony_ci- reg		    : the port number
488c2ecf20Sopenharmony_ciAnd at least one of the following properties:
498c2ecf20Sopenharmony_ci- phys		    : reference to the SATA PHY node
508c2ecf20Sopenharmony_ci- target-supply     : regulator for SATA target power
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ciExamples:
538c2ecf20Sopenharmony_ci        sata@ffe08000 {
548c2ecf20Sopenharmony_ci		compatible = "snps,spear-ahci";
558c2ecf20Sopenharmony_ci		reg = <0xffe08000 0x1000>;
568c2ecf20Sopenharmony_ci		interrupts = <115>;
578c2ecf20Sopenharmony_ci        };
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ciWith sub-nodes:
608c2ecf20Sopenharmony_ci	sata@f7e90000 {
618c2ecf20Sopenharmony_ci		compatible = "marvell,berlin2q-achi", "generic-ahci";
628c2ecf20Sopenharmony_ci		reg = <0xe90000 0x1000>;
638c2ecf20Sopenharmony_ci		interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
648c2ecf20Sopenharmony_ci		clocks = <&chip CLKID_SATA>;
658c2ecf20Sopenharmony_ci		#address-cells = <1>;
668c2ecf20Sopenharmony_ci		#size-cells = <0>;
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ci		sata0: sata-port@0 {
698c2ecf20Sopenharmony_ci			reg = <0>;
708c2ecf20Sopenharmony_ci			phys = <&sata_phy 0>;
718c2ecf20Sopenharmony_ci			target-supply = <&reg_sata0>;
728c2ecf20Sopenharmony_ci		};
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ci		sata1: sata-port@1 {
758c2ecf20Sopenharmony_ci			reg = <1>;
768c2ecf20Sopenharmony_ci			phys = <&sata_phy 1>;
778c2ecf20Sopenharmony_ci			target-supply = <&reg_sata1>;;
788c2ecf20Sopenharmony_ci		};
798c2ecf20Sopenharmony_ci	};
80