[PATCH] of: Add generic device tree DMA helpers
Stephen Warren
swarren at wwwdotorg.org
Tue Mar 20 02:07:48 EST 2012
On 03/19/2012 09:01 AM, Arnd Bergmann wrote:
> On Monday 19 March 2012, Mark Brown wrote:
>> On Sat, Mar 17, 2012 at 10:47:51AM +0000, Grant Likely wrote:
>>
>>> After implementing both schemes (ie. interrupts+interrupt-names && [*-]gpios)
>>> I definitely prefer the fixed property name plus a separate names property.
>>> It is easier to use common code with that scheme, and easier to statically
>>> check for correctness.
>>
>> It's not a fantastic experience when using the bindings as the arrays
>> grow large, though - keeping things matched up isn't much fun especially
>> if any of the elements in the array are optional.
>
> Maybe one can use named properties in a new device node in that case,
> like this:
>
> bus {
> dma: dma-controller {
> #dma-cells = <1>;
> };
>
> device {
> compatible = "device";
> channel: dma-channel {
> type = <0x1>;
> name = "foo";
> number = <23>;
> direction = <3>;
> };
> dma-requests = <&dma &channel>;
> };
> };
For reference, this is very similar to how the pinctrl bindings work,
except that they require the "channel" node to be a child of the DMA
controller, and hence "dma-requests" doesn't contain <&dma &channel>,
just <&channel>, since "dma" is the parent (or grand-parent) of "channel".
More information about the devicetree-discuss
mailing list