2012-04-21 17:40:12 +05:30
* AHCI SATA Controller
2010-11-03 21:04:59 -05:00
SATA nodes are defined to describe on-chip Serial ATA controllers.
Each SATA controller should have its own node.
2014-07-30 20:13:59 +02:00
It is possible, but not required, to represent each port as a sub-node.
It allows to enable each port independently when dealing with multiple
PHYs.
2010-11-03 21:04:59 -05:00
Required properties:
2014-04-15 17:00:02 +02:00
- compatible : compatible string, one of:
- "allwinner,sun4i-a10-ahci"
2018-09-03 12:01:59 +02:00
- "allwinner,sun8i-r40-ahci"
2016-03-28 10:18:29 +05:30
- "brcm,iproc-ahci"
2014-05-14 14:13:42 +08:00
- "hisilicon,hisi-ahci"
2016-02-11 13:53:08 +00:00
- "cavium,octeon-7130-ahci"
2014-04-15 17:00:02 +02:00
- "ibm,476gtr-ahci"
2014-04-15 17:00:03 +02:00
- "marvell,armada-380-ahci"
2016-02-02 18:13:27 +01:00
- "marvell,armada-3700-ahci"
2014-04-15 17:00:02 +02:00
- "snps,dwc-ahci"
- "snps,spear-ahci"
2014-07-30 20:13:59 +02:00
- "generic-ahci"
2010-11-03 21:04:59 -05:00
- interrupts : <interrupt mapping for SATA IRQ>
- reg : <registers mapping>
2014-07-30 20:13:59 +02:00
Please note that when using "generic-ahci" you must also specify a SoC specific
compatible:
compatible = "manufacturer,soc-model-ahci", "generic-ahci";
2012-09-06 16:03:30 -05:00
Optional properties:
2012-08-21 12:31:06 +02:00
- dma-coherent : Present if dma operations are coherent
2014-02-22 16:53:31 +01:00
- clocks : a list of phandle + clock specifier pairs
2018-08-22 21:13:02 +09:00
- resets : a list of phandle + reset specifier pairs
2014-02-22 16:53:32 +01:00
- target-supply : regulator for SATA target power
2018-09-03 12:01:57 +02:00
- phy-supply : regulator for PHY power
2014-07-30 20:13:59 +02:00
- phys : reference to the SATA PHY node
- phy-names : must be "sata-phy"
2018-09-03 12:01:55 +02:00
- ahci-supply : regulator for AHCI controller
2016-04-01 08:52:57 +01:00
- ports-implemented : Mask that indicates which ports that the HBA supports
are available for software to use. Useful if PORTS_IMPL
is not programmed by the BIOS, which is true with
some embedded SOC's.
2014-07-30 20:13:59 +02:00
Required properties when using sub-nodes:
- #address-cells : number of cells to encode an address
- #size-cells : number of cells representing the size of an address
2019-07-31 14:25:35 +02:00
For allwinner,sun8i-r40-ahci, the reset property must be present.
2014-07-30 20:13:59 +02:00
Sub-nodes required properties:
2015-01-15 15:09:36 +01:00
- reg : the port number
And at least one of the following properties:
- phys : reference to the SATA PHY node
2018-09-03 12:01:53 +02:00
- target-supply : regulator for SATA target power
2012-09-06 16:03:30 -05:00
2014-02-22 16:53:36 +01:00
Examples:
2010-11-03 21:04:59 -05:00
sata@ffe08000 {
2013-08-14 15:40:11 -05:00
compatible = "snps,spear-ahci";
reg = <0xffe08000 0x1000>;
interrupts = <115>;
2010-11-03 21:04:59 -05:00
};
2014-02-22 16:53:36 +01:00
2017-11-08 14:27:48 -02:00
ahci: sata@1c18000 {
2014-02-22 16:53:36 +01:00
compatible = "allwinner,sun4i-a10-ahci";
reg = <0x01c18000 0x1000>;
interrupts = <56>;
clocks = <&pll6 0>, <&ahb_gates 25>;
target-supply = <®_ahci_5v>;
};
2014-07-30 20:13:59 +02:00
With sub-nodes:
sata@f7e90000 {
compatible = "marvell,berlin2q-achi", "generic-ahci";
reg = <0xe90000 0x1000>;
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&chip CLKID_SATA>;
#address-cells = <1>;
#size-cells = <0>;
sata0: sata-port@0 {
reg = <0>;
phys = <&sata_phy 0>;
2015-01-15 15:09:36 +01:00
target-supply = <®_sata0>;
2014-07-30 20:13:59 +02:00
};
sata1: sata-port@1 {
reg = <1>;
phys = <&sata_phy 1>;
2015-01-15 15:09:36 +01:00
target-supply = <®_sata1>;;
2014-07-30 20:13:59 +02:00
};
};