diff options
Diffstat (limited to 'arch/powerpc/platforms/83xx/mpc834x_itx.c')
-rw-r--r-- | arch/powerpc/platforms/83xx/mpc834x_itx.c | 49 |
1 files changed, 9 insertions, 40 deletions
diff --git a/arch/powerpc/platforms/83xx/mpc834x_itx.c b/arch/powerpc/platforms/83xx/mpc834x_itx.c index b46305645d38..cf3967a66fb5 100644 --- a/arch/powerpc/platforms/83xx/mpc834x_itx.c +++ b/arch/powerpc/platforms/83xx/mpc834x_itx.c | |||
@@ -46,26 +46,6 @@ unsigned long isa_io_base = 0; | |||
46 | unsigned long isa_mem_base = 0; | 46 | unsigned long isa_mem_base = 0; |
47 | #endif | 47 | #endif |
48 | 48 | ||
49 | #ifdef CONFIG_PCI | ||
50 | static int | ||
51 | mpc83xx_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) | ||
52 | { | ||
53 | static char pci_irq_table[][4] = | ||
54 | /* | ||
55 | * PCI IDSEL/INTPIN->INTLINE | ||
56 | * A B C D | ||
57 | */ | ||
58 | { | ||
59 | {PIRQB, PIRQC, PIRQD, PIRQA}, /* idsel 0x0e */ | ||
60 | {PIRQA, PIRQB, PIRQC, PIRQD}, /* idsel 0x0f */ | ||
61 | {PIRQC, PIRQD, PIRQA, PIRQB}, /* idsel 0x10 */ | ||
62 | }; | ||
63 | |||
64 | const long min_idsel = 0x0e, max_idsel = 0x10, irqs_per_slot = 4; | ||
65 | return PCI_IRQ_TABLE_LOOKUP; | ||
66 | } | ||
67 | #endif /* CONFIG_PCI */ | ||
68 | |||
69 | /* ************************************************************************ | 49 | /* ************************************************************************ |
70 | * | 50 | * |
71 | * Setup the architecture | 51 | * Setup the architecture |
@@ -92,8 +72,6 @@ static void __init mpc834x_itx_setup_arch(void) | |||
92 | for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;) | 72 | for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;) |
93 | add_bridge(np); | 73 | add_bridge(np); |
94 | 74 | ||
95 | ppc_md.pci_swizzle = common_swizzle; | ||
96 | ppc_md.pci_map_irq = mpc83xx_map_irq; | ||
97 | ppc_md.pci_exclude_device = mpc83xx_exclude_device; | 75 | ppc_md.pci_exclude_device = mpc83xx_exclude_device; |
98 | #endif | 76 | #endif |
99 | 77 | ||
@@ -106,25 +84,13 @@ static void __init mpc834x_itx_setup_arch(void) | |||
106 | 84 | ||
107 | void __init mpc834x_itx_init_IRQ(void) | 85 | void __init mpc834x_itx_init_IRQ(void) |
108 | { | 86 | { |
109 | u8 senses[8] = { | 87 | struct device_node *np; |
110 | 0, /* EXT 0 */ | 88 | |
111 | IRQ_SENSE_LEVEL, /* EXT 1 */ | 89 | np = of_find_node_by_type(NULL, "ipic"); |
112 | IRQ_SENSE_LEVEL, /* EXT 2 */ | 90 | if (!np) |
113 | 0, /* EXT 3 */ | 91 | return; |
114 | #ifdef CONFIG_PCI | ||
115 | IRQ_SENSE_LEVEL, /* EXT 4 */ | ||
116 | IRQ_SENSE_LEVEL, /* EXT 5 */ | ||
117 | IRQ_SENSE_LEVEL, /* EXT 6 */ | ||
118 | IRQ_SENSE_LEVEL, /* EXT 7 */ | ||
119 | #else | ||
120 | 0, /* EXT 4 */ | ||
121 | 0, /* EXT 5 */ | ||
122 | 0, /* EXT 6 */ | ||
123 | 0, /* EXT 7 */ | ||
124 | #endif | ||
125 | }; | ||
126 | 92 | ||
127 | ipic_init(get_immrbase() + 0x00700, 0, 0, senses, 8); | 93 | ipic_init(np, 0); |
128 | 94 | ||
129 | /* Initialize the default interrupt mapping priorities, | 95 | /* Initialize the default interrupt mapping priorities, |
130 | * in case the boot rom changed something on us. | 96 | * in case the boot rom changed something on us. |
@@ -153,4 +119,7 @@ define_machine(mpc834x_itx) { | |||
153 | .time_init = mpc83xx_time_init, | 119 | .time_init = mpc83xx_time_init, |
154 | .calibrate_decr = generic_calibrate_decr, | 120 | .calibrate_decr = generic_calibrate_decr, |
155 | .progress = udbg_progress, | 121 | .progress = udbg_progress, |
122 | #ifdef CONFIG_PCI | ||
123 | .pcibios_fixup = mpc83xx_pcibios_fixup, | ||
124 | #endif | ||
156 | }; | 125 | }; |