X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-ppc%2Fppc4xx_pic.h;h=5141aad30621c4350acc60617a8ff38709a47b8f;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=24b0c0b7c50524a3be2feaa246861b0355f754e3;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/include/asm-ppc/ppc4xx_pic.h b/include/asm-ppc/ppc4xx_pic.h index 24b0c0b7c..5141aad30 100644 --- a/include/asm-ppc/ppc4xx_pic.h +++ b/include/asm-ppc/ppc4xx_pic.h @@ -1,28 +1,53 @@ /* + * include/asm-ppc/ppc4xx_pic.h * - * Copyright (c) 1999 Grant Erickson + * Interrupt controller driver for PowerPC 4xx-based processors. * - * Module name: ppc4xx_pic.h + * Copyright (c) 1999 Grant Erickson * - * Description: - * Interrupt controller driver for PowerPC 4xx-based processors. + * Eugene Surovegin or + * Copyright (c) 2004 Zultys Technologies + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. */ #ifndef __PPC4XX_PIC_H__ #define __PPC4XX_PIC_H__ #include +#include #include -/* External Global Variables */ - -extern struct hw_interrupt_type *ppc4xx_pic; -extern unsigned int ibm4xxPIC_NumInitSenses; -extern unsigned char *ibm4xxPIC_InitSenses; - -/* Function Prototypes */ +/* "Fixed" UIC settings (they are chip, not board specific), + * e.g. polarity/triggerring for internal interrupt sources. + * + * Platform port should provide NR_UICS-sized array named ppc4xx_core_uic_cfg + * with these "fixed" settings: .polarity contains exact value which will + * be written (masked with "ext_irq_mask") into UICx_PR register, + * .triggering - to UICx_TR. + * + * Settings for external IRQs can be specified separately by the + * board support code. In this case properly sized array of unsigned + * char named ppc4xx_uic_ext_irq_cfg should be filled with correct + * values using IRQ_SENSE_XXXXX and IRQ_POLARITY_XXXXXXX defines. + * + * If these arrays aren't provided, UIC initialization code keeps firmware + * configuration. Also, ppc4xx_uic_ext_irq_cfg implies ppc4xx_core_uic_cfg + * is defined. + * + * Both ppc4xx_core_uic_cfg and ppc4xx_uic_ext_irq_cfg are declared as + * "weak" symbols in ppc4xx_pic.c + * + */ +struct ppc4xx_uic_settings { + u32 polarity; + u32 triggering; + u32 ext_irq_mask; +}; extern void ppc4xx_pic_init(void); -extern int ppc4xx_pic_get_irq(struct pt_regs *regs); -#endif /* __PPC4XX_PIC_H__ */ +#endif /* __PPC4XX_PIC_H__ */