Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -42,10 +42,13 @@
static void __init
lite5200_fix_clock_config(void)
{
	struct device_node *np;
	struct mpc52xx_cdm  __iomem *cdm;

	/* 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) {
		printk(KERN_ERR "%s() failed; expect abnormal behaviour\n",
		       __FUNCTION__);
@@ -74,10 +77,13 @@ lite5200_fix_clock_config(void)
static void __init
lite5200_fix_port_config(void)
{
	struct device_node *np;
	struct mpc52xx_gpio __iomem *gpio;
	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) {
		printk(KERN_ERR "%s() failed. expect abnormal behavior\n",
		       __FUNCTION__);
+5 −1
Original line number Diff line number Diff line
@@ -42,6 +42,8 @@ static int lite5200_pm_set_target(suspend_state_t state)

static int lite5200_pm_prepare(void)
{
	struct device_node *np;

	/* deep sleep? let mpc52xx code handle that */
	if (lite5200_pm_target_state == PM_SUSPEND_STANDBY)
		return mpc52xx_pm_prepare();
@@ -50,7 +52,9 @@ static int lite5200_pm_prepare(void)
		return -EINVAL;

	/* 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) {
		printk(KERN_ERR "%s:%i Error mapping registers\n", __func__, __LINE__);
		return -ENOSYS;
+9 −42
Original line number Diff line number Diff line
@@ -26,45 +26,6 @@
 */
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
 * 	@node:	device node
@@ -101,9 +62,12 @@ EXPORT_SYMBOL(mpc52xx_find_ipb_freq);
void __init
mpc5200_setup_xlb_arbiter(void)
{
	struct device_node *np;
	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) {
		printk(KERN_ERR __FILE__ ": "
			"Error mapping XLB in mpc52xx_setup_cpu().  "
@@ -156,16 +120,19 @@ mpc52xx_map_wdt(void)
	for_each_compatible_node(np, NULL, "fsl,mpc5200-gpt") {
		has_wdt = of_get_property(np, "fsl,has-wdt", NULL);
		if (has_wdt) {
			mpc52xx_wdt = mpc52xx_map_node(np);
			mpc52xx_wdt = of_iomap(np, 0);
			of_node_put(np);
			return;
		}
	}
	for_each_compatible_node(np, NULL, "mpc5200-gpt") {
		has_wdt = of_get_property(np, "has-wdt", NULL);
		if (has_wdt) {
			mpc52xx_wdt = mpc52xx_map_node(np);
			mpc52xx_wdt = of_iomap(np, 0);
			of_node_put(np);
			return;
		}

	}
}

+5 −3
Original line number Diff line number Diff line
@@ -364,16 +364,18 @@ void __init mpc52xx_init_irq(void)
{
	u32 intr_ctrl;
	struct device_node *picnode;
	struct device_node *np;

	/* Remap the necessary zones */
	picnode = of_find_compatible_node(NULL, NULL, "mpc5200-pic");

	intr = mpc52xx_find_and_map("mpc5200-pic");
	intr = of_iomap(picnode, 0);
	if (!intr)
		panic(__FILE__	": find_and_map failed on 'mpc5200-pic'. "
				"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)
		panic(__FILE__	": find_and_map failed on 'mpc5200-bestcomm'. "
				"Check node !");
+6 −2
Original line number Diff line number Diff line
@@ -59,10 +59,14 @@ int mpc52xx_set_wakeup_gpio(u8 pin, u8 level)

int mpc52xx_pm_prepare(void)
{
	struct device_node *np;

	/* 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) {
		printk(KERN_ERR "%s:%i Error mapping registers\n", __func__, __LINE__);
		pr_err("mpc52xx_pm_prepare(): could not map registers\n");
		return -ENOSYS;
	}
	/* these offsets are from mpc5200 users manual */
Loading