[PATCH v4 0/3] add support for EXAR XR20M1172 UART

Konstantin Pugin posted 3 patches 2 weeks ago
There is a newer version of this series
.../bindings/serial/nxp,sc16is7xx.yaml        |  1 +
drivers/tty/serial/Kconfig                    | 18 +++---
drivers/tty/serial/sc16is7xx.c                | 62 +++++++++++++++++--
drivers/tty/serial/sc16is7xx_i2c.c            |  1 +
drivers/tty/serial/sc16is7xx_spi.c            |  1 +
5 files changed, 70 insertions(+), 13 deletions(-)
[PATCH v4 0/3] add support for EXAR XR20M1172 UART
Posted by Konstantin Pugin 2 weeks ago
From: Konstantin Pugin <ria.freelander@gmail.com>

EXAR XR20M1172 UART is mostly SC16IS762-compatible, but
it has additional register which can change UART multiplier
to 4x and 8x, similar to UPF_MAGIC_MULTIPLIER does. So, I used this
flag to guard access to its specific DLD register. It seems than
other EXAR SPI UART modules also have this register, but I tested
only XR20M1172.
Yes, in datasheet this register is called "DLD - Divisor Fractional"
or "DLD - Divisor Fractional Register", calling depends on datasheet
version.

I am sorry about too many submissions and top post reply. About second -
I do not know how to reply properly to this ML from GMail phone app. About first - I just
get very good feedback from Andy Shevchenko, and want to fix his review picks ASAP.

Changes in v2:
  - use full name in git authorship

Changes in v3:
  - change formatting of commit messages to unify width
  - rework commit messages according to code review
  - add XR20M117X namespace for EXAR-specific register
  - do not use UPF_MAGIC_MULTIPLIER for checking EXAR chip,
    use s->devtype directly
  - replace while loop to fls function and expanded check
  - sort compatibles
  - reformat multiline comment.

Changes in v4:
  - rebase onto tty-next branch
  - added Kconfig mention of the chip
  - used rounddown_power_of_two instead of fls and manual shift
  - used FIELD_PREP instead of custom macro
  - removed has_dld bit from common struct, replaced by check function,
    which checks directly by s->devtype
  - fixed tab count
  - properly apply Vladimir Zapolskiy's tag to patch 2 only

Konstantin Pugin (3):
  serial: sc16is7xx: announce support of SER_RS485_RTS_ON_SEND
  dt-bindings: sc16is7xx: Add compatible line for XR20M1172 UART
  serial: sc16is7xx: add support for EXAR XR20M1172 UART

 .../bindings/serial/nxp,sc16is7xx.yaml        |  1 +
 drivers/tty/serial/Kconfig                    | 18 +++---
 drivers/tty/serial/sc16is7xx.c                | 62 +++++++++++++++++--
 drivers/tty/serial/sc16is7xx_i2c.c            |  1 +
 drivers/tty/serial/sc16is7xx_spi.c            |  1 +
 5 files changed, 70 insertions(+), 13 deletions(-)


base-commit: c6795fbffc4547b40933ec368200bd4926a41b44
-- 
2.34.1
Re: [PATCH v4 0/3] add support for EXAR XR20M1172 UART
Posted by Hugo Villeneuve 2 weeks ago
On Fri, 19 Apr 2024 15:45:00 +0300
Konstantin Pugin <rilian.la.te@ya.ru> wrote:

> From: Konstantin Pugin <ria.freelander@gmail.com>
> 
> EXAR XR20M1172 UART is mostly SC16IS762-compatible, but
> it has additional register which can change UART multiplier
> to 4x and 8x, similar to UPF_MAGIC_MULTIPLIER does. So, I used this
> flag to guard access to its specific DLD register. It seems than
> other EXAR SPI UART modules also have this register, but I tested
> only XR20M1172.
> Yes, in datasheet this register is called "DLD - Divisor Fractional"
> or "DLD - Divisor Fractional Register", calling depends on datasheet
> version.

Hi Konstantin,
it would probably be a good idea to also add the device to the list of supported devices for this driver in the Kconfig file.

Hugo.


> 
> I am sorry about too many submissions and top post reply. About second -
> I do not know how to reply properly to this ML from GMail phone app. About first - I just
> get very good feedback from Andy Shevchenko, and want to fix his review picks ASAP.
> 
> Changes in v2:
>   - use full name in git authorship
> 
> Changes in v3:
>   - change formatting of commit messages to unify width
>   - rework commit messages according to code review
>   - add XR20M117X namespace for EXAR-specific register
>   - do not use UPF_MAGIC_MULTIPLIER for checking EXAR chip,
>     use s->devtype directly
>   - replace while loop to fls function and expanded check
>   - sort compatibles
>   - reformat multiline comment.
> 
> Changes in v4:
>   - rebase onto tty-next branch
>   - added Kconfig mention of the chip
>   - used rounddown_power_of_two instead of fls and manual shift
>   - used FIELD_PREP instead of custom macro
>   - removed has_dld bit from common struct, replaced by check function,
>     which checks directly by s->devtype
>   - fixed tab count
>   - properly apply Vladimir Zapolskiy's tag to patch 2 only
> 
> Konstantin Pugin (3):
>   serial: sc16is7xx: announce support of SER_RS485_RTS_ON_SEND
>   dt-bindings: sc16is7xx: Add compatible line for XR20M1172 UART
>   serial: sc16is7xx: add support for EXAR XR20M1172 UART
> 
>  .../bindings/serial/nxp,sc16is7xx.yaml        |  1 +
>  drivers/tty/serial/Kconfig                    | 18 +++---
>  drivers/tty/serial/sc16is7xx.c                | 62 +++++++++++++++++--
>  drivers/tty/serial/sc16is7xx_i2c.c            |  1 +
>  drivers/tty/serial/sc16is7xx_spi.c            |  1 +
>  5 files changed, 70 insertions(+), 13 deletions(-)
> 
> 
> base-commit: c6795fbffc4547b40933ec368200bd4926a41b44
> -- 
> 2.34.1
> 
> 
> 


-- 
Hugo Villeneuve <hugo@hugovil.com>
Re: [PATCH v4 0/3] add support for EXAR XR20M1172 UART
Posted by Konstantin P. 2 weeks ago
On Fri, Apr 19, 2024 at 4:43 PM Hugo Villeneuve <hugo@hugovil.com> wrote:
>
> On Fri, 19 Apr 2024 15:45:00 +0300
> Konstantin Pugin <rilian.la.te@ya.ru> wrote:
>
> > From: Konstantin Pugin <ria.freelander@gmail.com>
> >
> > EXAR XR20M1172 UART is mostly SC16IS762-compatible, but
> > it has additional register which can change UART multiplier
> > to 4x and 8x, similar to UPF_MAGIC_MULTIPLIER does. So, I used this
> > flag to guard access to its specific DLD register. It seems than
> > other EXAR SPI UART modules also have this register, but I tested
> > only XR20M1172.
> > Yes, in datasheet this register is called "DLD - Divisor Fractional"
> > or "DLD - Divisor Fractional Register", calling depends on datasheet
> > version.
>
> Hi Konstantin,
> it would probably be a good idea to also add the device to the list of supported devices for this driver in the Kconfig file.
>
> Hugo.

It is already done in V4.
>
> >
> > I am sorry about too many submissions and top post reply. About second -
> > I do not know how to reply properly to this ML from GMail phone app. About first - I just
> > get very good feedback from Andy Shevchenko, and want to fix his review picks ASAP.
> >
> > Changes in v2:
> >   - use full name in git authorship
> >
> > Changes in v3:
> >   - change formatting of commit messages to unify width
> >   - rework commit messages according to code review
> >   - add XR20M117X namespace for EXAR-specific register
> >   - do not use UPF_MAGIC_MULTIPLIER for checking EXAR chip,
> >     use s->devtype directly
> >   - replace while loop to fls function and expanded check
> >   - sort compatibles
> >   - reformat multiline comment.
> >
> > Changes in v4:
> >   - rebase onto tty-next branch
> >   - added Kconfig mention of the chip
> >   - used rounddown_power_of_two instead of fls and manual shift
> >   - used FIELD_PREP instead of custom macro
> >   - removed has_dld bit from common struct, replaced by check function,
> >     which checks directly by s->devtype
> >   - fixed tab count
> >   - properly apply Vladimir Zapolskiy's tag to patch 2 only
> >
> > Konstantin Pugin (3):
> >   serial: sc16is7xx: announce support of SER_RS485_RTS_ON_SEND
> >   dt-bindings: sc16is7xx: Add compatible line for XR20M1172 UART
> >   serial: sc16is7xx: add support for EXAR XR20M1172 UART
> >
> >  .../bindings/serial/nxp,sc16is7xx.yaml        |  1 +
> >  drivers/tty/serial/Kconfig                    | 18 +++---
> >  drivers/tty/serial/sc16is7xx.c                | 62 +++++++++++++++++--
> >  drivers/tty/serial/sc16is7xx_i2c.c            |  1 +
> >  drivers/tty/serial/sc16is7xx_spi.c            |  1 +
> >  5 files changed, 70 insertions(+), 13 deletions(-)
> >
> >
> > base-commit: c6795fbffc4547b40933ec368200bd4926a41b44
> > --
> > 2.34.1
> >
> >
> >
>
>
> --
> Hugo Villeneuve <hugo@hugovil.com>