shdma.txt 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. * SHDMA Device Tree bindings
  2. Sh-/r-mobile and r-car systems often have multiple identical DMA controller
  3. instances, capable of serving any of a common set of DMA slave devices, using
  4. the same configuration. To describe this topology we require all compatible
  5. SHDMA DT nodes to be placed under a DMA multiplexer node. All such compatible
  6. DMAC instances have the same number of channels and use the same DMA
  7. descriptors. Therefore respective DMA DT bindings can also all be placed in the
  8. multiplexer node. Even if there is only one such DMAC instance on a system, it
  9. still has to be placed under such a multiplexer node.
  10. * DMA multiplexer
  11. Required properties:
  12. - compatible: should be "renesas,shdma-mux"
  13. - #dma-cells: should be <1>, see "dmas" property below
  14. Optional properties (currently unused):
  15. - dma-channels: number of DMA channels
  16. - dma-requests: number of DMA request signals
  17. * DMA controller
  18. Required properties:
  19. - compatible: should be "renesas,shdma"
  20. Example:
  21. dmac: dma-mux0 {
  22. compatible = "renesas,shdma-mux";
  23. #dma-cells = <1>;
  24. dma-channels = <6>;
  25. dma-requests = <256>;
  26. reg = <0 0>; /* Needed for AUXDATA */
  27. #address-cells = <1>;
  28. #size-cells = <1>;
  29. ranges;
  30. dma0: shdma@fe008020 {
  31. compatible = "renesas,shdma";
  32. reg = <0xfe008020 0x270>,
  33. <0xfe009000 0xc>;
  34. interrupt-parent = <&gic>;
  35. interrupts = <0 34 4
  36. 0 28 4
  37. 0 29 4
  38. 0 30 4
  39. 0 31 4
  40. 0 32 4
  41. 0 33 4>;
  42. interrupt-names = "error",
  43. "ch0", "ch1", "ch2", "ch3",
  44. "ch4", "ch5";
  45. };
  46. dma1: shdma@fe018020 {
  47. ...
  48. };
  49. dma2: shdma@fe028020 {
  50. ...
  51. };
  52. };
  53. * DMA client
  54. Required properties:
  55. - dmas: a list of <[DMA multiplexer phandle] [MID/RID value]> pairs,
  56. where MID/RID values are fixed handles, specified in the SoC
  57. manual
  58. - dma-names: a list of DMA channel names, one per "dmas" entry
  59. Example:
  60. dmas = <&dmac 0xd1
  61. &dmac 0xd2>;
  62. dma-names = "tx", "rx";