[PATCH 5/5] tty: serial: Add 8250-core based omap driver
From: tony@atomide.com (Tony Lindgren)
Date: 2014-07-17 08:14:07
Also in:
linux-omap, linux-serial, lkml
* Sebastian Andrzej Siewior [off-list ref] [140717 00:44]:
* Tony Lindgren | 2014-07-17 00:09:00 [-0700]:quoted
Seems to boot a bit further now with output from serial console initially, then I'm getting the following error again that's probably related to clocks not enabled when the registers are accessed:It is (mostly) the same thing as before. We have additionally omap_8250_startup() in the backtrace but it is the same thing. So you say I miss a clock? Looking through serial8250_do_startup() I see: - pm_runtime_get_sync(port->dev); which should get the clocks up - serial8250_clear_fifos() which does a write at address + 8. Seems to work. - serial_port_in(port, UART_LSR); does a read at address + 0x14, seems to work. - serial_port_in(port, UART_RX); does a read at address + 0. This is probably the bad one.
Hmm it could be that it works for a while because the clocks are on from the bootloader and pm_runtime calls won't do anything. This could happen if the interconnect data based on the ti,hwmods entry is not getting matched to the new driver. This gets initialized when the device entry gets created in omap_device_build_from_dt(). Or maybe something now affects the clock aliases? It seems that we are still missing the clocks entries in the .dtsi files, see the mappings with $ git grep uart drivers/clk/ti/
Now comparing with omap-serial I noticed that I do a 32bit access instead a 16bit. Could you please try the following hack:
No change with that :) Regards, Tony