[POWERPC] 83xx: Cleaning up machine probing and board initcalls
authorKumar Gala <galak@kernel.crashing.org>
Sat, 17 Feb 2007 15:10:44 +0000 (09:10 -0600)
committerKumar Gala <galak@kernel.crashing.org>
Sat, 17 Feb 2007 15:10:44 +0000 (09:10 -0600)
Cleaned up the probing functionality to be more consistent across all 83xx
boards and added machine_is() protection around board initcalls to ensure they
only do something if we are actually running on that board.

Additionally, removed some dead code on mpc832x_mds.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
arch/powerpc/platforms/83xx/mpc8313_rdb.c
arch/powerpc/platforms/83xx/mpc832x_mds.c
arch/powerpc/platforms/83xx/mpc834x_itx.c
arch/powerpc/platforms/83xx/mpc834x_mds.c
arch/powerpc/platforms/83xx/mpc8360e_pb.c

index c3b98c34eb6ba7b66434f5a4f1bbe3b0d8cec2d2..32e9e9492841ac600f68fb4bf07dfb35218837e3 100644 (file)
@@ -74,16 +74,9 @@ void __init mpc8313_rdb_init_IRQ(void)
  */
 static int __init mpc8313_rdb_probe(void)
 {
-       char *model = of_get_flat_dt_prop(of_get_flat_dt_root(),
-                                         "model", NULL);
-       if (model == NULL)
-               return 0;
-       if (strcmp(model, "MPC8313ERDB"))
-               return 0;
+        unsigned long root = of_get_flat_dt_root();
 
-       DBG("MPC8313 RDB found\n");
-
-       return 1;
+        return of_flat_dt_is_compatible(root, "MPC8313ERDB");
 }
 
 define_machine(mpc8313_rdb) {
index 3ecb55f8a6e265c8c16607e3ba9221089d42b10b..c6bfe72893d4f96cd1ad3d5531e05b470d7a9872 100644 (file)
@@ -57,11 +57,6 @@ unsigned long isa_mem_base = 0;
 
 static u8 *bcsr_regs = NULL;
 
-u8 *get_bcsr(void)
-{
-       return bcsr_regs;
-}
-
 /* ************************************************************************
  *
  * Setup the architecture
@@ -140,6 +135,9 @@ static int __init mpc832x_declare_of_platform_devices(void)
 {
        struct device_node *np;
 
+       if (!machine_is(mpc832x_mds))
+               return 0;
+
        for (np = NULL; (np = of_find_compatible_node(np, "network",
                                        "ucc_geth")) != NULL;) {
                int ucc_num;
@@ -189,6 +187,9 @@ static int __init mpc832x_rtc_hookup(void)
 {
        struct timespec tv;
 
+       if (!machine_is(mpc832x_mds))
+               return 0;
+
        ppc_md.get_rtc_time = ds1374_get_rtc_time;
        ppc_md.set_rtc_time = ds1374_set_rtc_time;
 
@@ -207,17 +208,9 @@ late_initcall(mpc832x_rtc_hookup);
  */
 static int __init mpc832x_sys_probe(void)
 {
-       char *model = of_get_flat_dt_prop(of_get_flat_dt_root(),
-                                         "model", NULL);
-
-       if (model == NULL)
-               return 0;
-       if (strcmp(model, "MPC8323EMDS"))
-               return 0;
-
-       DBG("%s found\n", model);
+        unsigned long root = of_get_flat_dt_root();
 
-       return 1;
+        return of_flat_dt_is_compatible(root, "MPC832xMDS");
 }
 
 define_machine(mpc832x_mds) {
index 443a3172f370f96295f751e8baafbaddeb9a6acc..a8f66fb3391ab8db23a5ae57a13901537cc8d65e 100644 (file)
@@ -100,10 +100,9 @@ static void __init mpc834x_itx_init_IRQ(void)
  */
 static int __init mpc834x_itx_probe(void)
 {
-       /* We always match for now, eventually we should look at the flat
-          dev tree to ensure this is the board we are suppose to run on
-       */
-       return 1;
+        unsigned long root = of_get_flat_dt_root();
+
+        return of_flat_dt_is_compatible(root, "MPC834xMITX");
 }
 
 define_machine(mpc834x_itx) {
index d2736da76c46bb63ca3a1ef6e394b0bf1157a53d..9fd9adf8ff9915b0a34e14d1446fbe0e549b6739 100644 (file)
@@ -176,6 +176,9 @@ static int __init mpc834x_rtc_hookup(void)
 {
        struct timespec tv;
 
+       if (!machine_is(mpc834x_mds))
+               return 0;
+
        ppc_md.get_rtc_time = ds1374_get_rtc_time;
        ppc_md.set_rtc_time = ds1374_set_rtc_time;
 
@@ -194,10 +197,9 @@ late_initcall(mpc834x_rtc_hookup);
  */
 static int __init mpc834x_mds_probe(void)
 {
-       /* We always match for now, eventually we should look at the flat
-          dev tree to ensure this is the board we are suppose to run on
-       */
-       return 1;
+        unsigned long root = of_get_flat_dt_root();
+
+        return of_flat_dt_is_compatible(root, "MPC834xMDS");
 }
 
 define_machine(mpc834x_mds) {
index ccce2f9f283dad9b4db7542f54d93605774d2523..76fcb5bdb759137b2be570158d409793f5fabb64 100644 (file)
@@ -145,6 +145,9 @@ static int __init mpc8360_declare_of_platform_devices(void)
 {
        struct device_node *np;
 
+       if (!machine_is(mpc8360_sys))
+               return 0;
+
        for (np = NULL; (np = of_find_compatible_node(np, "network",
                                        "ucc_geth")) != NULL;) {
                int ucc_num;
@@ -194,6 +197,9 @@ static int __init mpc8360_rtc_hookup(void)
 {
        struct timespec tv;
 
+       if (!machine_is(mpc8360_sys))
+               return 0;
+
        ppc_md.get_rtc_time = ds1374_get_rtc_time;
        ppc_md.set_rtc_time = ds1374_set_rtc_time;
 
@@ -212,16 +218,9 @@ late_initcall(mpc8360_rtc_hookup);
  */
 static int __init mpc8360_sys_probe(void)
 {
-       char *model = of_get_flat_dt_prop(of_get_flat_dt_root(),
-                                         "model", NULL);
-       if (model == NULL)
-               return 0;
-       if (strcmp(model, "MPC8360EPB"))
-               return 0;
-
-       DBG("MPC8360EMDS-PB found\n");
+        unsigned long root = of_get_flat_dt_root();
 
-       return 1;
+        return of_flat_dt_is_compatible(root, "MPC836xMDS");
 }
 
 define_machine(mpc8360_sys) {