* at91sam9x5: uart (not usart) broken
@ 2013-08-07 0:32 Douglas Gilbert
2013-08-07 6:33 ` boris brezillon
0 siblings, 1 reply; 3+ messages in thread
From: Douglas Gilbert @ 2013-08-07 0:32 UTC (permalink / raw)
To: linux-arm-kernel
Between lk 3.10.0 and lk 3.11.0-rc4 the uarts (not usarts)
have been broken in the at91sam9x5 family. The DT files have
been re-factored for uarts but look correct.
So suspicion moves to the atmel_serial driver which enjoyed
a lot of changes in June.
Tested on a at91sam9g25 (Aria G25) which is a member of the
at91sam9x5 family with two uarts (four usarts and a debug
serial port). The failure looks like this in dmesg:
console [ttyS0] enabled
f801c000.serial: ttyS1 at MMIO 0xf801c000 (irq = 23) is a ATMEL_SERIAL
f8020000.serial: ttyS2 at MMIO 0xf8020000 (irq = 24) is a ATMEL_SERIAL
f8024000.serial: ttyS3 at MMIO 0xf8024000 (irq = 25) is a ATMEL_SERIAL
atmel_usart: probe of f8040000.serial failed with error -2
f8028000.serial: ttyS4 at MMIO 0xf8028000 (irq = 32) is a ATMEL_SERIAL
The device at 0xf8040000 is uart0 . My DT file was trying
to bring up uart0 but not uart1.
Doug Gilbert
^ permalink raw reply [flat|nested] 3+ messages in thread
* at91sam9x5: uart (not usart) broken
2013-08-07 0:32 at91sam9x5: uart (not usart) broken Douglas Gilbert
@ 2013-08-07 6:33 ` boris brezillon
2013-08-07 15:45 ` Douglas Gilbert
0 siblings, 1 reply; 3+ messages in thread
From: boris brezillon @ 2013-08-07 6:33 UTC (permalink / raw)
To: linux-arm-kernel
Hello Doug,
On 07/08/2013 02:32, Douglas Gilbert wrote:
> Between lk 3.10.0 and lk 3.11.0-rc4 the uarts (not usarts)
> have been broken in the at91sam9x5 family. The DT files have
> been re-factored for uarts but look correct.
>
> So suspicion moves to the atmel_serial driver which enjoyed
> a lot of changes in June.
>
My patch (the last one in log history) is adding error checks on clk_get and
clk_enable (clk_prepare_enable) calls.
I think the issue you're having comes from these new checks, and the fact
that uart clks DT entries are missing.
The previous version was just silently ignoring these errors.
It may work if these clks (uart clks) are already enabled by bootstrap or
bootloader.
Anyway, I think the cleaner way for resolving this issue is to apply the
patch
I joined in attachment.
Could you test it (I don't have any sam9x5 boards), and if this works
I'll submit
it.
Best Regards,
Boris
> Tested on a at91sam9g25 (Aria G25) which is a member of the
> at91sam9x5 family with two uarts (four usarts and a debug
> serial port). The failure looks like this in dmesg:
>
> console [ttyS0] enabled
> f801c000.serial: ttyS1 at MMIO 0xf801c000 (irq = 23) is a ATMEL_SERIAL
> f8020000.serial: ttyS2 at MMIO 0xf8020000 (irq = 24) is a ATMEL_SERIAL
> f8024000.serial: ttyS3 at MMIO 0xf8024000 (irq = 25) is a ATMEL_SERIAL
> atmel_usart: probe of f8040000.serial failed with error -2
> f8028000.serial: ttyS4 at MMIO 0xf8028000 (irq = 32) is a ATMEL_SERIAL
>
> The device at 0xf8040000 is uart0 . My DT file was trying
> to bring up uart0 but not uart1.
>
> Doug Gilbert
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-ARM-at91-add-missing-uart-clocks-DT-entries.patch
Type: text/x-patch
Size: 1172 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130807/4f82ce04/attachment.bin>
^ permalink raw reply [flat|nested] 3+ messages in thread
* at91sam9x5: uart (not usart) broken
2013-08-07 6:33 ` boris brezillon
@ 2013-08-07 15:45 ` Douglas Gilbert
0 siblings, 0 replies; 3+ messages in thread
From: Douglas Gilbert @ 2013-08-07 15:45 UTC (permalink / raw)
To: linux-arm-kernel
On 13-08-07 02:33 AM, boris brezillon wrote:
> Hello Doug,
>
> On 07/08/2013 02:32, Douglas Gilbert wrote:
>> Between lk 3.10.0 and lk 3.11.0-rc4 the uarts (not usarts)
>> have been broken in the at91sam9x5 family. The DT files have
>> been re-factored for uarts but look correct.
>>
>> So suspicion moves to the atmel_serial driver which enjoyed
>> a lot of changes in June.
>>
>
> My patch (the last one in log history) is adding error checks on clk_get and
> clk_enable (clk_prepare_enable) calls.
> I think the issue you're having comes from these new checks, and the fact
> that uart clks DT entries are missing.
>
> The previous version was just silently ignoring these errors.
> It may work if these clks (uart clks) are already enabled by bootstrap or
> bootloader.
>
> Anyway, I think the cleaner way for resolving this issue is to apply the patch
> I joined in attachment.
>
> Could you test it (I don't have any sam9x5 boards), and if this works I'll submit
> it.
Hi Boris,
Yes, your patch works with lk 3.11.0-rc4 on a at91sam9g25
(aria G25). So please apply to the current rc series.
Also since in the lk 3.10 series this is silently broken and/or
works by accident (e.g. when a boot loader sets the uart clocks)
then perhaps this fix should be sent to Greg K-H for inclusion
in the lk 3.10.x stable series.
Doug Gilbert
>> Tested on a at91sam9g25 (Aria G25) which is a member of the
>> at91sam9x5 family with two uarts (four usarts and a debug
>> serial port). The failure looks like this in dmesg:
>>
>> console [ttyS0] enabled
>> f801c000.serial: ttyS1 at MMIO 0xf801c000 (irq = 23) is a ATMEL_SERIAL
>> f8020000.serial: ttyS2 at MMIO 0xf8020000 (irq = 24) is a ATMEL_SERIAL
>> f8024000.serial: ttyS3 at MMIO 0xf8024000 (irq = 25) is a ATMEL_SERIAL
>> atmel_usart: probe of f8040000.serial failed with error -2
>> f8028000.serial: ttyS4 at MMIO 0xf8028000 (irq = 32) is a ATMEL_SERIAL
>>
>> The device at 0xf8040000 is uart0 . My DT file was trying
>> to bring up uart0 but not uart1.
>>
>> Doug Gilbert
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-08-07 15:45 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-07 0:32 at91sam9x5: uart (not usart) broken Douglas Gilbert
2013-08-07 6:33 ` boris brezillon
2013-08-07 15:45 ` Douglas Gilbert
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).