1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter.git synced 2025-03-09 15:40:20 +00:00
openmptcprouter/6.12/target/linux/bcm27xx/patches-6.12/950-0263-mfd-simple-mfd-i2c-Add-configuration-for-RPi-POE-HAT.patch
Ycarus (Yannick Chabanois) bdb9b0046f Add bcm27xx 6.12 test support
2024-12-20 14:17:26 +01:00

63 lines
2 KiB
Diff

From 015002e730d621dd0228ddf9b1ad66a53f2a25e8 Mon Sep 17 00:00:00 2001
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
Date: Wed, 19 Jan 2022 17:22:57 +0000
Subject: [PATCH 263/697] 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>
---
drivers/mfd/Kconfig | 10 ++++++++++
drivers/mfd/simple-mfd-i2c.c | 10 ++++++++++
2 files changed, 20 insertions(+)
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -1186,6 +1186,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
--- a/drivers/mfd/simple-mfd-i2c.c
+++ b/drivers/mfd/simple-mfd-i2c.c
@@ -29,6 +29,15 @@ static const struct regmap_config regmap
.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;
@@ -88,6 +97,7 @@ static const struct of_device_id simple_
{ .compatible = "silergy,sy7636a", .data = &silergy_sy7636a},
{ .compatible = "maxim,max5970", .data = &maxim_max5970},
{ .compatible = "maxim,max5978", .data = &maxim_max5970},
+ { .compatible = "raspberrypi,poe-core", &rpi_poe_core },
{ .compatible = "raspberrypi,sensehat" },
{}
};