Re: [patch v3 1/2] mfd: Add Mellanox regmap core driver
From: Rob Herring <robh@kernel.org>
Date: 2017-08-10 17:29:21
Also in:
linux-leds
On Thu, Aug 03, 2017 at 12:02:12PM +0000, Vadim Pasternak wrote:
This patch adds core regmap platform driver for Mellanox BMC cards with the programmable devcies based chassis control. The device logics, controlled by software includes: - Interrupt handling for chassis, ASIC, CPU events; - LED handling; - Exposes through sysfs mux, reset signals, reset cause notification; The patch provides support for the access to programmable device through the register map and allows dynamic device tree manipulation at runtime for removable devices. This driver requires activator driver, which responsibility is to create register map and pass it to regmap core. Such activator could be based for example on I2C, SPI or MMIO interface. Drivers exposes the number of hwmon attributes to sysfs according to the attribute groups, defined in the device tree. These attributes will be located for example in /sys/class/hwmon/hwmonX folder, which is a symbolic link to for example: /sys/bus/i2c/devices/4-0072/mlxreg-core.1138/hwmon/hwmon10. The attributes are divided to the groups, like in the below example: MUX nodes - safe_bios_disable - spi_burn_bios_ci - spi_burn_ncsi - uart_sel Reset nodes: - sys_power_cycle - bmc_upgrade - asic_reset Cause of reset nodes: - cpu_kernel_panic - cpu_shutdown - bmc_warm_reset PSU nodes' statuses - psu1 - psu2 FAN nodes' statuses: - fan1 - fan2 Power cable nodes' statuses: - pwr1 - pwr2 Asic nodes' statuses: - asic1 - asic2 General purpose RW nodes: - version Drivers also probes LED platform driver, in case device tree description contains LED nodes. Signed-off-by: Vadim Pasternak <redacted> --- v2->v3: Changes added by Vadim: - Change name of field led data in struct mlxreg_core_led_platform_data in mlxreg.h; - fix data position assignment in mlxreg_core_get; - update name of field led data in mlxreg_core_set_led; v1->v2: Comments pointed out by Pavel: - Remove extra new line in mellanox,mlxreg-core; - Replace three NOT with one in mlxreg_core_attr_show; - Make error message in mlxreg_core_work_helper shorter; - Make attribute assignment more readable; - Separate mellanox,mlxreg-core file for sending to DT mainataners. Comments pointed out by Jacek: - Since brightness_set_blocking is used instead of brightness_set, three fields from mlxreg_core_led_data. --- .../devicetree/bindings/vendor-prefixes.txt | 1 +
Please make this a separate patch.
MAINTAINERS | 7 + drivers/mfd/Kconfig | 15 + drivers/mfd/Makefile | 1 + drivers/mfd/mlxreg-core.c | 1263 ++++++++++++++++++++ include/linux/platform_data/mlxreg.h | 87 ++ 6 files changed, 1374 insertions(+) create mode 100644 drivers/mfd/mlxreg-core.c create mode 100644 include/linux/platform_data/mlxreg.h
quoted hunk ↗ jump to hunk
diff --git a/MAINTAINERS b/MAINTAINERS index 767e9d2..bcb7f45 100644 --- a/MAINTAINERS +++ b/MAINTAINERS@@ -8294,6 +8294,13 @@ S: Supported F: drivers/input/touchscreen/melfas_mip4.c F: Documentation/devicetree/bindings/input/touchscreen/melfas_mip4.txt +MELLANOX BMC MFD DRIVERS +M: Vadim Pasternak <vadimp@mellanox.com> +S: Supported +F: Documentation/devicetree/bindings/mfd/mellanox,mlxreg-core
The binding should be part of this series. And add a ".txt" to this file.
+F: drivers/mfd/mlxreg-core.c +F: include/linux/platform_data/mlxreg.h + MELLANOX ETHERNET DRIVER (mlx4_en) M: Tariq Toukan [off-list ref] L: netdev@vger.kernel.org