mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
misc: gehc-achc: new driver
General Electric Healthcare's PPD has a secondary processor from NXP's Kinetis K20 series. That device has two SPI chip selects: The main interface's behaviour depends on the loaded firmware and is currently unused. The secondary interface can be used to update the firmware using EzPort protocol. This is implemented by this driver using the kernel's firmware API. The firmware is being flashed into non-volatile flash memory, so it is enough to flash it once and not on every boot. Flashing will wear the flash memory (it has a life time of at least 10k programming cycles). At the same time only occasional FW updates are expected (like e.g. a BIOS update). Thus the firmware update is triggered via sysfs instead of doing it in the driver's probe routine like many other drivers. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> Link: https://lore.kernel.org/r/20210802172309.164365-4-sebastian.reichel@collabora.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
cd7cd5b716
commit
0f920277dc
@@ -0,0 +1,15 @@
|
||||
What: /sys/bus/spi/<dev>/update_firmware
|
||||
Date: Jul 2021
|
||||
Contact: sebastian.reichel@collabora.com
|
||||
Description: Write 1 to this file to update the ACHC microcontroller
|
||||
firmware via the EzPort interface. For this the kernel
|
||||
will load "achc.bin" via the firmware API (so usually
|
||||
from /lib/firmware). The write will block until the FW
|
||||
has either been flashed successfully or an error occured.
|
||||
|
||||
What: /sys/bus/spi/<dev>/reset
|
||||
Date: Jul 2021
|
||||
Contact: sebastian.reichel@collabora.com
|
||||
Description: This file represents the microcontroller's reset line.
|
||||
1 means the reset line is asserted, 0 means it's not
|
||||
asserted. The file is read and writable.
|
||||
@@ -208,6 +208,18 @@ config CS5535_CLOCK_EVENT_SRC
|
||||
MFGPTs have a better resolution and max interval than the
|
||||
generic PIT, and are suitable for use as high-res timers.
|
||||
|
||||
config GEHC_ACHC
|
||||
tristate "GEHC ACHC support"
|
||||
depends on SPI && SYSFS
|
||||
depends on SOC_IMX53 || COMPILE_TEST
|
||||
select FW_LOADER
|
||||
help
|
||||
Support for GE ACHC microcontroller, that is part of the GE
|
||||
PPD device.
|
||||
|
||||
To compile this driver as a module, choose M here: the
|
||||
module will be called gehc-achc.
|
||||
|
||||
config HP_ILO
|
||||
tristate "Channel interface driver for the HP iLO processor"
|
||||
depends on PCI
|
||||
|
||||
@@ -24,6 +24,7 @@ obj-$(CONFIG_KGDB_TESTS) += kgdbts.o
|
||||
obj-$(CONFIG_SGI_XP) += sgi-xp/
|
||||
obj-$(CONFIG_SGI_GRU) += sgi-gru/
|
||||
obj-$(CONFIG_CS5535_MFGPT) += cs5535-mfgpt.o
|
||||
obj-$(CONFIG_GEHC_ACHC) += gehc-achc.o
|
||||
obj-$(CONFIG_HP_ILO) += hpilo.o
|
||||
obj-$(CONFIG_APDS9802ALS) += apds9802als.o
|
||||
obj-$(CONFIG_ISL29003) += isl29003.o
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -677,7 +677,6 @@ static struct class *spidev_class;
|
||||
static const struct of_device_id spidev_dt_ids[] = {
|
||||
{ .compatible = "rohm,dh2228fv" },
|
||||
{ .compatible = "lineartechnology,ltc2488" },
|
||||
{ .compatible = "ge,achc" },
|
||||
{ .compatible = "semtech,sx1301" },
|
||||
{ .compatible = "lwn,bk4" },
|
||||
{ .compatible = "dh,dhcom-board" },
|
||||
|
||||
Reference in New Issue
Block a user