Kernel-4.18.0-80.el8_arm-pl08x

  • ARM PrimeCells PL080 and PL081 and derivatives DMA controller

Required properties:

  • compatible: “arm,pl080”, “arm,primecell”;
        "arm,pl081", "arm,primecell";
        "faraday,ftdmac020", "arm,primecell"
    
  • arm,primecell-periphid: on the FTDMAC020 the primecell ID is not hard-coded
    in the hardware and must be specified here as <0x0003b080>. This number
    follows the PrimeCell standard numbering using the JEP106 vendor code 0x38
    for Faraday Technology.
  • reg: Address range of the PL08x registers
  • interrupt: The PL08x interrupt number
  • clocks: The clock running the IP core clock
  • clock-names: Must contain “apb_pclk”
  • lli-bus-interface-ahb1: if AHB master 1 is eligible for fetching LLIs
  • lli-bus-interface-ahb2: if AHB master 2 is eligible for fetching LLIs
  • mem-bus-interface-ahb1: if AHB master 1 is eligible for fetching memory contents
  • mem-bus-interface-ahb2: if AHB master 2 is eligible for fetching memory contents
  • #dma-cells: must be <2>. First cell should contain the DMA request,
            second cell should contain either 1 or 2 depending on
            which AHB master that is used.
    

Optional properties:

  • dma-channels: contains the total number of DMA channels supported by the DMAC
  • dma-requests: contains the total number of DMA requests supported by the DMAC
  • memcpy-burst-size: the size of the bursts for memcpy: 1, 4, 8, 16, 32
    64, 128 or 256 bytes are legal values
  • memcpy-bus-width: the bus width used for memcpy in bits: 8, 16 or 32 are legal
    values, the Faraday FTDMAC020 can also accept 64 bits

Clients
Required properties:

  • dmas: List of DMA controller phandle, request channel and AHB master id
  • dma-names: Names of the aforementioned requested channels

Example:

dmac0: dma-controller@10130000 {
compatible = “arm,pl080”, “arm,primecell”;
reg = <0x10130000 0x1000>;
interrupt-parent = <&vica>;
interrupts = <15>;
clocks = <&hclkdma0>;
clock-names = “apb_pclk”;
lli-bus-interface-ahb1;
lli-bus-interface-ahb2;
mem-bus-interface-ahb2;
memcpy-burst-size = <256>;
memcpy-bus-width = <32>;
#dma-cells = <2>;
};

device@40008000 {

dmas = <&dmac0 0 2
&dmac0 1 2>;
dma-names = “tx”, “rx”;

};