X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/ms2-kexec/blobdiff_plain/e14c6eae15c85ae74d5a5b1dec3975eccf0fb337..HEAD:/omap2_serial.c diff --git a/omap2_serial.c b/omap2_serial.c index afed285..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)); @@ -188,7 +191,7 @@ static struct platform_device uart2_device = { }; #endif static struct platform_device uart3_device = { - .name = "omap-hs-uart", + .name = "omap-uart", .id = 3, .num_resources = ARRAY_SIZE(omap2_uart3_resources), .resource = omap2_uart3_resources, @@ -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; }