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 = <®_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 = <®_sata1>;; 788c2ecf20Sopenharmony_ci }; 798c2ecf20Sopenharmony_ci }; 80