mfd: simple-mfd-i2c: Add configuration for RPi POE HAT

The Raspbery Pi PoE+ HAT exposes a fan controller and power
supply status reporting via a single I2C address.

Create an MFD device that allows loading of the relevant
sub-drivers, with a shared I2C regmap.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
This commit is contained in:
Dave Stevenson
2022-01-19 17:22:57 +00:00
committed by Dom Cobley
parent 33afe2930d
commit c481e09a41
2 changed files with 20 additions and 0 deletions

View File

@@ -1292,6 +1292,16 @@ config MFD_SY7636A
To enable support for building sub-devices as modules,
choose M here.
config MFD_RASPBERRYPI_POE_HAT
tristate "Raspberry Pi PoE HAT MFD"
depends on I2C
select MFD_SIMPLE_MFD_I2C
help
This module supports the PWM fan controller found on the Raspberry Pi
POE and POE+ HAT boards, and the power supply driver on the POE+ HAT.
(Functionally it relies on MFD_SIMPLE_MFD_I2C to provide the framework
that loads the child drivers).
config MFD_RDC321X
tristate "RDC R-321x southbridge"
select MFD_CORE

View File

@@ -29,6 +29,15 @@ static const struct regmap_config regmap_config_8r_8v = {
.val_bits = 8,
};
static const struct regmap_config regmap_config_16r_8v = {
.reg_bits = 16,
.val_bits = 8,
};
static const struct simple_mfd_data rpi_poe_core = {
.regmap_config = &regmap_config_16r_8v,
};
static int simple_mfd_i2c_probe(struct i2c_client *i2c)
{
const struct simple_mfd_data *simple_mfd_data;
@@ -117,6 +126,7 @@ static const struct of_device_id simple_mfd_i2c_of_match[] = {
{ .compatible = "maxim,max5970", .data = &maxim_max5970},
{ .compatible = "maxim,max5978", .data = &maxim_max5970},
{ .compatible = "maxim,max77705-battery", .data = &maxim_mon_max77705},
{ .compatible = "raspberrypi,poe-core", &rpi_poe_core },
{ .compatible = "raspberrypi,sensehat" },
{ .compatible = "silergy,sy7636a", .data = &silergy_sy7636a},
{ .compatible = "spacemit,p1", .data = &spacemit_p1, },