Skip to content
/ linux Public
forked from torvalds/linux

Commit

Permalink
mfd: axp20x: Ensure relationship between IDs and model names
Browse files Browse the repository at this point in the history
At the moment there is an implicit relationship between the AXP model
IDs and the order of the strings in the axp20x_model_names[] array.
This is fragile, and makes adding IDs in the middle error prone.

Make this relationship official by changing the ID type to the actual
enum used, and using indexed initialisers for the string list.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Link: https://lore.kernel.org/r/20241007001408.27249-3-andre.przywara@arm.com
Signed-off-by: Lee Jones <lee@kernel.org>
  • Loading branch information
Andre-ARM authored and lag-linaro committed Oct 31, 2024
1 parent bd91530 commit 697a400
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 17 deletions.
30 changes: 15 additions & 15 deletions drivers/mfd/axp20x.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,20 +34,20 @@
#define AXP806_REG_ADDR_EXT_ADDR_SLAVE_MODE BIT(4)

static const char * const axp20x_model_names[] = {
"AXP152",
"AXP192",
"AXP202",
"AXP209",
"AXP221",
"AXP223",
"AXP288",
"AXP313a",
"AXP717",
"AXP803",
"AXP806",
"AXP809",
"AXP813",
"AXP15060",
[AXP152_ID] = "AXP152",
[AXP192_ID] = "AXP192",
[AXP202_ID] = "AXP202",
[AXP209_ID] = "AXP209",
[AXP221_ID] = "AXP221",
[AXP223_ID] = "AXP223",
[AXP288_ID] = "AXP288",
[AXP313A_ID] = "AXP313a",
[AXP717_ID] = "AXP717",
[AXP803_ID] = "AXP803",
[AXP806_ID] = "AXP806",
[AXP809_ID] = "AXP809",
[AXP813_ID] = "AXP813",
[AXP15060_ID] = "AXP15060",
};

static const struct regmap_range axp152_writeable_ranges[] = {
Expand Down Expand Up @@ -1345,7 +1345,7 @@ int axp20x_match_device(struct axp20x_dev *axp20x)
axp20x->regmap_irq_chip = &axp15060_regmap_irq_chip;
break;
default:
dev_err(dev, "unsupported AXP20X ID %lu\n", axp20x->variant);
dev_err(dev, "unsupported AXP20X ID %u\n", axp20x->variant);
return -EINVAL;
}

Expand Down
2 changes: 1 addition & 1 deletion drivers/regulator/axp20x-regulator.c
Original file line number Diff line number Diff line change
Expand Up @@ -1597,7 +1597,7 @@ static int axp20x_regulator_probe(struct platform_device *pdev)
nregulators = AXP15060_REG_ID_MAX;
break;
default:
dev_err(&pdev->dev, "Unsupported AXP variant: %ld\n",
dev_err(&pdev->dev, "Unsupported AXP variant: %d\n",
axp20x->variant);
return -EINVAL;
}
Expand Down
2 changes: 1 addition & 1 deletion include/linux/mfd/axp20x.h
Original file line number Diff line number Diff line change
Expand Up @@ -959,7 +959,7 @@ struct axp20x_dev {
unsigned long irq_flags;
struct regmap *regmap;
struct regmap_irq_chip_data *regmap_irqc;
long variant;
enum axp20x_variants variant;
int nr_cells;
const struct mfd_cell *cells;
const struct regmap_config *regmap_cfg;
Expand Down

0 comments on commit 697a400

Please sign in to comment.