devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 00/12] Add Support for RZ/G3E ICU
@ 2025-02-12 11:12 Biju Das
  2025-02-12 11:12 ` [PATCH v5 01/12] dt-bindings: interrupt-controller: renesas,rzv2h-icu: Document RZ/G3E SoC Biju Das
  2025-02-24 10:48 ` [PATCH v5 00/12] Add Support for RZ/G3E ICU Biju Das
  0 siblings, 2 replies; 5+ messages in thread
From: Biju Das @ 2025-02-12 11:12 UTC (permalink / raw)
  To: Thomas Gleixner, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: Biju Das, Geert Uytterhoeven, Magnus Damm, Fabrizio Castro,
	devicetree, linux-renesas-soc, Prabhakar Mahadev Lad, Biju Das

The ICU block on the RZ/G3E SoC is almost identical to the one found on
the RZ/V2H SoC, with the following differences:
 - The TINT register base offset is 0x800 instead of zero.
 - The number of supported GPIO interrupts for TINT selection is 141
   instead of 86.
 - The pin index and TINT selection index are not in the 1:1 map
 - The number of TSSR registers is 16 instead of 8
 - Each TSSR register can program 2 TINTs instead of 4 TINTs

Add support for the RZ/G3E ICU driver.

Note:
  The SoC dtsi patch is dropped from series as it is queued for
  renesas-devel.

v4->v5:
 * Collected tags from Geert.
 * Added a new patch for fixing wrong variable usage in
   rzv2h_tint_set_type().
 * Shortened tssr calculation in rzv2h_tint_irq_endisable().
 * Added tssr_shift_factor variable for optimizing the calculation
   in rzv2h_tint_set_type().
 * Dropped unnecessary parenthesis for calculating tssr in
   rzv2h_tint_set_type().
v3->v4:
 * Updated typo in commit description register offset->register
   base offset.
 * Update typo 15->16 for the number of TSSR registers in RZ/G3E
 * Collected tags.
 * Fixed the typo varable->variable.
 * Started using field_width to handle the SoC differences ad dropped the
   variables tien, tssel_mask,tssel_shift and tssr_k.
 * Dropped RZG3E_* macros from SoC dtsi.
v2->v3:
 * Added a new patch for cleanup using devm_add_action_or_reset() for
   calling put_device() in error path of rzv2h_icu_init() to simplify
   the code by using recently added devm_*helpers.
 * Replaced 'goto put_dev' by 'return xxx' as put_dev() called by
   devm_add_action_or_reset()
v1->v2:
 * Collected tags
 * Split the simplification patch into two.
 * Updated commit header and description for patch#4.
 * Replaced devm_reset_control_get_optional_exclusive_deasserted()->
   devm_reset_control_get_exclusive_deasserted().
 * Moved simplification using devm_pm_runtime_enable() to patch#5.
 * Aligned kernel doc, struct members and struct initializers in
   a tabular fashion.
 * Renamed the macro ICU_PB5_TINT->ICU_RZV2H_TSSEL_MAX_VAL.
 * Replaced hexa decimal constant with ICU_RZV2H_TSSEL_MAX_VAL in struct
   rzv2h_hw_params.
 * Introduced ICU_RZG3E_{TSSEL_MAX_VAL,TINT_OFFSET} macros and used these
   macros in struct rzv2h_hw_params rather than using the hex constants.

Biju Das (12):
  dt-bindings: interrupt-controller: renesas,rzv2h-icu: Document RZ/G3E
    SoC
  irqchip/renesas-rzv2h: Fix wrong variable usage in
    rzv2h_tint_set_type()
  irqchip/renesas-rzv2h: Drop irqchip from struct rzv2h_icu_priv
  irqchip/renesas-rzv2h: Simplify rzv2h_icu_init()
  irqchip/renesas-rzv2h: Use
    devm_reset_control_get_exclusive_deasserted()
  irqchip/renesas-rzv2h: Use devm_pm_runtime_enable()
  irqchip/renesas-rzv2h: Add struct rzv2h_hw_info with t_offs variable
  irqchip/renesas-rzv2h: Add max_tssel variable to struct rzv2h_hw_info
  irqchip/renesas-rzv2h: Add field_width variable to struct
    rzv2h_hw_info
  irqchip/renesas-rzv2h: Drop TSSR_TIEN macro
  irqchip/renesas-rzv2h: Drop macros ICU_TSSR_TSSEL_{MASK,PREP}
  irqchip/renesas-rzv2h: Add RZ/G3E support

 .../renesas,rzv2h-icu.yaml                    |   6 +-
 drivers/irqchip/irq-renesas-rzv2h.c           | 189 ++++++++++++------
 2 files changed, 133 insertions(+), 62 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v5 01/12] dt-bindings: interrupt-controller: renesas,rzv2h-icu: Document RZ/G3E SoC
  2025-02-12 11:12 [PATCH v5 00/12] Add Support for RZ/G3E ICU Biju Das
@ 2025-02-12 11:12 ` Biju Das
  2025-02-24 10:48 ` [PATCH v5 00/12] Add Support for RZ/G3E ICU Biju Das
  1 sibling, 0 replies; 5+ messages in thread
From: Biju Das @ 2025-02-12 11:12 UTC (permalink / raw)
  To: Thomas Gleixner, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: Biju Das, Geert Uytterhoeven, Magnus Damm, Fabrizio Castro,
	devicetree, linux-renesas-soc, Prabhakar Mahadev Lad, Biju Das,
	Tommaso Merciai

Document RZ/G3E (R9A09G047) ICU bindings. The ICU block on the RZ/G3E
SoC is almost identical to the one found on the RZ/V2H SoC, with the
following differences:
 - The TINT register base offset is 0x800 instead of zero.
 - The number of supported GPIO interrupts for TINT selection is 141
   instead of 86.
 - The pin index and TINT selection index are not in the 1:1 map
 - The number of TSSR registers is 16 instead of 8
 - Each TSSR register can program 2 TINTs instead of 4 TINTs

Hence new compatible string "renesas,r9a09g047-icu" is added for RZ/G3E
SoC.

Acked-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
Reviewed-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v4->v5:
 * No change.
v3->v4:
 * Updated typo in commit description offset->base offset.
 * Update typo 15->16 for the number of TSSR registers in RZ/G3E
 * Collected tags.
v2->v3:
 * No change.
v1->v2:
 * Collected tags.
---
 .../bindings/interrupt-controller/renesas,rzv2h-icu.yaml    | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,rzv2h-icu.yaml b/Documentation/devicetree/bindings/interrupt-controller/renesas,rzv2h-icu.yaml
index d7ef4f1323a7..3f99c8645767 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/renesas,rzv2h-icu.yaml
+++ b/Documentation/devicetree/bindings/interrupt-controller/renesas,rzv2h-icu.yaml
@@ -4,7 +4,7 @@
 $id: http://devicetree.org/schemas/interrupt-controller/renesas,rzv2h-icu.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Renesas RZ/V2H(P) Interrupt Control Unit
+title: Renesas RZ/{G3E,V2H(P)} Interrupt Control Unit
 
 maintainers:
   - Fabrizio Castro <fabrizio.castro.jz@renesas.com>
@@ -20,7 +20,9 @@ description:
 
 properties:
   compatible:
-    const: renesas,r9a09g057-icu # RZ/V2H(P)
+    enum:
+      - renesas,r9a09g047-icu # RZ/G3E
+      - renesas,r9a09g057-icu # RZ/V2H(P)
 
   '#interrupt-cells':
     description: The first cell is the SPI number of the NMI or the
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* RE: [PATCH v5 00/12] Add Support for RZ/G3E ICU
  2025-02-12 11:12 [PATCH v5 00/12] Add Support for RZ/G3E ICU Biju Das
  2025-02-12 11:12 ` [PATCH v5 01/12] dt-bindings: interrupt-controller: renesas,rzv2h-icu: Document RZ/G3E SoC Biju Das
@ 2025-02-24 10:48 ` Biju Das
  2025-02-24 11:21   ` Thomas Gleixner
  1 sibling, 1 reply; 5+ messages in thread
From: Biju Das @ 2025-02-24 10:48 UTC (permalink / raw)
  To: Biju Das, Thomas Gleixner, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Geert Uytterhoeven, Magnus Damm, Fabrizio Castro,
	devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
	Prabhakar Mahadev Lad, biju.das.au

Hi Thomas,

> -----Original Message-----
> From: Biju Das <biju.das.jz@bp.renesas.com>
> Sent: 12 February 2025 11:12
> Subject: [PATCH v5 00/12] Add Support for RZ/G3E ICU
> 
> The ICU block on the RZ/G3E SoC is almost identical to the one found on the RZ/V2H SoC, with the
> following differences:
>  - The TINT register base offset is 0x800 instead of zero.
>  - The number of supported GPIO interrupts for TINT selection is 141
>    instead of 86.
>  - The pin index and TINT selection index are not in the 1:1 map
>  - The number of TSSR registers is 16 instead of 8
>  - Each TSSR register can program 2 TINTs instead of 4 TINTs
> 
> Add support for the RZ/G3E ICU driver.
> 
> Note:
>   The SoC dtsi patch is dropped from series as it is queued for
>   renesas-devel.
> 
> v4->v5:
>  * Collected tags from Geert.
>  * Added a new patch for fixing wrong variable usage in
>    rzv2h_tint_set_type().
>  * Shortened tssr calculation in rzv2h_tint_irq_endisable().
>  * Added tssr_shift_factor variable for optimizing the calculation
>    in rzv2h_tint_set_type().
>  * Dropped unnecessary parenthesis for calculating tssr in
>    rzv2h_tint_set_type().
> v3->v4:
>  * Updated typo in commit description register offset->register
>    base offset.
>  * Update typo 15->16 for the number of TSSR registers in RZ/G3E
>  * Collected tags.
>  * Fixed the typo varable->variable.
>  * Started using field_width to handle the SoC differences ad dropped the
>    variables tien, tssel_mask,tssel_shift and tssr_k.
>  * Dropped RZG3E_* macros from SoC dtsi.
> v2->v3:
>  * Added a new patch for cleanup using devm_add_action_or_reset() for
>    calling put_device() in error path of rzv2h_icu_init() to simplify
>    the code by using recently added devm_*helpers.
>  * Replaced 'goto put_dev' by 'return xxx' as put_dev() called by
>    devm_add_action_or_reset()
> v1->v2:
>  * Collected tags
>  * Split the simplification patch into two.
>  * Updated commit header and description for patch#4.
>  * Replaced devm_reset_control_get_optional_exclusive_deasserted()->
>    devm_reset_control_get_exclusive_deasserted().
>  * Moved simplification using devm_pm_runtime_enable() to patch#5.
>  * Aligned kernel doc, struct members and struct initializers in
>    a tabular fashion.
>  * Renamed the macro ICU_PB5_TINT->ICU_RZV2H_TSSEL_MAX_VAL.
>  * Replaced hexa decimal constant with ICU_RZV2H_TSSEL_MAX_VAL in struct
>    rzv2h_hw_params.
>  * Introduced ICU_RZG3E_{TSSEL_MAX_VAL,TINT_OFFSET} macros and used these
>    macros in struct rzv2h_hw_params rather than using the hex constants.
> 
> Biju Das (12):
>   dt-bindings: interrupt-controller: renesas,rzv2h-icu: Document RZ/G3E
>     SoC
>   irqchip/renesas-rzv2h: Fix wrong variable usage in
>     rzv2h_tint_set_type()
>   irqchip/renesas-rzv2h: Drop irqchip from struct rzv2h_icu_priv
>   irqchip/renesas-rzv2h: Simplify rzv2h_icu_init()
>   irqchip/renesas-rzv2h: Use
>     devm_reset_control_get_exclusive_deasserted()
>   irqchip/renesas-rzv2h: Use devm_pm_runtime_enable()
>   irqchip/renesas-rzv2h: Add struct rzv2h_hw_info with t_offs variable
>   irqchip/renesas-rzv2h: Add max_tssel variable to struct rzv2h_hw_info
>   irqchip/renesas-rzv2h: Add field_width variable to struct
>     rzv2h_hw_info
>   irqchip/renesas-rzv2h: Drop TSSR_TIEN macro
>   irqchip/renesas-rzv2h: Drop macros ICU_TSSR_TSSEL_{MASK,PREP}
>   irqchip/renesas-rzv2h: Add RZ/G3E support
> 
>  .../renesas,rzv2h-icu.yaml                    |   6 +-
>  drivers/irqchip/irq-renesas-rzv2h.c           | 189 ++++++++++++------
>  2 files changed, 133 insertions(+), 62 deletions(-)
> 

Gentle ping. Should I rebase to [1] and resend.
Please let me know.

[1] https://lore.kernel.org/all/20250220150110.738619-5-fabrizio.castro.jz@renesas.com/

Cheers,
Biju

^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [PATCH v5 00/12] Add Support for RZ/G3E ICU
  2025-02-24 10:48 ` [PATCH v5 00/12] Add Support for RZ/G3E ICU Biju Das
@ 2025-02-24 11:21   ` Thomas Gleixner
  2025-02-24 13:11     ` Biju Das
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas Gleixner @ 2025-02-24 11:21 UTC (permalink / raw)
  To: Biju Das, Biju Das, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Geert Uytterhoeven, Magnus Damm, Fabrizio Castro,
	devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
	Prabhakar Mahadev Lad, biju.das.au

On Mon, Feb 24 2025 at 10:48, Biju Das wrote:
> Gentle ping. Should I rebase to [1] and resend.
> Please let me know.
>
> [1] https://lore.kernel.org/all/20250220150110.738619-5-fabrizio.castro.jz@renesas.com/

Yes. I've marked this series obsolete due to the discussion about patch
10.

Please rebase on top of tip irq/drivers.

Thanks,

        tglx



^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [PATCH v5 00/12] Add Support for RZ/G3E ICU
  2025-02-24 11:21   ` Thomas Gleixner
@ 2025-02-24 13:11     ` Biju Das
  0 siblings, 0 replies; 5+ messages in thread
From: Biju Das @ 2025-02-24 13:11 UTC (permalink / raw)
  To: Thomas Gleixner, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: Geert Uytterhoeven, Magnus Damm, Fabrizio Castro,
	devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
	Prabhakar Mahadev Lad, biju.das.au

Hi Thomas,

Thanks for the feedback.

> -----Original Message-----
> From: Thomas Gleixner <tglx@linutronix.de>
> Sent: 24 February 2025 11:22
> Subject: RE: [PATCH v5 00/12] Add Support for RZ/G3E ICU
> 
> On Mon, Feb 24 2025 at 10:48, Biju Das wrote:
> > Gentle ping. Should I rebase to [1] and resend.
> > Please let me know.
> >
> > [1]
> > https://lore.kernel.org/all/20250220150110.738619-5-fabrizio.castro.jz
> > @renesas.com/
> 
> Yes. I've marked this series obsolete due to the discussion about patch 10.
> 
> Please rebase on top of tip irq/drivers.

OK, will send next version retaining the macros by adding field_width
parameter to it.

Cheers,
Biju

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-02-24 13:11 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-12 11:12 [PATCH v5 00/12] Add Support for RZ/G3E ICU Biju Das
2025-02-12 11:12 ` [PATCH v5 01/12] dt-bindings: interrupt-controller: renesas,rzv2h-icu: Document RZ/G3E SoC Biju Das
2025-02-24 10:48 ` [PATCH v5 00/12] Add Support for RZ/G3E ICU Biju Das
2025-02-24 11:21   ` Thomas Gleixner
2025-02-24 13:11     ` Biju Das

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).