Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 68196
b: refs/heads/master
c: d59645d
h: refs/heads/master
v: v3
  • Loading branch information
Magnus Damm authored and Paul Mundt committed Sep 21, 2007
1 parent 63c7828 commit 2ad1146
Show file tree
Hide file tree
Showing 9 changed files with 20 additions and 110 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ad89f87a84040a57c4a78ca2759b364f72f423ab
refs/heads/master: d59645d6ba67337ff09369d9da4fc47f7dc361cc
2 changes: 1 addition & 1 deletion trunk/arch/sh/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ config SH_MPC1211

config SH_SH03
bool "Interface CTP/PCI-SH03"
depends on CPU_SUBTYPE_SH7751 && BROKEN
depends on CPU_SUBTYPE_SH7751
select CPU_HAS_IPR_IRQ
select SYS_SUPPORTS_PCI
help
Expand Down
26 changes: 1 addition & 25 deletions trunk/arch/sh/boards/sh03/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,33 +15,9 @@
#include <asm/sh03/sh03.h>
#include <asm/addrspace.h>

static struct ipr_data ipr_irq_table[] = {
{ IRL0_IRQ, 0, IRL0_IPR_POS, IRL0_PRIORITY },
{ IRL1_IRQ, 0, IRL1_IPR_POS, IRL1_PRIORITY },
{ IRL2_IRQ, 0, IRL2_IPR_POS, IRL2_PRIORITY },
{ IRL3_IRQ, 0, IRL3_IPR_POS, IRL3_PRIORITY },
};

static unsigned long ipr_offsets[] = {
INTC_IPRD,
};

static struct ipr_desc ipr_irq_desc = {
.ipr_offsets = ipr_offsets,
.nr_offsets = ARRAY_SIZE(ipr_offsets),

.ipr_data = ipr_irq_table,
.nr_irqs = ARRAY_SIZE(ipr_irq_table),

.chip = {
.name = "IPR-sh03",
},
};

static void __init init_sh03_IRQ(void)
{
ctrl_outw(ctrl_inw(INTC_ICR) | INTC_ICR_IRLM, INTC_ICR);
register_ipr_controller(&ipr_irq_desc);
plat_irq_setup_pins(IRQ_MODE_IRQ);
}

extern void *cf_io_base;
Expand Down
30 changes: 2 additions & 28 deletions trunk/arch/sh/boards/snapgear/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,37 +68,11 @@ module_init(eraseconfig_init);
* IRL3 = crypto
*/

static struct ipr_data ipr_irq_table[] = {
{ IRL0_IRQ, 0, IRL0_IPR_POS, IRL0_PRIORITY },
{ IRL1_IRQ, 0, IRL1_IPR_POS, IRL1_PRIORITY },
{ IRL2_IRQ, 0, IRL2_IPR_POS, IRL2_PRIORITY },
{ IRL3_IRQ, 0, IRL3_IPR_POS, IRL3_PRIORITY },
};

static unsigned long ipr_offsets[] = {
INTC_IPRD,
};

static struct ipr_desc ipr_irq_desc = {
.ipr_offsets = ipr_offsets,
.nr_offsets = ARRAY_SIZE(ipr_offsets),

.ipr_data = ipr_irq_table,
.nr_irqs = ARRAY_SIZE(ipr_irq_table),

.chip = {
.name = "IPR-snapgear",
},
};

static void __init init_snapgear_IRQ(void)
{
/* enable individual interrupt mode for externals */
ctrl_outw(ctrl_inw(INTC_ICR) | INTC_ICR_IRLM, INTC_ICR);

printk("Setup SnapGear IRQ/IPR ...\n");

register_ipr_controller(&ipr_irq_desc);
/* enable individual interrupt mode for externals */
plat_irq_setup_pins(IRQ_MODE_IRQ);
}

/*
Expand Down
30 changes: 1 addition & 29 deletions trunk/arch/sh/boards/titan/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,38 +12,10 @@
#include <asm/titan.h>
#include <asm/io.h>

static struct ipr_data ipr_irq_table[] = {
/* IRQ, IPR idx, shift, prio */
{ TITAN_IRQ_WAN, 3, 12, 8 }, /* eth0 (WAN) */
{ TITAN_IRQ_LAN, 3, 8, 8 }, /* eth1 (LAN) */
{ TITAN_IRQ_MPCIA, 3, 4, 8 }, /* mPCI A (top) */
{ TITAN_IRQ_USB, 3, 0, 8 }, /* mPCI B (bottom), USB */
};

static unsigned long ipr_offsets[] = { /* stolen from setup-sh7750.c */
0xffd00004UL, /* 0: IPRA */
0xffd00008UL, /* 1: IPRB */
0xffd0000cUL, /* 2: IPRC */
0xffd00010UL, /* 3: IPRD */
};

static struct ipr_desc ipr_irq_desc = {
.ipr_offsets = ipr_offsets,
.nr_offsets = ARRAY_SIZE(ipr_offsets),

.ipr_data = ipr_irq_table,
.nr_irqs = ARRAY_SIZE(ipr_irq_table),

.chip = {
.name = "IPR-titan",
},
};
static void __init init_titan_irq(void)
{
/* enable individual interrupt mode for externals */
ipr_irq_enable_irlm();
/* register ipr irqs */
register_ipr_controller(&ipr_irq_desc);
plat_irq_setup_pins(IRQ_MODE_IRQ);
}

static struct sh_machine_vector mv_titan __initmv = {
Expand Down
14 changes: 10 additions & 4 deletions trunk/arch/sh/kernel/cpu/sh4/setup-sh7750.c
Original file line number Diff line number Diff line change
Expand Up @@ -282,13 +282,19 @@ void __init plat_irq_setup(void)
#define INTC_ICR 0xffd00000UL
#define INTC_ICR_IRLM (1<<7)

/* enable individual interrupt mode for external interupts */
void __init ipr_irq_enable_irlm(void)
void __init plat_irq_setup_pins(int mode)
{
#if defined(CONFIG_CPU_SUBTYPE_SH7750) || defined(CONFIG_CPU_SUBTYPE_SH7091)
BUG(); /* impossible to mask interrupts on SH7750 and SH7091 */
return;
#endif
register_intc_controller(&intc_desc_irlm);

ctrl_outw(ctrl_inw(INTC_ICR) | INTC_ICR_IRLM, INTC_ICR);
switch (mode) {
case IRQ_MODE_IRQ: /* individual interrupt mode for IRL3-0 */
ctrl_outw(ctrl_inw(INTC_ICR) | INTC_ICR_IRLM, INTC_ICR);
register_intc_controller(&intc_desc_irlm);
break;
default:
BUG();
}
}
5 changes: 0 additions & 5 deletions trunk/include/asm-sh/hw_irq.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,6 @@ struct ipr_desc {

void register_ipr_controller(struct ipr_desc *);

/*
* Enable individual interrupt mode for external IPR IRQs.
*/
void __init ipr_irq_enable_irlm(void);

typedef unsigned char intc_enum;

struct intc_vect {
Expand Down
9 changes: 0 additions & 9 deletions trunk/include/asm-sh/sh03/io.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,13 @@

#include <linux/time.h>

#define INTC_IPRD 0xffd00010UL

#define IRL0_IRQ 2
#define IRL0_IPR_POS 3
#define IRL0_PRIORITY 13

#define IRL1_IRQ 5
#define IRL1_IPR_POS 2
#define IRL1_PRIORITY 10

#define IRL2_IRQ 8
#define IRL2_IPR_POS 1
#define IRL2_PRIORITY 7

#define IRL3_IRQ 11
#define IRL3_IPR_POS 0
#define IRL3_PRIORITY 4

void heartbeat_sh03(void);
Expand Down
12 changes: 4 additions & 8 deletions trunk/include/asm-sh/snapgear.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,16 @@
* is the interrupt :-)
*/

#define IRL0_IRQ 2
#define IRL0_IPR_POS 3
#define IRL0_IRQ 2
#define IRL0_PRIORITY 13

#define IRL1_IRQ 5
#define IRL1_IPR_POS 2
#define IRL1_IRQ 5
#define IRL1_PRIORITY 10

#define IRL2_IRQ 8
#define IRL2_IPR_POS 1
#define IRL2_IRQ 8
#define IRL2_PRIORITY 7

#define IRL3_IRQ 11
#define IRL3_IPR_POS 0
#define IRL3_IRQ 11
#define IRL3_PRIORITY 4
#endif

Expand Down

0 comments on commit 2ad1146

Please sign in to comment.