arm-pl08x.txt 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. * ARM PrimeCells PL080 and PL081 and derivatives DMA controller
  2. Required properties:
  3. - compatible: "arm,pl080", "arm,primecell";
  4. "arm,pl081", "arm,primecell";
  5. "faraday,ftdmac020", "arm,primecell"
  6. - arm,primecell-periphid: on the FTDMAC020 the primecell ID is not hard-coded
  7. in the hardware and must be specified here as <0x0003b080>. This number
  8. follows the PrimeCell standard numbering using the JEP106 vendor code 0x38
  9. for Faraday Technology.
  10. - reg: Address range of the PL08x registers
  11. - interrupt: The PL08x interrupt number
  12. - clocks: The clock running the IP core clock
  13. - clock-names: Must contain "apb_pclk"
  14. - lli-bus-interface-ahb1: if AHB master 1 is eligible for fetching LLIs
  15. - lli-bus-interface-ahb2: if AHB master 2 is eligible for fetching LLIs
  16. - mem-bus-interface-ahb1: if AHB master 1 is eligible for fetching memory contents
  17. - mem-bus-interface-ahb2: if AHB master 2 is eligible for fetching memory contents
  18. - #dma-cells: must be <2>. First cell should contain the DMA request,
  19. second cell should contain either 1 or 2 depending on
  20. which AHB master that is used.
  21. Optional properties:
  22. - dma-channels: contains the total number of DMA channels supported by the DMAC
  23. - dma-requests: contains the total number of DMA requests supported by the DMAC
  24. - memcpy-burst-size: the size of the bursts for memcpy: 1, 4, 8, 16, 32
  25. 64, 128 or 256 bytes are legal values
  26. - memcpy-bus-width: the bus width used for memcpy in bits: 8, 16 or 32 are legal
  27. values, the Faraday FTDMAC020 can also accept 64 bits
  28. Clients
  29. Required properties:
  30. - dmas: List of DMA controller phandle, request channel and AHB master id
  31. - dma-names: Names of the aforementioned requested channels
  32. Example:
  33. dmac0: dma-controller@10130000 {
  34. compatible = "arm,pl080", "arm,primecell";
  35. reg = <0x10130000 0x1000>;
  36. interrupt-parent = <&vica>;
  37. interrupts = <15>;
  38. clocks = <&hclkdma0>;
  39. clock-names = "apb_pclk";
  40. lli-bus-interface-ahb1;
  41. lli-bus-interface-ahb2;
  42. mem-bus-interface-ahb2;
  43. memcpy-burst-size = <256>;
  44. memcpy-bus-width = <32>;
  45. #dma-cells = <2>;
  46. };
  47. device@40008000 {
  48. ...
  49. dmas = <&dmac0 0 2
  50. &dmac0 1 2>;
  51. dma-names = "tx", "rx";
  52. ...
  53. };