* [PATCH v3 0/3] Add support for Renesas RZ/G3L CANFD
@ 2026-09-25 8:21 Biju Das
2026-09-25 8:21 ` [PATCH v3 1/3] dt-bindings: can: renesas,rcar-canfd: Document RZ/G3L SoC Biju Das
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Biju Das @ 2026-09-25 8:21 UTC (permalink / raw)
To: Marc Kleine-Budde, Vincent Mailhol, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm
Cc: Biju Das, Fabrizio Castro, linux-can, devicetree,
linux-renesas-soc, Chris Paterson, Biju Das,
Prabhakar Mahadev Lad
Add support for Renesas RZ/G3L CANFD.
The RZ/G3L CANFD IP has 3 channels and 11 interrupts compared to 2 channels
and 8 interrupts that of RZ/G3S. RZ/G3L has 288 buffers compared to 192
buffers on RZ/G3S SoC.
This patch series depend upon [1]
[1] https://lore.kernel.org/all/20260902141544.565763-1-claudiu.beznea+renesas@tuxon.dev/
v2->v3:
* Collected tags.
* Added check against RCANFD_NUM_CHANNELS, to avoid overrunning the
fixed-size rcar_canfd_global.ch[] and transceivers[] arrays.
* Fixed typo 198->192 buffers in commit description.
v1->v2:
* Added support for deriving max_channels from the device tree.
* Dropped clock patch as it is accepted.
* Dropped devicetree patches, will send it later.
* Updated commit description
* Dropped RZ/G3S fallback as there are lot of differences.
Biju Das (3):
dt-bindings: can: renesas,rcar-canfd: Document RZ/G3L SoC
can: rcar_canfd: Derive max_channels from the device tree
can: rcar_canfd: Add support for Renesas RZ/G3L
.../bindings/net/can/renesas,rcar-canfd.yaml | 27 ++++++++++++-
drivers/net/can/rcar/rcar_canfd.c | 40 +++++++++----------
2 files changed, 46 insertions(+), 21 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 1/3] dt-bindings: can: renesas,rcar-canfd: Document RZ/G3L SoC
2026-09-25 8:21 [PATCH v3 0/3] Add support for Renesas RZ/G3L CANFD Biju Das
@ 2026-09-25 8:21 ` Biju Das
2026-10-01 6:03 ` Krzysztof Kozlowski
2026-09-25 8:21 ` [PATCH v3 2/3] can: rcar_canfd: Derive max_channels from the device tree Biju Das
` (2 subsequent siblings)
3 siblings, 1 reply; 10+ messages in thread
From: Biju Das @ 2026-09-25 8:21 UTC (permalink / raw)
To: Marc Kleine-Budde, Vincent Mailhol, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm
Cc: Biju Das, Fabrizio Castro, linux-can, devicetree,
linux-renesas-soc, Chris Paterson, Biju Das,
Prabhakar Mahadev Lad
Document the RZ/G3L (R9A08G046) SoC support.
RZ/G3L has 11 interrupts and 3 CANFD channels compared to 8 interrupts
and 2 CANFD channels on RZ/G3S. RZ/G3L has 288 buffers in total
compared to 192 buffers in RZ/G3S.
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v2->v3:
* Collected tag.
v1->v2:
* Updated commit description
* Dropped RZ/G3S fallback as there are lot of differences.
---
.../bindings/net/can/renesas,rcar-canfd.yaml | 27 ++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml b/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
index bbaaef8f4282..71b756c26cec 100644
--- a/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
+++ b/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
@@ -14,6 +14,7 @@ properties:
oneOf:
- enum:
- renesas,r9a08g045-canfd # RZ/G3S
+ - renesas,r9a08g046-canfd # RZ/G3L
- renesas,r9a09g047-canfd # RZ/G3E
- renesas,r9a09g077-canfd # RZ/T2H
@@ -292,6 +293,28 @@ allOf:
patternProperties:
"^channel[6-7]$": false
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: renesas,r9a08g046-canfd
+ then:
+ properties:
+ interrupts:
+ minItems: 11
+ maxItems: 11
+
+ interrupt-names:
+ minItems: 11
+ maxItems: 11
+
+ resets:
+ minItems: 2
+ maxItems: 2
+
+ patternProperties:
+ "^channel[3-7]$": false
+
- if:
properties:
compatible:
@@ -356,7 +379,9 @@ allOf:
properties:
compatible:
contains:
- const: renesas,r9a08g045-canfd
+ enum:
+ - renesas,r9a08g045-canfd
+ - renesas,r9a08g046-canfd
then:
properties:
renesas,no-can-fd: false
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 2/3] can: rcar_canfd: Derive max_channels from the device tree
2026-09-25 8:21 [PATCH v3 0/3] Add support for Renesas RZ/G3L CANFD Biju Das
2026-09-25 8:21 ` [PATCH v3 1/3] dt-bindings: can: renesas,rcar-canfd: Document RZ/G3L SoC Biju Das
@ 2026-09-25 8:21 ` Biju Das
2026-09-25 8:39 ` Geert Uytterhoeven
2026-09-25 8:44 ` Claudiu Beznea
2026-09-25 8:21 ` [PATCH v3 3/3] can: rcar_canfd: Add support for Renesas RZ/G3L Biju Das
2026-09-29 14:23 ` [PATCH v3 0/3] Add support for Renesas RZ/G3L CANFD Marc Kleine-Budde
3 siblings, 2 replies; 10+ messages in thread
From: Biju Das @ 2026-09-25 8:21 UTC (permalink / raw)
To: Marc Kleine-Budde, Vincent Mailhol, Geert Uytterhoeven,
Magnus Damm
Cc: Biju Das, Claudiu Beznea, Lad Prabhakar, Tu Nguyen, linux-can,
linux-renesas-soc, Chris Paterson, Biju Das
The maximum number of channels is currently hardcoded per SoC in
struct rcar_canfd_hw_info. Since the DT describes the channels as
child nodes of the controller, the count can be obtained at probe time
with of_get_child_count() instead.
Drop max_channels from struct rcar_canfd_hw_info and store the value
in struct rcar_canfd_global, so it no longer needs to be maintained
for each SoC variant. Update all for_each_set_bit() users over
channels_mask to use gpriv->max_channels.
No functional change.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v2->v3:
* Added check against RCANFD_NUM_CHANNELS, to avoid overrunning the
fixed-size rcar_canfd_global.ch[] and transceivers[] arrays.
v2:
* New patch
---
drivers/net/can/rcar/rcar_canfd.c | 39 +++++++++++++++----------------
1 file changed, 19 insertions(+), 20 deletions(-)
diff --git a/drivers/net/can/rcar/rcar_canfd.c b/drivers/net/can/rcar/rcar_canfd.c
index 74c3c3f20991..41c395118949 100644
--- a/drivers/net/can/rcar/rcar_canfd.c
+++ b/drivers/net/can/rcar/rcar_canfd.c
@@ -436,7 +436,6 @@ struct rcar_canfd_hw_info {
u8 rnc_field_width;
u8 max_aflpn;
u8 max_cftml;
- u8 max_channels;
u8 postdiv;
/* hardware features */
unsigned shared_global_irqs:1; /* Has shared global irqs */
@@ -478,6 +477,7 @@ struct rcar_canfd_global {
struct reset_control *rstc1;
struct reset_control *rstc2;
const struct rcar_canfd_hw_info *info;
+ u8 max_channels;
};
/* CAN FD mode nominal rate constants */
@@ -613,7 +613,6 @@ static const struct rcar_canfd_hw_info rcar_gen3_hw_info = {
.rnc_field_width = 8,
.max_aflpn = 31,
.max_cftml = 15,
- .max_channels = 2,
.postdiv = 2,
.shared_global_irqs = 1,
.ch_interface_mode = 0,
@@ -632,7 +631,6 @@ static const struct rcar_canfd_hw_info rcar_gen4_hw_info = {
.rnc_field_width = 16,
.max_aflpn = 127,
.max_cftml = 31,
- .max_channels = 8,
.postdiv = 2,
.shared_global_irqs = 1,
.ch_interface_mode = 1,
@@ -651,7 +649,6 @@ static const struct rcar_canfd_hw_info rzg2l_hw_info = {
.rnc_field_width = 8,
.max_aflpn = 31,
.max_cftml = 15,
- .max_channels = 2,
.postdiv = 1,
.multi_channel_irqs = 1,
.ch_interface_mode = 0,
@@ -670,7 +667,6 @@ static const struct rcar_canfd_hw_info r9a08g045_hw_info = {
.rnc_field_width = 16,
.max_aflpn = 15,
.max_cftml = 31,
- .max_channels = 2,
.postdiv = 2,
.shared_global_irqs = 0,
.multi_channel_irqs = 1,
@@ -690,7 +686,6 @@ static const struct rcar_canfd_hw_info r9a09g047_hw_info = {
.rnc_field_width = 16,
.max_aflpn = 63,
.max_cftml = 31,
- .max_channels = 6,
.postdiv = 1,
.multi_channel_irqs = 1,
.ch_interface_mode = 1,
@@ -709,7 +704,6 @@ static const struct rcar_canfd_hw_info r9a09g077_hw_info = {
.rnc_field_width = 16,
.max_aflpn = 15,
.max_cftml = 31,
- .max_channels = 2,
.postdiv = 1,
.multi_channel_irqs = 1,
.ch_interface_mode = 1,
@@ -854,7 +848,7 @@ static int rcar_canfd_reset_controller(struct rcar_canfd_global *gpriv)
}
/* Transition all Channels to reset mode */
- for_each_set_bit(ch, &gpriv->channels_mask, gpriv->info->max_channels) {
+ for_each_set_bit(ch, &gpriv->channels_mask, gpriv->max_channels) {
rcar_canfd_clear_bit(gpriv->base,
RCANFD_CCTR(ch), RCANFD_CCTR_CSLPR);
@@ -922,7 +916,7 @@ static void rcar_canfd_configure_controller(struct rcar_canfd_global *gpriv)
rcar_canfd_set_bit(gpriv->base, RCANFD_GCFG, cfg);
/* Channel configuration settings */
- for_each_set_bit(ch, &gpriv->channels_mask, gpriv->info->max_channels) {
+ for_each_set_bit(ch, &gpriv->channels_mask, gpriv->max_channels) {
rcar_canfd_set_bit(gpriv->base, RCANFD_CCTR(ch),
RCANFD_CCTR_ERRD);
rcar_canfd_update_bit(gpriv->base, RCANFD_CCTR(ch),
@@ -1293,7 +1287,7 @@ static irqreturn_t rcar_canfd_global_err_interrupt(int irq, void *dev_id)
struct rcar_canfd_global *gpriv = dev_id;
u32 ch;
- for_each_set_bit(ch, &gpriv->channels_mask, gpriv->info->max_channels)
+ for_each_set_bit(ch, &gpriv->channels_mask, gpriv->max_channels)
rcar_canfd_handle_global_err(gpriv, ch);
return IRQ_HANDLED;
@@ -1325,7 +1319,7 @@ static irqreturn_t rcar_canfd_global_receive_fifo_interrupt(int irq, void *dev_i
struct rcar_canfd_global *gpriv = dev_id;
u32 ch;
- for_each_set_bit(ch, &gpriv->channels_mask, gpriv->info->max_channels)
+ for_each_set_bit(ch, &gpriv->channels_mask, gpriv->max_channels)
rcar_canfd_handle_global_receive(gpriv, ch);
return IRQ_HANDLED;
@@ -1339,7 +1333,7 @@ static irqreturn_t rcar_canfd_global_interrupt(int irq, void *dev_id)
/* Global error interrupts still indicate a condition specific
* to a channel. RxFIFO interrupt is a global interrupt.
*/
- for_each_set_bit(ch, &gpriv->channels_mask, gpriv->info->max_channels) {
+ for_each_set_bit(ch, &gpriv->channels_mask, gpriv->max_channels) {
rcar_canfd_handle_global_err(gpriv, ch);
rcar_canfd_handle_global_receive(gpriv, ch);
}
@@ -1435,7 +1429,7 @@ static irqreturn_t rcar_canfd_channel_interrupt(int irq, void *dev_id)
u32 ch;
/* Common FIFO is a per channel resource */
- for_each_set_bit(ch, &gpriv->channels_mask, gpriv->info->max_channels) {
+ for_each_set_bit(ch, &gpriv->channels_mask, gpriv->max_channels) {
rcar_canfd_handle_channel_err(gpriv, ch);
rcar_canfd_handle_channel_tx(gpriv, ch);
}
@@ -2072,7 +2066,7 @@ static int rcar_canfd_global_init(struct rcar_canfd_global *gpriv)
rcar_canfd_configure_controller(gpriv);
/* Configure per channel attributes */
- for_each_set_bit(ch, &gpriv->channels_mask, gpriv->info->max_channels) {
+ for_each_set_bit(ch, &gpriv->channels_mask, gpriv->max_channels) {
/* Configure Channel's Rx fifo */
rcar_canfd_configure_rx(gpriv, ch);
@@ -2145,14 +2139,18 @@ static int rcar_canfd_probe(struct platform_device *pdev)
bool fdmode = true; /* CAN FD only mode - default */
char name[9] = "channelX";
u32 ch, fcan_freq;
+ u8 max_channels;
int i;
info = of_device_get_match_data(dev);
+ max_channels = of_get_child_count(dev->of_node);
+ if (max_channels > RCANFD_NUM_CHANNELS)
+ return -EINVAL;
if (of_property_read_bool(dev->of_node, "renesas,no-can-fd"))
fdmode = false; /* Classical CAN only mode */
- for (i = 0; i < info->max_channels; ++i) {
+ for (i = 0; i < max_channels; ++i) {
name[7] = '0' + i;
of_child = of_get_available_child_by_name(dev->of_node, name);
if (of_child) {
@@ -2199,6 +2197,7 @@ static int rcar_canfd_probe(struct platform_device *pdev)
gpriv->pdev = pdev;
gpriv->channels_mask = channels_mask;
gpriv->fdmode = fdmode;
+ gpriv->max_channels = max_channels;
gpriv->info = info;
if (of_property_read_bool(dev->of_node, "renesas,fd-only"))
@@ -2300,7 +2299,7 @@ static int rcar_canfd_probe(struct platform_device *pdev)
if (err)
goto fail_mode;
- for_each_set_bit(ch, &gpriv->channels_mask, info->max_channels) {
+ for_each_set_bit(ch, &gpriv->channels_mask, gpriv->max_channels) {
err = rcar_canfd_channel_probe(gpriv, ch, fcan_freq,
transceivers[ch]);
if (err)
@@ -2314,7 +2313,7 @@ static int rcar_canfd_probe(struct platform_device *pdev)
return 0;
fail_channel:
- for_each_set_bit(ch, &gpriv->channels_mask, info->max_channels)
+ for_each_set_bit(ch, &gpriv->channels_mask, gpriv->max_channels)
rcar_canfd_channel_remove(gpriv, ch);
fail_mode:
rcar_canfd_global_deinit(gpriv, false);
@@ -2327,7 +2326,7 @@ static void rcar_canfd_remove(struct platform_device *pdev)
struct rcar_canfd_global *gpriv = platform_get_drvdata(pdev);
u32 ch;
- for_each_set_bit(ch, &gpriv->channels_mask, gpriv->info->max_channels) {
+ for_each_set_bit(ch, &gpriv->channels_mask, gpriv->max_channels) {
rcar_canfd_disable_channel_interrupts(gpriv->ch[ch]);
rcar_canfd_channel_remove(gpriv, ch);
}
@@ -2341,7 +2340,7 @@ static int rcar_canfd_suspend(struct device *dev)
int err;
u32 ch;
- for_each_set_bit(ch, &gpriv->channels_mask, gpriv->info->max_channels) {
+ for_each_set_bit(ch, &gpriv->channels_mask, gpriv->max_channels) {
struct rcar_canfd_channel *priv = gpriv->ch[ch];
struct net_device *ndev = priv->ndev;
@@ -2378,7 +2377,7 @@ static int rcar_canfd_resume(struct device *dev)
return err;
}
- for_each_set_bit(ch, &gpriv->channels_mask, gpriv->info->max_channels) {
+ for_each_set_bit(ch, &gpriv->channels_mask, gpriv->max_channels) {
struct rcar_canfd_channel *priv = gpriv->ch[ch];
struct net_device *ndev = priv->ndev;
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 3/3] can: rcar_canfd: Add support for Renesas RZ/G3L
2026-09-25 8:21 [PATCH v3 0/3] Add support for Renesas RZ/G3L CANFD Biju Das
2026-09-25 8:21 ` [PATCH v3 1/3] dt-bindings: can: renesas,rcar-canfd: Document RZ/G3L SoC Biju Das
2026-09-25 8:21 ` [PATCH v3 2/3] can: rcar_canfd: Derive max_channels from the device tree Biju Das
@ 2026-09-25 8:21 ` Biju Das
2026-09-25 8:46 ` Claudiu Beznea
2026-09-29 14:23 ` [PATCH v3 0/3] Add support for Renesas RZ/G3L CANFD Marc Kleine-Budde
3 siblings, 1 reply; 10+ messages in thread
From: Biju Das @ 2026-09-25 8:21 UTC (permalink / raw)
To: Marc Kleine-Budde, Vincent Mailhol, Geert Uytterhoeven,
Magnus Damm
Cc: Biju Das, Claudiu Beznea, Lad Prabhakar, Tu Nguyen, linux-can,
linux-renesas-soc, Chris Paterson, Biju Das
Add support for Renesas RZ/G3L CANFD IP. RZ/G3L has 3 channels and
11 interrupts, compared 2 channels and 8 interrupts on RZ/G3S.
RZ/G3L has 288 buffers compared to 192 buffers on RZ/G3S.
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v2->v3:
* Fixed the typo 198->192 buffers in commit description.
* Collected the tag.
v1->v2:
* Updated commit description
* Dropped RZ/G3S fallback
---
drivers/net/can/rcar/rcar_canfd.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/can/rcar/rcar_canfd.c b/drivers/net/can/rcar/rcar_canfd.c
index 41c395118949..c64387967368 100644
--- a/drivers/net/can/rcar/rcar_canfd.c
+++ b/drivers/net/can/rcar/rcar_canfd.c
@@ -2403,6 +2403,7 @@ static DEFINE_SIMPLE_DEV_PM_OPS(rcar_canfd_pm_ops, rcar_canfd_suspend,
static const __maybe_unused struct of_device_id rcar_canfd_of_table[] = {
{ .compatible = "renesas,r8a779a0-canfd", .data = &rcar_gen4_hw_info },
{ .compatible = "renesas,r9a08g045-canfd", .data = &r9a08g045_hw_info },
+ { .compatible = "renesas,r9a08g046-canfd", .data = &r9a08g045_hw_info },
{ .compatible = "renesas,r9a09g047-canfd", .data = &r9a09g047_hw_info },
{ .compatible = "renesas,r9a09g077-canfd", .data = &r9a09g077_hw_info },
{ .compatible = "renesas,rcar-gen3-canfd", .data = &rcar_gen3_hw_info },
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/3] can: rcar_canfd: Derive max_channels from the device tree
2026-09-25 8:21 ` [PATCH v3 2/3] can: rcar_canfd: Derive max_channels from the device tree Biju Das
@ 2026-09-25 8:39 ` Geert Uytterhoeven
2026-09-25 8:44 ` Claudiu Beznea
1 sibling, 0 replies; 10+ messages in thread
From: Geert Uytterhoeven @ 2026-09-25 8:39 UTC (permalink / raw)
To: Biju Das
Cc: Marc Kleine-Budde, Vincent Mailhol, Magnus Damm, Claudiu Beznea,
Lad Prabhakar, Tu Nguyen, linux-can, linux-renesas-soc,
Chris Paterson, Biju Das
On Fri, 25 Sept 2026 at 10:22, Biju Das <biju.das.jz@bp.renesas.com> wrote:
> The maximum number of channels is currently hardcoded per SoC in
> struct rcar_canfd_hw_info. Since the DT describes the channels as
> child nodes of the controller, the count can be obtained at probe time
> with of_get_child_count() instead.
>
> Drop max_channels from struct rcar_canfd_hw_info and store the value
> in struct rcar_canfd_global, so it no longer needs to be maintained
> for each SoC variant. Update all for_each_set_bit() users over
> channels_mask to use gpriv->max_channels.
>
> No functional change.
>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> ---
> v2->v3:
> * Added check against RCANFD_NUM_CHANNELS, to avoid overrunning the
> fixed-size rcar_canfd_global.ch[] and transceivers[] arrays.
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/3] can: rcar_canfd: Derive max_channels from the device tree
2026-09-25 8:21 ` [PATCH v3 2/3] can: rcar_canfd: Derive max_channels from the device tree Biju Das
2026-09-25 8:39 ` Geert Uytterhoeven
@ 2026-09-25 8:44 ` Claudiu Beznea
1 sibling, 0 replies; 10+ messages in thread
From: Claudiu Beznea @ 2026-09-25 8:44 UTC (permalink / raw)
To: Biju Das, Marc Kleine-Budde, Vincent Mailhol, Geert Uytterhoeven,
Magnus Damm
Cc: Claudiu Beznea, Lad Prabhakar, Tu Nguyen, linux-can,
linux-renesas-soc, Chris Paterson, Biju Das
On 9/25/26 11:21, Biju Das wrote:
> The maximum number of channels is currently hardcoded per SoC in
> struct rcar_canfd_hw_info. Since the DT describes the channels as
> child nodes of the controller, the count can be obtained at probe time
> with of_get_child_count() instead.
>
> Drop max_channels from struct rcar_canfd_hw_info and store the value
> in struct rcar_canfd_global, so it no longer needs to be maintained
> for each SoC variant. Update all for_each_set_bit() users over
> channels_mask to use gpriv->max_channels.
>
> No functional change.
>
> Signed-off-by: Biju Das<biju.das.jz@bp.renesas.com>
Reviewed-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 3/3] can: rcar_canfd: Add support for Renesas RZ/G3L
2026-09-25 8:21 ` [PATCH v3 3/3] can: rcar_canfd: Add support for Renesas RZ/G3L Biju Das
@ 2026-09-25 8:46 ` Claudiu Beznea
0 siblings, 0 replies; 10+ messages in thread
From: Claudiu Beznea @ 2026-09-25 8:46 UTC (permalink / raw)
To: Biju Das, Marc Kleine-Budde, Vincent Mailhol, Geert Uytterhoeven,
Magnus Damm
Cc: Claudiu Beznea, Lad Prabhakar, Tu Nguyen, linux-can,
linux-renesas-soc, Chris Paterson, Biju Das
On 9/25/26 11:21, Biju Das wrote:
> Add support for Renesas RZ/G3L CANFD IP. RZ/G3L has 3 channels and
> 11 interrupts, compared 2 channels and 8 interrupts on RZ/G3S.
> RZ/G3L has 288 buffers compared to 192 buffers on RZ/G3S.
>
> Reviewed-by: Geert Uytterhoeven<geert+renesas@glider.be>
> Signed-off-by: Biju Das<biju.das.jz@bp.renesas.com>
Reviewed-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 0/3] Add support for Renesas RZ/G3L CANFD
2026-09-25 8:21 [PATCH v3 0/3] Add support for Renesas RZ/G3L CANFD Biju Das
` (2 preceding siblings ...)
2026-09-25 8:21 ` [PATCH v3 3/3] can: rcar_canfd: Add support for Renesas RZ/G3L Biju Das
@ 2026-09-29 14:23 ` Marc Kleine-Budde
2026-09-29 14:25 ` Biju Das
3 siblings, 1 reply; 10+ messages in thread
From: Marc Kleine-Budde @ 2026-09-29 14:23 UTC (permalink / raw)
To: Biju Das
Cc: Vincent Mailhol, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Geert Uytterhoeven, Magnus Damm, Fabrizio Castro, linux-can,
devicetree, linux-renesas-soc, Chris Paterson, Biju Das,
Prabhakar Mahadev Lad
[-- Attachment #1: Type: text/plain, Size: 749 bytes --]
On 25.09.2026 09:21:27, Biju Das wrote:
> Add support for Renesas RZ/G3L CANFD.
> The RZ/G3L CANFD IP has 3 channels and 11 interrupts compared to 2 channels
> and 8 interrupts that of RZ/G3S. RZ/G3L has 288 buffers compared to 192
> buffers on RZ/G3S SoC.
>
> This patch series depend upon [1]
> [1] https://lore.kernel.org/all/20260902141544.565763-1-claudiu.beznea+renesas@tuxon.dev/
Is the DT bindings update (#1/3) going through the Renesas tree?
regards,
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Embedded Linux | https://www.pengutronix.de |
Vertretung Nürnberg | Phone: +49-5121-206917-129 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-9 |
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [PATCH v3 0/3] Add support for Renesas RZ/G3L CANFD
2026-09-29 14:23 ` [PATCH v3 0/3] Add support for Renesas RZ/G3L CANFD Marc Kleine-Budde
@ 2026-09-29 14:25 ` Biju Das
0 siblings, 0 replies; 10+ messages in thread
From: Biju Das @ 2026-09-29 14:25 UTC (permalink / raw)
To: Marc Kleine-Budde
Cc: Vincent Mailhol, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Geert Uytterhoeven, magnus.damm, Fabrizio Castro,
linux-can@vger.kernel.org, devicetree@vger.kernel.org,
linux-renesas-soc@vger.kernel.org, Chris Paterson,
Prabhakar Mahadev Lad
Hi Marc,
> -----Original Message-----
> From: Marc Kleine-Budde <mkl@pengutronix.de>
> Sent: 29 September 2026 15:24
> Subject: Re: [PATCH v3 0/3] Add support for Renesas RZ/G3L CANFD
>
> On 25.09.2026 09:21:27, Biju Das wrote:
> > Add support for Renesas RZ/G3L CANFD.
> > The RZ/G3L CANFD IP has 3 channels and 11 interrupts compared to 2
> > channels and 8 interrupts that of RZ/G3S. RZ/G3L has 288 buffers
> > compared to 192 buffers on RZ/G3S SoC.
> >
> > This patch series depend upon [1]
> > [1]
> > https://lore.kernel.org/all/20260902141544.565763-1-claudiu.beznea+ren
> > esas@tuxon.dev/
>
> Is the DT bindings update (#1/3) going through the Renesas tree?
No, It is through CAN tree.
Cheers,
Biju
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 1/3] dt-bindings: can: renesas,rcar-canfd: Document RZ/G3L SoC
2026-09-25 8:21 ` [PATCH v3 1/3] dt-bindings: can: renesas,rcar-canfd: Document RZ/G3L SoC Biju Das
@ 2026-10-01 6:03 ` Krzysztof Kozlowski
0 siblings, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2026-10-01 6:03 UTC (permalink / raw)
To: Biju Das
Cc: Marc Kleine-Budde, Vincent Mailhol, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm, Fabrizio Castro, linux-can, devicetree,
linux-renesas-soc, Chris Paterson, Biju Das,
Prabhakar Mahadev Lad
On Fri, Sep 25, 2026 at 09:21:28AM +0100, Biju Das wrote:
> + then:
> + properties:
> + interrupts:
> + minItems: 11
> + maxItems: 11
> +
> + interrupt-names:
> + minItems: 11
> + maxItems: 11
> +
> + resets:
> + minItems: 2
> + maxItems: 2
Drop maxItems
I'll fix existing code.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-10-01 6:04 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-25 8:21 [PATCH v3 0/3] Add support for Renesas RZ/G3L CANFD Biju Das
2026-09-25 8:21 ` [PATCH v3 1/3] dt-bindings: can: renesas,rcar-canfd: Document RZ/G3L SoC Biju Das
2026-10-01 6:03 ` Krzysztof Kozlowski
2026-09-25 8:21 ` [PATCH v3 2/3] can: rcar_canfd: Derive max_channels from the device tree Biju Das
2026-09-25 8:39 ` Geert Uytterhoeven
2026-09-25 8:44 ` Claudiu Beznea
2026-09-25 8:21 ` [PATCH v3 3/3] can: rcar_canfd: Add support for Renesas RZ/G3L Biju Das
2026-09-25 8:46 ` Claudiu Beznea
2026-09-29 14:23 ` [PATCH v3 0/3] Add support for Renesas RZ/G3L CANFD Marc Kleine-Budde
2026-09-29 14:25 ` Biju Das
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox