Commit 7896cd0f authored by Paul Mundt's avatar Paul Mundt

Merge branch 'sh/intc-extension'

parents 7561f2dd d5190953
This diff is collapsed.
...@@ -45,7 +45,7 @@ struct intc_sense_reg { ...@@ -45,7 +45,7 @@ struct intc_sense_reg {
#define INTC_SMP(stride, nr) #define INTC_SMP(stride, nr)
#endif #endif
struct intc_desc { struct intc_hw_desc {
struct intc_vect *vectors; struct intc_vect *vectors;
unsigned int nr_vectors; unsigned int nr_vectors;
struct intc_group *groups; struct intc_group *groups;
...@@ -56,29 +56,39 @@ struct intc_desc { ...@@ -56,29 +56,39 @@ struct intc_desc {
unsigned int nr_prio_regs; unsigned int nr_prio_regs;
struct intc_sense_reg *sense_regs; struct intc_sense_reg *sense_regs;
unsigned int nr_sense_regs; unsigned int nr_sense_regs;
char *name;
struct intc_mask_reg *ack_regs; struct intc_mask_reg *ack_regs;
unsigned int nr_ack_regs; unsigned int nr_ack_regs;
}; };
#define _INTC_ARRAY(a) a, sizeof(a)/sizeof(*a) #define _INTC_ARRAY(a) a, sizeof(a)/sizeof(*a)
#define INTC_HW_DESC(vectors, groups, mask_regs, \
prio_regs, sense_regs, ack_regs) \
{ \
_INTC_ARRAY(vectors), _INTC_ARRAY(groups), \
_INTC_ARRAY(mask_regs), _INTC_ARRAY(prio_regs), \
_INTC_ARRAY(sense_regs), _INTC_ARRAY(ack_regs), \
}
struct intc_desc {
char *name;
intc_enum force_enable;
struct intc_hw_desc hw;
};
#define DECLARE_INTC_DESC(symbol, chipname, vectors, groups, \ #define DECLARE_INTC_DESC(symbol, chipname, vectors, groups, \
mask_regs, prio_regs, sense_regs) \ mask_regs, prio_regs, sense_regs) \
struct intc_desc symbol __initdata = { \ struct intc_desc symbol __initdata = { \
_INTC_ARRAY(vectors), _INTC_ARRAY(groups), \ .name = chipname, \
_INTC_ARRAY(mask_regs), _INTC_ARRAY(prio_regs), \ .hw = INTC_HW_DESC(vectors, groups, mask_regs, \
_INTC_ARRAY(sense_regs), \ prio_regs, sense_regs, NULL), \
chipname, \
} }
#define DECLARE_INTC_DESC_ACK(symbol, chipname, vectors, groups, \ #define DECLARE_INTC_DESC_ACK(symbol, chipname, vectors, groups, \
mask_regs, prio_regs, sense_regs, ack_regs) \ mask_regs, prio_regs, sense_regs, ack_regs) \
struct intc_desc symbol __initdata = { \ struct intc_desc symbol __initdata = { \
_INTC_ARRAY(vectors), _INTC_ARRAY(groups), \ .name = chipname, \
_INTC_ARRAY(mask_regs), _INTC_ARRAY(prio_regs), \ .hw = INTC_HW_DESC(vectors, groups, mask_regs, \
_INTC_ARRAY(sense_regs), \ prio_regs, sense_regs, ack_regs), \
chipname, \
_INTC_ARRAY(ack_regs), \
} }
void __init register_intc_controller(struct intc_desc *desc); void __init register_intc_controller(struct intc_desc *desc);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment