diff options
author | Li Yang <leoli@freescale.com> | 2009-05-12 04:35:59 -0400 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2009-05-19 01:50:40 -0400 |
commit | 186e74b9c5ab3f3f053797c879882a1f5c0cbd09 (patch) | |
tree | e947b9b3e1b17c253f8acc1138f560ad52fb32a9 /arch/powerpc/sysdev/fsl_rio.c | |
parent | fc274a15692b0ee9751f586d7f703267c783809b (diff) |
powerpc/fsl_rio: use LAW address from device tree
Instead of fixed address in old code.
Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/sysdev/fsl_rio.c')
-rw-r--r-- | arch/powerpc/sysdev/fsl_rio.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/arch/powerpc/sysdev/fsl_rio.c b/arch/powerpc/sysdev/fsl_rio.c index c5aa179fceb7..39db9d1155d2 100644 --- a/arch/powerpc/sysdev/fsl_rio.c +++ b/arch/powerpc/sysdev/fsl_rio.c | |||
@@ -1076,8 +1076,9 @@ int fsl_rio_setup(struct of_device *dev) | |||
1076 | 1076 | ||
1077 | INIT_LIST_HEAD(&port->dbells); | 1077 | INIT_LIST_HEAD(&port->dbells); |
1078 | port->iores.start = law_start; | 1078 | port->iores.start = law_start; |
1079 | port->iores.end = law_start + law_size; | 1079 | port->iores.end = law_start + law_size - 1; |
1080 | port->iores.flags = IORESOURCE_MEM; | 1080 | port->iores.flags = IORESOURCE_MEM; |
1081 | port->iores.name = "rio_io_win"; | ||
1081 | 1082 | ||
1082 | priv->bellirq = irq_of_parse_and_map(dev->node, 2); | 1083 | priv->bellirq = irq_of_parse_and_map(dev->node, 2); |
1083 | priv->txirq = irq_of_parse_and_map(dev->node, 3); | 1084 | priv->txirq = irq_of_parse_and_map(dev->node, 3); |
@@ -1155,14 +1156,15 @@ int fsl_rio_setup(struct of_device *dev) | |||
1155 | out_be32((priv->regs_win + RIO_ISR_AACR), RIO_ISR_AACR_AA); | 1156 | out_be32((priv->regs_win + RIO_ISR_AACR), RIO_ISR_AACR_AA); |
1156 | 1157 | ||
1157 | /* Configure maintenance transaction window */ | 1158 | /* Configure maintenance transaction window */ |
1158 | out_be32(&priv->maint_atmu_regs->rowbar, 0x000c0000); | 1159 | out_be32(&priv->maint_atmu_regs->rowbar, law_start >> 12); |
1159 | out_be32(&priv->maint_atmu_regs->rowar, 0x80077015); | 1160 | out_be32(&priv->maint_atmu_regs->rowar, 0x80077015); /* 4M */ |
1160 | 1161 | ||
1161 | priv->maint_win = ioremap(law_start, RIO_MAINT_WIN_SIZE); | 1162 | priv->maint_win = ioremap(law_start, RIO_MAINT_WIN_SIZE); |
1162 | 1163 | ||
1163 | /* Configure outbound doorbell window */ | 1164 | /* Configure outbound doorbell window */ |
1164 | out_be32(&priv->dbell_atmu_regs->rowbar, 0x000c0400); | 1165 | out_be32(&priv->dbell_atmu_regs->rowbar, |
1165 | out_be32(&priv->dbell_atmu_regs->rowar, 0x8004200b); | 1166 | (law_start + RIO_MAINT_WIN_SIZE) >> 12); |
1167 | out_be32(&priv->dbell_atmu_regs->rowar, 0x8004200b); /* 4k */ | ||
1166 | fsl_rio_doorbell_init(port); | 1168 | fsl_rio_doorbell_init(port); |
1167 | 1169 | ||
1168 | return 0; | 1170 | return 0; |