Commit 75ca399e authored by Grant Likely's avatar Grant Likely

[POWERPC] mpc5200: eliminate mpc52xx_*_map_*() functions.

mpc5200 platform code defines a bunch of map functions which duplicate the
functionality of of_iomap().  Remove them and use of_iomap() instead.
Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
parent f584bc65
...@@ -42,10 +42,13 @@ ...@@ -42,10 +42,13 @@
static void __init static void __init
lite5200_fix_clock_config(void) lite5200_fix_clock_config(void)
{ {
struct device_node *np;
struct mpc52xx_cdm __iomem *cdm; struct mpc52xx_cdm __iomem *cdm;
/* Map zones */ /* Map zones */
cdm = mpc52xx_find_and_map("mpc5200-cdm"); np = of_find_compatible_node(NULL, NULL, "mpc5200-cdm");
cdm = of_iomap(np, 0);
of_node_put(np);
if (!cdm) { if (!cdm) {
printk(KERN_ERR "%s() failed; expect abnormal behaviour\n", printk(KERN_ERR "%s() failed; expect abnormal behaviour\n",
__FUNCTION__); __FUNCTION__);
...@@ -74,10 +77,13 @@ lite5200_fix_clock_config(void) ...@@ -74,10 +77,13 @@ lite5200_fix_clock_config(void)
static void __init static void __init
lite5200_fix_port_config(void) lite5200_fix_port_config(void)
{ {
struct device_node *np;
struct mpc52xx_gpio __iomem *gpio; struct mpc52xx_gpio __iomem *gpio;
u32 port_config; u32 port_config;
gpio = mpc52xx_find_and_map("mpc5200-gpio"); np = of_find_compatible_node(NULL, NULL, "mpc5200-gpio");
gpio = of_iomap(np, 0);
of_node_put(np);
if (!gpio) { if (!gpio) {
printk(KERN_ERR "%s() failed. expect abnormal behavior\n", printk(KERN_ERR "%s() failed. expect abnormal behavior\n",
__FUNCTION__); __FUNCTION__);
......
...@@ -42,6 +42,8 @@ static int lite5200_pm_set_target(suspend_state_t state) ...@@ -42,6 +42,8 @@ static int lite5200_pm_set_target(suspend_state_t state)
static int lite5200_pm_prepare(void) static int lite5200_pm_prepare(void)
{ {
struct device_node *np;
/* deep sleep? let mpc52xx code handle that */ /* deep sleep? let mpc52xx code handle that */
if (lite5200_pm_target_state == PM_SUSPEND_STANDBY) if (lite5200_pm_target_state == PM_SUSPEND_STANDBY)
return mpc52xx_pm_prepare(); return mpc52xx_pm_prepare();
...@@ -50,7 +52,9 @@ static int lite5200_pm_prepare(void) ...@@ -50,7 +52,9 @@ static int lite5200_pm_prepare(void)
return -EINVAL; return -EINVAL;
/* map registers */ /* map registers */
mbar = mpc52xx_find_and_map("mpc5200"); np = of_find_compatible_node(NULL, NULL, "mpc5200");
mbar = of_iomap(np, 0);
of_node_put(np);
if (!mbar) { if (!mbar) {
printk(KERN_ERR "%s:%i Error mapping registers\n", __func__, __LINE__); printk(KERN_ERR "%s:%i Error mapping registers\n", __func__, __LINE__);
return -ENOSYS; return -ENOSYS;
......
...@@ -26,45 +26,6 @@ ...@@ -26,45 +26,6 @@
*/ */
static volatile struct mpc52xx_gpt *mpc52xx_wdt = NULL; static volatile struct mpc52xx_gpt *mpc52xx_wdt = NULL;
static void __iomem *
mpc52xx_map_node(struct device_node *ofn)
{
const u32 *regaddr_p;
u64 regaddr64, size64;
if (!ofn)
return NULL;
regaddr_p = of_get_address(ofn, 0, &size64, NULL);
if (!regaddr_p) {
of_node_put(ofn);
return NULL;
}
regaddr64 = of_translate_address(ofn, regaddr_p);
of_node_put(ofn);
return ioremap((u32)regaddr64, (u32)size64);
}
void __iomem *
mpc52xx_find_and_map(const char *compatible)
{
return mpc52xx_map_node(
of_find_compatible_node(NULL, NULL, compatible));
}
EXPORT_SYMBOL(mpc52xx_find_and_map);
void __iomem *
mpc52xx_find_and_map_path(const char *path)
{
return mpc52xx_map_node(of_find_node_by_path(path));
}
EXPORT_SYMBOL(mpc52xx_find_and_map_path);
/** /**
* mpc52xx_find_ipb_freq - Find the IPB bus frequency for a device * mpc52xx_find_ipb_freq - Find the IPB bus frequency for a device
* @node: device node * @node: device node
...@@ -101,9 +62,12 @@ EXPORT_SYMBOL(mpc52xx_find_ipb_freq); ...@@ -101,9 +62,12 @@ EXPORT_SYMBOL(mpc52xx_find_ipb_freq);
void __init void __init
mpc5200_setup_xlb_arbiter(void) mpc5200_setup_xlb_arbiter(void)
{ {
struct device_node *np;
struct mpc52xx_xlb __iomem *xlb; struct mpc52xx_xlb __iomem *xlb;
xlb = mpc52xx_find_and_map("mpc5200-xlb"); np = of_find_compatible_node(NULL, NULL, "mpc5200-xlb");
xlb = of_iomap(np, 0);
of_node_put(np);
if (!xlb) { if (!xlb) {
printk(KERN_ERR __FILE__ ": " printk(KERN_ERR __FILE__ ": "
"Error mapping XLB in mpc52xx_setup_cpu(). " "Error mapping XLB in mpc52xx_setup_cpu(). "
...@@ -156,16 +120,19 @@ mpc52xx_map_wdt(void) ...@@ -156,16 +120,19 @@ mpc52xx_map_wdt(void)
for_each_compatible_node(np, NULL, "fsl,mpc5200-gpt") { for_each_compatible_node(np, NULL, "fsl,mpc5200-gpt") {
has_wdt = of_get_property(np, "fsl,has-wdt", NULL); has_wdt = of_get_property(np, "fsl,has-wdt", NULL);
if (has_wdt) { if (has_wdt) {
mpc52xx_wdt = mpc52xx_map_node(np); mpc52xx_wdt = of_iomap(np, 0);
of_node_put(np);
return; return;
} }
} }
for_each_compatible_node(np, NULL, "mpc5200-gpt") { for_each_compatible_node(np, NULL, "mpc5200-gpt") {
has_wdt = of_get_property(np, "has-wdt", NULL); has_wdt = of_get_property(np, "has-wdt", NULL);
if (has_wdt) { if (has_wdt) {
mpc52xx_wdt = mpc52xx_map_node(np); mpc52xx_wdt = of_iomap(np, 0);
of_node_put(np);
return; return;
} }
} }
} }
......
...@@ -364,16 +364,18 @@ void __init mpc52xx_init_irq(void) ...@@ -364,16 +364,18 @@ void __init mpc52xx_init_irq(void)
{ {
u32 intr_ctrl; u32 intr_ctrl;
struct device_node *picnode; struct device_node *picnode;
struct device_node *np;
/* Remap the necessary zones */ /* Remap the necessary zones */
picnode = of_find_compatible_node(NULL, NULL, "mpc5200-pic"); picnode = of_find_compatible_node(NULL, NULL, "mpc5200-pic");
intr = of_iomap(picnode, 0);
intr = mpc52xx_find_and_map("mpc5200-pic");
if (!intr) if (!intr)
panic(__FILE__ ": find_and_map failed on 'mpc5200-pic'. " panic(__FILE__ ": find_and_map failed on 'mpc5200-pic'. "
"Check node !"); "Check node !");
sdma = mpc52xx_find_and_map("mpc5200-bestcomm"); np = of_find_compatible_node(NULL, NULL, "mpc5200-bestcomm");
sdma = of_iomap(np, 0);
of_node_put(np);
if (!sdma) if (!sdma)
panic(__FILE__ ": find_and_map failed on 'mpc5200-bestcomm'. " panic(__FILE__ ": find_and_map failed on 'mpc5200-bestcomm'. "
"Check node !"); "Check node !");
......
...@@ -59,10 +59,14 @@ int mpc52xx_set_wakeup_gpio(u8 pin, u8 level) ...@@ -59,10 +59,14 @@ int mpc52xx_set_wakeup_gpio(u8 pin, u8 level)
int mpc52xx_pm_prepare(void) int mpc52xx_pm_prepare(void)
{ {
struct device_node *np;
/* map the whole register space */ /* map the whole register space */
mbar = mpc52xx_find_and_map("mpc5200"); np = of_find_compatible_node(NULL, NULL, "mpc5200");
mbar = of_iomap(np, 0);
of_node_put(np);
if (!mbar) { if (!mbar) {
printk(KERN_ERR "%s:%i Error mapping registers\n", __func__, __LINE__); pr_err("mpc52xx_pm_prepare(): could not map registers\n");
return -ENOSYS; return -ENOSYS;
} }
/* these offsets are from mpc5200 users manual */ /* these offsets are from mpc5200 users manual */
......
...@@ -330,6 +330,7 @@ static void mpc52xx_psc_spi_cleanup(struct spi_device *spi) ...@@ -330,6 +330,7 @@ static void mpc52xx_psc_spi_cleanup(struct spi_device *spi)
static int mpc52xx_psc_spi_port_config(int psc_id, struct mpc52xx_psc_spi *mps) static int mpc52xx_psc_spi_port_config(int psc_id, struct mpc52xx_psc_spi *mps)
{ {
struct device_node *np;
struct mpc52xx_cdm __iomem *cdm; struct mpc52xx_cdm __iomem *cdm;
struct mpc52xx_gpio __iomem *gpio; struct mpc52xx_gpio __iomem *gpio;
struct mpc52xx_psc __iomem *psc = mps->psc; struct mpc52xx_psc __iomem *psc = mps->psc;
...@@ -338,8 +339,12 @@ static int mpc52xx_psc_spi_port_config(int psc_id, struct mpc52xx_psc_spi *mps) ...@@ -338,8 +339,12 @@ static int mpc52xx_psc_spi_port_config(int psc_id, struct mpc52xx_psc_spi *mps)
int ret = 0; int ret = 0;
#if defined(CONFIG_PPC_MERGE) #if defined(CONFIG_PPC_MERGE)
cdm = mpc52xx_find_and_map("mpc5200-cdm"); np = of_find_compatible_node(NULL, NULL, "mpc5200-cdm");
gpio = mpc52xx_find_and_map("mpc5200-gpio"); cdm = of_iomap(np, 0);
of_node_put(np);
np = of_find_compatible_node(NULL, NULL, "mpc5200-gpio");
gpio = of_iomap(np, 0);
of_node_put(np);
#else #else
cdm = ioremap(MPC52xx_PA(MPC52xx_CDM_OFFSET), MPC52xx_CDM_SIZE); cdm = ioremap(MPC52xx_PA(MPC52xx_CDM_OFFSET), MPC52xx_CDM_SIZE);
gpio = ioremap(MPC52xx_PA(MPC52xx_GPIO_OFFSET), MPC52xx_GPIO_SIZE); gpio = ioremap(MPC52xx_PA(MPC52xx_GPIO_OFFSET), MPC52xx_GPIO_SIZE);
......
...@@ -248,8 +248,6 @@ struct mpc52xx_cdm { ...@@ -248,8 +248,6 @@ struct mpc52xx_cdm {
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
extern void __iomem * mpc52xx_find_and_map(const char *);
extern void __iomem * mpc52xx_find_and_map_path(const char *path);
extern unsigned int mpc52xx_find_ipb_freq(struct device_node *node); extern unsigned int mpc52xx_find_ipb_freq(struct device_node *node);
extern void mpc5200_setup_xlb_arbiter(void); extern void mpc5200_setup_xlb_arbiter(void);
extern void mpc52xx_declare_of_platform_devices(void); extern void mpc52xx_declare_of_platform_devices(void);
......
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