This patchset makes it possible to develop independent driver modules for DFL private features. It also helps to leverage existing kernel drivers to enable some IP blocks in DFL.
Patch #1: Release the dfl mmio regions after enumeration, so that private feature drivers could request mmio region in their own drivers. Patch #2: Introduce the dfl bus, then dfl devices could be supported by independent dfl drivers. Patch #3: An example of the dfl driver for N3000 nios private feature. Main changes from v1: - Add the new Patch #1, to improve the feature id definition. - Change the dfl bus uevent format. - Change the dfl device's sysfs name format. - refactor dfl_dev_add() - Add the Patch #4 as an example of the dfl driver. - A lot of minor fixes for comments from Hao and Tom. Main changes from v2: - Add the doc for dfl-n3000-nios driver. - Minor fixes for comments from Tom. Main changes from v3: - improve the dfl devices' uevent format, 4 bits for type & 12 bits for id - change dfl_device->type to u8 - A dedicate field in struct dfl_feature for dfl device instance. - error out if dfl_device already exist on dfl_devs_init(). - Move the err log in regmap implementation, and delete n3000_nios_writel/readl(), they have nothing to wrapper now. - Minor fixes and comments improvement. Main changes from v4: - The patch "fpga: dfl: change data type of feature id to u16" is already applied to for-next - Unify the naming of some functions in dfl.c - Fix the output of fec_mode sysfs inf to "no" on 10G configuration, cause no FEC mode could be configured for 10G. - Change the N3000 Nios driver name from "dfl-n3000-nios" to "n3000-nios", and also rename some structures and functions from dfl_n3000_nios_* to n3000_nios_* - Minor fixes and comments improvement. Main changes from v5: - Fix the output of fec_mode sysfs inf to "not supported" if in 10G, or the firmware version major < 3. - The input param of dfl_devs_add() changes to struct dfl_feature_platform_data. - Minor fixes and improves comments. Main changes from v6: - Rebased to 5.9-rc1. - Improves comments. Xu Yilun (3): fpga: dfl: map feature mmio resources in their own feature drivers fpga: dfl: create a dfl bus type to support DFL devices fpga: dfl: add support for N3000 Nios private feature Documentation/ABI/testing/sysfs-bus-dfl | 15 + .../ABI/testing/sysfs-bus-dfl-devices-n3000-nios | 21 + Documentation/fpga/dfl-n3000-nios.rst | 80 +++ Documentation/fpga/index.rst | 1 + drivers/fpga/Kconfig | 11 + drivers/fpga/Makefile | 2 + drivers/fpga/dfl-n3000-nios.c | 542 +++++++++++++++++++++ drivers/fpga/dfl-pci.c | 24 +- drivers/fpga/dfl.c | 449 ++++++++++++++--- drivers/fpga/dfl.h | 93 +++- 10 files changed, 1153 insertions(+), 85 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-bus-dfl create mode 100644 Documentation/ABI/testing/sysfs-bus-dfl-devices-n3000-nios create mode 100644 Documentation/fpga/dfl-n3000-nios.rst create mode 100644 drivers/fpga/dfl-n3000-nios.c -- 2.7.4