Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
[linux-2.6-block.git] / arch / sh / boards / mach-highlander / setup.c
index f663c14d88857b86c7fa091726dd10df5ef33564..a5ecfbacaf36b37c3f812c5ca9b2189a3c077447 100644 (file)
@@ -14,6 +14,7 @@
  * for more details.
  */
 #include <linux/init.h>
+#include <linux/io.h>
 #include <linux/platform_device.h>
 #include <linux/ata_platform.h>
 #include <linux/types.h>
@@ -26,6 +27,7 @@
 #include <net/ax88796.h>
 #include <asm/machvec.h>
 #include <mach/highlander.h>
+#include <asm/clkdev.h>
 #include <asm/clock.h>
 #include <asm/heartbeat.h>
 #include <asm/io.h>
@@ -311,13 +313,13 @@ device_initcall(r7780rp_devices_setup);
  */
 static int ivdr_clk_enable(struct clk *clk)
 {
-       ctrl_outw(ctrl_inw(PA_IVDRCTL) | (1 << IVDR_CK_ON), PA_IVDRCTL);
+       __raw_writew(__raw_readw(PA_IVDRCTL) | (1 << IVDR_CK_ON), PA_IVDRCTL);
        return 0;
 }
 
 static void ivdr_clk_disable(struct clk *clk)
 {
-       ctrl_outw(ctrl_inw(PA_IVDRCTL) & ~(1 << IVDR_CK_ON), PA_IVDRCTL);
+       __raw_writew(__raw_readw(PA_IVDRCTL) & ~(1 << IVDR_CK_ON), PA_IVDRCTL);
 }
 
 static struct clk_ops ivdr_clk_ops = {
@@ -326,7 +328,6 @@ static struct clk_ops ivdr_clk_ops = {
 };
 
 static struct clk ivdr_clk = {
-       .name           = "ivdr_clk",
        .ops            = &ivdr_clk_ops,
 };
 
@@ -334,10 +335,17 @@ static struct clk *r7780rp_clocks[] = {
        &ivdr_clk,
 };
 
+#define CLKDEV_CON_ID(_id, _clk) { .con_id = _id, .clk = _clk }
+
+static struct clk_lookup lookups[] = {
+       /* main clocks */
+       CLKDEV_CON_ID("ivdr_clk", &ivdr_clk),
+};
+
 static void r7780rp_power_off(void)
 {
        if (mach_is_r7780mp() || mach_is_r7785rp())
-               ctrl_outw(0x0001, PA_POFF);
+               __raw_writew(0x0001, PA_POFF);
 }
 
 /*
@@ -345,7 +353,7 @@ static void r7780rp_power_off(void)
  */
 static void __init highlander_setup(char **cmdline_p)
 {
-       u16 ver = ctrl_inw(PA_VERREG);
+       u16 ver = __raw_readw(PA_VERREG);
        int i;
 
        printk(KERN_INFO "Renesas Solutions Highlander %s support.\n",
@@ -370,12 +378,14 @@ static void __init highlander_setup(char **cmdline_p)
                clk_enable(clk);
        }
 
-       ctrl_outw(0x0000, PA_OBLED);    /* Clear LED. */
+       clkdev_add_table(lookups, ARRAY_SIZE(lookups));
+
+       __raw_writew(0x0000, PA_OBLED); /* Clear LED. */
 
        if (mach_is_r7780rp())
-               ctrl_outw(0x0001, PA_SDPOW);    /* SD Power ON */
+               __raw_writew(0x0001, PA_SDPOW); /* SD Power ON */
 
-       ctrl_outw(ctrl_inw(PA_IVDRCTL) | 0x01, PA_IVDRCTL);     /* Si13112 */
+       __raw_writew(__raw_readw(PA_IVDRCTL) | 0x01, PA_IVDRCTL);       /* Si13112 */
 
        pm_power_off = r7780rp_power_off;
 }