]> git.zerfleddert.de Git - ms2-kexec/blobdiff - omap2_serial.c
update offsets to new european GB kernel, set software booting from USB
[ms2-kexec] / omap2_serial.c
index 71577bf6381771ffe2708ca0767101a5a1f24c6c..380e10086d441733248013abb5dd7bd12ad29c76 100644 (file)
@@ -40,6 +40,9 @@
 
 #define OMAP_CTRL_REGADDR(reg)            (OMAP2_L4_IO_ADDRESS(OMAP343X_CTRL_BASE) + (reg))
 
+static int (*my_pwrdm_clkdm_state_switch)(struct clockdomain *) = (int (*)(struct clockdomain *))0xc0042458;
+
+
 void omap_ctrl_writew(u16 val, u16 offset)
 {
        __raw_writew(val, OMAP_CTRL_REGADDR(offset));
@@ -189,7 +192,7 @@ static struct platform_device uart2_device = {
 #endif
 static struct platform_device uart3_device = {
        .name                   = "omap-uart",
-       .id                     = 4,
+       .id                     = 3,
        .num_resources          = ARRAY_SIZE(omap2_uart3_resources),
        .resource               = omap2_uart3_resources,
        .dev.platform_data      = &serial_platform_data[2],
@@ -230,11 +233,20 @@ static inline void omap_uart_reset(struct omap_uart_state *uart)
 
 static inline void omap_uart_enable_clocks(struct omap_uart_state *uart)
 {
+       printk(KERN_INFO "UART clocked?\n");
        if (uart->clocked)
                return;
 
+       printk(KERN_INFO "enabling clocks\n");
        clk_enable(uart->ick);
        clk_enable(uart->fck);
+
+       if (uart->ick->clkdm != NULL)
+               my_pwrdm_clkdm_state_switch(uart->ick->clkdm);
+
+       if (uart->fck->clkdm != NULL)
+               my_pwrdm_clkdm_state_switch(uart->fck->clkdm);
+
        uart->clocked = 1;
 }
 
Impressum, Datenschutz