mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-02-15 04:42:02 +00:00
70 lines
2.3 KiB
Diff
70 lines
2.3 KiB
Diff
From 33a96f88b24cb5fdd5d263c86ef3d78584d48831 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 379/726] 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(+)
|
|
|
|
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
|
|
index 85bb158de57a..abc52db8f221 100644
|
|
--- a/drivers/mfd/Kconfig
|
|
+++ b/drivers/mfd/Kconfig
|
|
@@ -1152,6 +1152,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
|
|
diff --git a/drivers/mfd/simple-mfd-i2c.c b/drivers/mfd/simple-mfd-i2c.c
|
|
index f4c8fc3ee463..9f60dfd35e9f 100644
|
|
--- a/drivers/mfd/simple-mfd-i2c.c
|
|
+++ b/drivers/mfd/simple-mfd-i2c.c
|
|
@@ -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 = ®map_config_16r_8v,
|
|
+};
|
|
+
|
|
static int simple_mfd_i2c_probe(struct i2c_client *i2c)
|
|
{
|
|
const struct simple_mfd_data *simple_mfd_data;
|
|
@@ -75,6 +84,7 @@ static const struct simple_mfd_data silergy_sy7636a = {
|
|
static const struct of_device_id simple_mfd_i2c_of_match[] = {
|
|
{ .compatible = "kontron,sl28cpld" },
|
|
{ .compatible = "silergy,sy7636a", .data = &silergy_sy7636a},
|
|
+ { .compatible = "raspberrypi,poe-core", &rpi_poe_core },
|
|
{}
|
|
};
|
|
MODULE_DEVICE_TABLE(of, simple_mfd_i2c_of_match);
|
|
--
|
|
2.33.1
|
|
|