Re: [PATCH] serial: 8250: 8250_omap: Support native RS485

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 6 Oct 2022, Lukas Wunner wrote:

> On Tue, Oct 04, 2022 at 12:06:21PM +0300, Ilpo Järvinen wrote:
> > On Mon, 3 Oct 2022, Lukas Wunner wrote:
> > > On Wed, Sep 28, 2022 at 02:38:40PM +0300, Ilpo Järvinen wrote:
> > > > 
> > > > I guess .rs485_supported shouldn't be equal in both cases?
> > > 
> > > I contemplated whether it should be different for hardware-assisted
> > > RS485 but came to the conclusion that it shouldn't:
> [...]
> > Core is not handling just flags but also delay_rts_before_send and 
> > delay_rts_after_send sanitization. See 
> > uart_sanitize_serial_rs485_delays().
> > 
> > Btw, you can also get rid of this line once you provide separate 
> > rs485_supported:
> > 	rs485->delay_rts_before_send = 0;
> > 
> > What to do with delay_rts_after_send seems bit trickier though. Looking 
> > the code, it cannot be configured to arbitrary values by the user but it 
> > might not be zero either after the driver touches it. Maybe it safer to 
> > have it supported (set to 1) to avoid spuriously triggering the warning in 
> > uart_sanitize_serial_rs485_delays() (e.g., during init if non-zero delay 
> > is provided).
> 
> If I understand Figure 12-276 on page 8783 of the AM65 TRM correctly,
> there appears to be a 1 bit clock delay between writing to the THR register
> and transmission of the start bit:
> 
>   https://www.ti.com/lit/ug/spruid7e/spruid7e.pdf
> 
> I intend to respin the patch with the following addition:
> 
>   fixed_delay_rts_before_send = 1 * MSEC_PER_SEC / baud;
> 
> As a result, both delay_rts_before_send and delay_rts_after_send should be
> set to 1 in the rs485_supported struct for hardware-controlled RTS.

Ok. I was just commenting what the code did but of course if you change 
it the situation is different then.

> The resulting struct is identical to serial8250_em485_supported.

Please note it down somewhere (either commit message or comment at the
rs485_supported assignment) so that somebody else after us doesn't need 
to dig up this thread.


-- 
 i.

[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux