1/* 2 * Driver for the Synopsys DesignWare DMA Controller 3 * 4 * Copyright (C) 2013 Intel Corporation 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. 9 */ 10 11#ifndef _DW_DMAC_INTERNAL_H 12#define _DW_DMAC_INTERNAL_H 13 14#include <linux/device.h> 15#include <linux/dw_dmac.h> 16 17#include "regs.h" 18 19/** 20 * struct dw_dma_chip - representation of DesignWare DMA controller hardware 21 * @dev: struct device of the DMA controller 22 * @irq: irq line 23 * @regs: memory mapped I/O space 24 * @dw: struct dw_dma that is filed by dw_dma_probe() 25 */ 26struct dw_dma_chip { 27 struct device *dev; 28 int irq; 29 void __iomem *regs; 30 struct dw_dma *dw; 31}; 32 33/* Export to the platform drivers */ 34int dw_dma_probe(struct dw_dma_chip *chip, struct dw_dma_platform_data *pdata); 35int dw_dma_remove(struct dw_dma_chip *chip); 36 37void dw_dma_shutdown(struct dw_dma_chip *chip); 38 39#ifdef CONFIG_PM_SLEEP 40 41int dw_dma_suspend(struct dw_dma_chip *chip); 42int dw_dma_resume(struct dw_dma_chip *chip); 43 44#endif /* CONFIG_PM_SLEEP */ 45 46/** 47 * dwc_get_dms - get destination master 48 * @slave: pointer to the custom slave configuration 49 * 50 * Returns destination master in the custom slave configuration if defined, or 51 * default value otherwise. 52 */ 53static inline unsigned int dwc_get_dms(struct dw_dma_slave *slave) 54{ 55 return slave ? slave->dst_master : 0; 56} 57 58/** 59 * dwc_get_sms - get source master 60 * @slave: pointer to the custom slave configuration 61 * 62 * Returns source master in the custom slave configuration if defined, or 63 * default value otherwise. 64 */ 65static inline unsigned int dwc_get_sms(struct dw_dma_slave *slave) 66{ 67 return slave ? slave->src_master : 1; 68} 69 70#endif /* _DW_DMAC_INTERNAL_H */ 71