Messages in this thread | | | Subject | Re: [PATCH 1/2] leds: is31fl319x: Add sdb pin and generate a 5ms low pulse when startup | From | Dan Murphy <> | Date | Thu, 6 Aug 2020 10:00:59 -0500 |
| |
Grant
On 8/6/20 1:21 AM, Grant Feng wrote: > generate a 5ms low pulse on sdb pin when startup, then the chip > becomes more stable in the complex EM environment. > > Signed-off-by: Grant Feng <von81@163.com> > --- > drivers/leds/leds-is31fl319x.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/drivers/leds/leds-is31fl319x.c b/drivers/leds/leds-is31fl319x.c > index ca6634b8683c..b4f70002cec9 100644 > --- a/drivers/leds/leds-is31fl319x.c > +++ b/drivers/leds/leds-is31fl319x.c > @@ -16,6 +16,8 @@ > #include <linux/of_device.h> > #include <linux/regmap.h> > #include <linux/slab.h> > +#include <linux/delay.h> > +#include <linux/gpio/consumer.h> > > /* register numbers */ > #define IS31FL319X_SHUTDOWN 0x00 > @@ -61,6 +63,7 @@ > struct is31fl319x_chip { > const struct is31fl319x_chipdef *cdef; > struct i2c_client *client; > + struct gpio_desc *sdb_pin; > struct regmap *regmap; > struct mutex lock; > u32 audio_gain_db; > @@ -265,6 +268,15 @@ static int is31fl319x_parse_dt(struct device *dev, > is31->audio_gain_db = min(is31->audio_gain_db, > IS31FL319X_AUDIO_GAIN_DB_MAX); > > + is31->sdb_pin = gpiod_get(dev, "sdb", GPIOD_ASIS);
Since this is optional maybe use devm_gpiod_get_optional.
If this is required for stability then if the GPIO is not present then the parse_dt should return the error.
And use the devm_gpiod_get call. Otherwise you are missing the gpiod_put when exiting or removing the driver.
Dan
| |