From: "Uwe Kleine-König" <u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> To: linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org Cc: Sascha Hauer <s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>, Fabio Estevam <fabio.estevam-3arQi8VN3Tc@public.gmane.org>, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Shawn Guo <shawnguo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org Subject: [PATCH v3 5/9] serial: fsl_lpuart: Use common rs485 device tree parsing function Date: Mon, 26 Jun 2017 11:07:59 +0200 [thread overview] Message-ID: <20170626090803.10981-6-u.kleine-koenig@pengutronix.de> (raw) In-Reply-To: <20170626090803.10981-1-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> From: Sascha Hauer <s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> We just got a common helper for parsing the rs485 specific device tree properties. Use it and drop the open coded parser. As a side effect this adds support for parsing rs485-rts-delay and rs485-rx-during-tx. As the driver doesn't support this though, probing fails if these are defined. Signed-off-by: Sascha Hauer <s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> Signed-off-by: Uwe Kleine-König <u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> --- drivers/tty/serial/fsl_lpuart.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c index 6e39ef96c6ca..68ac72a5c5fe 100644 --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c @@ -2049,6 +2049,24 @@ static int lpuart_probe(struct platform_device *pdev) return ret; } + of_get_rs485_mode(np, &sport->port.rs485); + + if (sport->port.rs485.flags & SER_RS485_RX_DURING_TX) { + dev_err(&pdev->dev, "driver doesn't support RX during TX\n"); + return -ENOSYS; + } + + if (sport->port.rs485.delay_rts_before_send || + sport->port.rs485.delay_rts_after_send) { + dev_err(&pdev->dev, "driver doesn't support RTS delays\n"); + return -ENOSYS; + } + + if (sport->port.rs485.flags & SER_RS485_ENABLED) { + sport->port.rs485.flags |= SER_RS485_RTS_ON_SEND; + writeb(UARTMODEM_TXRTSE, sport->port.membase + UARTMODEM); + } + sport->dma_tx_chan = dma_request_slave_channel(sport->port.dev, "tx"); if (!sport->dma_tx_chan) dev_info(sport->port.dev, "DMA tx channel request failed, " @@ -2059,12 +2077,6 @@ static int lpuart_probe(struct platform_device *pdev) dev_info(sport->port.dev, "DMA rx channel request failed, " "operating without rx DMA\n"); - if (of_property_read_bool(np, "linux,rs485-enabled-at-boot-time")) { - sport->port.rs485.flags |= SER_RS485_ENABLED; - sport->port.rs485.flags |= SER_RS485_RTS_ON_SEND; - writeb(UARTMODEM_TXRTSE, sport->port.membase + UARTMODEM); - } - return 0; } -- 2.11.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: u.kleine-koenig@pengutronix.de (Uwe Kleine-König) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v3 5/9] serial: fsl_lpuart: Use common rs485 device tree parsing function Date: Mon, 26 Jun 2017 11:07:59 +0200 [thread overview] Message-ID: <20170626090803.10981-6-u.kleine-koenig@pengutronix.de> (raw) In-Reply-To: <20170626090803.10981-1-u.kleine-koenig@pengutronix.de> From: Sascha Hauer <s.hauer@pengutronix.de> We just got a common helper for parsing the rs485 specific device tree properties. Use it and drop the open coded parser. As a side effect this adds support for parsing rs485-rts-delay and rs485-rx-during-tx. As the driver doesn't support this though, probing fails if these are defined. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> --- drivers/tty/serial/fsl_lpuart.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c index 6e39ef96c6ca..68ac72a5c5fe 100644 --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c @@ -2049,6 +2049,24 @@ static int lpuart_probe(struct platform_device *pdev) return ret; } + of_get_rs485_mode(np, &sport->port.rs485); + + if (sport->port.rs485.flags & SER_RS485_RX_DURING_TX) { + dev_err(&pdev->dev, "driver doesn't support RX during TX\n"); + return -ENOSYS; + } + + if (sport->port.rs485.delay_rts_before_send || + sport->port.rs485.delay_rts_after_send) { + dev_err(&pdev->dev, "driver doesn't support RTS delays\n"); + return -ENOSYS; + } + + if (sport->port.rs485.flags & SER_RS485_ENABLED) { + sport->port.rs485.flags |= SER_RS485_RTS_ON_SEND; + writeb(UARTMODEM_TXRTSE, sport->port.membase + UARTMODEM); + } + sport->dma_tx_chan = dma_request_slave_channel(sport->port.dev, "tx"); if (!sport->dma_tx_chan) dev_info(sport->port.dev, "DMA tx channel request failed, " @@ -2059,12 +2077,6 @@ static int lpuart_probe(struct platform_device *pdev) dev_info(sport->port.dev, "DMA rx channel request failed, " "operating without rx DMA\n"); - if (of_property_read_bool(np, "linux,rs485-enabled-at-boot-time")) { - sport->port.rs485.flags |= SER_RS485_ENABLED; - sport->port.rs485.flags |= SER_RS485_RTS_ON_SEND; - writeb(UARTMODEM_TXRTSE, sport->port.membase + UARTMODEM); - } - return 0; } -- 2.11.0
next prev parent reply other threads:[~2017-06-26 9:07 UTC|newest] Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-06-26 9:07 [PATCH v3 0/9] Add and make use of a common rs485 device tree parsing function Uwe Kleine-König 2017-06-26 9:07 ` Uwe Kleine-König [not found] ` <20170626090803.10981-1-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2017-06-26 9:07 ` [PATCH v3 1/9] serial: fsl_lpuart: clear unsupported options in .rs485_config() Uwe Kleine-König 2017-06-26 9:07 ` Uwe Kleine-König 2017-06-26 9:07 ` [PATCH v3 2/9] dt-bindings: serial/rs485: make rs485-rts-delay optional Uwe Kleine-König 2017-06-26 9:07 ` Uwe Kleine-König [not found] ` <20170626090803.10981-3-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2017-06-28 16:48 ` Rob Herring 2017-06-28 16:48 ` Rob Herring 2017-06-26 9:07 ` [PATCH v3 3/9] serial: Add common rs485 device tree parsing function Uwe Kleine-König 2017-06-26 9:07 ` Uwe Kleine-König [not found] ` <20170626090803.10981-4-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2017-06-27 7:40 ` Nicolas Ferre 2017-06-27 7:40 ` Nicolas Ferre 2017-06-26 9:07 ` [PATCH v3 4/9] serial: atmel: Use " Uwe Kleine-König 2017-06-26 9:07 ` Uwe Kleine-König [not found] ` <20170626090803.10981-5-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2017-06-27 7:41 ` Nicolas Ferre 2017-06-27 7:41 ` Nicolas Ferre 2017-06-27 8:27 ` Richard Genoud 2017-06-27 8:27 ` Richard Genoud 2017-06-26 9:07 ` Uwe Kleine-König [this message] 2017-06-26 9:07 ` [PATCH v3 5/9] serial: fsl_lpuart: " Uwe Kleine-König 2017-06-26 9:08 ` [PATCH v3 6/9] serial: omap-serial: " Uwe Kleine-König 2017-06-26 9:08 ` Uwe Kleine-König 2017-06-26 9:08 ` [PATCH v3 7/9] serial: imx: default to half duplex rs485 Uwe Kleine-König 2017-06-26 9:08 ` Uwe Kleine-König 2017-06-26 9:08 ` [PATCH v3 8/9] serial: imx: Use common rs485 device tree parsing function Uwe Kleine-König 2017-06-26 9:08 ` Uwe Kleine-König 2017-06-26 9:08 ` [PATCH v3 9/9] of: document rs485 bindings for Atmel USART, Freescale UARTs and OMAP UART Uwe Kleine-König 2017-06-26 9:08 ` Uwe Kleine-König [not found] ` <20170626090803.10981-10-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2017-06-27 7:42 ` Nicolas Ferre 2017-06-27 7:42 ` Nicolas Ferre 2017-06-28 18:04 ` Rob Herring 2017-06-28 18:04 ` Rob Herring 2017-06-29 18:53 ` Uwe Kleine-König 2017-06-29 18:53 ` Uwe Kleine-König 2017-06-29 15:12 ` [PATCH v3 0/9] Add and make use of a common rs485 device tree parsing function Greg KH 2017-06-29 15:12 ` Greg KH [not found] ` <20170629151200.GA16362-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org> 2017-06-29 18:47 ` Uwe Kleine-König 2017-06-29 18:47 ` Uwe Kleine-König
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20170626090803.10981-6-u.kleine-koenig@pengutronix.de \ --to=u.kleine-koenig-bicnvbalz9megne8c9+irq@public.gmane.org \ --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=fabio.estevam-3arQi8VN3Tc@public.gmane.org \ --cc=kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \ --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \ --cc=linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \ --cc=shawnguo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.