Message ID | 20200517215610.2131618-6-heiko@sntech.de |
---|---|
State | Superseded |
Headers | show |
Series | serial: 8250: Add rs485 emulation to 8250_dw | expand |
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 <giulio.benetti@micronovasrl.com> >> >> 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; >
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 <giulio.benetti@micronovasrl.com> > > > > > > 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
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 <giulio.benetti@micronovasrl.com> >>>> >>>> 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
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 <giulio.benetti@micronovasrl.com> > > > > > > > > > > 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
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)