Subject: [PATCH v5] mfd: da9063: Support SMBus and I2C mode

Hi Lee,

> Code looks good to me now, thanks.
>
> However, this doesn't look like it would pass checkpatch.
>
> Have you tried to build with W=1 and checkpatch?

Yes, we used checkpatch.pl.

$ ./scripts/checkpatch.pl 0001-mfd-da9063-Support-SMBus-and-I2C-mode.v5
total: 0 errors, 0 warnings, 25 lines checked

0001-mfd-da9063-Support-SMBus-and-I2C-mode.v5 has no obvious style problems and is ready for submission.

Using the option --strict we get a check hint that the broken line of the regmap_clear_bits() is not aligned. We tried but were not able to make the tool happy. This matches our experience with this check hint and previous patches.

Also compiling Linux 5.10.14 with our patch and W=1 does not yield a warning.

$ make W=1
CALL scripts/checksyscalls.sh
CALL scripts/atomic/check-atomics.sh
CHK include/generated/compile.h
CC [M] drivers/mfd/da9063-i2c.o
LD [M] drivers/mfd/da9063.o
Kernel: arch/arm/boot/Image is ready
Kernel: arch/arm/boot/zImage is ready
MODPOST Module.symvers
LD [M] drivers/mfd/da9063.ko

> > diff --git a/drivers/mfd/da9063-i2c.c b/drivers/mfd/da9063-i2c.c index
> > 3781d0bb7786..e8a022e697c5 100644
> > --- a/drivers/mfd/da9063-i2c.c
> > +++ b/drivers/mfd/da9063-i2c.c
> > @@ -442,6 +442,16 @@ static int da9063_i2c_probe(struct i2c_client *i2c,
> > return ret;
> > }
> >
> > + /* If SMBus is not available and only I2C is possible, enter I2C mode */
> > + if (i2c_check_functionality(i2c->adapter, I2C_FUNC_I2C)) {
> > + ret = regmap_clear_bits(da9063->regmap,
> DA9063_REG_CONFIG_J,
> > + DA9063_TWOWIRE_TO);
> > + if (ret < 0) {
> > + dev_err(da9063->dev, "Failed to set Two-Wire Bus
> Mode.\n");
> > + return -EIO;
> > + }
> > + }
> > +
> > return da9063_device_init(da9063, i2c->irq); }
> >
> > diff --git a/include/linux/mfd/da9063/registers.h
> > b/include/linux/mfd/da9063/registers.h
> > index 1dbabf1b3cb8..6e0f66a2e727 100644
> > --- a/include/linux/mfd/da9063/registers.h
> > +++ b/include/linux/mfd/da9063/registers.h
> > @@ -1037,6 +1037,9 @@
> > #define DA9063_NONKEY_PIN_AUTODOWN 0x02
> > #define DA9063_NONKEY_PIN_AUTOFLPRT 0x03
> >
> > +/* DA9063_REG_CONFIG_J (addr=0x10F) */
> > +#define DA9063_TWOWIRE_TO 0x40
> > +
> > /* DA9063_REG_MON_REG_5 (addr=0x116) */
> > #define DA9063_MON_A8_IDX_MASK 0x07
> > #define DA9063_MON_A8_IDX_NONE 0x00

Cheers,
Mark


2021-03-16 10:10:59

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH v5] mfd: da9063: Support SMBus and I2C mode

On Tue, 16 Mar 2021, Jonas Mark (BT-FIR/ENG1-Grb) wrote:

> Hi Lee,
>
> > Code looks good to me now, thanks.
> >
> > However, this doesn't look like it would pass checkpatch.
> >
> > Have you tried to build with W=1 and checkpatch?
>
> Yes, we used checkpatch.pl.
>
> $ ./scripts/checkpatch.pl 0001-mfd-da9063-Support-SMBus-and-I2C-mode.v5
> total: 0 errors, 0 warnings, 25 lines checked
>
> 0001-mfd-da9063-Support-SMBus-and-I2C-mode.v5 has no obvious style problems and is ready for submission.
>
> Using the option --strict we get a check hint that the broken line
> of the regmap_clear_bits() is not aligned. We tried but were not
> able to make the tool happy. This matches our experience with this
> check hint and previous patches.

Lining up the first char of the broken line with the open parenthesis
will make checkpatch happy. It's easier if you configure your editor
to always do this, rather than with strict tabs.

> Also compiling Linux 5.10.14 with our patch and W=1 does not yield a warning.
>
> $ make W=1
> CALL scripts/checksyscalls.sh
> CALL scripts/atomic/check-atomics.sh
> CHK include/generated/compile.h
> CC [M] drivers/mfd/da9063-i2c.o
> LD [M] drivers/mfd/da9063.o
> Kernel: arch/arm/boot/Image is ready
> Kernel: arch/arm/boot/zImage is ready
> MODPOST Module.symvers
> LD [M] drivers/mfd/da9063.ko
>
> > > diff --git a/drivers/mfd/da9063-i2c.c b/drivers/mfd/da9063-i2c.c index
> > > 3781d0bb7786..e8a022e697c5 100644
> > > --- a/drivers/mfd/da9063-i2c.c
> > > +++ b/drivers/mfd/da9063-i2c.c
> > > @@ -442,6 +442,16 @@ static int da9063_i2c_probe(struct i2c_client *i2c,
> > > return ret;
> > > }
> > >
> > > + /* If SMBus is not available and only I2C is possible, enter I2C mode */
> > > + if (i2c_check_functionality(i2c->adapter, I2C_FUNC_I2C)) {
> > > + ret = regmap_clear_bits(da9063->regmap,
> > DA9063_REG_CONFIG_J,
> > > + DA9063_TWOWIRE_TO);
> > > + if (ret < 0) {
> > > + dev_err(da9063->dev, "Failed to set Two-Wire Bus
> > Mode.\n");
> > > + return -EIO;
> > > + }
> > > + }
> > > +
> > > return da9063_device_init(da9063, i2c->irq); }
> > >
> > > diff --git a/include/linux/mfd/da9063/registers.h
> > > b/include/linux/mfd/da9063/registers.h
> > > index 1dbabf1b3cb8..6e0f66a2e727 100644
> > > --- a/include/linux/mfd/da9063/registers.h
> > > +++ b/include/linux/mfd/da9063/registers.h
> > > @@ -1037,6 +1037,9 @@
> > > #define DA9063_NONKEY_PIN_AUTODOWN 0x02
> > > #define DA9063_NONKEY_PIN_AUTOFLPRT 0x03
> > >
> > > +/* DA9063_REG_CONFIG_J (addr=0x10F) */
> > > +#define DA9063_TWOWIRE_TO 0x40
> > > +
> > > /* DA9063_REG_MON_REG_5 (addr=0x116) */
> > > #define DA9063_MON_A8_IDX_MASK 0x07
> > > #define DA9063_MON_A8_IDX_NONE 0x00
>

--
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog

2021-03-16 15:15:54

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH v5] mfd: da9063: Support SMBus and I2C mode

On Tue, 16 Mar 2021, Jonas Mark (BT-FIR/ENG1-Grb) wrote:

> Hi Lee,
>
> > Code looks good to me now, thanks.
> >
> > However, this doesn't look like it would pass checkpatch.
> >
> > Have you tried to build with W=1 and checkpatch?
>
> Yes, we used checkpatch.pl.
>
> $ ./scripts/checkpatch.pl 0001-mfd-da9063-Support-SMBus-and-I2C-mode.v5
> total: 0 errors, 0 warnings, 25 lines checked
>
> 0001-mfd-da9063-Support-SMBus-and-I2C-mode.v5 has no obvious style problems and is ready for submission.
>
> Using the option --strict we get a check hint that the broken line of the regmap_clear_bits() is not aligned. We tried but were not able to make the tool happy. This matches our experience with this check hint and previous patches.
>
> Also compiling Linux 5.10.14 with our patch and W=1 does not yield a warning.

FYI, you should be using -next for upstream development.

> $ make W=1
> CALL scripts/checksyscalls.sh
> CALL scripts/atomic/check-atomics.sh
> CHK include/generated/compile.h
> CC [M] drivers/mfd/da9063-i2c.o
> LD [M] drivers/mfd/da9063.o
> Kernel: arch/arm/boot/Image is ready
> Kernel: arch/arm/boot/zImage is ready
> MODPOST Module.symvers
> LD [M] drivers/mfd/da9063.ko

--
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog