Message ID | 20220908152449.35457-10-farbere@amazon.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | Variety of fixes and new features for mr75203 driver | expand |
On Thu, Sep 08, 2022 at 03:24:37PM +0000, Eliav Farber wrote: > Don't fail the probe function and don't deassert the reset controller if > a "reset" property doesn't exist in the device tree. > > Change is done for SOCs that don't support a reset controller. > > Signed-off-by: Eliav Farber <farbere@amazon.com> > Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Applied to hwmon-next. Thanks, Guenter > --- > V3 -> v2: > - Change "reset" property to be optional instead of skipping it. > > drivers/hwmon/mr75203.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/drivers/hwmon/mr75203.c b/drivers/hwmon/mr75203.c > index 41e3d3b54baf..19ec9fb91202 100644 > --- a/drivers/hwmon/mr75203.c > +++ b/drivers/hwmon/mr75203.c > @@ -551,14 +551,17 @@ static int mr75203_probe(struct platform_device *pdev) > return ret; > } > > - pvt->rst = devm_reset_control_get_exclusive(dev, NULL); > + pvt->rst = devm_reset_control_get_optional_exclusive(dev, NULL); > if (IS_ERR(pvt->rst)) > return dev_err_probe(dev, PTR_ERR(pvt->rst), > "failed to get reset control\n"); > > - ret = pvt_reset_control_deassert(dev, pvt); > - if (ret) > - return dev_err_probe(dev, ret, "cannot deassert reset control\n"); > + if (pvt->rst) { > + ret = pvt_reset_control_deassert(dev, pvt); > + if (ret) > + return dev_err_probe(dev, ret, > + "cannot deassert reset control\n"); > + } > > ret = regmap_read(pvt->c_map, PVT_IP_CONFIG, &val); > if(ret < 0)
diff --git a/drivers/hwmon/mr75203.c b/drivers/hwmon/mr75203.c index 41e3d3b54baf..19ec9fb91202 100644 --- a/drivers/hwmon/mr75203.c +++ b/drivers/hwmon/mr75203.c @@ -551,14 +551,17 @@ static int mr75203_probe(struct platform_device *pdev) return ret; } - pvt->rst = devm_reset_control_get_exclusive(dev, NULL); + pvt->rst = devm_reset_control_get_optional_exclusive(dev, NULL); if (IS_ERR(pvt->rst)) return dev_err_probe(dev, PTR_ERR(pvt->rst), "failed to get reset control\n"); - ret = pvt_reset_control_deassert(dev, pvt); - if (ret) - return dev_err_probe(dev, ret, "cannot deassert reset control\n"); + if (pvt->rst) { + ret = pvt_reset_control_deassert(dev, pvt); + if (ret) + return dev_err_probe(dev, ret, + "cannot deassert reset control\n"); + } ret = regmap_read(pvt->c_map, PVT_IP_CONFIG, &val); if(ret < 0)