diff options
Diffstat (limited to 'include/linux/amba/bus.h')
| -rw-r--r-- | include/linux/amba/bus.h | 11 | 
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/amba/bus.h b/include/linux/amba/bus.h index 8b103860783..b0c17401243 100644 --- a/include/linux/amba/bus.h +++ b/include/linux/amba/bus.h @@ -14,14 +14,19 @@  #ifndef ASMARM_AMBA_H  #define ASMARM_AMBA_H +#include <linux/clk.h>  #include <linux/device.h> +#include <linux/err.h>  #include <linux/resource.h>  #define AMBA_NR_IRQS	2 +struct clk; +  struct amba_device {  	struct device		dev;  	struct resource		res; +	struct clk		*pclk;  	u64			dma_mask;  	unsigned int		periphid;  	unsigned int		irq[AMBA_NR_IRQS]; @@ -59,6 +64,12 @@ struct amba_device *amba_find_device(const char *, struct device *, unsigned int  int amba_request_regions(struct amba_device *, const char *);  void amba_release_regions(struct amba_device *); +#define amba_pclk_enable(d)	\ +	(IS_ERR((d)->pclk) ? 0 : clk_enable((d)->pclk)) + +#define amba_pclk_disable(d)	\ +	do { if (!IS_ERR((d)->pclk)) clk_disable((d)->pclk); } while (0) +  #define amba_config(d)	(((d)->periphid >> 24) & 0xff)  #define amba_rev(d)	(((d)->periphid >> 20) & 0x0f)  #define amba_manf(d)	(((d)->periphid >> 12) & 0xff)  |