From: Naresh Solanki Date: Thu, 27 Apr 2023 11:30:45 +0000 (+0200) Subject: mfd: max5970: Rename driver and remove wildcard X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=49f661ba99324a3f7eef0befbdaa4f22dee02b97;p=linux.git mfd: max5970: Rename driver and remove wildcard The previous version of this driver included wildcards in file names and descriptions. This patch renames the driver to only support MAX5970 and MAX5978, which are the only chips that the driver actually supports. Signed-off-by: Naresh Solanki Link: https://lore.kernel.org/r/20230427113046.3971425-1-Naresh.Solanki@9elements.com Signed-off-by: Lee Jones --- diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index e90463c4441ce..71231388e03ce 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -266,8 +266,8 @@ config MFD_MADERA_SPI Support for the Cirrus Logic Madera platform audio SoC core functionality controlled via SPI. -config MFD_MAX597X - tristate "Maxim 597x power switch and monitor" +config MFD_MAX5970 + tristate "Maxim 5970/5978 power switch and monitor" depends on (I2C && OF) select MFD_SIMPLE_MFD_I2C help diff --git a/drivers/mfd/simple-mfd-i2c.c b/drivers/mfd/simple-mfd-i2c.c index 20782b4dd1724..1f1c007560d83 100644 --- a/drivers/mfd/simple-mfd-i2c.c +++ b/drivers/mfd/simple-mfd-i2c.c @@ -72,22 +72,22 @@ static const struct simple_mfd_data silergy_sy7636a = { .mfd_cell_size = ARRAY_SIZE(sy7636a_cells), }; -static const struct mfd_cell max597x_cells[] = { - { .name = "max597x-regulator", }, - { .name = "max597x-iio", }, - { .name = "max597x-led", }, +static const struct mfd_cell max5970_cells[] = { + { .name = "max5970-regulator", }, + { .name = "max5970-iio", }, + { .name = "max5970-led", }, }; -static const struct simple_mfd_data maxim_max597x = { - .mfd_cell = max597x_cells, - .mfd_cell_size = ARRAY_SIZE(max597x_cells), +static const struct simple_mfd_data maxim_max5970 = { + .mfd_cell = max5970_cells, + .mfd_cell_size = ARRAY_SIZE(max5970_cells), }; static const struct of_device_id simple_mfd_i2c_of_match[] = { { .compatible = "kontron,sl28cpld" }, { .compatible = "silergy,sy7636a", .data = &silergy_sy7636a}, - { .compatible = "maxim,max5970", .data = &maxim_max597x}, - { .compatible = "maxim,max5978", .data = &maxim_max597x}, + { .compatible = "maxim,max5970", .data = &maxim_max5970}, + { .compatible = "maxim,max5978", .data = &maxim_max5970}, {} }; MODULE_DEVICE_TABLE(of, simple_mfd_i2c_of_match); diff --git a/include/linux/mfd/max5970.h b/include/linux/mfd/max5970.h new file mode 100644 index 0000000000000..762a7d40c843c --- /dev/null +++ b/include/linux/mfd/max5970.h @@ -0,0 +1,96 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Device driver for regulators in MAX5970 and MAX5978 IC + * + * Copyright (c) 2022 9elements GmbH + * + * Author: Patrick Rudolph + */ + +#ifndef _MFD_MAX5970_H +#define _MFD_MAX5970_H + +#include + +#define MAX5970_NUM_SWITCHES 2 +#define MAX5978_NUM_SWITCHES 1 +#define MAX5970_NUM_LEDS 4 + +struct max5970_data { + int num_switches; + u32 irng[MAX5970_NUM_SWITCHES]; + u32 mon_rng[MAX5970_NUM_SWITCHES]; + u32 shunt_micro_ohms[MAX5970_NUM_SWITCHES]; +}; + +enum max5970_chip_type { + TYPE_MAX5978 = 1, + TYPE_MAX5970, +}; + +#define MAX5970_REG_CURRENT_L(ch) (0x01 + (ch) * 4) +#define MAX5970_REG_CURRENT_H(ch) (0x00 + (ch) * 4) +#define MAX5970_REG_VOLTAGE_L(ch) (0x03 + (ch) * 4) +#define MAX5970_REG_VOLTAGE_H(ch) (0x02 + (ch) * 4) +#define MAX5970_REG_MON_RANGE 0x18 +#define MAX5970_MON_MASK 0x3 +#define MAX5970_MON(reg, ch) (((reg) >> ((ch) * 2)) & MAX5970_MON_MASK) +#define MAX5970_MON_MAX_RANGE_UV 16000000 + +#define MAX5970_REG_CH_UV_WARN_H(ch) (0x1A + (ch) * 10) +#define MAX5970_REG_CH_UV_WARN_L(ch) (0x1B + (ch) * 10) +#define MAX5970_REG_CH_UV_CRIT_H(ch) (0x1C + (ch) * 10) +#define MAX5970_REG_CH_UV_CRIT_L(ch) (0x1D + (ch) * 10) +#define MAX5970_REG_CH_OV_WARN_H(ch) (0x1E + (ch) * 10) +#define MAX5970_REG_CH_OV_WARN_L(ch) (0x1F + (ch) * 10) +#define MAX5970_REG_CH_OV_CRIT_H(ch) (0x20 + (ch) * 10) +#define MAX5970_REG_CH_OV_CRIT_L(ch) (0x21 + (ch) * 10) + +#define MAX5970_VAL2REG_H(x) (((x) >> 2) & 0xFF) +#define MAX5970_VAL2REG_L(x) ((x) & 0x3) + +#define MAX5970_REG_DAC_FAST(ch) (0x2E + (ch)) + +#define MAX5970_FAST2SLOW_RATIO 200 + +#define MAX5970_REG_STATUS0 0x31 +#define MAX5970_CB_IFAULTF(ch) (1 << (ch)) +#define MAX5970_CB_IFAULTS(ch) (1 << ((ch) + 4)) + +#define MAX5970_REG_STATUS1 0x32 +#define STATUS1_PROT_MASK 0x3 +#define STATUS1_PROT(reg) \ + (((reg) >> 6) & STATUS1_PROT_MASK) +#define STATUS1_PROT_SHUTDOWN 0 +#define STATUS1_PROT_CLEAR_PG 1 +#define STATUS1_PROT_ALERT_ONLY 2 + +#define MAX5970_REG_STATUS2 0x33 +#define MAX5970_IRNG_MASK 0x3 +#define MAX5970_IRNG(reg, ch) \ + (((reg) >> ((ch) * 2)) & MAX5970_IRNG_MASK) + +#define MAX5970_REG_STATUS3 0x34 +#define MAX5970_STATUS3_ALERT BIT(4) +#define MAX5970_STATUS3_PG(ch) BIT(ch) + +#define MAX5970_REG_FAULT0 0x35 +#define UV_STATUS_WARN(ch) (1 << (ch)) +#define UV_STATUS_CRIT(ch) (1 << ((ch) + 4)) + +#define MAX5970_REG_FAULT1 0x36 +#define OV_STATUS_WARN(ch) (1 << (ch)) +#define OV_STATUS_CRIT(ch) (1 << ((ch) + 4)) + +#define MAX5970_REG_FAULT2 0x37 +#define OC_STATUS_WARN(ch) (1 << (ch)) + +#define MAX5970_REG_CHXEN 0x3b +#define CHXEN(ch) (3 << ((ch) * 2)) + +#define MAX5970_REG_LED_FLASH 0x43 + +#define MAX_REGISTERS 0x49 +#define ADC_MASK 0x3FF + +#endif /* _MFD_MAX5970_H */ diff --git a/include/linux/mfd/max597x.h b/include/linux/mfd/max597x.h deleted file mode 100644 index a850b2e02e6a4..0000000000000 --- a/include/linux/mfd/max597x.h +++ /dev/null @@ -1,96 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -/* - * Device driver for regulators in MAX5970 and MAX5978 IC - * - * Copyright (c) 2022 9elements GmbH - * - * Author: Patrick Rudolph - */ - -#ifndef _MFD_MAX597X_H -#define _MFD_MAX597X_H - -#include - -#define MAX5970_NUM_SWITCHES 2 -#define MAX5978_NUM_SWITCHES 1 -#define MAX597X_NUM_LEDS 4 - -struct max597x_data { - int num_switches; - u32 irng[MAX5970_NUM_SWITCHES]; - u32 mon_rng[MAX5970_NUM_SWITCHES]; - u32 shunt_micro_ohms[MAX5970_NUM_SWITCHES]; -}; - -enum max597x_chip_type { - MAX597x_TYPE_MAX5978 = 1, - MAX597x_TYPE_MAX5970, -}; - -#define MAX5970_REG_CURRENT_L(ch) (0x01 + (ch) * 4) -#define MAX5970_REG_CURRENT_H(ch) (0x00 + (ch) * 4) -#define MAX5970_REG_VOLTAGE_L(ch) (0x03 + (ch) * 4) -#define MAX5970_REG_VOLTAGE_H(ch) (0x02 + (ch) * 4) -#define MAX5970_REG_MON_RANGE 0x18 -#define MAX5970_MON_MASK 0x3 -#define MAX5970_MON(reg, ch) (((reg) >> ((ch) * 2)) & MAX5970_MON_MASK) -#define MAX5970_MON_MAX_RANGE_UV 16000000 - -#define MAX5970_REG_CH_UV_WARN_H(ch) (0x1A + (ch) * 10) -#define MAX5970_REG_CH_UV_WARN_L(ch) (0x1B + (ch) * 10) -#define MAX5970_REG_CH_UV_CRIT_H(ch) (0x1C + (ch) * 10) -#define MAX5970_REG_CH_UV_CRIT_L(ch) (0x1D + (ch) * 10) -#define MAX5970_REG_CH_OV_WARN_H(ch) (0x1E + (ch) * 10) -#define MAX5970_REG_CH_OV_WARN_L(ch) (0x1F + (ch) * 10) -#define MAX5970_REG_CH_OV_CRIT_H(ch) (0x20 + (ch) * 10) -#define MAX5970_REG_CH_OV_CRIT_L(ch) (0x21 + (ch) * 10) - -#define MAX5970_VAL2REG_H(x) (((x) >> 2) & 0xFF) -#define MAX5970_VAL2REG_L(x) ((x) & 0x3) - -#define MAX5970_REG_DAC_FAST(ch) (0x2E + (ch)) - -#define MAX5970_FAST2SLOW_RATIO 200 - -#define MAX5970_REG_STATUS0 0x31 -#define MAX5970_CB_IFAULTF(ch) (1 << (ch)) -#define MAX5970_CB_IFAULTS(ch) (1 << ((ch) + 4)) - -#define MAX5970_REG_STATUS1 0x32 -#define STATUS1_PROT_MASK 0x3 -#define STATUS1_PROT(reg) \ - (((reg) >> 6) & STATUS1_PROT_MASK) -#define STATUS1_PROT_SHUTDOWN 0 -#define STATUS1_PROT_CLEAR_PG 1 -#define STATUS1_PROT_ALERT_ONLY 2 - -#define MAX5970_REG_STATUS2 0x33 -#define MAX5970_IRNG_MASK 0x3 -#define MAX5970_IRNG(reg, ch) \ - (((reg) >> ((ch) * 2)) & MAX5970_IRNG_MASK) - -#define MAX5970_REG_STATUS3 0x34 -#define MAX5970_STATUS3_ALERT BIT(4) -#define MAX5970_STATUS3_PG(ch) BIT(ch) - -#define MAX5970_REG_FAULT0 0x35 -#define UV_STATUS_WARN(ch) (1 << (ch)) -#define UV_STATUS_CRIT(ch) (1 << ((ch) + 4)) - -#define MAX5970_REG_FAULT1 0x36 -#define OV_STATUS_WARN(ch) (1 << (ch)) -#define OV_STATUS_CRIT(ch) (1 << ((ch) + 4)) - -#define MAX5970_REG_FAULT2 0x37 -#define OC_STATUS_WARN(ch) (1 << (ch)) - -#define MAX5970_REG_CHXEN 0x3b -#define CHXEN(ch) (3 << ((ch) * 2)) - -#define MAX5970_REG_LED_FLASH 0x43 - -#define MAX_REGISTERS 0x49 -#define ADC_MASK 0x3FF - -#endif /* _MFD_MAX597X_H */