[PATCH v2 3/4] i2c: mux: gpio: Allow to call i2c_register_spd on a muxed segment

Heiner Kallweit
2024-01-13T11:28:02Z

Allow the gpio-based multiplexer to call i2c_register_spd on
muxed segments. First user will be i801.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
drivers/i2c/muxes/i2c-mux-gpio.c | 1 +
include/linux/platform_data/i2c-mux-gpio.h | 2 ++
2 files changed, 3 insertions(+)

diff --git a/drivers/i2c/muxes/i2c-mux-gpio.c b/drivers/i2c/muxes/i2c-mux-gpio.c
index 6b979a0a6..c841407c7 100644
--- a/drivers/i2c/muxes/i2c-mux-gpio.c
+++ b/drivers/i2c/muxes/i2c-mux-gpio.c
@@ -161,6 +161,7 @@ static int i2c_mux_gpio_probe(struct platform_device *pdev)
}
mux->gpios = muxc->priv;
muxc->priv = mux;
+ muxc->register_spd = mux->data.register_spd;

platform_set_drvdata(pdev, muxc);

diff --git a/include/linux/platform_data/i2c-mux-gpio.h b/include/linux/platform_data/i2c-mux-gpio.h
index 5e4c2c272..cbeb74f92 100644
--- a/include/linux/platform_data/i2c-mux-gpio.h
+++ b/include/linux/platform_data/i2c-mux-gpio.h
@@ -20,6 +20,7 @@
* @n_values: Number of multiplexer positions (busses to instantiate)
* @classes: Optional I2C auto-detection classes
* @idle: Bitmask to write to MUX when idle or GPIO_I2CMUX_NO_IDLE if not used
+ * @register_spd: call i2c_register_spd for the child adapters on muxed segments
*/
struct i2c_mux_gpio_platform_data {
int parent;
@@ -28,6 +29,7 @@ struct i2c_mux_gpio_platform_data {
int n_values;
const unsigned *classes;
unsigned idle;
+ unsigned int register_spd:1;
};

#endif /* _LINUX_I2C_MUX_GPIO_H */
--
2.43.0