Skip to content

Transform Fintek PCIE driver from 8250 to MFD

Peter Hung linux-gpio linux-serial lkml 3 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 Latest4 patches 3 repliesIn review
  2. v34 patches 4 repliesSuperseded
  3. v24 patches 18 repliesSuperseded

Changes in v4 from the cover letter

1. Fix the comment style
2. Fix the warning (.owner = THIS_MODULE) reported by kbuild bot with f81504_core.c & 8250_f81504.c
3. Remove unused Kconfig option (RATIONAL) with 8250_f81504.c
4. Remove unused variable (quot/rem) with f81504_check_baudrate() in 8250_f81504.c

Patches in v4 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/4mfd: f81504-core: Add Fintek F81504/508/512 PCIE-to-UART/GPIO core supportdrivers/mfd/Kconfig drivers/mfd/Makefile drivers/mfd/f81504-core.c +1 more+401 -02 replies
2/4gpio: gpio-f81504: Add Fintek F81504/508/512 PCIE-to-UART/GPIO GPIOLIB supportdrivers/gpio/Kconfig drivers/gpio/Makefile drivers/gpio/gpio-f81504.c+252 -01 reply
3/48250: 8250_f81504: Add Fintek F81504/508/512 PCIE-to-UART/GPIO UART supportdrivers/tty/serial/8250/8250_f81504.c drivers/tty/serial/8250/Kconfig drivers/tty/serial/8250/Makefile+261 -00 replies
4/4serial: 8250_pci: Remove Fintek F81504/508/512 UART driverdrivers/tty/serial/8250/8250_pci.c+5 -2010 replies

Reviews trailers per patch

1 of 4 patches has a Reviewed-by or Acked-by.

PatchLinus Walleij
1/4
2/4A-b
3/4
4/4

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v4 thread

Cover letter [PATCH V4 0/4] Transform Fintek PCIE driver from 8250 to MFD

The Fintek F81504/508/512 is a multi-function PCIE devices. IC function list:
F81504: Max 2x8 GPIOs and max 4 serial ports
port2/3 are multi-function
F81508: Max 6x8 GPIOs and max 8 serial ports
port2/3 are multi-function, port8/9/10/11 are gpio only
F81512: Max 6x8 GPIOs and max 12 serial ports
port2/3/8/9/10/11 are multi-function

It had implemented in 8250_pci.c with basic serial port function. We want to complete it. Alan & Andy recommend us to rewrite and spilt our driver with MFD architecture.
https://lkml.org/lkml/2016/1/19/288

Paul recommed us do less code deletion to avoid confusing problem when bisect.
https://lkml.org/lkml/2016/1/18/646

So we'll do this with following patches.
1. Add MFD core driver.
2. Add GPIOLIB driver.
3. Add serial port driver.
4. Remove old driver in 8250_pci.c and add it to blacklist

8250_pci.c will still handle the device when patches 1~3. After apply patch 4, the device will control by F81504 MFD core driver.

Changelog:
V4:
1. Fix the comment style
2. Fix the warning (.owner = THIS_MODULE) reported by kbuild bot with f81504_core.c & 8250_f81504.c
3. Remove unused Kconfig option (RATIONAL) with 8250_f81504.c
4. Remove unused variable (quot/rem) with f81504_check_baudrate() in 8250_f81504.c
V3:
1. Refactoring gpio-f81504.c with new API
(Suggested by Linus Walleij).
2. Fix wrong kfree in gpio-f81504.c (Suggested by Andy Shevchenko).
3. Get PCI resource by pci_resource_start() instead of getting PCI resource from BAR of PCI configuration space (Suggested by Alan).

V2:
1. Split F81504/508/512 from 8250_pci.c to MFD, It'll add 3 new files
1. drivers/mfd/f81504-core.c
2. drivers/gpio/gpio-f81504.c
3. drivers/tty/serial/8250/8250_f81504.c

V1:
1. Split F81504/508/512 from 8250_pci.c to 8250_fintek_pci.c. Alan & Andy recommend me to rewrite as MFD architecture.

Peter Hung (4):
mfd: f81504-core: Add Fintek F81504/508/512 PCIE-to-UART/GPIO core
support
gpio: gpio-f81504: Add Fintek F81504/508/512 PCIE-to-UART/GPIO GPIOLIB
support
8250: 8250_f81504: Add Fintek F81504/508/512 PCIE-to-UART/GPIO UART
support
serial: 8250_pci: Remove Fintek F81504/508/512 UART driver

 drivers/gpio/Kconfig                  |  10 +
 drivers/gpio/Makefile                 |   1 +
 drivers/gpio/gpio-f81504.c            | 241 ++++++++++++++++++++++++
 drivers/mfd/Kconfig                   |  12 ++
 drivers/mfd/Makefile                  |   2 +
 drivers/mfd/f81504-core.c             | 335 ++++++++++++++++++++++++++++++++++
 drivers/tty/serial/8250/8250_f81504.c | 250 +++++++++++++++++++++++++
 drivers/tty/serial/8250/8250_pci.c    | 206 +--------------------
 drivers/tty/serial/8250/Kconfig       |  10 +
 drivers/tty/serial/8250/Makefile      |   1 +
 include/linux/mfd/f81504.h            |  52 ++++++
 11 files changed, 919 insertions(+), 201 deletions(-)
 create mode 100644 drivers/gpio/gpio-f81504.c
 create mode 100644 drivers/mfd/f81504-core.c
 create mode 100644 drivers/tty/serial/8250/8250_f81504.c
 create mode 100644 include/linux/mfd/f81504.h
Signature · 1 line
1.9.1