0001
0002
0003
0004
0005
0006 #ifndef _LANTIQ_H__
0007 #define _LANTIQ_H__
0008
0009 #include <linux/irq.h>
0010 #include <linux/device.h>
0011 #include <linux/clk.h>
0012
0013
0014 #define ltq_r32(reg) __raw_readl(reg)
0015 #define ltq_w32(val, reg) __raw_writel(val, reg)
0016 #define ltq_w32_mask(clear, set, reg) \
0017 ltq_w32((ltq_r32(reg) & ~(clear)) | (set), reg)
0018 #define ltq_r8(reg) __raw_readb(reg)
0019 #define ltq_w8(val, reg) __raw_writeb(val, reg)
0020
0021
0022 #define ltq_ebu_w32(x, y) ltq_w32((x), ltq_ebu_membase + (y))
0023 #define ltq_ebu_r32(x) ltq_r32(ltq_ebu_membase + (x))
0024 #define ltq_ebu_w32_mask(x, y, z) \
0025 ltq_w32_mask(x, y, ltq_ebu_membase + (z))
0026 extern __iomem void *ltq_ebu_membase;
0027
0028
0029 extern spinlock_t ebu_lock;
0030
0031
0032 extern void ltq_disable_irq(struct irq_data *data);
0033 extern void ltq_mask_and_ack_irq(struct irq_data *data);
0034 extern void ltq_enable_irq(struct irq_data *data);
0035 extern int ltq_eiu_get_irq(int exin);
0036
0037
0038 extern int clk_activate(struct clk *clk);
0039 extern void clk_deactivate(struct clk *clk);
0040 extern struct clk *clk_get_cpu(void);
0041 extern struct clk *clk_get_fpi(void);
0042 extern struct clk *clk_get_io(void);
0043 extern struct clk *clk_get_ppe(void);
0044
0045
0046 extern unsigned char ltq_boot_select(void);
0047
0048 extern int ltq_soc_type(void);
0049
0050 #define IOPORT_RESOURCE_START 0x10000000
0051 #define IOPORT_RESOURCE_END 0xffffffff
0052 #define IOMEM_RESOURCE_START 0x10000000
0053 #define IOMEM_RESOURCE_END 0xffffffff
0054
0055 #endif