mpc52xx_pic.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /*
  2. * Header file for Freescale MPC52xx Interrupt controller
  3. *
  4. * Copyright (C) 2004-2005 Sylvain Munaut <tnt@246tNt.com>
  5. * Copyright (C) 2003 MontaVista, Software, Inc.
  6. *
  7. * This file is licensed under the terms of the GNU General Public License
  8. * version 2. This program is licensed "as is" without any warranty of any
  9. * kind, whether express or implied.
  10. */
  11. #ifndef __POWERPC_SYSDEV_MPC52xx_PIC_H__
  12. #define __POWERPC_SYSDEV_MPC52xx_PIC_H__
  13. #include <asm/types.h>
  14. /* HW IRQ mapping */
  15. #define MPC52xx_IRQ_L1_CRIT (0)
  16. #define MPC52xx_IRQ_L1_MAIN (1)
  17. #define MPC52xx_IRQ_L1_PERP (2)
  18. #define MPC52xx_IRQ_L1_SDMA (3)
  19. #define MPC52xx_IRQ_L1_OFFSET (6)
  20. #define MPC52xx_IRQ_L1_MASK (0x00c0)
  21. #define MPC52xx_IRQ_L2_OFFSET (0)
  22. #define MPC52xx_IRQ_L2_MASK (0x003f)
  23. #define MPC52xx_IRQ_HIGHTESTHWIRQ (0xd0)
  24. /* Interrupt controller Register set */
  25. struct mpc52xx_intr {
  26. u32 per_mask; /* INTR + 0x00 */
  27. u32 per_pri1; /* INTR + 0x04 */
  28. u32 per_pri2; /* INTR + 0x08 */
  29. u32 per_pri3; /* INTR + 0x0c */
  30. u32 ctrl; /* INTR + 0x10 */
  31. u32 main_mask; /* INTR + 0x14 */
  32. u32 main_pri1; /* INTR + 0x18 */
  33. u32 main_pri2; /* INTR + 0x1c */
  34. u32 reserved1; /* INTR + 0x20 */
  35. u32 enc_status; /* INTR + 0x24 */
  36. u32 crit_status; /* INTR + 0x28 */
  37. u32 main_status; /* INTR + 0x2c */
  38. u32 per_status; /* INTR + 0x30 */
  39. u32 reserved2; /* INTR + 0x34 */
  40. u32 per_error; /* INTR + 0x38 */
  41. };
  42. #endif /* __POWERPC_SYSDEV_MPC52xx_PIC_H__ */