blob: a2321819e7f5fb1613fa8c4ef3b092e87fe4e647 [file] [log] [blame]
Viresh Kumar5f098a32012-04-21 17:40:12 +05301* AHCI SATA Controller
Rob Herring02aac312010-11-03 21:04:59 -05002
3SATA nodes are defined to describe on-chip Serial ATA controllers.
4Each SATA controller should have its own node.
5
Antoine Ténart724f24e2014-07-30 20:13:59 +02006It is possible, but not required, to represent each port as a sub-node.
7It allows to enable each port independently when dealing with multiple
8PHYs.
9
Rob Herring02aac312010-11-03 21:04:59 -050010Required properties:
Thomas Petazzoni5799d6d2014-04-15 17:00:02 +020011- compatible : compatible string, one of:
12 - "allwinner,sun4i-a10-ahci"
Kefeng Wanga1a205d2014-05-14 14:13:42 +080013 - "hisilicon,hisi-ahci"
Thomas Petazzoni5799d6d2014-04-15 17:00:02 +020014 - "ibm,476gtr-ahci"
Thomas Petazzonia3464ed2014-04-15 17:00:03 +020015 - "marvell,armada-380-ahci"
Thomas Petazzoni5799d6d2014-04-15 17:00:02 +020016 - "snps,dwc-ahci"
17 - "snps,exynos5440-ahci"
18 - "snps,spear-ahci"
Tang Yuantian5163fb62015-06-04 15:10:04 +080019 - "fsl,qoriq-ahci" : for qoriq series socs which include ls1021, ls2085, etc.
20 - "fsl,<chip>-ahci" : chip could be ls1021, ls2085 etc.
Antoine Ténart724f24e2014-07-30 20:13:59 +020021 - "generic-ahci"
Rob Herring02aac312010-11-03 21:04:59 -050022- interrupts : <interrupt mapping for SATA IRQ>
23- reg : <registers mapping>
24
Antoine Ténart724f24e2014-07-30 20:13:59 +020025Please note that when using "generic-ahci" you must also specify a SoC specific
26compatible:
27 compatible = "manufacturer,soc-model-ahci", "generic-ahci";
28
Mark Langsdorf8996b892012-09-06 16:03:30 -050029Optional properties:
Rob Herring1dc737c2012-08-21 12:31:06 +020030- dma-coherent : Present if dma operations are coherent
Hans de Goede156c5882014-02-22 16:53:31 +010031- clocks : a list of phandle + clock specifier pairs
Hans de Goede4b3e6032014-02-22 16:53:32 +010032- target-supply : regulator for SATA target power
Antoine Ténart724f24e2014-07-30 20:13:59 +020033- phys : reference to the SATA PHY node
34- phy-names : must be "sata-phy"
35
36Required properties when using sub-nodes:
37- #address-cells : number of cells to encode an address
38- #size-cells : number of cells representing the size of an address
39
40
41Sub-nodes required properties:
Gregory CLEMENT6bd15992015-01-15 15:09:36 +010042- reg : the port number
43And at least one of the following properties:
44- phys : reference to the SATA PHY node
45- target-supply : regulator for SATA target power
Mark Langsdorf8996b892012-09-06 16:03:30 -050046
Olliver Schinaglc5754b52014-02-22 16:53:36 +010047Examples:
Rob Herring02aac312010-11-03 21:04:59 -050048 sata@ffe08000 {
Mark Langsdorf91c20952013-08-14 15:40:11 -050049 compatible = "snps,spear-ahci";
50 reg = <0xffe08000 0x1000>;
51 interrupts = <115>;
Rob Herring02aac312010-11-03 21:04:59 -050052 };
Olliver Schinaglc5754b52014-02-22 16:53:36 +010053
54 ahci: sata@01c18000 {
55 compatible = "allwinner,sun4i-a10-ahci";
56 reg = <0x01c18000 0x1000>;
57 interrupts = <56>;
58 clocks = <&pll6 0>, <&ahb_gates 25>;
59 target-supply = <&reg_ahci_5v>;
60 };
Antoine Ténart724f24e2014-07-30 20:13:59 +020061
62With sub-nodes:
63 sata@f7e90000 {
64 compatible = "marvell,berlin2q-achi", "generic-ahci";
65 reg = <0xe90000 0x1000>;
66 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
67 clocks = <&chip CLKID_SATA>;
68 #address-cells = <1>;
69 #size-cells = <0>;
70
71 sata0: sata-port@0 {
72 reg = <0>;
73 phys = <&sata_phy 0>;
Gregory CLEMENT6bd15992015-01-15 15:09:36 +010074 target-supply = <&reg_sata0>;
Antoine Ténart724f24e2014-07-30 20:13:59 +020075 };
76
77 sata1: sata-port@1 {
78 reg = <1>;
79 phys = <&sata_phy 1>;
Gregory CLEMENT6bd15992015-01-15 15:09:36 +010080 target-supply = <&reg_sata1>;;
Antoine Ténart724f24e2014-07-30 20:13:59 +020081 };
82 };