* [PATCH v5 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers [not found] ` <20200401082721.19431-1-hyunki00.koo@samsung.com> @ 2020-04-06 10:31 ` Hyunki Koo 2020-04-06 10:31 ` [PATCH v5 1/2] dt-bindings: serial: Add reg-io-width compatible Hyunki Koo 2020-04-06 10:34 ` [PATCH v5 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers Krzysztof Kozlowski 2020-04-06 23:08 ` [PATCH v6 " Hyunki Koo 1 sibling, 2 replies; 18+ messages in thread From: Hyunki Koo @ 2020-04-06 10:31 UTC (permalink / raw) To: gregkh, krzk Cc: Hyunki Koo, Rob Herring, Kukjin Kim, Jiri Slaby, linux-serial, devicetree, linux-kernel, linux-arm-kernel, linux-samsung-soc Support 32-bit access for the TX/RX hold registers UTXH and URXH. This is required for some newer SoCs. Signed-off-by: Hyunki Koo <hyunki00.koo@samsung.com> --- v2: line 954 : change rd_regl to rd_reg in for backward compatibility. line 2031: Add init value for ourport->port.iotype to UPIO_MEM v3: line 2031: remove redundant init value for ourport->port.iotype v4: correct variable types and change misleading function name v5: add dt-binding and go as first patch in this series. --- drivers/tty/serial/samsung_tty.c | 76 +++++++++++++++++++++++++++++++++------- 1 file changed, 64 insertions(+), 12 deletions(-) diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c index 73f951d65b93..bdf1d4d12cb1 100644 --- a/drivers/tty/serial/samsung_tty.c +++ b/drivers/tty/serial/samsung_tty.c @@ -154,12 +154,47 @@ struct s3c24xx_uart_port { #define portaddrl(port, reg) \ ((unsigned long *)(unsigned long)((port)->membase + (reg))) -#define rd_regb(port, reg) (readb_relaxed(portaddr(port, reg))) +static u32 rd_reg(struct uart_port *port, u32 reg) +{ + switch (port->iotype) { + case UPIO_MEM: + return readb_relaxed(portaddr(port, reg)); + case UPIO_MEM32: + return readl_relaxed(portaddr(port, reg)); + default: + return 0; + } + return 0; +} + #define rd_regl(port, reg) (readl_relaxed(portaddr(port, reg))) -#define wr_regb(port, reg, val) writeb_relaxed(val, portaddr(port, reg)) +static void wr_reg(struct uart_port *port, u32 reg, u32 val) +{ + switch (port->iotype) { + case UPIO_MEM: + writeb_relaxed(val, portaddr(port, reg)); + break; + case UPIO_MEM32: + writel_relaxed(val, portaddr(port, reg)); + break; + } +} + #define wr_regl(port, reg, val) writel_relaxed(val, portaddr(port, reg)) +static void wr_reg_barrier(struct uart_port *port, u32 reg, u32 val) +{ + switch (port->iotype) { + case UPIO_MEM: + writeb(val, portaddr(port, reg)); + break; + case UPIO_MEM32: + writel(val, portaddr(port, reg)); + break; + } +} + /* Byte-order aware bit setting/clearing functions. */ static inline void s3c24xx_set_bit(struct uart_port *port, int idx, @@ -714,7 +749,7 @@ static void s3c24xx_serial_rx_drain_fifo(struct s3c24xx_uart_port *ourport) fifocnt--; uerstat = rd_regl(port, S3C2410_UERSTAT); - ch = rd_regb(port, S3C2410_URXH); + ch = rd_reg(port, S3C2410_URXH); if (port->flags & UPF_CONS_FLOW) { int txe = s3c24xx_serial_txempty_nofifo(port); @@ -826,7 +861,7 @@ static irqreturn_t s3c24xx_serial_tx_chars(int irq, void *id) } if (port->x_char) { - wr_regb(port, S3C2410_UTXH, port->x_char); + wr_reg(port, S3C2410_UTXH, port->x_char); port->icount.tx++; port->x_char = 0; goto out; @@ -852,7 +887,7 @@ static irqreturn_t s3c24xx_serial_tx_chars(int irq, void *id) if (rd_regl(port, S3C2410_UFSTAT) & ourport->info->tx_fifofull) break; - wr_regb(port, S3C2410_UTXH, xmit->buf[xmit->tail]); + wr_reg(port, S3C2410_UTXH, xmit->buf[xmit->tail]); xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1); port->icount.tx++; count--; @@ -916,7 +951,7 @@ static unsigned int s3c24xx_serial_tx_empty(struct uart_port *port) /* no modem control lines */ static unsigned int s3c24xx_serial_get_mctrl(struct uart_port *port) { - unsigned int umstat = rd_regb(port, S3C2410_UMSTAT); + unsigned int umstat = rd_reg(port, S3C2410_UMSTAT); if (umstat & S3C2410_UMSTAT_CTS) return TIOCM_CAR | TIOCM_DSR | TIOCM_CTS; @@ -1974,7 +2009,7 @@ static int s3c24xx_serial_probe(struct platform_device *pdev) struct device_node *np = pdev->dev.of_node; struct s3c24xx_uart_port *ourport; int index = probe_index; - int ret; + int ret, prop = 0; if (np) { ret = of_alias_get_id(np, "serial"); @@ -2000,10 +2035,27 @@ static int s3c24xx_serial_probe(struct platform_device *pdev) dev_get_platdata(&pdev->dev) : ourport->drv_data->def_cfg; - if (np) + if (np) { of_property_read_u32(np, "samsung,uart-fifosize", &ourport->port.fifosize); + if (of_property_read_u32(np, "reg-io-width", &prop) == 0) { + switch (prop) { + case 1: + ourport->port.iotype = UPIO_MEM; + break; + case 4: + ourport->port.iotype = UPIO_MEM32; + break; + default: + dev_warn(&pdev->dev, "unsupported reg-io-width (%d)\n", + prop); + ret = -EINVAL; + break; + } + } + } + if (ourport->drv_data->fifosize[index]) ourport->port.fifosize = ourport->drv_data->fifosize[index]; else if (ourport->info->fifosize) @@ -2185,7 +2237,7 @@ static int s3c24xx_serial_get_poll_char(struct uart_port *port) if (s3c24xx_serial_rx_fifocnt(ourport, ufstat) == 0) return NO_POLL_CHAR; - return rd_regb(port, S3C2410_URXH); + return rd_reg(port, S3C2410_URXH); } static void s3c24xx_serial_put_poll_char(struct uart_port *port, @@ -2200,7 +2252,7 @@ static void s3c24xx_serial_put_poll_char(struct uart_port *port, while (!s3c24xx_serial_console_txrdy(port, ufcon)) cpu_relax(); - wr_regb(port, S3C2410_UTXH, c); + wr_reg(port, S3C2410_UTXH, c); } #endif /* CONFIG_CONSOLE_POLL */ @@ -2212,7 +2264,7 @@ s3c24xx_serial_console_putchar(struct uart_port *port, int ch) while (!s3c24xx_serial_console_txrdy(port, ufcon)) cpu_relax(); - wr_regb(port, S3C2410_UTXH, ch); + wr_reg(port, S3C2410_UTXH, ch); } static void @@ -2612,7 +2664,7 @@ static void samsung_early_putc(struct uart_port *port, int c) else samsung_early_busyuart(port); - writeb(c, port->membase + S3C2410_UTXH); + wr_reg_barrier(port, S3C2410_UTXH, c); } static void samsung_early_write(struct console *con, const char *s, -- 2.15.0.rc1 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v5 1/2] dt-bindings: serial: Add reg-io-width compatible 2020-04-06 10:31 ` [PATCH v5 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers Hyunki Koo @ 2020-04-06 10:31 ` Hyunki Koo 2020-04-06 10:47 ` Krzysztof Kozlowski 2020-04-06 10:34 ` [PATCH v5 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers Krzysztof Kozlowski 1 sibling, 1 reply; 18+ messages in thread From: Hyunki Koo @ 2020-04-06 10:31 UTC (permalink / raw) To: gregkh, krzk Cc: Hyunki Koo, Rob Herring, linux-serial, devicetree, linux-kernel Add a description for reg-io-width options for the samsung serial UART peripheral. Signed-off-by: Hyunki Koo <hyunki00.koo@samsung.com> --- Documentation/devicetree/bindings/serial/samsung_uart.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Documentation/devicetree/bindings/serial/samsung_uart.yaml b/Documentation/devicetree/bindings/serial/samsung_uart.yaml index 9d2ce347875b..a57b1233c691 100644 --- a/Documentation/devicetree/bindings/serial/samsung_uart.yaml +++ b/Documentation/devicetree/bindings/serial/samsung_uart.yaml @@ -29,6 +29,14 @@ properties: reg: maxItems: 1 + reg-io-width: + description: | + The size (in bytes) of the IO accesses that should be performed + on the device. + allOf: + - $ref: /schemas/types.yaml#/definitions/uint32 + - enum: [ 1, 4 ] + clocks: minItems: 2 maxItems: 5 -- 2.15.0.rc1 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH v5 1/2] dt-bindings: serial: Add reg-io-width compatible 2020-04-06 10:31 ` [PATCH v5 1/2] dt-bindings: serial: Add reg-io-width compatible Hyunki Koo @ 2020-04-06 10:47 ` Krzysztof Kozlowski 0 siblings, 0 replies; 18+ messages in thread From: Krzysztof Kozlowski @ 2020-04-06 10:47 UTC (permalink / raw) To: Hyunki Koo; +Cc: gregkh, Rob Herring, linux-serial, devicetree, linux-kernel On Mon, Apr 06, 2020 at 07:31:26PM +0900, Hyunki Koo wrote: > Add a description for reg-io-width options for the samsung serial > UART peripheral. > > Signed-off-by: Hyunki Koo <hyunki00.koo@samsung.com> > --- > Documentation/devicetree/bindings/serial/samsung_uart.yaml | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/Documentation/devicetree/bindings/serial/samsung_uart.yaml b/Documentation/devicetree/bindings/serial/samsung_uart.yaml > index 9d2ce347875b..a57b1233c691 100644 > --- a/Documentation/devicetree/bindings/serial/samsung_uart.yaml > +++ b/Documentation/devicetree/bindings/serial/samsung_uart.yaml > @@ -29,6 +29,14 @@ properties: > reg: > maxItems: 1 > > + reg-io-width: > + description: | > + The size (in bytes) of the IO accesses that should be performed > + on the device. > + allOf: > + - $ref: /schemas/types.yaml#/definitions/uint32 > + - enum: [ 1, 4 ] I just noticed that the allOf is not needed. Just enum [1, 2] is enough. With that change: Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Best regards, Krzysztof > + > clocks: > minItems: 2 > maxItems: 5 > -- > 2.15.0.rc1 > ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v5 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers 2020-04-06 10:31 ` [PATCH v5 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers Hyunki Koo 2020-04-06 10:31 ` [PATCH v5 1/2] dt-bindings: serial: Add reg-io-width compatible Hyunki Koo @ 2020-04-06 10:34 ` Krzysztof Kozlowski 1 sibling, 0 replies; 18+ messages in thread From: Krzysztof Kozlowski @ 2020-04-06 10:34 UTC (permalink / raw) To: Hyunki Koo Cc: gregkh, Rob Herring, Kukjin Kim, Jiri Slaby, linux-serial, devicetree, linux-kernel, linux-arm-kernel, linux-samsung-soc On Mon, Apr 06, 2020 at 07:31:25PM +0900, Hyunki Koo wrote: > Support 32-bit access for the TX/RX hold registers UTXH and URXH. > > This is required for some newer SoCs. > > Signed-off-by: Hyunki Koo <hyunki00.koo@samsung.com> > --- > v2: > line 954 : change rd_regl to rd_reg in for backward compatibility. > line 2031: Add init value for ourport->port.iotype to UPIO_MEM > v3: > line 2031: remove redundant init value for ourport->port.iotype > v4: > correct variable types and change misleading function name > v5: > add dt-binding and go as first patch in this series. > > --- > drivers/tty/serial/samsung_tty.c | 76 +++++++++++++++++++++++++++++++++------- > 1 file changed, 64 insertions(+), 12 deletions(-) For me it is fine, although Greg wanted the write functions to be consistent with read around default case. Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Tested-by: Krzysztof Kozlowski <krzk@kernel.org> Best regards, Krzysztof ^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH v6 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers [not found] ` <20200401082721.19431-1-hyunki00.koo@samsung.com> 2020-04-06 10:31 ` [PATCH v5 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers Hyunki Koo @ 2020-04-06 23:08 ` Hyunki Koo 2020-04-06 23:08 ` [PATCH v6 1/2] dt-bindings: serial: Add reg-io-width compatible Hyunki Koo ` (2 more replies) 1 sibling, 3 replies; 18+ messages in thread From: Hyunki Koo @ 2020-04-06 23:08 UTC (permalink / raw) To: gregkh, krzk Cc: Hyunki Koo, Rob Herring, Kukjin Kim, Jiri Slaby, linux-serial, devicetree, linux-kernel, linux-arm-kernel, linux-samsung-soc Support 32-bit access for the TX/RX hold registers UTXH and URXH. This is required for some newer SoCs. Signed-off-by: Hyunki Koo <hyunki00.koo@samsung.com> --- v2: line 954 : change rd_regl to rd_reg in for backward compatibility. line 2031: Add init value for ourport->port.iotype to UPIO_MEM v3: line 2031: remove redundant init value for ourport->port.iotype v4: correct variable types and change misleading function name v5: add dt-binding and go as first patch in this series. v6: no change in this patch, only chaged in [PATCH v6 1/2] --- drivers/tty/serial/samsung_tty.c | 76 +++++++++++++++++++++++++++++++++------- 1 file changed, 64 insertions(+), 12 deletions(-) diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c index 73f951d65b93..bdf1d4d12cb1 100644 --- a/drivers/tty/serial/samsung_tty.c +++ b/drivers/tty/serial/samsung_tty.c @@ -154,12 +154,47 @@ struct s3c24xx_uart_port { #define portaddrl(port, reg) \ ((unsigned long *)(unsigned long)((port)->membase + (reg))) -#define rd_regb(port, reg) (readb_relaxed(portaddr(port, reg))) +static u32 rd_reg(struct uart_port *port, u32 reg) +{ + switch (port->iotype) { + case UPIO_MEM: + return readb_relaxed(portaddr(port, reg)); + case UPIO_MEM32: + return readl_relaxed(portaddr(port, reg)); + default: + return 0; + } + return 0; +} + #define rd_regl(port, reg) (readl_relaxed(portaddr(port, reg))) -#define wr_regb(port, reg, val) writeb_relaxed(val, portaddr(port, reg)) +static void wr_reg(struct uart_port *port, u32 reg, u32 val) +{ + switch (port->iotype) { + case UPIO_MEM: + writeb_relaxed(val, portaddr(port, reg)); + break; + case UPIO_MEM32: + writel_relaxed(val, portaddr(port, reg)); + break; + } +} + #define wr_regl(port, reg, val) writel_relaxed(val, portaddr(port, reg)) +static void wr_reg_barrier(struct uart_port *port, u32 reg, u32 val) +{ + switch (port->iotype) { + case UPIO_MEM: + writeb(val, portaddr(port, reg)); + break; + case UPIO_MEM32: + writel(val, portaddr(port, reg)); + break; + } +} + /* Byte-order aware bit setting/clearing functions. */ static inline void s3c24xx_set_bit(struct uart_port *port, int idx, @@ -714,7 +749,7 @@ static void s3c24xx_serial_rx_drain_fifo(struct s3c24xx_uart_port *ourport) fifocnt--; uerstat = rd_regl(port, S3C2410_UERSTAT); - ch = rd_regb(port, S3C2410_URXH); + ch = rd_reg(port, S3C2410_URXH); if (port->flags & UPF_CONS_FLOW) { int txe = s3c24xx_serial_txempty_nofifo(port); @@ -826,7 +861,7 @@ static irqreturn_t s3c24xx_serial_tx_chars(int irq, void *id) } if (port->x_char) { - wr_regb(port, S3C2410_UTXH, port->x_char); + wr_reg(port, S3C2410_UTXH, port->x_char); port->icount.tx++; port->x_char = 0; goto out; @@ -852,7 +887,7 @@ static irqreturn_t s3c24xx_serial_tx_chars(int irq, void *id) if (rd_regl(port, S3C2410_UFSTAT) & ourport->info->tx_fifofull) break; - wr_regb(port, S3C2410_UTXH, xmit->buf[xmit->tail]); + wr_reg(port, S3C2410_UTXH, xmit->buf[xmit->tail]); xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1); port->icount.tx++; count--; @@ -916,7 +951,7 @@ static unsigned int s3c24xx_serial_tx_empty(struct uart_port *port) /* no modem control lines */ static unsigned int s3c24xx_serial_get_mctrl(struct uart_port *port) { - unsigned int umstat = rd_regb(port, S3C2410_UMSTAT); + unsigned int umstat = rd_reg(port, S3C2410_UMSTAT); if (umstat & S3C2410_UMSTAT_CTS) return TIOCM_CAR | TIOCM_DSR | TIOCM_CTS; @@ -1974,7 +2009,7 @@ static int s3c24xx_serial_probe(struct platform_device *pdev) struct device_node *np = pdev->dev.of_node; struct s3c24xx_uart_port *ourport; int index = probe_index; - int ret; + int ret, prop = 0; if (np) { ret = of_alias_get_id(np, "serial"); @@ -2000,10 +2035,27 @@ static int s3c24xx_serial_probe(struct platform_device *pdev) dev_get_platdata(&pdev->dev) : ourport->drv_data->def_cfg; - if (np) + if (np) { of_property_read_u32(np, "samsung,uart-fifosize", &ourport->port.fifosize); + if (of_property_read_u32(np, "reg-io-width", &prop) == 0) { + switch (prop) { + case 1: + ourport->port.iotype = UPIO_MEM; + break; + case 4: + ourport->port.iotype = UPIO_MEM32; + break; + default: + dev_warn(&pdev->dev, "unsupported reg-io-width (%d)\n", + prop); + ret = -EINVAL; + break; + } + } + } + if (ourport->drv_data->fifosize[index]) ourport->port.fifosize = ourport->drv_data->fifosize[index]; else if (ourport->info->fifosize) @@ -2185,7 +2237,7 @@ static int s3c24xx_serial_get_poll_char(struct uart_port *port) if (s3c24xx_serial_rx_fifocnt(ourport, ufstat) == 0) return NO_POLL_CHAR; - return rd_regb(port, S3C2410_URXH); + return rd_reg(port, S3C2410_URXH); } static void s3c24xx_serial_put_poll_char(struct uart_port *port, @@ -2200,7 +2252,7 @@ static void s3c24xx_serial_put_poll_char(struct uart_port *port, while (!s3c24xx_serial_console_txrdy(port, ufcon)) cpu_relax(); - wr_regb(port, S3C2410_UTXH, c); + wr_reg(port, S3C2410_UTXH, c); } #endif /* CONFIG_CONSOLE_POLL */ @@ -2212,7 +2264,7 @@ s3c24xx_serial_console_putchar(struct uart_port *port, int ch) while (!s3c24xx_serial_console_txrdy(port, ufcon)) cpu_relax(); - wr_regb(port, S3C2410_UTXH, ch); + wr_reg(port, S3C2410_UTXH, ch); } static void @@ -2612,7 +2664,7 @@ static void samsung_early_putc(struct uart_port *port, int c) else samsung_early_busyuart(port); - writeb(c, port->membase + S3C2410_UTXH); + wr_reg_barrier(port, S3C2410_UTXH, c); } static void samsung_early_write(struct console *con, const char *s, -- 2.15.0.rc1 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v6 1/2] dt-bindings: serial: Add reg-io-width compatible 2020-04-06 23:08 ` [PATCH v6 " Hyunki Koo @ 2020-04-06 23:08 ` Hyunki Koo 2020-04-07 6:25 ` Krzysztof Kozlowski ` (2 more replies) 2020-04-07 4:49 ` [PATCH v6 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers Jiri Slaby 2020-04-07 6:26 ` Krzysztof Kozlowski 2 siblings, 3 replies; 18+ messages in thread From: Hyunki Koo @ 2020-04-06 23:08 UTC (permalink / raw) To: gregkh, krzk Cc: Hyunki Koo, Rob Herring, linux-serial, devicetree, linux-kernel Add a description for reg-io-width options for the samsung serial UART peripheral. Signed-off-by: Hyunki Koo <hyunki00.koo@samsung.com> --- v5: first added in this series v6: clean description of reg-io-width --- Documentation/devicetree/bindings/serial/samsung_uart.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/devicetree/bindings/serial/samsung_uart.yaml b/Documentation/devicetree/bindings/serial/samsung_uart.yaml index 9d2ce347875b..1a0bb7619e2e 100644 --- a/Documentation/devicetree/bindings/serial/samsung_uart.yaml +++ b/Documentation/devicetree/bindings/serial/samsung_uart.yaml @@ -29,6 +29,12 @@ properties: reg: maxItems: 1 + reg-io-width: + description: + The size (in bytes) of the IO accesses that should be performed + on the device. If omitted, default of 1 is used. + - enum: [ 1, 4 ] + clocks: minItems: 2 maxItems: 5 -- 2.15.0.rc1 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH v6 1/2] dt-bindings: serial: Add reg-io-width compatible 2020-04-06 23:08 ` [PATCH v6 1/2] dt-bindings: serial: Add reg-io-width compatible Hyunki Koo @ 2020-04-07 6:25 ` Krzysztof Kozlowski 2020-04-09 23:05 ` Rob Herring 2020-04-09 23:09 ` Rob Herring 2 siblings, 0 replies; 18+ messages in thread From: Krzysztof Kozlowski @ 2020-04-07 6:25 UTC (permalink / raw) To: Hyunki Koo; +Cc: gregkh, Rob Herring, linux-serial, devicetree, linux-kernel On Tue, Apr 07, 2020 at 08:08:50AM +0900, Hyunki Koo wrote: > Add a description for reg-io-width options for the samsung serial > UART peripheral. > > Signed-off-by: Hyunki Koo <hyunki00.koo@samsung.com> > --- > v5: first added in this series > v6: clean description of reg-io-width > --- > Documentation/devicetree/bindings/serial/samsung_uart.yaml | 6 ++++++ > 1 file changed, 6 insertions(+) Please keep accumulated tags (review, ack, tested etc.) with new versions of paches. Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Best regards, Krzysztof ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v6 1/2] dt-bindings: serial: Add reg-io-width compatible 2020-04-06 23:08 ` [PATCH v6 1/2] dt-bindings: serial: Add reg-io-width compatible Hyunki Koo 2020-04-07 6:25 ` Krzysztof Kozlowski @ 2020-04-09 23:05 ` Rob Herring 2020-04-09 23:09 ` Rob Herring 2 siblings, 0 replies; 18+ messages in thread From: Rob Herring @ 2020-04-09 23:05 UTC (permalink / raw) To: Hyunki Koo Cc: gregkh, krzk, Hyunki Koo, linux-serial, devicetree, linux-kernel On Tue, 7 Apr 2020 08:08:50 +0900, Hyunki Koo wrote: > Add a description for reg-io-width options for the samsung serial > UART peripheral. > > Signed-off-by: Hyunki Koo <hyunki00.koo@samsung.com> > --- > v5: first added in this series > v6: clean description of reg-io-width > --- > Documentation/devicetree/bindings/serial/samsung_uart.yaml | 6 ++++++ > 1 file changed, 6 insertions(+) > My bot found errors running 'make dt_binding_check' on your patch: Documentation/devicetree/bindings/serial/samsung_uart.yaml: mapping values are not allowed in this context in "<unicode string>", line 36, column 13 Documentation/devicetree/bindings/Makefile:12: recipe for target 'Documentation/devicetree/bindings/serial/samsung_uart.example.dts' failed make[1]: *** [Documentation/devicetree/bindings/serial/samsung_uart.example.dts] Error 1 make[1]: *** Waiting for unfinished jobs.... Makefile:1262: recipe for target 'dt_binding_check' failed make: *** [dt_binding_check] Error 2 See https://patchwork.ozlabs.org/patch/1267104 If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure dt-schema is up to date: pip3 install git+https://github.com/devicetree-org/dt-schema.git@master --upgrade Please check and re-submit. ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v6 1/2] dt-bindings: serial: Add reg-io-width compatible 2020-04-06 23:08 ` [PATCH v6 1/2] dt-bindings: serial: Add reg-io-width compatible Hyunki Koo 2020-04-07 6:25 ` Krzysztof Kozlowski 2020-04-09 23:05 ` Rob Herring @ 2020-04-09 23:09 ` Rob Herring 2 siblings, 0 replies; 18+ messages in thread From: Rob Herring @ 2020-04-09 23:09 UTC (permalink / raw) To: Hyunki Koo Cc: Greg Kroah-Hartman, Krzysztof Kozlowski, open list:SERIAL DRIVERS, devicetree, linux-kernel@vger.kernel.org On Mon, Apr 6, 2020 at 5:09 PM Hyunki Koo <hyunki00.koo@samsung.com> wrote: > > Add a description for reg-io-width options for the samsung serial > UART peripheral. > > Signed-off-by: Hyunki Koo <hyunki00.koo@samsung.com> > --- > v5: first added in this series > v6: clean description of reg-io-width > --- > Documentation/devicetree/bindings/serial/samsung_uart.yaml | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/Documentation/devicetree/bindings/serial/samsung_uart.yaml b/Documentation/devicetree/bindings/serial/samsung_uart.yaml > index 9d2ce347875b..1a0bb7619e2e 100644 > --- a/Documentation/devicetree/bindings/serial/samsung_uart.yaml > +++ b/Documentation/devicetree/bindings/serial/samsung_uart.yaml > @@ -29,6 +29,12 @@ properties: > reg: > maxItems: 1 > > + reg-io-width: > + description: > + The size (in bytes) of the IO accesses that should be performed > + on the device. If omitted, default of 1 is used. > + - enum: [ 1, 4 ] Can't this be implied by the compatible strings? This isn't actual json-schema either with the enum under the description. Run 'make dt_binding_check' before you send schemas. There's a keyword for expressing the default value too. Hint: It's 'default'. Rob ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v6 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers 2020-04-06 23:08 ` [PATCH v6 " Hyunki Koo 2020-04-06 23:08 ` [PATCH v6 1/2] dt-bindings: serial: Add reg-io-width compatible Hyunki Koo @ 2020-04-07 4:49 ` Jiri Slaby 2020-04-07 6:02 ` Hyunki Koo 2020-04-07 6:24 ` Krzysztof Kozlowski 2020-04-07 6:26 ` Krzysztof Kozlowski 2 siblings, 2 replies; 18+ messages in thread From: Jiri Slaby @ 2020-04-07 4:49 UTC (permalink / raw) To: Hyunki Koo, gregkh, krzk Cc: Rob Herring, Kukjin Kim, linux-serial, devicetree, linux-kernel, linux-arm-kernel, linux-samsung-soc On 07. 04. 20, 1:08, Hyunki Koo wrote: > Support 32-bit access for the TX/RX hold registers UTXH and URXH. > > This is required for some newer SoCs. > > Signed-off-by: Hyunki Koo <hyunki00.koo@samsung.com> ... > --- > drivers/tty/serial/samsung_tty.c | 76 +++++++++++++++++++++++++++++++++------- > 1 file changed, 64 insertions(+), 12 deletions(-) > > diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c > index 73f951d65b93..bdf1d4d12cb1 100644 > --- a/drivers/tty/serial/samsung_tty.c > +++ b/drivers/tty/serial/samsung_tty.c > @@ -154,12 +154,47 @@ struct s3c24xx_uart_port { ... > -#define wr_regb(port, reg, val) writeb_relaxed(val, portaddr(port, reg)) > +static void wr_reg(struct uart_port *port, u32 reg, u32 val) > +{ > + switch (port->iotype) { > + case UPIO_MEM: > + writeb_relaxed(val, portaddr(port, reg)); > + break; > + case UPIO_MEM32: > + writel_relaxed(val, portaddr(port, reg)); > + break; > + } > +} > + > #define wr_regl(port, reg, val) writel_relaxed(val, portaddr(port, reg)) > > +static void wr_reg_barrier(struct uart_port *port, u32 reg, u32 val) You need to explain, why you need this _barrier variant now. This change should be done in a separate patch too. > +{ > + switch (port->iotype) { > + case UPIO_MEM: > + writeb(val, portaddr(port, reg)); > + break; > + case UPIO_MEM32: > + writel(val, portaddr(port, reg)); > + break; > + } > +} > + > /* Byte-order aware bit setting/clearing functions. */ > > static inline void s3c24xx_set_bit(struct uart_port *port, int idx, thanks, -- js suse labs ^ permalink raw reply [flat|nested] 18+ messages in thread
* RE: [PATCH v6 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers 2020-04-07 4:49 ` [PATCH v6 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers Jiri Slaby @ 2020-04-07 6:02 ` Hyunki Koo 2020-04-07 6:24 ` Krzysztof Kozlowski 1 sibling, 0 replies; 18+ messages in thread From: Hyunki Koo @ 2020-04-07 6:02 UTC (permalink / raw) To: 'Jiri Slaby', gregkh, krzk Cc: 'Rob Herring', 'Kukjin Kim', linux-serial, devicetree, linux-kernel, linux-arm-kernel, linux-samsung-soc On 07. 04. 20, 1:49, Jiri Slaby wrote: > On 07. 04. 20, 1:08, Hyunki Koo wrote: > > Support 32-bit access for the TX/RX hold registers UTXH and URXH. > > > > This is required for some newer SoCs. > > > > Signed-off-by: Hyunki Koo <hyunki00.koo@samsung.com> > ... > > --- > > drivers/tty/serial/samsung_tty.c | 76 > > +++++++++++++++++++++++++++++++++------- > > 1 file changed, 64 insertions(+), 12 deletions(-) > > > > diff --git a/drivers/tty/serial/samsung_tty.c > > b/drivers/tty/serial/samsung_tty.c > > index 73f951d65b93..bdf1d4d12cb1 100644 > > --- a/drivers/tty/serial/samsung_tty.c > > +++ b/drivers/tty/serial/samsung_tty.c > > @@ -154,12 +154,47 @@ struct s3c24xx_uart_port { > ... > > -#define wr_regb(port, reg, val) writeb_relaxed(val, portaddr(port, > > reg)) > > +static void wr_reg(struct uart_port *port, u32 reg, u32 val) { > > + switch (port->iotype) { > > + case UPIO_MEM: > > + writeb_relaxed(val, portaddr(port, reg)); > > + break; > > + case UPIO_MEM32: > > + writel_relaxed(val, portaddr(port, reg)); > > + break; > > + } > > +} > > + > > #define wr_regl(port, reg, val) writel_relaxed(val, portaddr(port, > > reg)) > > > > +static void wr_reg_barrier(struct uart_port *port, u32 reg, u32 val) > > You need to explain, why you need this _barrier variant now. This change > should be done in a separate patch too. > > > +{ > > + switch (port->iotype) { > > + case UPIO_MEM: > > + writeb(val, portaddr(port, reg)); > > + break; > > + case UPIO_MEM32: > > + writel(val, portaddr(port, reg)); > > + break; > > + } > > +} > > + > > /* Byte-order aware bit setting/clearing functions. */ > > > > static inline void s3c24xx_set_bit(struct uart_port *port, int idx, > > thanks, > -- > js > suse labs The purpose of this patch is to support 32bit access for registers, and it is also working exsisting device. There are 3 operations what I have to to change which are rd_regb, wr_regb, and writeb. rd_regb, wr_regb are changed to rd_reg, wr_reg. and writeb is changed to wr_reg_barrier. So I make as a one patch. wr_reg_barrier is not a different patch, itis just replaced from writeb. ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v6 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers 2020-04-07 4:49 ` [PATCH v6 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers Jiri Slaby 2020-04-07 6:02 ` Hyunki Koo @ 2020-04-07 6:24 ` Krzysztof Kozlowski 2020-04-07 6:32 ` Jiri Slaby 1 sibling, 1 reply; 18+ messages in thread From: Krzysztof Kozlowski @ 2020-04-07 6:24 UTC (permalink / raw) To: Jiri Slaby Cc: Hyunki Koo, gregkh, Rob Herring, Kukjin Kim, linux-serial, devicetree, linux-kernel, linux-arm-kernel, linux-samsung-soc On Tue, Apr 07, 2020 at 06:49:29AM +0200, Jiri Slaby wrote: > On 07. 04. 20, 1:08, Hyunki Koo wrote: > > Support 32-bit access for the TX/RX hold registers UTXH and URXH. > > > > This is required for some newer SoCs. > > > > Signed-off-by: Hyunki Koo <hyunki00.koo@samsung.com> > ... > > --- > > drivers/tty/serial/samsung_tty.c | 76 +++++++++++++++++++++++++++++++++------- > > 1 file changed, 64 insertions(+), 12 deletions(-) > > > > diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c > > index 73f951d65b93..bdf1d4d12cb1 100644 > > --- a/drivers/tty/serial/samsung_tty.c > > +++ b/drivers/tty/serial/samsung_tty.c > > @@ -154,12 +154,47 @@ struct s3c24xx_uart_port { > ... > > -#define wr_regb(port, reg, val) writeb_relaxed(val, portaddr(port, reg)) > > +static void wr_reg(struct uart_port *port, u32 reg, u32 val) > > +{ > > + switch (port->iotype) { > > + case UPIO_MEM: > > + writeb_relaxed(val, portaddr(port, reg)); > > + break; > > + case UPIO_MEM32: > > + writel_relaxed(val, portaddr(port, reg)); > > + break; > > + } > > +} > > + > > #define wr_regl(port, reg, val) writel_relaxed(val, portaddr(port, reg)) > > > > +static void wr_reg_barrier(struct uart_port *port, u32 reg, u32 val) > > You need to explain, why you need this _barrier variant now. This change > should be done in a separate patch too. There is no functional change in regard of barrier. The ordered IO was used there before. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v6 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers 2020-04-07 6:24 ` Krzysztof Kozlowski @ 2020-04-07 6:32 ` Jiri Slaby 2020-04-07 7:22 ` Krzysztof Kozlowski 0 siblings, 1 reply; 18+ messages in thread From: Jiri Slaby @ 2020-04-07 6:32 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Hyunki Koo, gregkh, Rob Herring, Kukjin Kim, linux-serial, devicetree, linux-kernel, linux-arm-kernel, linux-samsung-soc On 07. 04. 20, 8:24, Krzysztof Kozlowski wrote: > On Tue, Apr 07, 2020 at 06:49:29AM +0200, Jiri Slaby wrote: >> On 07. 04. 20, 1:08, Hyunki Koo wrote: >>> Support 32-bit access for the TX/RX hold registers UTXH and URXH. >>> >>> This is required for some newer SoCs. >>> >>> Signed-off-by: Hyunki Koo <hyunki00.koo@samsung.com> >> ... >>> --- >>> drivers/tty/serial/samsung_tty.c | 76 +++++++++++++++++++++++++++++++++------- >>> 1 file changed, 64 insertions(+), 12 deletions(-) >>> >>> diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c >>> index 73f951d65b93..bdf1d4d12cb1 100644 >>> --- a/drivers/tty/serial/samsung_tty.c >>> +++ b/drivers/tty/serial/samsung_tty.c >>> @@ -154,12 +154,47 @@ struct s3c24xx_uart_port { >> ... >>> -#define wr_regb(port, reg, val) writeb_relaxed(val, portaddr(port, reg)) >>> +static void wr_reg(struct uart_port *port, u32 reg, u32 val) >>> +{ >>> + switch (port->iotype) { >>> + case UPIO_MEM: >>> + writeb_relaxed(val, portaddr(port, reg)); >>> + break; >>> + case UPIO_MEM32: >>> + writel_relaxed(val, portaddr(port, reg)); >>> + break; >>> + } >>> +} >>> + >>> #define wr_regl(port, reg, val) writel_relaxed(val, portaddr(port, reg)) >>> >>> +static void wr_reg_barrier(struct uart_port *port, u32 reg, u32 val) >> >> You need to explain, why you need this _barrier variant now. This change >> should be done in a separate patch too. > > There is no functional change in regard of barrier. The ordered IO was > used there before. The patch changes one wr_reg to wr_reg_barrier without any explanation. This will hardly be accepted. thanks, -- js suse labs ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v6 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers 2020-04-07 6:32 ` Jiri Slaby @ 2020-04-07 7:22 ` Krzysztof Kozlowski 0 siblings, 0 replies; 18+ messages in thread From: Krzysztof Kozlowski @ 2020-04-07 7:22 UTC (permalink / raw) To: Jiri Slaby Cc: Hyunki Koo, gregkh, Rob Herring, Kukjin Kim, linux-serial, devicetree, linux-kernel, linux-arm-kernel, linux-samsung-soc On Tue, Apr 07, 2020 at 08:32:56AM +0200, Jiri Slaby wrote: > On 07. 04. 20, 8:24, Krzysztof Kozlowski wrote: > > On Tue, Apr 07, 2020 at 06:49:29AM +0200, Jiri Slaby wrote: > >> On 07. 04. 20, 1:08, Hyunki Koo wrote: > >>> Support 32-bit access for the TX/RX hold registers UTXH and URXH. > >>> > >>> This is required for some newer SoCs. > >>> > >>> Signed-off-by: Hyunki Koo <hyunki00.koo@samsung.com> > >> ... > >>> --- > >>> drivers/tty/serial/samsung_tty.c | 76 +++++++++++++++++++++++++++++++++------- > >>> 1 file changed, 64 insertions(+), 12 deletions(-) > >>> > >>> diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c > >>> index 73f951d65b93..bdf1d4d12cb1 100644 > >>> --- a/drivers/tty/serial/samsung_tty.c > >>> +++ b/drivers/tty/serial/samsung_tty.c > >>> @@ -154,12 +154,47 @@ struct s3c24xx_uart_port { > >> ... > >>> -#define wr_regb(port, reg, val) writeb_relaxed(val, portaddr(port, reg)) > >>> +static void wr_reg(struct uart_port *port, u32 reg, u32 val) > >>> +{ > >>> + switch (port->iotype) { > >>> + case UPIO_MEM: > >>> + writeb_relaxed(val, portaddr(port, reg)); > >>> + break; > >>> + case UPIO_MEM32: > >>> + writel_relaxed(val, portaddr(port, reg)); > >>> + break; > >>> + } > >>> +} > >>> + > >>> #define wr_regl(port, reg, val) writel_relaxed(val, portaddr(port, reg)) > >>> > >>> +static void wr_reg_barrier(struct uart_port *port, u32 reg, u32 val) > >> > >> You need to explain, why you need this _barrier variant now. This change > >> should be done in a separate patch too. > > > > There is no functional change in regard of barrier. The ordered IO was > > used there before. > > The patch changes one wr_reg to wr_reg_barrier without any explanation. > This will hardly be accepted. I cannot find such change... I see only: @@ -2612,7 +2664,7 @@ static void samsung_early_putc(struct uart_port *port, int c) - writeb(c, port->membase + S3C2410_UTXH); + wr_reg_barrier(port, S3C2410_UTXH, c); which is the same except 'b' -> 'b/l'. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v6 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers 2020-04-06 23:08 ` [PATCH v6 " Hyunki Koo 2020-04-06 23:08 ` [PATCH v6 1/2] dt-bindings: serial: Add reg-io-width compatible Hyunki Koo 2020-04-07 4:49 ` [PATCH v6 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers Jiri Slaby @ 2020-04-07 6:26 ` Krzysztof Kozlowski 2020-04-07 6:28 ` Jiri Slaby 2020-04-07 6:54 ` Hyunki Koo 2 siblings, 2 replies; 18+ messages in thread From: Krzysztof Kozlowski @ 2020-04-07 6:26 UTC (permalink / raw) To: Hyunki Koo Cc: gregkh, Rob Herring, Kukjin Kim, Jiri Slaby, linux-serial, devicetree, linux-kernel, linux-arm-kernel, linux-samsung-soc On Tue, Apr 07, 2020 at 08:08:49AM +0900, Hyunki Koo wrote: > Support 32-bit access for the TX/RX hold registers UTXH and URXH. > > This is required for some newer SoCs. > > Signed-off-by: Hyunki Koo <hyunki00.koo@samsung.com> > --- Why I am adding these for the third time? Tested-by: Krzysztof Kozlowski <krzk@kernel.org> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Best regards, Krzysztof ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v6 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers 2020-04-07 6:26 ` Krzysztof Kozlowski @ 2020-04-07 6:28 ` Jiri Slaby 2020-04-07 6:37 ` Jiri Slaby 2020-04-07 6:54 ` Hyunki Koo 1 sibling, 1 reply; 18+ messages in thread From: Jiri Slaby @ 2020-04-07 6:28 UTC (permalink / raw) To: Krzysztof Kozlowski, Hyunki Koo Cc: gregkh, Rob Herring, Kukjin Kim, linux-serial, devicetree, linux-kernel, linux-arm-kernel, linux-samsung-soc On 07. 04. 20, 8:26, Krzysztof Kozlowski wrote: > On Tue, Apr 07, 2020 at 08:08:49AM +0900, Hyunki Koo wrote: >> Support 32-bit access for the TX/RX hold registers UTXH and URXH. >> >> This is required for some newer SoCs. >> >> Signed-off-by: Hyunki Koo <hyunki00.koo@samsung.com> >> --- > > Why I am adding these for the third time? I don't know as I don't care about your tags anyway. > Tested-by: Krzysztof Kozlowski <krzk@kernel.org> > Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> -- js suse labs ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v6 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers 2020-04-07 6:28 ` Jiri Slaby @ 2020-04-07 6:37 ` Jiri Slaby 0 siblings, 0 replies; 18+ messages in thread From: Jiri Slaby @ 2020-04-07 6:37 UTC (permalink / raw) To: Krzysztof Kozlowski, Hyunki Koo Cc: gregkh, Rob Herring, Kukjin Kim, linux-serial, devicetree, linux-kernel, linux-arm-kernel, linux-samsung-soc On 07. 04. 20, 8:28, Jiri Slaby wrote: > On 07. 04. 20, 8:26, Krzysztof Kozlowski wrote: >> On Tue, Apr 07, 2020 at 08:08:49AM +0900, Hyunki Koo wrote: >>> Support 32-bit access for the TX/RX hold registers UTXH and URXH. >>> >>> This is required for some newer SoCs. >>> >>> Signed-off-by: Hyunki Koo <hyunki00.koo@samsung.com> >>> --- >> >> Why I am adding these for the third time? > > I don't know as I don't care about your tags anyway. Sorry, my bad, I was somehow mislead by thunderbird, thinking I am replying to a different thread. sorry, -- js suse labs ^ permalink raw reply [flat|nested] 18+ messages in thread
* RE: [PATCH v6 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers 2020-04-07 6:26 ` Krzysztof Kozlowski 2020-04-07 6:28 ` Jiri Slaby @ 2020-04-07 6:54 ` Hyunki Koo 1 sibling, 0 replies; 18+ messages in thread From: Hyunki Koo @ 2020-04-07 6:54 UTC (permalink / raw) To: 'Krzysztof Kozlowski' Cc: gregkh, 'Rob Herring', 'Kukjin Kim', 'Jiri Slaby', linux-serial, devicetree, linux-kernel, linux-arm-kernel, linux-samsung-soc On Tue, Apr 07, 2020 at 3:27 :00PM +0900, Krzysztof Kozlowski wrote: > On Tue, Apr 07, 2020 at 08:08:49AM +0900, Hyunki Koo wrote: > > Support 32-bit access for the TX/RX hold registers UTXH and URXH. > > > > This is required for some newer SoCs. > > > > Signed-off-by: Hyunki Koo <hyunki00.koo@samsung.com> > > --- > > Why I am adding these for the third time? Sorry, I didn't knew that, I will keep this next time > > Tested-by: Krzysztof Kozlowski <krzk@kernel.org> > Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> > > Best regards, > Krzysztof ^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2020-04-09 23:10 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CGME20200406103158epcas2p2aaf3ef769a232dc28c04cb4ae91373bd@epcas2p2.samsung.com>
[not found] ` <20200401082721.19431-1-hyunki00.koo@samsung.com>
2020-04-06 10:31 ` [PATCH v5 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers Hyunki Koo
2020-04-06 10:31 ` [PATCH v5 1/2] dt-bindings: serial: Add reg-io-width compatible Hyunki Koo
2020-04-06 10:47 ` Krzysztof Kozlowski
2020-04-06 10:34 ` [PATCH v5 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers Krzysztof Kozlowski
2020-04-06 23:08 ` [PATCH v6 " Hyunki Koo
2020-04-06 23:08 ` [PATCH v6 1/2] dt-bindings: serial: Add reg-io-width compatible Hyunki Koo
2020-04-07 6:25 ` Krzysztof Kozlowski
2020-04-09 23:05 ` Rob Herring
2020-04-09 23:09 ` Rob Herring
2020-04-07 4:49 ` [PATCH v6 2/2] tty: samsung_tty: 32-bit access for TX/RX hold registers Jiri Slaby
2020-04-07 6:02 ` Hyunki Koo
2020-04-07 6:24 ` Krzysztof Kozlowski
2020-04-07 6:32 ` Jiri Slaby
2020-04-07 7:22 ` Krzysztof Kozlowski
2020-04-07 6:26 ` Krzysztof Kozlowski
2020-04-07 6:28 ` Jiri Slaby
2020-04-07 6:37 ` Jiri Slaby
2020-04-07 6:54 ` Hyunki Koo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox