mbox series

[v6,0/5] i2c: npcm: Bug fixes timeout, spurious interrupts

Message ID 20220525032341.3182-1-warp5tw@gmail.com
Headers show
Series i2c: npcm: Bug fixes timeout, spurious interrupts | expand

Message

Tyrone Ting May 25, 2022, 3:23 a.m. UTC
From: Tyrone Ting <kfting@nuvoton.com>

This patchset includes the following fixes:

- Add dt-bindings description for NPCM845.
- Bug fix for timeout calculation.
- Better handling of spurious interrupts.
- Fix for event type in slave mode.
- Removal of own slave addresses [2:10].
- Support for next gen BMC (NPCM845).

The NPCM I2C driver is tested on NPCM750 and NPCM845 evaluation boards.

Addressed comments from:
 - Wolfram Sang : https://lkml.org/lkml/2022/5/21/51

Changes since version 5:
 - Shorten npcm_i2caddr array since the number of supported i2c slave
   addresses is reduced.
 - Create a new patch from the original PATCH v5 08/10 to modify the slave
   transaction logic.

Changes since version 4:
 - Remove quotes around ref handle to nuvoton,sys-mgr in i2c binding
   document.
 - Keep the "longer line first" order.
 - Correct the SoB chain.
 - Modify the if statement in one line and add new line characters.
 - Modify the commit message format in the patch Remove own slave
   addresses 2:10. Correct the if statement in one line and shorten the
   debug messages.
 - Create a new patch to capitalize the one-line comment in the driver.

Changes since version 3:
 - Correct the const format in if condition in i2c binding document.
 - Add the oops message statement and register information in register
   access width patch.
 - Add the occurring rate of the i2c spurious interrupt issue and more
   details in driver's behavior to overcome this issue.
 - Address Andy's comments in the patch to support NPCM845.
 
Changes since version 2:
 - Keep old code as fallback, if getting nuvoton,sys-mgr property fails.
 - Fix the error reported by running 'make DT_CHECKER_FLAGS=-m 
   dt_binding_check'.
 - Make nuvoton,sys-mgr required for nuvoton,npcm845-i2c.
 - Correct the patch's subject about changing the way of getting GCR
   regmap and add the description about keeping old code as fallback
   if getting nuvoton,sys-mgr property fails.
 - Correct the patch title and description about removing the unused 
   variable clk_regmap.
 - Use the data field directly instead of the macros since macros are
   not constants anymore in this patch.
 
Changes since version 1:
 - Add nuvoton,sys-mgr property in NPCM devicetree.
 - Describe the commit message in imperative mood.
 - Modify the description in i2c binding document to cover NPCM series.
 - Add new property in i2c binding document.
 - Create a new patch for client address calculation.
 - Create a new patch for updating gcr property name.
 - Create a new patch for removing unused clock node.
 - Explain EOB in the commit description.
 - Create a new patch for correcting NPCM register access width.
 - Remove some comment since the corresponding logic no longer exists.
 - Remove fixes tag while the patch adds an additional feature.
 - Use devicetree data field to support NPCM845.

Tali Perry (2):
  i2c: npcm: Remove own slave addresses 2:10
  i2c: npcm: Correct slave role behavior

Tyrone Ting (3):
  dt-bindings: i2c: npcm: support NPCM845
  i2c: npcm: Support NPCM845
  i2c: npcm: Capitalize the one-line comment

 .../bindings/i2c/nuvoton,npcm7xx-i2c.yaml     |  25 ++-
 drivers/i2c/busses/Kconfig                    |   8 +-
 drivers/i2c/busses/Makefile                   |   2 +-
 drivers/i2c/busses/i2c-npcm7xx.c              | 176 ++++++++++--------
 4 files changed, 124 insertions(+), 87 deletions(-)

Comments

Andy Shevchenko May 25, 2022, 5:08 p.m. UTC | #1
On Wed, May 25, 2022 at 11:23:36AM +0800, Tyrone Ting wrote:
> From: Tyrone Ting <kfting@nuvoton.com>
> 
> This patchset includes the following fixes:
> 
> - Add dt-bindings description for NPCM845.
> - Bug fix for timeout calculation.
> - Better handling of spurious interrupts.
> - Fix for event type in slave mode.
> - Removal of own slave addresses [2:10].
> - Support for next gen BMC (NPCM845).
> 
> The NPCM I2C driver is tested on NPCM750 and NPCM845 evaluation boards.

LGTM,
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

> Addressed comments from:
>  - Wolfram Sang : https://lkml.org/lkml/2022/5/21/51
> 
> Changes since version 5:
>  - Shorten npcm_i2caddr array since the number of supported i2c slave
>    addresses is reduced.
>  - Create a new patch from the original PATCH v5 08/10 to modify the slave
>    transaction logic.
> 
> Changes since version 4:
>  - Remove quotes around ref handle to nuvoton,sys-mgr in i2c binding
>    document.
>  - Keep the "longer line first" order.
>  - Correct the SoB chain.
>  - Modify the if statement in one line and add new line characters.
>  - Modify the commit message format in the patch Remove own slave
>    addresses 2:10. Correct the if statement in one line and shorten the
>    debug messages.
>  - Create a new patch to capitalize the one-line comment in the driver.
> 
> Changes since version 3:
>  - Correct the const format in if condition in i2c binding document.
>  - Add the oops message statement and register information in register
>    access width patch.
>  - Add the occurring rate of the i2c spurious interrupt issue and more
>    details in driver's behavior to overcome this issue.
>  - Address Andy's comments in the patch to support NPCM845.
>  
> Changes since version 2:
>  - Keep old code as fallback, if getting nuvoton,sys-mgr property fails.
>  - Fix the error reported by running 'make DT_CHECKER_FLAGS=-m 
>    dt_binding_check'.
>  - Make nuvoton,sys-mgr required for nuvoton,npcm845-i2c.
>  - Correct the patch's subject about changing the way of getting GCR
>    regmap and add the description about keeping old code as fallback
>    if getting nuvoton,sys-mgr property fails.
>  - Correct the patch title and description about removing the unused 
>    variable clk_regmap.
>  - Use the data field directly instead of the macros since macros are
>    not constants anymore in this patch.
>  
> Changes since version 1:
>  - Add nuvoton,sys-mgr property in NPCM devicetree.
>  - Describe the commit message in imperative mood.
>  - Modify the description in i2c binding document to cover NPCM series.
>  - Add new property in i2c binding document.
>  - Create a new patch for client address calculation.
>  - Create a new patch for updating gcr property name.
>  - Create a new patch for removing unused clock node.
>  - Explain EOB in the commit description.
>  - Create a new patch for correcting NPCM register access width.
>  - Remove some comment since the corresponding logic no longer exists.
>  - Remove fixes tag while the patch adds an additional feature.
>  - Use devicetree data field to support NPCM845.
> 
> Tali Perry (2):
>   i2c: npcm: Remove own slave addresses 2:10
>   i2c: npcm: Correct slave role behavior
> 
> Tyrone Ting (3):
>   dt-bindings: i2c: npcm: support NPCM845
>   i2c: npcm: Support NPCM845
>   i2c: npcm: Capitalize the one-line comment
> 
>  .../bindings/i2c/nuvoton,npcm7xx-i2c.yaml     |  25 ++-
>  drivers/i2c/busses/Kconfig                    |   8 +-
>  drivers/i2c/busses/Makefile                   |   2 +-
>  drivers/i2c/busses/i2c-npcm7xx.c              | 176 ++++++++++--------
>  4 files changed, 124 insertions(+), 87 deletions(-)
> 
> -- 
> 2.17.1
>
Tyrone Ting May 27, 2022, 12:31 a.m. UTC | #2
Hi Andy:

Thank you for your review.

Much appreciated.

Andy Shevchenko <andriy.shevchenko@linux.intel.com> 於 2022年5月26日 週四 上午1:32寫道:
>
> On Wed, May 25, 2022 at 11:23:36AM +0800, Tyrone Ting wrote:
> > From: Tyrone Ting <kfting@nuvoton.com>
> >
> > This patchset includes the following fixes:
> >
> > - Add dt-bindings description for NPCM845.
> > - Bug fix for timeout calculation.
> > - Better handling of spurious interrupts.
> > - Fix for event type in slave mode.
> > - Removal of own slave addresses [2:10].
> > - Support for next gen BMC (NPCM845).
> >
> > The NPCM I2C driver is tested on NPCM750 and NPCM845 evaluation boards.
>
> LGTM,
> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
>
> > Addressed comments from:
> >  - Wolfram Sang : https://lkml.org/lkml/2022/5/21/51
> >
> > Changes since version 5:
> >  - Shorten npcm_i2caddr array since the number of supported i2c slave
> >    addresses is reduced.
> >  - Create a new patch from the original PATCH v5 08/10 to modify the slave
> >    transaction logic.
> >
> > Changes since version 4:
> >  - Remove quotes around ref handle to nuvoton,sys-mgr in i2c binding
> >    document.
> >  - Keep the "longer line first" order.
> >  - Correct the SoB chain.
> >  - Modify the if statement in one line and add new line characters.
> >  - Modify the commit message format in the patch Remove own slave
> >    addresses 2:10. Correct the if statement in one line and shorten the
> >    debug messages.
> >  - Create a new patch to capitalize the one-line comment in the driver.
> >
> > Changes since version 3:
> >  - Correct the const format in if condition in i2c binding document.
> >  - Add the oops message statement and register information in register
> >    access width patch.
> >  - Add the occurring rate of the i2c spurious interrupt issue and more
> >    details in driver's behavior to overcome this issue.
> >  - Address Andy's comments in the patch to support NPCM845.
> >
> > Changes since version 2:
> >  - Keep old code as fallback, if getting nuvoton,sys-mgr property fails.
> >  - Fix the error reported by running 'make DT_CHECKER_FLAGS=-m
> >    dt_binding_check'.
> >  - Make nuvoton,sys-mgr required for nuvoton,npcm845-i2c.
> >  - Correct the patch's subject about changing the way of getting GCR
> >    regmap and add the description about keeping old code as fallback
> >    if getting nuvoton,sys-mgr property fails.
> >  - Correct the patch title and description about removing the unused
> >    variable clk_regmap.
> >  - Use the data field directly instead of the macros since macros are
> >    not constants anymore in this patch.
> >
> > Changes since version 1:
> >  - Add nuvoton,sys-mgr property in NPCM devicetree.
> >  - Describe the commit message in imperative mood.
> >  - Modify the description in i2c binding document to cover NPCM series.
> >  - Add new property in i2c binding document.
> >  - Create a new patch for client address calculation.
> >  - Create a new patch for updating gcr property name.
> >  - Create a new patch for removing unused clock node.
> >  - Explain EOB in the commit description.
> >  - Create a new patch for correcting NPCM register access width.
> >  - Remove some comment since the corresponding logic no longer exists.
> >  - Remove fixes tag while the patch adds an additional feature.
> >  - Use devicetree data field to support NPCM845.
> >
> > Tali Perry (2):
> >   i2c: npcm: Remove own slave addresses 2:10
> >   i2c: npcm: Correct slave role behavior
> >
> > Tyrone Ting (3):
> >   dt-bindings: i2c: npcm: support NPCM845
> >   i2c: npcm: Support NPCM845
> >   i2c: npcm: Capitalize the one-line comment
> >
> >  .../bindings/i2c/nuvoton,npcm7xx-i2c.yaml     |  25 ++-
> >  drivers/i2c/busses/Kconfig                    |   8 +-
> >  drivers/i2c/busses/Makefile                   |   2 +-
> >  drivers/i2c/busses/i2c-npcm7xx.c              | 176 ++++++++++--------
> >  4 files changed, 124 insertions(+), 87 deletions(-)
> >
> > --
> > 2.17.1
> >
>
> --
> With Best Regards,
> Andy Shevchenko
>
>

Best Regards,
Tyrone
Wolfram Sang June 8, 2022, 8:02 p.m. UTC | #3
On Wed, May 25, 2022 at 11:23:37AM +0800, Tyrone Ting wrote:
> From: Tyrone Ting <kfting@nuvoton.com>
> 
> Add compatible and nuvoton,sys-mgr description for NPCM i2c module.
> 
> Signed-off-by: Tyrone Ting <kfting@nuvoton.com>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> Reviewed-by: Rob Herring <robh@kernel.org>

Applied to for-next, thanks!
Wolfram Sang June 8, 2022, 8:03 p.m. UTC | #4
On Wed, May 25, 2022 at 11:23:39AM +0800, Tyrone Ting wrote:
> From: Tali Perry <tali.perry1@gmail.com>
> 
> Correct the slave transaction logic to be compatible with the generic
> slave backend driver.
> 
> Fixes: 56a1485b102e ("i2c: npcm7xx: Add Nuvoton NPCM I2C controller driver")
> Signed-off-by: Tali Perry <tali.perry1@gmail.com>
> Signed-off-by: Tyrone Ting <kfting@nuvoton.com>

Much easier to review this way! Applied to for-next, thank you!
Tyrone Ting June 9, 2022, 1:06 p.m. UTC | #5
Hi Wolfram:

Thank you for your review and comments.

Wolfram Sang <wsa@kernel.org> 於 2022年6月9日 週四 上午4:03寫道:
>
> On Wed, May 25, 2022 at 11:23:40AM +0800, Tyrone Ting wrote:
> > From: Tyrone Ting <kfting@nuvoton.com>
> >
> > Add NPCM8XX I2C support.
> > The NPCM8XX uses a similar i2c module as NPCM7XX.
> > The internal HW FIFO is larger in NPCM8XX.
> >
> > Signed-off-by: Tyrone Ting <kfting@nuvoton.com>
> > Acked-by: Tomer Maimon <tmaimon77@gmail.com>
>
> Applied to for-next, thanks!
>

Best Regards,
Tyrone