Mans Rullgard <mans@xxxxxxxxx> writes: > Currently this driver only works with a DesignWare DMA engine which it > registers manually using the second "reg" address range and interrupt > number from the DT node. > > This patch makes the driver instead use the "dmas" property if present, > otherwise optionally falling back on the old way so existing device > trees can continue to work. > > With this change, there is no longer any reason to depend on the 460EX > machine type so drop that from Kconfig. > > Signed-off-by: Mans Rullgard <mans@xxxxxxxxx> > --- > drivers/ata/Kconfig | 10 ++- > drivers/ata/sata_dwc_460ex.c | 192 +++++++++++++++++++++++++++---------------- > 2 files changed, 131 insertions(+), 71 deletions(-) The corresponding patch for the canyonlands devicetree looks something like this. I don't have any such hardware or even a manual, so I don't know what values to use for the various required DT properties of the DMA controller node, nor can I test it. The SATA driver works with a different DMA controller on a Sigma Designs chip. diff --git a/arch/powerpc/boot/dts/canyonlands.dts b/arch/powerpc/boot/dts/canyonlands.dts index 3dc75de..959f36e 100644 --- a/arch/powerpc/boot/dts/canyonlands.dts +++ b/arch/powerpc/boot/dts/canyonlands.dts @@ -190,12 +190,22 @@ /* DMA */ 0x2 &UIC0 0xc 0x4>; }; + DMA0: dma@bffd0800 { + compatible = "snps,dma-spear1340"; + reg = <4 0xbffd0800 0x400>; + interrupt-parent = <&UIC3>; + interrupts = <0x5 0x4>; + #dma-cells = <3>; + /* required properties here */ + }; + SATA0: sata@bffd1000 { compatible = "amcc,sata-460ex"; - reg = <4 0xbffd1000 0x800 4 0xbffd0800 0x400>; + reg = <4 0xbffd1000 0x800>; interrupt-parent = <&UIC3>; - interrupts = <0x0 0x4 /* SATA */ - 0x5 0x4>; /* AHBDMA */ + interrupts = <0x0 0x4>; + dmas = <&DMA0 0 0 1>; + dma-names = "sata-dma"; }; POB0: opb { -- Måns Rullgård -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html