linux/arch/mips/include/asm/txx9/dmac.h
<<
>>
Prefs
   1/*
   2 * TXx9 SoC DMA Controller
   3 *
   4 * This program is free software; you can redistribute it and/or modify
   5 * it under the terms of the GNU General Public License version 2 as
   6 * published by the Free Software Foundation.
   7 */
   8
   9#ifndef __ASM_TXX9_DMAC_H
  10#define __ASM_TXX9_DMAC_H
  11
  12#include <linux/dmaengine.h>
  13
  14#define TXX9_DMA_MAX_NR_CHANNELS        4
  15
  16/**
  17 * struct txx9dmac_platform_data - Controller configuration parameters
  18 * @memcpy_chan: Channel used for DMA_MEMCPY
  19 * @have_64bit_regs: DMAC have 64 bit registers
  20 */
  21struct txx9dmac_platform_data {
  22        int     memcpy_chan;
  23        bool    have_64bit_regs;
  24};
  25
  26/**
  27 * struct txx9dmac_chan_platform_data - Channel configuration parameters
  28 * @dmac_dev: A platform device for DMAC
  29 */
  30struct txx9dmac_chan_platform_data {
  31        struct platform_device *dmac_dev;
  32};
  33
  34/**
  35 * struct txx9dmac_slave - Controller-specific information about a slave
  36 * @tx_reg: physical address of data register used for
  37 *      memory-to-peripheral transfers
  38 * @rx_reg: physical address of data register used for
  39 *      peripheral-to-memory transfers
  40 * @reg_width: peripheral register width
  41 */
  42struct txx9dmac_slave {
  43        u64             tx_reg;
  44        u64             rx_reg;
  45        unsigned int    reg_width;
  46};
  47
  48void txx9_dmac_init(int id, unsigned long baseaddr, int irq,
  49                    const struct txx9dmac_platform_data *pdata);
  50
  51#endif /* __ASM_TXX9_DMAC_H */
  52