Based on devicetree work by Michael Walle.  Changed compatible property
to "mrvl,orion-sata".

Signed-off-by: Michael Walle <[email protected]>
Signed-off-by: Jason Cooper <[email protected]>
---
 arch/arm/boot/dts/kirkwood-dreamplug.dts |    7 +++++++
 arch/arm/mach-kirkwood/board-dt.c        |    5 -----
 arch/arm/mach-kirkwood/common.c          |   10 ++++++++++
 3 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/arch/arm/boot/dts/kirkwood-dreamplug.dts 
b/arch/arm/boot/dts/kirkwood-dreamplug.dts
index f332380..8a28d5b 100644
--- a/arch/arm/boot/dts/kirkwood-dreamplug.dts
+++ b/arch/arm/boot/dts/kirkwood-dreamplug.dts
@@ -23,6 +23,13 @@
                clock-frequency = <200000000>;
        };
 
+       sata@f1080000 {
+               compatible = "mrvl,orion-sata";
+               reg = <0xf1080000 0x5000>;
+               interrupts = <21>;
+               nr-ports = <1>;
+       };
+
        ehci@f1050000 {
                compatible = "mrvl,orion-ehci";
                reg = <0xf1050000 0x1000>;
diff --git a/arch/arm/mach-kirkwood/board-dt.c 
b/arch/arm/mach-kirkwood/board-dt.c
index 1034ac7..12dec38 100644
--- a/arch/arm/mach-kirkwood/board-dt.c
+++ b/arch/arm/mach-kirkwood/board-dt.c
@@ -86,10 +86,6 @@ static struct mv643xx_eth_platform_data dreamplug_ge01_data 
= {
        .phy_addr       = MV643XX_ETH_PHY_ADDR(1),
 };
 
-static struct mv_sata_platform_data dreamplug_sata_data = {
-       .n_ports        = 1,
-};
-
 static struct mvsdio_platform_data dreamplug_mvsdio_data = {
        /* unfortunately the CD signal has not been connected */
 };
@@ -149,7 +145,6 @@ static void __init dreamplug_init(void)
 
        kirkwood_ge00_init(&dreamplug_ge00_data);
        kirkwood_ge01_init(&dreamplug_ge01_data);
-       kirkwood_sata_init(&dreamplug_sata_data);
        kirkwood_sdio_init(&dreamplug_mvsdio_data);
 
        platform_device_register(&dreamplug_leds);
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
index d0e8575..70ee7ac 100644
--- a/arch/arm/mach-kirkwood/common.c
+++ b/arch/arm/mach-kirkwood/common.c
@@ -504,6 +504,16 @@ static int __init kirkwood_clock_gate(void)
                kirkwood_clk_ctrl |= CGC_USB0;
                of_node_put(np);
        }
+
+       np = of_find_compatible_node(NULL, NULL, "mrvl,orion-sata");
+       if (np && of_device_is_available(np)) {
+               int nr_ports;
+               kirkwood_clk_ctrl |= CGC_SATA0;
+               of_property_read_u32(np, "nr-ports", &nr_ports);
+               if (nr_ports > 1)
+                       kirkwood_clk_ctrl |= CGC_SATA1;
+               of_node_put(np);
+       }
 #endif
 
        /* For SATA: first shutdown the phy */
-- 
1.7.3.4

_______________________________________________
devicetree-discuss mailing list
[email protected]
https://lists.ozlabs.org/listinfo/devicetree-discuss

Reply via email to