mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-24 01:41:39 +00:00
![Haavard Skinnemoen](/assets/img/avatar_default.png)
The read[bwl] and write[bwl] functions are meant for accessing PCI devices. How this is achieved on AVR32 is unknown, as there are no systems with a PCI bridge available yet. On-chip peripheral access, however, should not depend on how we end up implementing PCI access, so using __raw_read[bwl]/__raw_write[bwl] is the right thing to do for on-chip peripherals. This patch converts the drivers for the static memory controller, interrupt controller, PIO controller and system manager to use __raw MMIO access. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
329 lines
13 KiB
C
329 lines
13 KiB
C
/*
|
|
* Automatically generated by gen-header.xsl
|
|
*/
|
|
#ifndef __ASM_AVR32_PERIHP_INTC_H__
|
|
#define __ASM_AVR32_PERIHP_INTC_H__
|
|
|
|
#define INTC_NUM_INT_GRPS 33
|
|
|
|
#define INTC_INTPR0 0x0
|
|
# define INTC_INTPR0_INTLEV_OFFSET 30
|
|
# define INTC_INTPR0_INTLEV_SIZE 2
|
|
# define INTC_INTPR0_OFFSET_OFFSET 0
|
|
# define INTC_INTPR0_OFFSET_SIZE 24
|
|
#define INTC_INTREQ0 0x100
|
|
# define INTC_INTREQ0_IREQUEST0_OFFSET 0
|
|
# define INTC_INTREQ0_IREQUEST0_SIZE 1
|
|
# define INTC_INTREQ0_IREQUEST1_OFFSET 1
|
|
# define INTC_INTREQ0_IREQUEST1_SIZE 1
|
|
#define INTC_INTPR1 0x4
|
|
# define INTC_INTPR1_INTLEV_OFFSET 30
|
|
# define INTC_INTPR1_INTLEV_SIZE 2
|
|
# define INTC_INTPR1_OFFSET_OFFSET 0
|
|
# define INTC_INTPR1_OFFSET_SIZE 24
|
|
#define INTC_INTREQ1 0x104
|
|
# define INTC_INTREQ1_IREQUEST32_OFFSET 0
|
|
# define INTC_INTREQ1_IREQUEST32_SIZE 1
|
|
# define INTC_INTREQ1_IREQUEST33_OFFSET 1
|
|
# define INTC_INTREQ1_IREQUEST33_SIZE 1
|
|
# define INTC_INTREQ1_IREQUEST34_OFFSET 2
|
|
# define INTC_INTREQ1_IREQUEST34_SIZE 1
|
|
# define INTC_INTREQ1_IREQUEST35_OFFSET 3
|
|
# define INTC_INTREQ1_IREQUEST35_SIZE 1
|
|
# define INTC_INTREQ1_IREQUEST36_OFFSET 4
|
|
# define INTC_INTREQ1_IREQUEST36_SIZE 1
|
|
# define INTC_INTREQ1_IREQUEST37_OFFSET 5
|
|
# define INTC_INTREQ1_IREQUEST37_SIZE 1
|
|
#define INTC_INTPR2 0x8
|
|
# define INTC_INTPR2_INTLEV_OFFSET 30
|
|
# define INTC_INTPR2_INTLEV_SIZE 2
|
|
# define INTC_INTPR2_OFFSET_OFFSET 0
|
|
# define INTC_INTPR2_OFFSET_SIZE 24
|
|
#define INTC_INTREQ2 0x108
|
|
# define INTC_INTREQ2_IREQUEST64_OFFSET 0
|
|
# define INTC_INTREQ2_IREQUEST64_SIZE 1
|
|
# define INTC_INTREQ2_IREQUEST65_OFFSET 1
|
|
# define INTC_INTREQ2_IREQUEST65_SIZE 1
|
|
# define INTC_INTREQ2_IREQUEST66_OFFSET 2
|
|
# define INTC_INTREQ2_IREQUEST66_SIZE 1
|
|
# define INTC_INTREQ2_IREQUEST67_OFFSET 3
|
|
# define INTC_INTREQ2_IREQUEST67_SIZE 1
|
|
# define INTC_INTREQ2_IREQUEST68_OFFSET 4
|
|
# define INTC_INTREQ2_IREQUEST68_SIZE 1
|
|
#define INTC_INTPR3 0xc
|
|
# define INTC_INTPR3_INTLEV_OFFSET 30
|
|
# define INTC_INTPR3_INTLEV_SIZE 2
|
|
# define INTC_INTPR3_OFFSET_OFFSET 0
|
|
# define INTC_INTPR3_OFFSET_SIZE 24
|
|
#define INTC_INTREQ3 0x10c
|
|
# define INTC_INTREQ3_IREQUEST96_OFFSET 0
|
|
# define INTC_INTREQ3_IREQUEST96_SIZE 1
|
|
#define INTC_INTPR4 0x10
|
|
# define INTC_INTPR4_INTLEV_OFFSET 30
|
|
# define INTC_INTPR4_INTLEV_SIZE 2
|
|
# define INTC_INTPR4_OFFSET_OFFSET 0
|
|
# define INTC_INTPR4_OFFSET_SIZE 24
|
|
#define INTC_INTREQ4 0x110
|
|
# define INTC_INTREQ4_IREQUEST128_OFFSET 0
|
|
# define INTC_INTREQ4_IREQUEST128_SIZE 1
|
|
#define INTC_INTPR5 0x14
|
|
# define INTC_INTPR5_INTLEV_OFFSET 30
|
|
# define INTC_INTPR5_INTLEV_SIZE 2
|
|
# define INTC_INTPR5_OFFSET_OFFSET 0
|
|
# define INTC_INTPR5_OFFSET_SIZE 24
|
|
#define INTC_INTREQ5 0x114
|
|
# define INTC_INTREQ5_IREQUEST160_OFFSET 0
|
|
# define INTC_INTREQ5_IREQUEST160_SIZE 1
|
|
#define INTC_INTPR6 0x18
|
|
# define INTC_INTPR6_INTLEV_OFFSET 30
|
|
# define INTC_INTPR6_INTLEV_SIZE 2
|
|
# define INTC_INTPR6_OFFSET_OFFSET 0
|
|
# define INTC_INTPR6_OFFSET_SIZE 24
|
|
#define INTC_INTREQ6 0x118
|
|
# define INTC_INTREQ6_IREQUEST192_OFFSET 0
|
|
# define INTC_INTREQ6_IREQUEST192_SIZE 1
|
|
#define INTC_INTPR7 0x1c
|
|
# define INTC_INTPR7_INTLEV_OFFSET 30
|
|
# define INTC_INTPR7_INTLEV_SIZE 2
|
|
# define INTC_INTPR7_OFFSET_OFFSET 0
|
|
# define INTC_INTPR7_OFFSET_SIZE 24
|
|
#define INTC_INTREQ7 0x11c
|
|
# define INTC_INTREQ7_IREQUEST224_OFFSET 0
|
|
# define INTC_INTREQ7_IREQUEST224_SIZE 1
|
|
#define INTC_INTPR8 0x20
|
|
# define INTC_INTPR8_INTLEV_OFFSET 30
|
|
# define INTC_INTPR8_INTLEV_SIZE 2
|
|
# define INTC_INTPR8_OFFSET_OFFSET 0
|
|
# define INTC_INTPR8_OFFSET_SIZE 24
|
|
#define INTC_INTREQ8 0x120
|
|
# define INTC_INTREQ8_IREQUEST256_OFFSET 0
|
|
# define INTC_INTREQ8_IREQUEST256_SIZE 1
|
|
#define INTC_INTPR9 0x24
|
|
# define INTC_INTPR9_INTLEV_OFFSET 30
|
|
# define INTC_INTPR9_INTLEV_SIZE 2
|
|
# define INTC_INTPR9_OFFSET_OFFSET 0
|
|
# define INTC_INTPR9_OFFSET_SIZE 24
|
|
#define INTC_INTREQ9 0x124
|
|
# define INTC_INTREQ9_IREQUEST288_OFFSET 0
|
|
# define INTC_INTREQ9_IREQUEST288_SIZE 1
|
|
#define INTC_INTPR10 0x28
|
|
# define INTC_INTPR10_INTLEV_OFFSET 30
|
|
# define INTC_INTPR10_INTLEV_SIZE 2
|
|
# define INTC_INTPR10_OFFSET_OFFSET 0
|
|
# define INTC_INTPR10_OFFSET_SIZE 24
|
|
#define INTC_INTREQ10 0x128
|
|
# define INTC_INTREQ10_IREQUEST320_OFFSET 0
|
|
# define INTC_INTREQ10_IREQUEST320_SIZE 1
|
|
#define INTC_INTPR11 0x2c
|
|
# define INTC_INTPR11_INTLEV_OFFSET 30
|
|
# define INTC_INTPR11_INTLEV_SIZE 2
|
|
# define INTC_INTPR11_OFFSET_OFFSET 0
|
|
# define INTC_INTPR11_OFFSET_SIZE 24
|
|
#define INTC_INTREQ11 0x12c
|
|
# define INTC_INTREQ11_IREQUEST352_OFFSET 0
|
|
# define INTC_INTREQ11_IREQUEST352_SIZE 1
|
|
#define INTC_INTPR12 0x30
|
|
# define INTC_INTPR12_INTLEV_OFFSET 30
|
|
# define INTC_INTPR12_INTLEV_SIZE 2
|
|
# define INTC_INTPR12_OFFSET_OFFSET 0
|
|
# define INTC_INTPR12_OFFSET_SIZE 24
|
|
#define INTC_INTREQ12 0x130
|
|
# define INTC_INTREQ12_IREQUEST384_OFFSET 0
|
|
# define INTC_INTREQ12_IREQUEST384_SIZE 1
|
|
#define INTC_INTPR13 0x34
|
|
# define INTC_INTPR13_INTLEV_OFFSET 30
|
|
# define INTC_INTPR13_INTLEV_SIZE 2
|
|
# define INTC_INTPR13_OFFSET_OFFSET 0
|
|
# define INTC_INTPR13_OFFSET_SIZE 24
|
|
#define INTC_INTREQ13 0x134
|
|
# define INTC_INTREQ13_IREQUEST416_OFFSET 0
|
|
# define INTC_INTREQ13_IREQUEST416_SIZE 1
|
|
#define INTC_INTPR14 0x38
|
|
# define INTC_INTPR14_INTLEV_OFFSET 30
|
|
# define INTC_INTPR14_INTLEV_SIZE 2
|
|
# define INTC_INTPR14_OFFSET_OFFSET 0
|
|
# define INTC_INTPR14_OFFSET_SIZE 24
|
|
#define INTC_INTREQ14 0x138
|
|
# define INTC_INTREQ14_IREQUEST448_OFFSET 0
|
|
# define INTC_INTREQ14_IREQUEST448_SIZE 1
|
|
#define INTC_INTPR15 0x3c
|
|
# define INTC_INTPR15_INTLEV_OFFSET 30
|
|
# define INTC_INTPR15_INTLEV_SIZE 2
|
|
# define INTC_INTPR15_OFFSET_OFFSET 0
|
|
# define INTC_INTPR15_OFFSET_SIZE 24
|
|
#define INTC_INTREQ15 0x13c
|
|
# define INTC_INTREQ15_IREQUEST480_OFFSET 0
|
|
# define INTC_INTREQ15_IREQUEST480_SIZE 1
|
|
#define INTC_INTPR16 0x40
|
|
# define INTC_INTPR16_INTLEV_OFFSET 30
|
|
# define INTC_INTPR16_INTLEV_SIZE 2
|
|
# define INTC_INTPR16_OFFSET_OFFSET 0
|
|
# define INTC_INTPR16_OFFSET_SIZE 24
|
|
#define INTC_INTREQ16 0x140
|
|
# define INTC_INTREQ16_IREQUEST512_OFFSET 0
|
|
# define INTC_INTREQ16_IREQUEST512_SIZE 1
|
|
#define INTC_INTPR17 0x44
|
|
# define INTC_INTPR17_INTLEV_OFFSET 30
|
|
# define INTC_INTPR17_INTLEV_SIZE 2
|
|
# define INTC_INTPR17_OFFSET_OFFSET 0
|
|
# define INTC_INTPR17_OFFSET_SIZE 24
|
|
#define INTC_INTREQ17 0x144
|
|
# define INTC_INTREQ17_IREQUEST544_OFFSET 0
|
|
# define INTC_INTREQ17_IREQUEST544_SIZE 1
|
|
#define INTC_INTPR18 0x48
|
|
# define INTC_INTPR18_INTLEV_OFFSET 30
|
|
# define INTC_INTPR18_INTLEV_SIZE 2
|
|
# define INTC_INTPR18_OFFSET_OFFSET 0
|
|
# define INTC_INTPR18_OFFSET_SIZE 24
|
|
#define INTC_INTREQ18 0x148
|
|
# define INTC_INTREQ18_IREQUEST576_OFFSET 0
|
|
# define INTC_INTREQ18_IREQUEST576_SIZE 1
|
|
#define INTC_INTPR19 0x4c
|
|
# define INTC_INTPR19_INTLEV_OFFSET 30
|
|
# define INTC_INTPR19_INTLEV_SIZE 2
|
|
# define INTC_INTPR19_OFFSET_OFFSET 0
|
|
# define INTC_INTPR19_OFFSET_SIZE 24
|
|
#define INTC_INTREQ19 0x14c
|
|
# define INTC_INTREQ19_IREQUEST608_OFFSET 0
|
|
# define INTC_INTREQ19_IREQUEST608_SIZE 1
|
|
# define INTC_INTREQ19_IREQUEST609_OFFSET 1
|
|
# define INTC_INTREQ19_IREQUEST609_SIZE 1
|
|
# define INTC_INTREQ19_IREQUEST610_OFFSET 2
|
|
# define INTC_INTREQ19_IREQUEST610_SIZE 1
|
|
# define INTC_INTREQ19_IREQUEST611_OFFSET 3
|
|
# define INTC_INTREQ19_IREQUEST611_SIZE 1
|
|
#define INTC_INTPR20 0x50
|
|
# define INTC_INTPR20_INTLEV_OFFSET 30
|
|
# define INTC_INTPR20_INTLEV_SIZE 2
|
|
# define INTC_INTPR20_OFFSET_OFFSET 0
|
|
# define INTC_INTPR20_OFFSET_SIZE 24
|
|
#define INTC_INTREQ20 0x150
|
|
# define INTC_INTREQ20_IREQUEST640_OFFSET 0
|
|
# define INTC_INTREQ20_IREQUEST640_SIZE 1
|
|
#define INTC_INTPR21 0x54
|
|
# define INTC_INTPR21_INTLEV_OFFSET 30
|
|
# define INTC_INTPR21_INTLEV_SIZE 2
|
|
# define INTC_INTPR21_OFFSET_OFFSET 0
|
|
# define INTC_INTPR21_OFFSET_SIZE 24
|
|
#define INTC_INTREQ21 0x154
|
|
# define INTC_INTREQ21_IREQUEST672_OFFSET 0
|
|
# define INTC_INTREQ21_IREQUEST672_SIZE 1
|
|
#define INTC_INTPR22 0x58
|
|
# define INTC_INTPR22_INTLEV_OFFSET 30
|
|
# define INTC_INTPR22_INTLEV_SIZE 2
|
|
# define INTC_INTPR22_OFFSET_OFFSET 0
|
|
# define INTC_INTPR22_OFFSET_SIZE 24
|
|
#define INTC_INTREQ22 0x158
|
|
# define INTC_INTREQ22_IREQUEST704_OFFSET 0
|
|
# define INTC_INTREQ22_IREQUEST704_SIZE 1
|
|
# define INTC_INTREQ22_IREQUEST705_OFFSET 1
|
|
# define INTC_INTREQ22_IREQUEST705_SIZE 1
|
|
# define INTC_INTREQ22_IREQUEST706_OFFSET 2
|
|
# define INTC_INTREQ22_IREQUEST706_SIZE 1
|
|
#define INTC_INTPR23 0x5c
|
|
# define INTC_INTPR23_INTLEV_OFFSET 30
|
|
# define INTC_INTPR23_INTLEV_SIZE 2
|
|
# define INTC_INTPR23_OFFSET_OFFSET 0
|
|
# define INTC_INTPR23_OFFSET_SIZE 24
|
|
#define INTC_INTREQ23 0x15c
|
|
# define INTC_INTREQ23_IREQUEST736_OFFSET 0
|
|
# define INTC_INTREQ23_IREQUEST736_SIZE 1
|
|
# define INTC_INTREQ23_IREQUEST737_OFFSET 1
|
|
# define INTC_INTREQ23_IREQUEST737_SIZE 1
|
|
# define INTC_INTREQ23_IREQUEST738_OFFSET 2
|
|
# define INTC_INTREQ23_IREQUEST738_SIZE 1
|
|
#define INTC_INTPR24 0x60
|
|
# define INTC_INTPR24_INTLEV_OFFSET 30
|
|
# define INTC_INTPR24_INTLEV_SIZE 2
|
|
# define INTC_INTPR24_OFFSET_OFFSET 0
|
|
# define INTC_INTPR24_OFFSET_SIZE 24
|
|
#define INTC_INTREQ24 0x160
|
|
# define INTC_INTREQ24_IREQUEST768_OFFSET 0
|
|
# define INTC_INTREQ24_IREQUEST768_SIZE 1
|
|
#define INTC_INTPR25 0x64
|
|
# define INTC_INTPR25_INTLEV_OFFSET 30
|
|
# define INTC_INTPR25_INTLEV_SIZE 2
|
|
# define INTC_INTPR25_OFFSET_OFFSET 0
|
|
# define INTC_INTPR25_OFFSET_SIZE 24
|
|
#define INTC_INTREQ25 0x164
|
|
# define INTC_INTREQ25_IREQUEST800_OFFSET 0
|
|
# define INTC_INTREQ25_IREQUEST800_SIZE 1
|
|
#define INTC_INTPR26 0x68
|
|
# define INTC_INTPR26_INTLEV_OFFSET 30
|
|
# define INTC_INTPR26_INTLEV_SIZE 2
|
|
# define INTC_INTPR26_OFFSET_OFFSET 0
|
|
# define INTC_INTPR26_OFFSET_SIZE 24
|
|
#define INTC_INTREQ26 0x168
|
|
# define INTC_INTREQ26_IREQUEST832_OFFSET 0
|
|
# define INTC_INTREQ26_IREQUEST832_SIZE 1
|
|
#define INTC_INTPR27 0x6c
|
|
# define INTC_INTPR27_INTLEV_OFFSET 30
|
|
# define INTC_INTPR27_INTLEV_SIZE 2
|
|
# define INTC_INTPR27_OFFSET_OFFSET 0
|
|
# define INTC_INTPR27_OFFSET_SIZE 24
|
|
#define INTC_INTREQ27 0x16c
|
|
# define INTC_INTREQ27_IREQUEST864_OFFSET 0
|
|
# define INTC_INTREQ27_IREQUEST864_SIZE 1
|
|
#define INTC_INTPR28 0x70
|
|
# define INTC_INTPR28_INTLEV_OFFSET 30
|
|
# define INTC_INTPR28_INTLEV_SIZE 2
|
|
# define INTC_INTPR28_OFFSET_OFFSET 0
|
|
# define INTC_INTPR28_OFFSET_SIZE 24
|
|
#define INTC_INTREQ28 0x170
|
|
# define INTC_INTREQ28_IREQUEST896_OFFSET 0
|
|
# define INTC_INTREQ28_IREQUEST896_SIZE 1
|
|
#define INTC_INTPR29 0x74
|
|
# define INTC_INTPR29_INTLEV_OFFSET 30
|
|
# define INTC_INTPR29_INTLEV_SIZE 2
|
|
# define INTC_INTPR29_OFFSET_OFFSET 0
|
|
# define INTC_INTPR29_OFFSET_SIZE 24
|
|
#define INTC_INTREQ29 0x174
|
|
# define INTC_INTREQ29_IREQUEST928_OFFSET 0
|
|
# define INTC_INTREQ29_IREQUEST928_SIZE 1
|
|
#define INTC_INTPR30 0x78
|
|
# define INTC_INTPR30_INTLEV_OFFSET 30
|
|
# define INTC_INTPR30_INTLEV_SIZE 2
|
|
# define INTC_INTPR30_OFFSET_OFFSET 0
|
|
# define INTC_INTPR30_OFFSET_SIZE 24
|
|
#define INTC_INTREQ30 0x178
|
|
# define INTC_INTREQ30_IREQUEST960_OFFSET 0
|
|
# define INTC_INTREQ30_IREQUEST960_SIZE 1
|
|
#define INTC_INTPR31 0x7c
|
|
# define INTC_INTPR31_INTLEV_OFFSET 30
|
|
# define INTC_INTPR31_INTLEV_SIZE 2
|
|
# define INTC_INTPR31_OFFSET_OFFSET 0
|
|
# define INTC_INTPR31_OFFSET_SIZE 24
|
|
#define INTC_INTREQ31 0x17c
|
|
# define INTC_INTREQ31_IREQUEST992_OFFSET 0
|
|
# define INTC_INTREQ31_IREQUEST992_SIZE 1
|
|
#define INTC_INTPR32 0x80
|
|
# define INTC_INTPR32_INTLEV_OFFSET 30
|
|
# define INTC_INTPR32_INTLEV_SIZE 2
|
|
# define INTC_INTPR32_OFFSET_OFFSET 0
|
|
# define INTC_INTPR32_OFFSET_SIZE 24
|
|
#define INTC_INTREQ32 0x180
|
|
# define INTC_INTREQ32_IREQUEST1024_OFFSET 0
|
|
# define INTC_INTREQ32_IREQUEST1024_SIZE 1
|
|
#define INTC_INTCAUSE0 0x20c
|
|
# define INTC_INTCAUSE0_CAUSEGRP_OFFSET 0
|
|
# define INTC_INTCAUSE0_CAUSEGRP_SIZE 6
|
|
#define INTC_INTCAUSE1 0x208
|
|
# define INTC_INTCAUSE1_CAUSEGRP_OFFSET 0
|
|
# define INTC_INTCAUSE1_CAUSEGRP_SIZE 6
|
|
#define INTC_INTCAUSE2 0x204
|
|
# define INTC_INTCAUSE2_CAUSEGRP_OFFSET 0
|
|
# define INTC_INTCAUSE2_CAUSEGRP_SIZE 6
|
|
#define INTC_INTCAUSE3 0x200
|
|
# define INTC_INTCAUSE3_CAUSEGRP_OFFSET 0
|
|
# define INTC_INTCAUSE3_CAUSEGRP_SIZE 6
|
|
|
|
#define INTC_BIT(name) (1 << INTC_##name##_OFFSET)
|
|
#define INTC_MKBF(name, value) (((value) & ((1 << INTC_##name##_SIZE) - 1)) << INTC_##name##_OFFSET)
|
|
#define INTC_GETBF(name, value) (((value) >> INTC_##name##_OFFSET) & ((1 << INTC_##name##_SIZE) - 1))
|
|
|
|
#define intc_readl(port,reg) \
|
|
__raw_readl((port)->regs + INTC_##reg)
|
|
#define intc_writel(port,reg,value) \
|
|
__raw_writel((value), (port)->regs + INTC_##reg)
|
|
|
|
#endif /* __ASM_AVR32_PERIHP_INTC_H__ */
|