On Wed, Aug 21, 2013 at 6:31 PM, Scott Wood <scottwood@xxxxxxxxxxxxx> wrote: > >> > Other than "this is how the existing binding works and we're not going >> > to break compatibility", it allows the OS more flexibility to choose >> > whether to bind to controllers or directly to the channels. Sometimes a >> > channel will be labelled with a different compatible if it has a fixed >> > purpose such as being connected to audio hardware (e.g. mpc8610_hpcd.dts >> > where some channels are "fsl,ssi-dma-channel"). >> >> That sounds terribly like encoding policy into DT rather than it being a >> HW description. > > It is hardware description. Those DMA channels are physically wired > into the audio hardware. Other DMA channels in the same system aren't. Well, not quite. Technically the DMA channel can be dynamically assigned to the SSI, but there are limits. At the time the code was written, there was no way to reserve a DMA channel from the generic DMA driver, and I didn't want to have to depend on that driver either. Using the device tree forced a specific pair of channels to be assigned to each SSI. The audio driver has code to program the SoC to route whichever DMA channels are assigned, but it assumes that the device tree has a valid assignment. I believe the generic DMA driver can now accept DMA channel reservations, but I don't think it works both ways. That is, if the audio driver loads first, I don't think there's a clean way to tell the DMA driver which channels have already been taken by the audio driver. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html