From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757132AbcBWGaQ (ORCPT ); Tue, 23 Feb 2016 01:30:16 -0500 Received: from mail-pa0-f45.google.com ([209.85.220.45]:34014 "EHLO mail-pa0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756954AbcBWGaN (ORCPT ); Tue, 23 Feb 2016 01:30:13 -0500 From: Peter Hung X-Google-Original-From: Peter Hung To: linus.walleij@linaro.org, gnurou@gmail.com, gregkh@linuxfoundation.org, andriy.shevchenko@linux.intel.com, paul.gortmaker@windriver.com, lee.jones@linaro.org, jslaby@suse.com, gnomes@lxorguk.ukuu.org.uk, peter_hong@fintek.com.tw Cc: heikki.krogerus@linux.intel.com, peter@hurleysoftware.com, soeren.grunewald@desy.de, udknight@gmail.com, adam.lee@canonical.com, arnd@arndb.de, manabian@gmail.com, scottwood@freescale.com, yamada.masahiro@socionext.com, paul.burton@imgtec.com, mans@mansr.com, matthias.bgg@gmail.com, ralf@linux-mips.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, linux-serial@vger.kernel.org, tom_tsai@fintek.com.tw, Peter Hung Subject: [PATCH V4 0/4] Transform Fintek PCIE driver from 8250 to MFD Date: Tue, 23 Feb 2016 14:29:59 +0800 Message-Id: <1456209003-22396-1-git-send-email-hpeter+linux_kernel@gmail.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 -- 1.9.1