All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anatolij Gustschin <agust@denx.de>
To: linux-usb@vger.kernel.org, linux-spi@vger.kernel.org,
	linux-fpga@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: gregkh@linuxfoundation.org, broonie@kernel.org, atull@kernel.org,
	mdf@kernel.org
Subject: [PATCH v4 0/3] Add support for ARRI FPGA configuration
Date: Thu, 21 Feb 2019 21:25:03 +0100	[thread overview]
Message-ID: <20190221202506.17744-1-agust@denx.de> (raw)

This series adds drivers and FPGA manager support required
for FT232H based ARRI FPGA configuration adapters.

Patch 1/3 adds FT232H interface driver (for ARRI USB PIDs)
implementing commonly used FTDI USB transfer operations and
ACBUS/MPSSE GPIO controllers. Depending on USB PIDs it creates
platform devices for MPSSE SPI bus with attached SPI slaves
or platform devices for ARRI FPP FPGA manager.

Patch 2/3 adds MPSSE SPI controller driver which registers
an FTDI USB-SPI bus with attached SPI slaves from description
in platform data, so existing SPI protocol drivers can be
used for these slave devices (in our case altera-ps-spi).
Via interface driver in patch 1/3 it is easily possible to add
support for other slave devices using custom USB PIDs (e.g.
spi-nor flash W25Q32 with m25p80 driver has beed used for
testing MPSSE SPI controller driver).

Patch 3/3 adds FPGA manager driver for ARRI FPP adapters for
FPGA configuration via Altera fast passive parallel interface.

Changes since v3:
  Patch 1/3
  - rebase on v5.0-rc7
  - add depends on GPIOLIB to Kconfig to fix build errors
  - fix build errors due to removed devm_gpiochip_remove()
    (replace by gpiochip_remove())

  Patch 2/3
  - rebase on v5.0-rc7

  Patch 3/3
  - update Date/Version in sysfs-driver-ftdi-fifo-fpp

Changes since v2:
  Patch 1/3
  - use unsigned type for baudrate and clk divider calculation
    (don't mix signed/unsigned types)
  - switch to unsigned int for 'encoded_divisor' 
  - use DIV_ROUND_CLOSEST() in ftdi_to_clkbits()
  - update error messages in ftdi_convert_baudrate()
  - update return code check of ftdi_to_clkbits()
  - fix boolconv coccinelle warning
  - add and use macro for MPSSE GPIOs number
  - update struct mpsse_spi_platform_data to drop pin description
    fields and add mpsse_spi_dev_data struct instead. This allows
    easier pin description and init for multiple SPI devices with
    multiple control pins. Pass pin description via platform_data
    of spi_bus_info for esier IO pin init code in MPSSE driver.
    Update spi_board_info table accordingly
  - keep Makefile entry sorted

  Patch 2/3
  - keep Makefile entry sorted
  - make the entire comment block a C++ one
  - don't use magic number for the size of the lookup table
  - use sizeof() instead of magic number for the buffer size
  - rework gpio chip select function to use it as .set_cs()
  - convert to use transfer_one instead of transfer_one_message
  - update dev_*() to use MPSSE platform device prefix
  - s/spi_master/spi_controller
  - use u16 for chip_select vars and update dev_dbg format
  - use unsigned type for index vars
  - reduce arguments number for ftdi_spi_tx()/ftdi_spi_rx()
  - fix ftdi_spi_tx() to send all buffer data correctly even if
    the USB driver signals transfer of less data than requested
  - update ftdi_spi_init_io() to differentiate between platform
    data for devices using MPSSE I/O pins and other SPI devices
    (e.g. using flash_platform_data, mmc_spi_platform_data, etc.).
    This makes the driver more generic and allows using multiple
    SPI slaves on the MPSSE bus
  - reduce !xfer->len checks

  Patch 3/3
    fix 'specified bound 8 equals destination size' gcc 8 warning

Changes since v1:
  Patch 1/3
  - add myself as a maintainer for these drivers
  - update copyright line to include 2018
  - include required linux headers
  - fix gcc 7.3.0 build warnings -Wunused-const-variable=
  - make ftdi functions and spi_board_info struct static
  - use KBUILD_MODNAME in drivers struct
  - use dev_err() for error messages instead of dev_info()
  - drop not needed output about number of used MPSSE pins
    since it is constant (not configurable)
  - remove ftdi function prototypes from header ft232h-intf.h
    as these are not exported anymore
  - update comments (don't use kernel-doc format as we do not
    export symbols anymore and functions are "static")

  Patch 2/3
  - fix build breakage when building with ARCH=i386 allmodconfig
  - add checks for ops->lock/ops->unlock presence in pdata
  - update copyright line to include 2018
  - remove printing numbers in parentheses (%d)

  Patch 3/3
  - update copyright line to include 2018
  - add sysfs ABI documentation
 
Changes since initial version (MFD based):
  - don't use MFD framework
  - don't use original FT232H USB PID (it is too generic and collides
    with existing ftdi_sio driver)
  - don't add separate CBUS GPIO driver based on FT232H MFD device
  - redesign/rework the drivers as described under [4]
  - add basic FT232H interface driver under drivers/usb/misc/
  - use custom reserved USB PIDs in the USB driver for adapter devices
  - add notes about borrowed protocol code from libftdi to commit log
    and header file
  - add MPSSE SPI controller driver supporting USB-SPI bus with
    dynamically added SPI slaves from description in platform data
    (the initial attempt didn't include USB SPI bus support for PS-
     SPI FPGA configuration via USB)
  - rework FPP fpga manager driver based on new FT232H interface
    driver and extend it according to CPLD changes for additional
    support of new hardware revision B.

Anatolij Gustschin (3):
  usb: misc: add driver for FT232H based FPGA configuration devices
  spi: add FTDI MPSSE SPI controller driver
  fpga: Add fpga manager driver for ARRI Altera FPP

 .../ABI/testing/sysfs-driver-ftdi-fifo-fpp    |    7 +
 MAINTAINERS                                   |    8 +
 drivers/fpga/Kconfig                          |    7 +
 drivers/fpga/Makefile                         |    1 +
 drivers/fpga/ftdi-fifo-fpp.c                  |  594 +++++++
 drivers/spi/Kconfig                           |    7 +
 drivers/spi/Makefile                          |    1 +
 drivers/spi/spi-ftdi-mpsse.c                  |  651 ++++++++
 drivers/usb/misc/Kconfig                      |   10 +
 drivers/usb/misc/Makefile                     |    1 +
 drivers/usb/misc/ft232h-intf.c                | 1467 +++++++++++++++++
 include/linux/usb/ft232h-intf.h               |  206 +++
 12 files changed, 2960 insertions(+)
 create mode 100644 Documentation/ABI/testing/sysfs-driver-ftdi-fifo-fpp
 create mode 100644 drivers/fpga/ftdi-fifo-fpp.c
 create mode 100644 drivers/spi/spi-ftdi-mpsse.c
 create mode 100644 drivers/usb/misc/ft232h-intf.c
 create mode 100644 include/linux/usb/ft232h-intf.h

-- 
2.17.1


             reply	other threads:[~2019-02-21 20:25 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-21 20:25 Anatolij Gustschin [this message]
2019-02-21 20:25 ` [PATCH v4 1/3] usb: misc: add driver for FT232H based FPGA configuration devices Anatolij Gustschin
2019-02-21 20:25   ` [v4,1/3] " Anatolij Gustschin
2019-02-21 20:25 ` [PATCH v4 2/3] spi: add FTDI MPSSE SPI controller driver Anatolij Gustschin
2019-02-21 20:25   ` [v4,2/3] " Anatolij Gustschin
2019-02-21 20:25 ` [PATCH v4 3/3] fpga: Add fpga manager driver for ARRI Altera FPP Anatolij Gustschin
2019-02-21 20:25   ` [v4,3/3] " Anatolij Gustschin
2019-04-08 17:25   ` [PATCH v4 3/3] " Anatolij Gustschin
2019-04-08 17:25     ` [v4,3/3] " Anatolij Gustschin
2019-04-08 18:01   ` [PATCH v4 3/3] " Moritz Fischer
2019-04-08 18:05     ` [v4,3/3] " mdf
2019-04-08 18:05     ` [PATCH v4 3/3] " Moritz Fischer
2019-04-08 19:01     ` Anatolij Gustschin
2019-04-08 19:01       ` [v4,3/3] " Anatolij Gustschin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190221202506.17744-1-agust@denx.de \
    --to=agust@denx.de \
    --cc=atull@kernel.org \
    --cc=broonie@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-fpga@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mdf@kernel.org \
    --subject='Re: [PATCH v4 0/3] Add support for ARRI FPGA configuration' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.