diff options
author | Jon Loeliger <jdl@freescale.com> | 2006-08-17 15:27:57 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-08-25 00:32:13 -0400 |
commit | c85c41ad73c6db4cf4cc98c595cc5e2fdbdb53d5 (patch) | |
tree | 6d198b8f8f6fb2e22f39265c4083fb5796f09eff | |
parent | 5dc599c206ad50e1b190edfbc98b7cf8ce361003 (diff) |
[POWERPC] Use mpc8641hpcn PIC base address from dev tree.
After going through the trouble of setting up the PIC base
address in the pic@40000 device tree node, use it instead
of the obsolete hard-coded value.
Signed-off-by: Jon Loeliger <jdl@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r-- | arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | 19 | ||||
-rw-r--r-- | include/asm-powerpc/mpc86xx.h | 1 |
2 files changed, 9 insertions, 11 deletions
diff --git a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c index 813eb5811eb4..0b1b52168bb7 100644 --- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c +++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | |||
@@ -68,37 +68,36 @@ mpc86xx_hpcn_init_irq(void) | |||
68 | { | 68 | { |
69 | struct mpic *mpic1; | 69 | struct mpic *mpic1; |
70 | struct device_node *np; | 70 | struct device_node *np; |
71 | phys_addr_t openpic_paddr; | 71 | struct resource res; |
72 | #ifdef CONFIG_PCI | 72 | #ifdef CONFIG_PCI |
73 | struct device_node *cascade_node = NULL; | 73 | struct device_node *cascade_node = NULL; |
74 | int cascade_irq; | 74 | int cascade_irq; |
75 | #endif | 75 | #endif |
76 | 76 | ||
77 | /* Determine PIC address. */ | ||
77 | np = of_find_node_by_type(NULL, "open-pic"); | 78 | np = of_find_node_by_type(NULL, "open-pic"); |
78 | if (np == NULL) | 79 | if (np == NULL) |
79 | return; | 80 | return; |
80 | 81 | of_address_to_resource(np, 0, &res); | |
81 | /* Determine the Physical Address of the OpenPIC regs */ | ||
82 | openpic_paddr = get_immrbase() + MPC86xx_OPENPIC_OFFSET; | ||
83 | 82 | ||
84 | /* Alloc mpic structure and per isu has 16 INT entries. */ | 83 | /* Alloc mpic structure and per isu has 16 INT entries. */ |
85 | mpic1 = mpic_alloc(np, openpic_paddr, | 84 | mpic1 = mpic_alloc(np, res.start, |
86 | MPIC_PRIMARY | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN, | 85 | MPIC_PRIMARY | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN, |
87 | 16, NR_IRQS - 4, | 86 | 16, NR_IRQS - 4, |
88 | " MPIC "); | 87 | " MPIC "); |
89 | BUG_ON(mpic1 == NULL); | 88 | BUG_ON(mpic1 == NULL); |
90 | 89 | ||
91 | mpic_assign_isu(mpic1, 0, openpic_paddr + 0x10000); | 90 | mpic_assign_isu(mpic1, 0, res.start + 0x10000); |
92 | 91 | ||
93 | /* 48 Internal Interrupts */ | 92 | /* 48 Internal Interrupts */ |
94 | mpic_assign_isu(mpic1, 1, openpic_paddr + 0x10200); | 93 | mpic_assign_isu(mpic1, 1, res.start + 0x10200); |
95 | mpic_assign_isu(mpic1, 2, openpic_paddr + 0x10400); | 94 | mpic_assign_isu(mpic1, 2, res.start + 0x10400); |
96 | mpic_assign_isu(mpic1, 3, openpic_paddr + 0x10600); | 95 | mpic_assign_isu(mpic1, 3, res.start + 0x10600); |
97 | 96 | ||
98 | /* 16 External interrupts | 97 | /* 16 External interrupts |
99 | * Moving them from [0 - 15] to [64 - 79] | 98 | * Moving them from [0 - 15] to [64 - 79] |
100 | */ | 99 | */ |
101 | mpic_assign_isu(mpic1, 4, openpic_paddr + 0x10000); | 100 | mpic_assign_isu(mpic1, 4, res.start + 0x10000); |
102 | 101 | ||
103 | mpic_init(mpic1); | 102 | mpic_init(mpic1); |
104 | 103 | ||
diff --git a/include/asm-powerpc/mpc86xx.h b/include/asm-powerpc/mpc86xx.h index 2d6ad859df7f..b85df45b1a84 100644 --- a/include/asm-powerpc/mpc86xx.h +++ b/include/asm-powerpc/mpc86xx.h | |||
@@ -31,7 +31,6 @@ | |||
31 | #define MCM_PORT_CONFIG_OFFSET 0x1010 | 31 | #define MCM_PORT_CONFIG_OFFSET 0x1010 |
32 | 32 | ||
33 | /* Offset from CCSRBAR */ | 33 | /* Offset from CCSRBAR */ |
34 | #define MPC86xx_OPENPIC_OFFSET (0x40000) | ||
35 | #define MPC86xx_MCM_OFFSET (0x00000) | 34 | #define MPC86xx_MCM_OFFSET (0x00000) |
36 | #define MPC86xx_MCM_SIZE (0x02000) | 35 | #define MPC86xx_MCM_SIZE (0x02000) |
37 | 36 | ||