X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/ms2-kexec/blobdiff_plain/8eb83dc7c5741ddd510fa6bf4c6abde7ac8dc109..HEAD:/omap2_serial.c diff --git a/omap2_serial.c b/omap2_serial.c index 71577bf..380e100 100644 --- a/omap2_serial.c +++ b/omap2_serial.c @@ -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; }