On Thu, 2011-06-23 at 10:21 +0200, Tony Lindgren wrote: > * Tero Kristo <t-kristo@xxxxxx> [110622 09:38]: > > @@ -550,6 +550,8 @@ static void omap_uart_idle_init(struct omap_uart_state *uart) > > ret = request_threaded_irq(uart->irq, NULL, omap_uart_interrupt, > > IRQF_SHARED, "serial idle", (void *)uart); > > WARN_ON(ret); > > + ret = omap_prcm_register_pad_irq(uart->padconf, uart->irq); > > + WARN_ON(ret); > > } > > Argh, looks like we still have direct mux register tinkering in serial.c: > > $ grep "padconf = 0x" serial.c > padconf = 0x182; > padconf = 0x17a; > padconf = 0x19e; > padconf = 0x0d2; > > By deducting 0x30 from the values above, these map into the following mux defines: > > $ grep RX_OFFSET mux34xx.h > #define OMAP3_CONTROL_PADCONF_UART2_RX_OFFSET 0x14a > #define OMAP3_CONTROL_PADCONF_UART1_RX_OFFSET 0x152 > #define OMAP3_CONTROL_PADCONF_UART3_RX_IRRX_OFFSET 0x16e > > So you can make things more generic by getting rid of those and using > struct omap_mux_partition instead for omap_prcm_register_pad_irq. > The pins used are set already in serial.c with omap_hwmod_mux_init. > > Otherwise we have to patch the hardcoded padconf values for every new omap. > And looks like we're already missing them for 44xx in serial.c. > > Then access to the padconf registers should be done with > omap_mux_read/write instead. If you need to do something more complex > with them maybe consider adding some new functions to mux.c as needed. > Padconf stuff is not that much related to this patch set yet (I am not touching the serial padconf code), but I can probably take a look at this also later on, unless you want this fixed with this set already? > Regards, > > Tony Texas Instruments Oy, Tekniikantie 12, 02150 Espoo. Y-tunnus: 0115040-6. Kotipaikka: Helsinki -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html