Merge tag 'mfd-next-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd

Pull mfd updates from Lee Jones:

 - Fix race in device_node_get_regmap() using more extensive locking

 - Remove unused platform driver support for syscon

 - Allow syscon nodes to be registered without a "syscon" compatible
   string

 - Make `platform_data` pointer const in struct mfd_cell

 - Revert support for multiple AXP PMICs to avoid regressions

 - Increase SoundWire attach timeout and use gpiod_set_raw() for GPIO
   operation

 - Store the result from fault_log() for use by other sub-components

 - Fix an invalid regmap-config max_register value

 - Add another Gemini Lake ISA bridge PCI device ID

 - Use devm_register_power_off_handler() to simplify code

 - Add support for QNAP microcontroller units, including LEDs, input,
   and hwmon

 - Use MFD_CELL macros and remove unused code

 - Add support for AAEON UP board FPGA

 - Remove unused includes

 - Fix various typos and compatibility issues in multiple bindings

 - Add new bindings for rk3562 QoS, LED1202, and qcom,tcsr-ipq5424

 - Convert several bindings to YAML schema

 - Update sprd,sc2731 bindings to reference sprd,sc2731-efuse bindings
   directly

 - Fix rohm,bd71815 bindings by correcting resistor values and typos

 - Documentation improvements:
    - Add documentation for LED1202 and qnap-mcu-hwmon
    - Adjust the file entry for the qnap-mcu header in MAINTAINERS

* tag 'mfd-next-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (35 commits)
  MAINTAINERS: Adjust the file entry for the qnap-mcu header
  dt-bindings: mfd: syscon: Fix ti,j784s4-acspcie-proxy-ctrl compatible
  dt-bindings: mfd: syscon: Fix al,alpine-sysfabric-service compatible
  Revert "mfd: axp20x: Allow multiple regulators"
  dt-bindings: mfd: syscon: Add rk3562 QoS register compatible
  mfd: syscon: Allow syscon nodes without a "syscon" compatible
  mfd: syscon: Remove the platform driver support
  mfd: syscon: Fix race in device_node_get_regmap()
  dt-bindings: mfd: atmel: Convert to YAML schema
  dt-bindings: mfd: atmel,at91sam9260: Convert to YAML schema
  dt-bindings: mfd: sprd,sc2731: Reference sprd,sc2731-efuse bindings
  mfd: tps65219: Remove unused macros & add regmap.h
  mfd: tps65219: Use MFD_CELL macros
  leds: Add LED1202 I2C driver
  dt-bindings: leds: Add LED1202 LED Controller
  Documentation:leds: Add leds-st1202.rst
  mfd: Add support for AAEON UP board FPGA
  mfd: da9052: Store result from fault_log
  mfd: intel_soc_pmic_chtdc_ti: Fix invalid regmap-config max_register value
  mfd: cs42l43: Use devres for remove as well
  ...
This commit is contained in:
Linus Torvalds
2025-01-22 09:16:02 -08:00
49 changed files with 2407 additions and 254 deletions

View File

@@ -72,7 +72,7 @@ struct mfd_cell {
int (*resume)(struct platform_device *dev);
/* platform data passed to the sub devices drivers */
void *platform_data;
const void *platform_data;
size_t pdata_size;
/* Matches ACPI */

View File

@@ -93,6 +93,8 @@ struct da9052 {
int chip_irq;
int fault_log;
/* SOC I/O transfer related fixes for DA9052/53 */
int (*fix_io) (struct da9052 *da9052, unsigned char reg);
};

View File

@@ -0,0 +1,26 @@
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* Core definitions for QNAP MCU MFD driver.
* Copyright (C) 2024 Heiko Stuebner <heiko@sntech.de>
*/
#ifndef _LINUX_QNAP_MCU_H_
#define _LINUX_QNAP_MCU_H_
struct qnap_mcu;
struct qnap_mcu_variant {
u32 baud_rate;
int num_drives;
int fan_pwm_min;
int fan_pwm_max;
bool usb_led;
};
int qnap_mcu_exec(struct qnap_mcu *mcu,
const u8 *cmd_data, size_t cmd_data_size,
u8 *reply_data, size_t reply_data_size);
int qnap_mcu_exec_with_ack(struct qnap_mcu *mcu,
const u8 *cmd_data, size_t cmd_data_size);
#endif /* _LINUX_QNAP_MCU_H_ */

View File

@@ -10,14 +10,9 @@
#include <linux/bitops.h>
#include <linux/notifier.h>
#include <linux/regmap.h>
#include <linux/regulator/driver.h>
struct regmap;
struct regmap_irq_chip_data;
#define TPS65219_1V35 1350000
#define TPS65219_1V8 1800000
/* TPS chip id list */
#define TPS65219 0xF0

View File

@@ -0,0 +1,55 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* UP Board CPLD/FPGA driver
*
* Copyright (c) AAEON. All rights reserved.
* Copyright (C) 2024 Bootlin
*
* Author: Gary Wang <garywang@aaeon.com.tw>
* Author: Thomas Richard <thomas.richard@bootlin.com>
*
*/
#ifndef __LINUX_MFD_UPBOARD_FPGA_H
#define __LINUX_MFD_UPBOARD_FPGA_H
#define UPBOARD_REGISTER_SIZE 16
enum upboard_fpgareg {
UPBOARD_REG_PLATFORM_ID = 0x10,
UPBOARD_REG_FIRMWARE_ID = 0x11,
UPBOARD_REG_FUNC_EN0 = 0x20,
UPBOARD_REG_FUNC_EN1 = 0x21,
UPBOARD_REG_GPIO_EN0 = 0x30,
UPBOARD_REG_GPIO_EN1 = 0x31,
UPBOARD_REG_GPIO_EN2 = 0x32,
UPBOARD_REG_GPIO_DIR0 = 0x40,
UPBOARD_REG_GPIO_DIR1 = 0x41,
UPBOARD_REG_GPIO_DIR2 = 0x42,
UPBOARD_REG_MAX,
};
enum upboard_fpga_type {
UPBOARD_UP_FPGA,
UPBOARD_UP2_FPGA,
};
struct upboard_fpga_data {
enum upboard_fpga_type type;
const struct regmap_config *regmap_config;
};
struct upboard_fpga {
struct device *dev;
struct regmap *regmap;
struct gpio_desc *enable_gpio;
struct gpio_desc *reset_gpio;
struct gpio_desc *clear_gpio;
struct gpio_desc *strobe_gpio;
struct gpio_desc *datain_gpio;
struct gpio_desc *dataout_gpio;
unsigned int firmware_version;
const struct upboard_fpga_data *fpga_data;
};
#endif /* __LINUX_MFD_UPBOARD_FPGA_H */

View File

@@ -1,9 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef PLATFORM_DATA_SYSCON_H
#define PLATFORM_DATA_SYSCON_H
struct syscon_platform_data {
const char *label;
};
#endif