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
