On Di, 2022-06-28 at 20:45 +0100, Phil Edworthy wrote: > Yet another i2c controller from Renesas that is found on the RZ/V2M > (r9a09g011) SoC. It can support only 100kHz and 400KHz operation. > > Signed-off-by: Phil Edworthy <phil.edworthy@xxxxxxxxxxx> > Reviewed-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx> > --- > v2: > - Use the new NOIRQ_SYSTEM_SLEEP_PM_OPS() as suggested by Arnd > - Lots of small fixes based on Geert's review > --- > drivers/i2c/busses/Kconfig | 10 + > drivers/i2c/busses/Makefile | 1 + > drivers/i2c/busses/i2c-rzv2m.c | 530 +++++++++++++++++++++++++++++++++ > 3 files changed, 541 insertions(+) > create mode 100644 drivers/i2c/busses/i2c-rzv2m.c > [...] > diff --git a/drivers/i2c/busses/i2c-rzv2m.c b/drivers/i2c/busses/i2c-rzv2m.c > new file mode 100644 > index 000000000000..ab326d557dc5 > --- /dev/null > +++ b/drivers/i2c/busses/i2c-rzv2m.c > @@ -0,0 +1,530 @@ [...] > +static int rzv2m_i2c_probe(struct platform_device *pdev) > +{ > + struct device *dev = &pdev->dev; > + struct rzv2m_i2c_priv *priv; > + struct reset_control *rstc; > + struct i2c_adapter *adap; > + struct resource *res; > + int irq, ret; > + > + priv = devm_kzalloc(dev, sizeof(struct rzv2m_i2c_priv), GFP_KERNEL); > + if (!priv) > + return -ENOMEM; > + > + priv->base = devm_platform_get_and_ioremap_resource(pdev, 0, &res); > + if (IS_ERR(priv->base)) > + return PTR_ERR(priv->base); > + > + priv->clk = devm_clk_get(dev, NULL); > + if (IS_ERR(priv->clk)) { > + dev_err_probe(dev, PTR_ERR(priv->clk), "Can't get clock\n"); > + return PTR_ERR(priv->clk); > + } > + > + rstc = devm_reset_control_get(dev, NULL); Please don't use devm_reset_control_get. This should probably be devm_reset_control_get_shared(). regards Philipp