[PATCH v17 0/5] ZII RAVE platform driver

From: Andrey Smirnov
Date: Thu Dec 21 2017 - 01:55:02 EST


This patch series is v17 of the driver for supervisory processor found
on RAVE series of devices from ZII. Supervisory processor is a PIC
microcontroller connected to various electrical subsystems on RAVE
devices whose firmware implements protocol to command/qery them.


* This driver dependends on crc_ccitt_false(), added by
2da9378d531f8cc6670c7497f20d936b706ab80b in 'linux-next', the patch
was pulled in by Andrew Morton and is currently avaiting users, so
this series might have to go in through Andrew's tree

Changes since [v16]:

- Fixed commentary style for SPDX tags in .c files

- Collected Ack from Philippe

Changes since [v15]:

- Adopted SPDX tags for licensing information per Philippe's

Changes since [v14]:

- Fixed a bug in deframer code where byte processing loop was not
being terminated early is it should've been. This would result,
among other things, in packets of maximum valid length being
incorrectly reported as tool long.

- Increased command timeout value in support other valid commands
that are outsied of scope for this patch set.

- Converted watchdog driver to differentiate between variants
based on its own compatiblity string as opposed to relying on
that of parent MFD device (as per request by Johan and Lee).

NOTE: This change didn't seem to change DT bingins enough to
warrant dropping any Acks for patches affected, so I kept
them. If anyone wants to rescind their Ack, please let me know.

- Collected Acked-by from Pavel

- Collected Acked-by from Lee (for patch 3/5)

Changes since [v13]:

- Fixed incorrect MFD driver menuconfig entry placement

Changes since [v12]:

- Minor comment inconsistencies fixes in rave-sp.c

Changes since [v11]:

- Fix incorrect include in rave-sp-wdt.c as uncovered by kernel
test robot

Changes since [v10]:

- Collected Acked-by from Rob and Reviewed-by from Guenter

- Incorporated watchdog driver feedback from Gunter and Johan

- Incorporated Johan's feedback for the rest of the code

Changes since [v9]:

- Converted watchdog driver to use watchdog_active() instead of
watchdog_hw_running() and replaced WARN_ON with a regular error
message as per feedback from Guenter

- Changed rave_sp_wdt_start() to set WDOG_HW_RUNNING only if
communicating with hardware was sucessful

- Collected Reviewd-by from Sebastian (for serdev related patches)

- Collected Acked-by from Rob (for watchdog DT bindings)

Changes since [v8]:

- Driver moved from drivers/platform to drivers/mfd

- Collected Reviewed-by from Guenter (for patches 1, 2 and 3)

- Incorporated feedback from Guenter into watchdog driver

- Incorporated feedback from Rob into watchdog DT bindings

- Removed struct rave_sp_rsp_status, which was a leftover from v5
-> v6 code removal.

- Fixed minor problems reported by checkpatch

Changes since [v7]:

- Added watchdog driver to the patchset, so it would be easier to
understand how parent/children drivers are tied together

- Added serdev patches to implement devm_serdev_device_open() and make .remove optional

- "Added" missing serdev_device_close() by converting the driver
to use devm_serdev_device_open()

- Converted the driver to use devm_of_platform_populate()

- Removed needless dependency on MFD_CORE

- Removed dependency on SERIAL_DEV_CTRL_TTYPORT

Changes since [v6]:

- Patch 2/2 has been applied by Lee so it is no longer a part of the series

- Removed all sysfs and debugfs attribute to reduce the scope of
the driver propsed for inclusion. This is not a critical to have
feature and can be added/discussed later.

Changes since [v5]:

- Fixed a build break, introduced by a last minute change in [v5]

- Moved majority of attributes that were exposed over sysfs to debugfs

- Document remaining sysfs attributes in Documentation/ABI/testing/sysfs-platform-rave-sp

Changes since [v4]:

- Replaced usage of DEVICE_ATTR with DEVICE_ATTR_RW

- Fixed a number of warnings produces by sparse tool

- Incorporated event more feedback from Andy Shevchenko

- Collected Reviewed-by from Andy

Changes since [v3]:

- Re-collected lost Acked-by from Rob

- Incorporated further feedback from Andy Shevchenko

- Dropped useless change (stray newline) to drivers/mfd/Makefile

Changes since [v2]:

- Fixed swapped command codes in rave_sp_common_get_boot_source()
and rave_sp_common_set_boot_source() revealed by further testing
of the code

- Incorporated feedback from Andy Shevchenko

Changes since [v1]:

- Updated wording in DT-bindings as per Rob's request.

- Collected Rob's Acked-by for patch 2/2

Feedback is greatly appreciated!

Andrey Smirnov

[v16] lkml.kernel.org/r/20171220204517.28313-1-andrew.smirnov@xxxxxxxxx
[v15] lkml.kernel.org/r/20171220040017.7605-1-andrew.smirnov@xxxxxxxxx
[v14] lkml.kernel.org/r/20171207162735.25873-1-andrew.smirnov@xxxxxxxxx
[v13] lkml.kernel.org/r/20171204161118.19558-1-andrew.smirnov@xxxxxxxxx
[v12] lkml.kernel.org/r/20171109160556.17018-1-andrew.smirnov@xxxxxxxxx
[v11] lkml.kernel.org/r/20171106152935.16920-1-andrew.smirnov@xxxxxxxxx
[v10] lkml.kernel.org/r/20171031163656.24552-1-andrew.smirnov@xxxxxxxxx
[v9] lkml.kernel.org/r/20171025190421.18415-1-andrew.smirnov@xxxxxxxxx
[v8] lkml.kernel.org/r/20171018170136.12347-1-andrew.smirnov@xxxxxxxxx
[v7] lkml.kernel.org/r/20171013061321.31252-2-andrew.smirnov@xxxxxxxxx
[v6] lkml.kernel.org/r/20170828163131.24815-2-andrew.smirnov@xxxxxxxxx
[v5] lkml.kernel.org/r/20170728142704.11156-1-andrew.smirnov@xxxxxxxxx
[v4] lkml.kernel.org/r/20170725184450.13171-1-andrew.smirnov@xxxxxxxxx
[v3] lkml.kernel.org/r/20170724150915.4824-1-andrew.smirnov@xxxxxxxxx
[v2] lkml.kernel.org/r/20170718175604.11735-1-andrew.smirnov@xxxxxxxxx
[v1] lkml.kernel.org/r/20170710170449.4544-1-andrew.smirnov@xxxxxxxxx

Andrey Smirnov (5):
serdev: Make .remove in struct serdev_device_driver optional
serdev: Introduce devm_serdev_device_open()
mfd: Add driver for RAVE Supervisory Processor
watchdog: Add RAVE SP watchdog driver
dt-bindings: watchdog: Add bindings for RAVE SP watchdog driver

.../bindings/watchdog/zii,rave-sp-wdt.txt | 39 ++
Documentation/driver-model/devres.txt | 3 +
drivers/mfd/Kconfig | 8 +
drivers/mfd/Makefile | 2 +
drivers/mfd/rave-sp.c | 710 +++++++++++++++++++++
drivers/tty/serdev/core.c | 31 +-
drivers/watchdog/Kconfig | 7 +
drivers/watchdog/Makefile | 1 +
drivers/watchdog/rave-sp-wdt.c | 337 ++++++++++
include/linux/mfd/rave-sp.h | 60 ++
include/linux/serdev.h | 1 +
11 files changed, 1197 insertions(+), 2 deletions(-)
create mode 100644 Documentation/devicetree/bindings/watchdog/zii,rave-sp-wdt.txt
create mode 100644 drivers/mfd/rave-sp.c
create mode 100644 drivers/watchdog/rave-sp-wdt.c
create mode 100644 include/linux/mfd/rave-sp.h