Using DMA

Bruce_Leonard at selinc.com Bruce_Leonard at selinc.com
Mon Nov 10 11:09:51 EST 2008


> 
> The Elo device driver is an async DMA back-end driver.  That is, you
> don't communicate with that driver directly, you communicate with the
> async library (which is new - so you won't find it in LDD3).
> 

Okay, has anyone actually _used_ the Elo driver?  I can't get the probe 
function to run.  I get into of_fsl_dma_init(), but of_fsl_dma_probe() 
never executes.  I have CONFIG_DMADEVICES and CONFIG_FSL_DMA set in my 
.config, obviously since the init function runs.  Here's the relevant SOC 
portion of my device tree:

        soc8349 at e0000000 {
                #address-cells = <1>;
                #size-cells = <1>;
                #interrupt-cells = <2>;
                device_type = "soc";
                ranges = <0 e0000000 00100000>;
                reg = <e0000000 00000200>;
                bus-frequency = <0>;                    // from bootloader

<<<<<<<<<<<<<<< snip >>>>>>>>>>>>>>>>>>>

                dma at 82a8 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        compatible = "fsl,mpc8349-dma", "fsl,elo-dma";
                        reg = <82a8 4>;
                        ranges = <0 8100 1a8>;
                        interrupt-parent = <&ipic>;
                        interrupts = <71 8>;
                        cell-index = <0>;
                        dma-channel at 0 {
                                compatible = "fsl,mpc8349-dma-channel", 
"fsl,elo-dma-channel";
                                reg = <0 80>;
                                cell-index = <0>;
                                interrupt-parent = <&ipic>;
                                interrupts = <71 8>;
                        };
                        dma-channel at 80 {
                                compatible = "fsl,mpc8349-dma-channel", 
"fsl,elo-dma-channel";
                                reg = <80 80>;
                                cell-index = <1>;
                                interrupt-parent = <&ipic>;
                                interrupts = <71 8>;
                        };
                        dma-channel at 100 {
                                compatible = "fsl,mpc8349-dma-channel", 
"fsl,elo-dma-channel";
                                reg = <100 80>;
                                cell-index = <2>;
                                interrupt-parent = <&ipic>;
                                interrupts = <71 8>;
                        };
                        dma-channel at 180 {
                                compatible = "fsl,mpc8349-dma-channel", 
"fsl,elo-dma-channel";
                                reg = <180 28>;
                                cell-index = <3>;
                                interrupt-parent = <&ipic>;
                                interrupts = <71 8>;
                        };
                };
<<<<<<<<<<<<<< snip >>>>>>>>>>>>>>>>>>>>
        };

Is there something else I need to do?  Or is there something wrong with my 
device tree (always a possibility :)  ).  Any help is appreciated.

Thanks.

Bruce


More information about the Linuxppc-embedded mailing list