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

Konstantin Pugin rilian.la.te at ya.ru
Thu Apr 25 11:32:32 PDT 2024


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.

Hugo, I am sorry, I fixes a bug, but forgot to amend a fix(

Log from v9 compilation:
```
  CC [M]  drivers/tty/serial/omap-serial.o
  CC [M]  drivers/tty/serial/owl-uart.o
  CC [M]  drivers/tty/serial/pch_uart.o
  CC [M]  drivers/tty/serial/qcom_geni_serial.o
  CC [M]  drivers/tty/serial/ucc_uart.o
  CC [M]  drivers/tty/serial/rp2.o
  CC [M]  drivers/tty/serial/samsung_tty.o
  CC [M]  drivers/tty/serial/sccnxp.o
  CC [M]  drivers/tty/serial/sc16is7xx.o
  CC [M]  drivers/tty/serial/sc16is7xx_spi.o
  CC [M]  drivers/tty/serial/sc16is7xx_i2c.o
  CC [M]  drivers/tty/serial/sh-sci.o
  CC [M]  drivers/tty/serial/sifive.o
  CC [M]  drivers/tty/serial/sprd_serial.o
  CC [M]  drivers/tty/serial/st-asc.o
  CC [M]  drivers/tty/serial/stm32-usart.o
```

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

Changes in v5:
  - fixes for tty-next branch
  - address a new code review picks
  - send properly to all participants
  - added Ack tag

Changes in v6:
  - KConfig fixes
  - New code review fixes

Changes in v7:
  - Added missed tag
  - Added missed v5 fixes

Changes in v8:
  - Fixed semicolon
  - Added missed tags
  - Fixed commit messages

Changes in v9:
  - Really fixed compilation (checked by git reset --hard && make allmodconfig && make)
  - Implemented Hugo and Andy's messages

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                    |  3 +-
 drivers/tty/serial/sc16is7xx.c                | 63 +++++++++++++++++--
 drivers/tty/serial/sc16is7xx.h                |  1 +
 drivers/tty/serial/sc16is7xx_i2c.c            |  1 +
 drivers/tty/serial/sc16is7xx_spi.c            |  1 +
 6 files changed, 64 insertions(+), 6 deletions(-)


base-commit: 660a708098569a66a47d0abdad998e29e1259de6
-- 
2.44.0




More information about the linux-riscv mailing list