]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/powerpc/platforms/52xx/lite5200.c
[POWERPC] Add common clock setting routine mpc52xx_psc_set_clkdiv()
[linux-2.6-omap-h63xx.git] / arch / powerpc / platforms / 52xx / lite5200.c
index 25d2bfa3d9dc0237c0c7d2299e94c863eaeade20..956f459e175ceed080cd2d1f4bf2b70945e409fe 100644 (file)
  *
  */
 
+/* mpc5200 device tree match tables */
+static struct of_device_id mpc5200_cdm_ids[] __initdata = {
+       { .compatible = "fsl,mpc5200-cdm", },
+       { .compatible = "mpc5200-cdm", },
+       {}
+};
+
+static struct of_device_id mpc5200_gpio_ids[] __initdata = {
+       { .compatible = "fsl,mpc5200-gpio", },
+       { .compatible = "mpc5200-gpio", },
+       {}
+};
+
 /*
  * Fix clock configuration.
  *
 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_matching_node(NULL, mpc5200_cdm_ids);
+       cdm = of_iomap(np, 0);
+       of_node_put(np);
        if (!cdm) {
                printk(KERN_ERR "%s() failed; expect abnormal behaviour\n",
                       __FUNCTION__);
@@ -74,10 +89,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_matching_node(NULL, mpc5200_gpio_ids);
+       gpio = of_iomap(np, 0);
+       of_node_put(np);
        if (!gpio) {
                printk(KERN_ERR "%s() failed. expect abnormal behavior\n",
                       __FUNCTION__);
@@ -131,22 +149,18 @@ static void lite5200_resume_finish(void __iomem *mbar)
 
 static void __init lite5200_setup_arch(void)
 {
-#ifdef CONFIG_PCI
-       struct device_node *np;
-#endif
-
        if (ppc_md.progress)
                ppc_md.progress("lite5200_setup_arch()", 0);
 
-       /* Fix things that firmware should have done. */
-       lite5200_fix_clock_config();
-       lite5200_fix_port_config();
+       /* Map important registers from the internal memory map */
+       mpc52xx_map_common_devices();
 
        /* Some mpc5200 & mpc5200b related configuration */
        mpc5200_setup_xlb_arbiter();
 
-       /* Map wdt for mpc52xx_restart() */
-       mpc52xx_map_wdt();
+       /* Fix things that firmware should have done. */
+       lite5200_fix_clock_config();
+       lite5200_fix_port_config();
 
 #ifdef CONFIG_PM
        mpc52xx_suspend.board_suspend_prepare = lite5200_suspend_prepare;
@@ -154,13 +168,7 @@ static void __init lite5200_setup_arch(void)
        lite5200_pm_init();
 #endif
 
-#ifdef CONFIG_PCI
-       np = of_find_node_by_type(NULL, "pci");
-       if (np) {
-               mpc52xx_add_bridge(np);
-               of_node_put(np);
-       }
-#endif
+       mpc52xx_setup_pci();
 }
 
 /*