* [PATCH 0/2] Implement support for inverted serial TX/RX on i.MX @ 2020-02-10 17:49 George Hilliard 2020-02-10 17:49 ` [PATCH 1/2] dt-bindings: serial: document fsl,inverted-tx and -rx options George Hilliard 2020-02-10 17:49 ` [PATCH 2/2] tty: imx serial: Implement support for reversing TX and RX polarity George Hilliard 0 siblings, 2 replies; 6+ messages in thread From: George Hilliard @ 2020-02-10 17:49 UTC (permalink / raw) To: Greg Kroah-Hartman, linux-serial, devicetree This peripheral has dedicated control bits that flip input/output signals before handing them off to the OS. This is useful on my hardware because the UART is connected to an RS-422 transceiver with the +/- pins hooked up backward. Instead of a hack flipping all the bits before sending them, the hardware can do it for free. -- CONFIDENTIALITY NOTICE: This email and any attachments are for the sole use of the intended recipient and may contain material that is proprietary, confidential, privileged or otherwise legally protected or restricted under applicable government laws. Any review, disclosure, distributing or other use without expressed permission of the sender is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies without reading, printing, or saving. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] dt-bindings: serial: document fsl,inverted-tx and -rx options 2020-02-10 17:49 [PATCH 0/2] Implement support for inverted serial TX/RX on i.MX George Hilliard @ 2020-02-10 17:49 ` George Hilliard 2020-02-10 17:49 ` [PATCH 2/2] tty: imx serial: Implement support for reversing TX and RX polarity George Hilliard 1 sibling, 0 replies; 6+ messages in thread From: George Hilliard @ 2020-02-10 17:49 UTC (permalink / raw) To: Greg Kroah-Hartman, linux-serial, devicetree; +Cc: George Hilliard Add a description for the new fsl,inverted-tx and fsl,inverted-rx options for the i.MX UART peripheral. Signed-off-by: George Hilliard <ghilliard@kopismobile.com> --- Documentation/devicetree/bindings/serial/fsl-imx-uart.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt b/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt index 35957cbf1571..c8d677f9491f 100644 --- a/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt +++ b/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt @@ -8,6 +8,10 @@ Required properties: Optional properties: - fsl,dte-mode : Indicate the uart works in DTE mode. The uart works in DCE mode by default. +- fsl,inverted-tx , fsl,inverted-rx : Indicate that the hardware attached + to the peripheral inverts the signal transmitted or received, + respectively, and that the peripheral should invert its output/input + using the INVT/INVR registers. - rs485-rts-delay, rs485-rts-active-low, rs485-rx-during-tx, linux,rs485-enabled-at-boot-time: see rs485.txt. Note that for RS485 you must enable either the "uart-has-rtscts" or the "rts-gpios" -- 2.25.0 -- CONFIDENTIALITY NOTICE: This email and any attachments are for the sole use of the intended recipient and may contain material that is proprietary, confidential, privileged or otherwise legally protected or restricted under applicable government laws. Any review, disclosure, distributing or other use without expressed permission of the sender is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies without reading, printing, or saving. ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] tty: imx serial: Implement support for reversing TX and RX polarity 2020-02-10 17:49 [PATCH 0/2] Implement support for inverted serial TX/RX on i.MX George Hilliard 2020-02-10 17:49 ` [PATCH 1/2] dt-bindings: serial: document fsl,inverted-tx and -rx options George Hilliard @ 2020-02-10 17:49 ` George Hilliard 2020-02-10 18:11 ` Uwe Kleine-König 1 sibling, 1 reply; 6+ messages in thread From: George Hilliard @ 2020-02-10 17:49 UTC (permalink / raw) To: Greg Kroah-Hartman, linux-serial, devicetree; +Cc: George Hilliard The peripheral has support for inverting its input and/or output signals. This is useful if the hardware flips polarity of the peripheral's signal, such as swapped +/- pins on an RS-422 transceiver, or an inverting level shifter. Add support for these control registers via the device tree binding. Signed-off-by: George Hilliard <ghilliard@kopismobile.com> --- drivers/tty/serial/imx.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c index 0c6c63166250..467e78794997 100644 --- a/drivers/tty/serial/imx.c +++ b/drivers/tty/serial/imx.c @@ -195,6 +195,8 @@ struct imx_port { unsigned int have_rtscts:1; unsigned int have_rtsgpio:1; unsigned int dte_mode:1; + unsigned int inverted_tx:1; + unsigned int inverted_rx:1; struct clk *clk_ipg; struct clk *clk_per; const struct imx_uart_data *devdata; @@ -1335,7 +1337,7 @@ static int imx_uart_startup(struct uart_port *port) int retval, i; unsigned long flags; int dma_is_inited = 0; - u32 ucr1, ucr2, ucr4; + u32 ucr1, ucr2, ucr3, ucr4; retval = clk_prepare_enable(sport->clk_per); if (retval) @@ -1390,6 +1392,8 @@ static int imx_uart_startup(struct uart_port *port) ucr4 = imx_uart_readl(sport, UCR4) & ~UCR4_OREN; if (!sport->dma_is_enabled) ucr4 |= UCR4_OREN; + if (sport->inverted_rx) + ucr4 |= UCR4_INVR; imx_uart_writel(sport, ucr4, UCR4); ucr2 = imx_uart_readl(sport, UCR2) & ~UCR2_ATEN; @@ -1404,19 +1408,17 @@ static int imx_uart_startup(struct uart_port *port) ucr2 &= ~UCR2_RTSEN; imx_uart_writel(sport, ucr2, UCR2); + ucr3 = imx_uart_readl(sport, UCR3); + if (sport->inverted_tx) + ucr3 |= UCR3_INVT; if (!imx_uart_is_imx1(sport)) { - u32 ucr3; - - ucr3 = imx_uart_readl(sport, UCR3); - ucr3 |= UCR3_DTRDEN | UCR3_RI | UCR3_DCD; if (sport->dte_mode) /* disable broken interrupts */ ucr3 &= ~(UCR3_RI | UCR3_DCD); - - imx_uart_writel(sport, ucr3, UCR3); } + imx_uart_writel(sport, ucr3, UCR3); /* * Enable modem status interrupts @@ -2184,6 +2186,12 @@ static int imx_uart_probe_dt(struct imx_port *sport, if (of_get_property(np, "rts-gpios", NULL)) sport->have_rtsgpio = 1; + if (of_get_property(np, "fsl,inverted-tx", NULL)) + sport->inverted_tx = 1; + + if (of_get_property(np, "fsl,inverted-rx", NULL)) + sport->inverted_rx = 1; + return 0; } #else -- 2.25.0 -- CONFIDENTIALITY NOTICE: This email and any attachments are for the sole use of the intended recipient and may contain material that is proprietary, confidential, privileged or otherwise legally protected or restricted under applicable government laws. Any review, disclosure, distributing or other use without expressed permission of the sender is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies without reading, printing, or saving. ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] tty: imx serial: Implement support for reversing TX and RX polarity 2020-02-10 17:49 ` [PATCH 2/2] tty: imx serial: Implement support for reversing TX and RX polarity George Hilliard @ 2020-02-10 18:11 ` Uwe Kleine-König 2020-02-10 18:38 ` George Hilliard 0 siblings, 1 reply; 6+ messages in thread From: Uwe Kleine-König @ 2020-02-10 18:11 UTC (permalink / raw) To: George Hilliard Cc: Greg Kroah-Hartman, linux-serial, devicetree, kernel, NXP Linux Team Hello George, expanding Cc: a bit On Mon, Feb 10, 2020 at 11:49:42AM -0600, George Hilliard wrote: > CONFIDENTIALITY NOTICE: This email and any attachments are for the sole use > of the intended recipient and may contain material that is proprietary, > confidential, privileged or otherwise legally protected or restricted under > applicable government laws. Any review, disclosure, distributing or other > use without expressed permission of the sender is strictly prohibited. If > you are not the intended recipient, please contact the sender and delete > all copies without reading, printing, or saving. Hmm, sad, I would have had some review feedback that should be addressed before application of the patch. As I only noticed the footer after looking at the patch, it was already too late to stop me reviewing it. As I don't have an expressed permission I will at least not share it (and I expect that Greg will also refuse to apply a patch with such a footer). :-| Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | https://www.pengutronix.de/ | ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] tty: imx serial: Implement support for reversing TX and RX polarity 2020-02-10 18:11 ` Uwe Kleine-König @ 2020-02-10 18:38 ` George Hilliard 2020-02-10 21:16 ` Uwe Kleine-König 0 siblings, 1 reply; 6+ messages in thread From: George Hilliard @ 2020-02-10 18:38 UTC (permalink / raw) To: Uwe Kleine-König Cc: Greg Kroah-Hartman, linux-serial, devicetree, kernel, NXP Linux Team On Mon, Feb 10, 2020 at 12:11 PM Uwe Kleine-König <u.kleine-koenig@pengutronix.de> wrote: > On Mon, Feb 10, 2020 at 11:49:42AM -0600, George Hilliard wrote: > > (confidentiality spam) > > Hmm, sad, I would have had some review feedback that should be addressed > before application of the patch. As I only noticed the footer after > looking at the patch, it was already too late to stop me reviewing it. > As I don't have an expressed permission I will at least not share it > (and I expect that Greg will also refuse to apply a patch with such a > footer). > This is fixed now. Apologies - added without my knowledge. Should I simply resend a v2 without the notice? Happy to CC everyone else you included. George ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] tty: imx serial: Implement support for reversing TX and RX polarity 2020-02-10 18:38 ` George Hilliard @ 2020-02-10 21:16 ` Uwe Kleine-König 0 siblings, 0 replies; 6+ messages in thread From: Uwe Kleine-König @ 2020-02-10 21:16 UTC (permalink / raw) To: George Hilliard Cc: Greg Kroah-Hartman, linux-serial, devicetree, kernel, NXP Linux Team Hi George, On Mon, Feb 10, 2020 at 12:38:59PM -0600, George Hilliard wrote: > On Mon, Feb 10, 2020 at 12:11 PM Uwe Kleine-König > <u.kleine-koenig@pengutronix.de> wrote: > > On Mon, Feb 10, 2020 at 11:49:42AM -0600, George Hilliard wrote: > > > (confidentiality spam) > > > > Hmm, sad, I would have had some review feedback that should be addressed > > before application of the patch. As I only noticed the footer after > > looking at the patch, it was already too late to stop me reviewing it. > > As I don't have an expressed permission I will at least not share it > > (and I expect that Greg will also refuse to apply a patch with such a > > footer). > > This is fixed now. Apologies - added without my knowledge. Should I > simply resend a v2 without the notice? Happy to CC everyone else you > included. You did it right. (i.e. yes, resend without the notice is the right thing.) Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | https://www.pengutronix.de/ | ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-02-10 21:16 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-02-10 17:49 [PATCH 0/2] Implement support for inverted serial TX/RX on i.MX George Hilliard 2020-02-10 17:49 ` [PATCH 1/2] dt-bindings: serial: document fsl,inverted-tx and -rx options George Hilliard 2020-02-10 17:49 ` [PATCH 2/2] tty: imx serial: Implement support for reversing TX and RX polarity George Hilliard 2020-02-10 18:11 ` Uwe Kleine-König 2020-02-10 18:38 ` George Hilliard 2020-02-10 21:16 ` Uwe Kleine-König
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).