On 07/10/15 00:04, Stephen Warren wrote:
On 10/05/2015 06:10 AM, Jon Hunter wrote:
Add device-tree binding documentation for the Tegra210 Audio DMA
controller.
diff --git a/Documentation/devicetree/bindings/dma/tegra210-adma.txt
b/Documentation/devicetree/bindings/dma/tegra210-adma.txt
+- #dma-cells : Must be <2>. The first cell denotes the transmit or
+ receive request number and should be between 1 and the maximum
number
+ of requests supported (see properties "dma-rx-requests" and
+ "dma-tx-requests"). This value corresponds to the
RX/TX_REQUEST_SELECT
+ fields in the ADMA_CHn_CTRL register. The second cell denotes
whether
+ the channel is a receive or transmit channel and must be either 2
for
+ a receive channel and 4 for a transmit channel. These values
correspond
+ to the TRANSFER_DIRECTION field of the ADMA_CHn_CTRL register.
Is it typical to encode the direction into the dma cells? I would have
thought the client would provide that information at run-time when
requesting a DMA channel.
I have seen other dma bindings that do [0]. If we don't put the
direction in the client binding, then it would appear as ...
tegra_admaif: admaif@0x702d0000 {
...
dmas = <&adma 1>, <&adma 1>, <&adma 2>, <&adma 2>,
<&adma 3>, <&adma 3>, <&adma 4>, <&adma 4>,
<&adma 5>, <&adma 5>, <&adma 6>, <&adma 6>,
<&adma 7>, <&adma 7>, <&adma 8>, <&adma 8>,
<&adma 9>, <&adma 9>, <&adma 10>, <&adma 10>;
dma-names = "rx1", "tx1", "rx2", "tx2", "rx3", "tx3",
"rx4", "tx4", "rx5", "tx5", "rx6", "tx6",
"rx7", "tx7", "rx8", "tx8", "rx9", "tx9",
"rx10", "tx10";
...
};
... where "rxN" and "txN" appear to use the same request, but the
reality is that "rxN" is using rx-request-N and "txN" is using
tx-request-N. Arnd questioned this before. Obviously I can explain this
in the binding document if the above is preferred. However, given that
they are named "rx1", "rx2", etc, why not put the direction in the
binding?