[PATCH v8 08/10] mfd: mt6360: Fix flow which is used to check ic exist
Fei Shao
fshao at chromium.org
Wed Jun 9 03:21:21 PDT 2021
On Wed, Jun 9, 2021 at 6:02 PM Fei Shao <fshao at chromium.org> wrote:
>
> On Tue, May 18, 2021 at 1:36 AM Gene Chen <gene.chen.richtek at gmail.com> wrote:
> >
> > From: Gene Chen <gene_chen at richtek.com>
> >
> > Fix flow which is used to check ic exist.
> >
> > Signed-off-by: Gene Chen <gene_chen at richtek.com>
> > Acked-for-MFD-by: Lee Jones <lee.jones at linaro.org>
> > ---
> > drivers/mfd/mt6360-core.c | 32 +++++++++++++++++++++-----------
> > 1 file changed, 21 insertions(+), 11 deletions(-)
> >
> > diff --git a/drivers/mfd/mt6360-core.c b/drivers/mfd/mt6360-core.c
> > index 50a170065a98..cdd99770f94a 100644
> > --- a/drivers/mfd/mt6360-core.c
> > +++ b/drivers/mfd/mt6360-core.c
> > @@ -293,6 +293,25 @@ static const struct mfd_cell mt6360_devs[] = {
> > NULL, 0, 0, "mediatek,mt6360-tcpc"),
> > };
> >
> > +static int mt6360_check_vendor_info(struct mt6360_ddata *ddata)
> > +{
> > + u32 info;
> > + int ret;
> > +
> > + ret = regmap_read(ddata->regmap, MT6360_PMU_DEV_INFO, &info);
> > + if (ret < 0)
>
> A dev_err() to indicate the read info error? (it used to be there)
Oops sorry I didn't realize that the patches are applied. Will send
another one for the minor fixes.
>
> > + return ret;
> > +
> > + if ((info & CHIP_VEN_MASK) != CHIP_VEN_MT6360) {
> > + dev_err(ddata->dev, "Device not supported\n");
> > + return -ENODEV;
> > + }
> > +
> > + ddata->chip_rev = info & CHIP_REV_MASK;
> > +
> > + return 0;
> > +}
> > +
> > static const unsigned short mt6360_slave_addr[MT6360_SLAVE_MAX] = {
> > MT6360_PMU_SLAVEID,
> > MT6360_PMIC_SLAVEID,
> > @@ -303,7 +322,6 @@ static const unsigned short mt6360_slave_addr[MT6360_SLAVE_MAX] = {
> > static int mt6360_probe(struct i2c_client *client)
> > {
> > struct mt6360_ddata *ddata;
> > - unsigned int reg_data;
> > int i, ret;
> >
> > ddata = devm_kzalloc(&client->dev, sizeof(*ddata), GFP_KERNEL);
> > @@ -319,17 +337,9 @@ static int mt6360_probe(struct i2c_client *client)
> > return PTR_ERR(ddata->regmap);
> > }
> >
> > - ret = regmap_read(ddata->regmap, MT6360_PMU_DEV_INFO, ®_data);
> > - if (ret) {
> > - dev_err(&client->dev, "Device not found\n");
> > + ret = mt6360_check_vendor_info(ddata);
> > + if (ret)
> > return ret;
> > - }
> > -
> > - ddata->chip_rev = reg_data & CHIP_REV_MASK;
> > - if (ddata->chip_rev != CHIP_VEN_MT6360) {
> > - dev_err(&client->dev, "Device not supported\n");
> > - return -ENODEV;
> > - }
> >
> > ret = devm_regmap_add_irq_chip(&client->dev, ddata->regmap, client->irq,
> > 0, 0, &mt6360_irq_chip,
> > --
> > 2.25.1
> >
> >
> > _______________________________________________
> > Linux-mediatek mailing list
> > Linux-mediatek at lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-mediatek
More information about the Linux-mediatek
mailing list