2020-05-17 21:58:25

by Heiko Stuebner

[permalink] [raw]
Subject: [PATCH v3 5/5] serial: 8250_dw: add em485 support

From: Giulio Benetti <[email protected]>

Need to use rs485 transceiver so let's use existing em485 485 emulation
layer on top of 8250.

Add rs485_config callback to port and uses the standard em485 start and
stop helpers.

Signed-off-by: Giulio Benetti <[email protected]>
[moved to use newly added start/stop helpers]
Signed-off-by: Heiko Stuebner <[email protected]>
---
drivers/tty/serial/8250/8250_dw.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/tty/serial/8250/8250_dw.c b/drivers/tty/serial/8250/8250_dw.c
index 51a7d3b19b39..36d364268a45 100644
--- a/drivers/tty/serial/8250/8250_dw.c
+++ b/drivers/tty/serial/8250/8250_dw.c
@@ -415,6 +415,9 @@ static int dw8250_probe(struct platform_device *pdev)
p->serial_out = dw8250_serial_out;
p->set_ldisc = dw8250_set_ldisc;
p->set_termios = dw8250_set_termios;
+ p->rs485_config = serial8250_em485_config;
+ up->rs485_start_tx = serial8250_em485_start_tx;
+ up->rs485_stop_tx = serial8250_em485_stop_tx;

p->membase = devm_ioremap(dev, regs->start, resource_size(regs));
if (!p->membase)
--
2.25.1


2020-05-18 15:23:38

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v3 5/5] serial: 8250_dw: add em485 support

On Sun, May 17, 2020 at 11:56:10PM +0200, Heiko Stuebner wrote:
> From: Giulio Benetti <[email protected]>
>
> Need to use rs485 transceiver so let's use existing em485 485 emulation
> layer on top of 8250.
>
> Add rs485_config callback to port and uses the standard em485 start and
> stop helpers.

Would it prevent to use native RS485 support?

...

> p->serial_out = dw8250_serial_out;
> p->set_ldisc = dw8250_set_ldisc;
> p->set_termios = dw8250_set_termios;
> + p->rs485_config = serial8250_em485_config;
> + up->rs485_start_tx = serial8250_em485_start_tx;
> + up->rs485_stop_tx = serial8250_em485_stop_tx;

--
With Best Regards,
Andy Shevchenko


2021-02-02 00:34:11

by Giulio Benetti

[permalink] [raw]
Subject: Re: [PATCH v3 5/5] serial: 8250_dw: add em485 support

Hi Andy,

Il 18/05/2020 17:21, Andy Shevchenko ha scritto:
> On Sun, May 17, 2020 at 11:56:10PM +0200, Heiko Stuebner wrote:
>> From: Giulio Benetti <[email protected]>
>>
>> Need to use rs485 transceiver so let's use existing em485 485 emulation
>> layer on top of 8250.
>>
>> Add rs485_config callback to port and uses the standard em485 start and
>> stop helpers.
>
> Would it prevent to use native RS485 support?

8250_dw doesn't have a native RS485 support, do you mean using hardware
RTS assertion? Anyway at the moment it's not present. This would be the
first rs485 support added to 8250_dw.

Best regards
--
Giulio Benetti
CTO

MICRONOVA SRL
Sede: Via A. Niedda 3 - 35010 Vigonza (PD)
Tel. 049/8931563 - Fax 049/8931346
Cod.Fiscale - P.IVA 02663420285
Capitale Sociale ? 26.000 i.v.
Iscritta al Reg. Imprese di Padova N. 02663420285
Numero R.E.A. 258642

> ...
>
>> p->serial_out = dw8250_serial_out;
>> p->set_ldisc = dw8250_set_ldisc;
>> p->set_termios = dw8250_set_termios;
>> + p->rs485_config = serial8250_em485_config;
>> + up->rs485_start_tx = serial8250_em485_start_tx;
>> + up->rs485_stop_tx = serial8250_em485_stop_tx;
>

2021-02-02 11:28:24

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v3 5/5] serial: 8250_dw: add em485 support

On Tue, Feb 02, 2021 at 01:31:17AM +0100, Giulio Benetti wrote:
> Il 18/05/2020 17:21, Andy Shevchenko ha scritto:
> > On Sun, May 17, 2020 at 11:56:10PM +0200, Heiko Stuebner wrote:
> > > From: Giulio Benetti <[email protected]>
> > >
> > > Need to use rs485 transceiver so let's use existing em485 485 emulation
> > > layer on top of 8250.
> > >
> > > Add rs485_config callback to port and uses the standard em485 start and
> > > stop helpers.
> >
> > Would it prevent to use native RS485 support?
>
> 8250_dw doesn't have a native RS485 support, do you mean using hardware
> RTS assertion? Anyway at the moment it's not present. This would be the
> first rs485 support added to 8250_dw.

DW v4.0+ has it.

--
With Best Regards,
Andy Shevchenko


2021-02-05 18:57:19

by Giulio Benetti

[permalink] [raw]
Subject: Re: [PATCH v3 5/5] serial: 8250_dw: add em485 support

Il 02/02/2021 12:22, Andy Shevchenko ha scritto:
> On Tue, Feb 02, 2021 at 01:31:17AM +0100, Giulio Benetti wrote:
>> Il 18/05/2020 17:21, Andy Shevchenko ha scritto:
>>> On Sun, May 17, 2020 at 11:56:10PM +0200, Heiko Stuebner wrote:
>>>> From: Giulio Benetti <[email protected]>
>>>>
>>>> Need to use rs485 transceiver so let's use existing em485 485 emulation
>>>> layer on top of 8250.
>>>>
>>>> Add rs485_config callback to port and uses the standard em485 start and
>>>> stop helpers.
>>>
>>> Would it prevent to use native RS485 support?
>>
>> 8250_dw doesn't have a native RS485 support, do you mean using hardware
>> RTS assertion? Anyway at the moment it's not present. This would be the
>> first rs485 support added to 8250_dw.
>
> DW v4.0+ has it.

I have access to datasheet of DW v3, and I don't have access to hardware
with DW v4.0v Uart.
But I could add rs485emu for only UART version < 4.0 and I can find Uart
version by reading UCV register, would it be acceptable?

Best regards
--
Giulio Benetti
CTO

MICRONOVA SRL
Sede: Via A. Niedda 3 - 35010 Vigonza (PD)
Tel. 049/8931563 - Fax 049/8931346
Cod.Fiscale - P.IVA 02663420285
Capitale Sociale ? 26.000 i.v.
Iscritta al Reg. Imprese di Padova N. 02663420285
Numero R.E.A. 258642

2021-02-05 19:36:24

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v3 5/5] serial: 8250_dw: add em485 support

On Fri, Feb 05, 2021 at 06:46:56PM +0100, Giulio Benetti wrote:
> Il 02/02/2021 12:22, Andy Shevchenko ha scritto:
> > On Tue, Feb 02, 2021 at 01:31:17AM +0100, Giulio Benetti wrote:
> > > Il 18/05/2020 17:21, Andy Shevchenko ha scritto:
> > > > On Sun, May 17, 2020 at 11:56:10PM +0200, Heiko Stuebner wrote:
> > > > > From: Giulio Benetti <[email protected]>
> > > > >
> > > > > Need to use rs485 transceiver so let's use existing em485 485 emulation
> > > > > layer on top of 8250.
> > > > >
> > > > > Add rs485_config callback to port and uses the standard em485 start and
> > > > > stop helpers.
> > > >
> > > > Would it prevent to use native RS485 support?
> > >
> > > 8250_dw doesn't have a native RS485 support, do you mean using hardware
> > > RTS assertion? Anyway at the moment it's not present. This would be the
> > > first rs485 support added to 8250_dw.
> >
> > DW v4.0+ has it.
>
> I have access to datasheet of DW v3, and I don't have access to hardware
> with DW v4.0v Uart.
> But I could add rs485emu for only UART version < 4.0 and I can find Uart
> version by reading UCV register, would it be acceptable?

I don't think we need to disable the possibility to have emulation even on v4+
IP since PCB can be designed that way. My point here, that whatever code you
add it should not prevent to use HW supported RS485, although I haven't heard
about support of it in the upstream (yet?).

And for the record, Synopsys hadn't added any bit into CPR to recognize that
feature, so only version check can be done in this case...

--
With Best Regards,
Andy Shevchenko