Quoting Satya Priya (2022-05-05 02:25:34) > diff --git a/drivers/mfd/qcom-pm8008.c b/drivers/mfd/qcom-pm8008.c > index c472d7f..e7c3b32 100644 > --- a/drivers/mfd/qcom-pm8008.c > +++ b/drivers/mfd/qcom-pm8008.c > @@ -4,6 +4,7 @@ > */ > > #include <linux/bitops.h> > +#include <linux/gpio/consumer.h> > #include <linux/i2c.h> > #include <linux/interrupt.h> > #include <linux/irq.h> > @@ -221,6 +222,7 @@ static int pm8008_probe(struct i2c_client *client) > { > int rc; > struct pm8008_data *chip; > + struct gpio_desc *reset_gpio; > > chip = devm_kzalloc(&client->dev, sizeof(*chip), GFP_KERNEL); > if (!chip) > @@ -239,6 +241,10 @@ static int pm8008_probe(struct i2c_client *client) > dev_err(chip->dev, "Failed to probe irq periphs: %d\n", rc); > } > > + reset_gpio = devm_gpiod_get(chip->dev, "reset", GPIOD_OUT_LOW); Actually, this needs to come before probing irq chip right? Otherwise irq chip could try to read/write from the pmic but it would fail.