.../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(-)
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
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>
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>
© 2016 - 2026 Red Hat, Inc.