2020-08-16 19:08:41

by Prabhakar Mahadev Lad

[permalink] [raw]
Subject: [PATCH 0/3] r8a7742 add CAN support

Hi All,

This patch series adds CAN pins to r8a7790 PFC driver and
adds CAN[01] nodes to r8a7742 SoC dtsi.

patches applies on top of [1] (the PFC patch is dependant
on top of patch [2])

[1] https://git.kernel.org/pub/scm/linux/kernel/git/geert/
renesas-devel.git/log/?h=renesas-arm-dt-for-v5.10
[2] https://patchwork.kernel.org/patch/11670815/

Cheers,
Prabhakar

Lad Prabhakar (3):
pinctrl: sh-pfc: r8a7790: Add CAN pins, groups and functions
dt-bindings: can: rcar_can: Add r8a7742 support
ARM: dts: r8a7742: Add CAN support

.../devicetree/bindings/net/can/rcar_can.txt | 3 +-
arch/arm/boot/dts/r8a7742.dtsi | 34 ++++++++
drivers/pinctrl/sh-pfc/pfc-r8a7790.c | 86 ++++++++++++++++++-
3 files changed, 120 insertions(+), 3 deletions(-)

--
2.17.1


2020-08-16 19:08:54

by Prabhakar Mahadev Lad

[permalink] [raw]
Subject: [PATCH 1/3] pinctrl: sh-pfc: r8a7790: Add CAN pins, groups and functions

Add pins, groups and functions for the CAN0 and CAN1 interface.

Signed-off-by: Lad Prabhakar <[email protected]>
Reviewed-by: Chris Paterson <[email protected]>
---
drivers/pinctrl/sh-pfc/pfc-r8a7790.c | 86 +++++++++++++++++++++++++++-
1 file changed, 84 insertions(+), 2 deletions(-)

diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c
index 39ba1e7cc1c3..0863c412b3e1 100644
--- a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c
+++ b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c
@@ -1871,6 +1871,68 @@ static const unsigned int avb_gmii_mux[] = {
AVB_TX_EN_MARK, AVB_TX_ER_MARK, AVB_TX_CLK_MARK,
AVB_COL_MARK,
};
+/* - CAN0 ----------------------------------------------------------------- */
+static const unsigned int can0_data_pins[] = {
+ /* CAN0 RX */
+ RCAR_GP_PIN(1, 17),
+ /* CAN0 TX */
+ RCAR_GP_PIN(1, 19),
+};
+static const unsigned int can0_data_mux[] = {
+ CAN0_RX_MARK,
+ CAN0_TX_MARK,
+};
+static const unsigned int can0_data_b_pins[] = {
+ /* CAN0 RXB */
+ RCAR_GP_PIN(4, 5),
+ /* CAN0 TXB */
+ RCAR_GP_PIN(4, 4),
+};
+static const unsigned int can0_data_b_mux[] = {
+ CAN0_RX_B_MARK,
+ CAN0_TX_B_MARK,
+};
+static const unsigned int can0_data_c_pins[] = {
+ /* CAN0 RXC */
+ RCAR_GP_PIN(4, 26),
+ /* CAN0 TXC */
+ RCAR_GP_PIN(4, 23),
+};
+static const unsigned int can0_data_c_mux[] = {
+ CAN0_RX_C_MARK,
+ CAN0_TX_C_MARK,
+};
+static const unsigned int can0_data_d_pins[] = {
+ /* CAN0 RXD */
+ RCAR_GP_PIN(4, 26),
+ /* CAN0 TXD */
+ RCAR_GP_PIN(4, 18),
+};
+static const unsigned int can0_data_d_mux[] = {
+ CAN0_RX_D_MARK,
+ CAN0_TX_D_MARK,
+};
+/* - CAN1 ----------------------------------------------------------------- */
+static const unsigned int can1_data_pins[] = {
+ /* CAN1 RX */
+ RCAR_GP_PIN(1, 22),
+ /* CAN1 TX */
+ RCAR_GP_PIN(1, 18),
+};
+static const unsigned int can1_data_mux[] = {
+ CAN1_RX_MARK,
+ CAN1_TX_MARK,
+};
+static const unsigned int can1_data_b_pins[] = {
+ /* CAN1 RXB */
+ RCAR_GP_PIN(4, 7),
+ /* CAN1 TXB */
+ RCAR_GP_PIN(4, 6),
+};
+static const unsigned int can1_data_b_mux[] = {
+ CAN1_RX_B_MARK,
+ CAN1_TX_B_MARK,
+};
/* - DU RGB ----------------------------------------------------------------- */
static const unsigned int du_rgb666_pins[] = {
/* R[7:2], G[7:2], B[7:2] */
@@ -3946,7 +4008,7 @@ static const unsigned int vin3_clk_mux[] = {
};

static const struct {
- struct sh_pfc_pin_group common[290];
+ struct sh_pfc_pin_group common[296];
struct sh_pfc_pin_group automotive[1];
} pinmux_groups = {
.common = {
@@ -3963,6 +4025,12 @@ static const struct {
SH_PFC_PIN_GROUP(avb_mdio),
SH_PFC_PIN_GROUP(avb_mii),
SH_PFC_PIN_GROUP(avb_gmii),
+ SH_PFC_PIN_GROUP(can0_data),
+ SH_PFC_PIN_GROUP(can0_data_b),
+ SH_PFC_PIN_GROUP(can0_data_c),
+ SH_PFC_PIN_GROUP(can0_data_d),
+ SH_PFC_PIN_GROUP(can1_data),
+ SH_PFC_PIN_GROUP(can1_data_b),
SH_PFC_PIN_GROUP(du_rgb666),
SH_PFC_PIN_GROUP(du_rgb888),
SH_PFC_PIN_GROUP(du_clk_out_0),
@@ -4265,6 +4333,18 @@ static const char * const avb_groups[] = {
"avb_gmii",
};

+static const char * const can0_groups[] = {
+ "can0_data",
+ "can0_data_b",
+ "can0_data_c",
+ "can0_data_d",
+};
+
+static const char * const can1_groups[] = {
+ "can1_data",
+ "can1_data_b",
+};
+
static const char * const du_groups[] = {
"du_rgb666",
"du_rgb888",
@@ -4706,13 +4786,15 @@ static const char * const vin3_groups[] = {
};

static const struct {
- struct sh_pfc_function common[55];
+ struct sh_pfc_function common[57];
struct sh_pfc_function automotive[1];
} pinmux_functions = {
.common = {
SH_PFC_FUNCTION(audio_clk),
SH_PFC_FUNCTION(avb),
SH_PFC_FUNCTION(du),
+ SH_PFC_FUNCTION(can0),
+ SH_PFC_FUNCTION(can1),
SH_PFC_FUNCTION(du0),
SH_PFC_FUNCTION(du1),
SH_PFC_FUNCTION(du2),
--
2.17.1

2020-08-16 19:09:10

by Prabhakar Mahadev Lad

[permalink] [raw]
Subject: [PATCH 3/3] ARM: dts: r8a7742: Add CAN support

Add the definitions for can0 and can1 to the r8a7742 SoC dtsi.

Signed-off-by: Lad Prabhakar <[email protected]>
Reviewed-by: Chris Paterson <[email protected]>
---
arch/arm/boot/dts/r8a7742.dtsi | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)

diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi
index 009827708bf4..0fc52b27ae64 100644
--- a/arch/arm/boot/dts/r8a7742.dtsi
+++ b/arch/arm/boot/dts/r8a7742.dtsi
@@ -36,6 +36,14 @@
clock-frequency = <0>;
};

+ /* External CAN clock */
+ can_clk: can {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ /* This value must be overridden by the board. */
+ clock-frequency = <0>;
+ };
+
cpus {
#address-cells = <1>;
#size-cells = <0>;
@@ -951,6 +959,32 @@
status = "disabled";
};

+ can0: can@e6e80000 {
+ compatible = "renesas,can-r8a7742",
+ "renesas,rcar-gen2-can";
+ reg = <0 0xe6e80000 0 0x1000>;
+ interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cpg CPG_MOD 916>,
+ <&cpg CPG_CORE R8A7742_CLK_RCAN>, <&can_clk>;
+ clock-names = "clkp1", "clkp2", "can_clk";
+ power-domains = <&sysc R8A7742_PD_ALWAYS_ON>;
+ resets = <&cpg 916>;
+ status = "disabled";
+ };
+
+ can1: can@e6e88000 {
+ compatible = "renesas,can-r8a7742",
+ "renesas,rcar-gen2-can";
+ reg = <0 0xe6e88000 0 0x1000>;
+ interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cpg CPG_MOD 915>,
+ <&cpg CPG_CORE R8A7742_CLK_RCAN>, <&can_clk>;
+ clock-names = "clkp1", "clkp2", "can_clk";
+ power-domains = <&sysc R8A7742_PD_ALWAYS_ON>;
+ resets = <&cpg 915>;
+ status = "disabled";
+ };
+
pwm0: pwm@e6e30000 {
compatible = "renesas,pwm-r8a7742", "renesas,pwm-rcar";
reg = <0 0xe6e30000 0 0x8>;
--
2.17.1

2020-08-16 19:11:02

by Prabhakar Mahadev Lad

[permalink] [raw]
Subject: [PATCH 2/3] dt-bindings: can: rcar_can: Add r8a7742 support

Document RZ/G1H (r8a7742) SoC specific bindings. The R8A7742 CAN module
is identical to R-Car Gen2 family.

No driver change is needed due to the fallback compatible value
"renesas,rcar-gen2-can".

Signed-off-by: Lad Prabhakar <[email protected]>
Reviewed-by: Chris Paterson <[email protected]>
---
Documentation/devicetree/bindings/net/can/rcar_can.txt | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/net/can/rcar_can.txt b/Documentation/devicetree/bindings/net/can/rcar_can.txt
index 85c6551b602a..2099ce809ae7 100644
--- a/Documentation/devicetree/bindings/net/can/rcar_can.txt
+++ b/Documentation/devicetree/bindings/net/can/rcar_can.txt
@@ -2,7 +2,8 @@ Renesas R-Car CAN controller Device Tree Bindings
-------------------------------------------------

Required properties:
-- compatible: "renesas,can-r8a7743" if CAN controller is a part of R8A7743 SoC.
+- compatible: "renesas,can-r8a7742" if CAN controller is a part of R8A7742 SoC.
+ "renesas,can-r8a7743" if CAN controller is a part of R8A7743 SoC.
"renesas,can-r8a7744" if CAN controller is a part of R8A7744 SoC.
"renesas,can-r8a7745" if CAN controller is a part of R8A7745 SoC.
"renesas,can-r8a77470" if CAN controller is a part of R8A77470 SoC.
--
2.17.1

2020-08-21 12:53:04

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH 2/3] dt-bindings: can: rcar_can: Add r8a7742 support

On Sun, Aug 16, 2020 at 9:07 PM Lad Prabhakar
<[email protected]> wrote:
> Document RZ/G1H (r8a7742) SoC specific bindings. The R8A7742 CAN module
> is identical to R-Car Gen2 family.
>
> No driver change is needed due to the fallback compatible value
> "renesas,rcar-gen2-can".
>
> Signed-off-by: Lad Prabhakar <[email protected]>
> Reviewed-by: Chris Paterson <[email protected]>

Reviewed-by: Geert Uytterhoeven <[email protected]>

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

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

2020-08-21 12:54:00

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH 1/3] pinctrl: sh-pfc: r8a7790: Add CAN pins, groups and functions

Hi Prabhakar,

On Sun, Aug 16, 2020 at 9:07 PM Lad Prabhakar
<[email protected]> wrote:
> Add pins, groups and functions for the CAN0 and CAN1 interface.
>
> Signed-off-by: Lad Prabhakar <[email protected]>
> Reviewed-by: Chris Paterson <[email protected]>

Reviewed-by: Geert Uytterhoeven <[email protected]>

Don't you want to add the CAN_CLK pins, too?

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

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

2020-08-21 12:56:17

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH 3/3] ARM: dts: r8a7742: Add CAN support

On Sun, Aug 16, 2020 at 9:08 PM Lad Prabhakar
<[email protected]> wrote:
> Add the definitions for can0 and can1 to the r8a7742 SoC dtsi.
>
> Signed-off-by: Lad Prabhakar <[email protected]>
> Reviewed-by: Chris Paterson <[email protected]>

Reviewed-by: Geert Uytterhoeven <[email protected]>
i.e. will queue in renesas-devel for v5.10.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

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

2020-08-21 14:24:59

by Lad, Prabhakar

[permalink] [raw]
Subject: Re: [PATCH 1/3] pinctrl: sh-pfc: r8a7790: Add CAN pins, groups and functions

Hi Geert,

Thank you for the review.

On Fri, Aug 21, 2020 at 1:52 PM Geert Uytterhoeven <[email protected]> wrote:
>
> Hi Prabhakar,
>
> On Sun, Aug 16, 2020 at 9:07 PM Lad Prabhakar
> <[email protected]> wrote:
> > Add pins, groups and functions for the CAN0 and CAN1 interface.
> >
> > Signed-off-by: Lad Prabhakar <[email protected]>
> > Reviewed-by: Chris Paterson <[email protected]>
>
> Reviewed-by: Geert Uytterhoeven <[email protected]>
>
> Don't you want to add the CAN_CLK pins, too?
>
Will do. Would you prefer an incremental patch or a v2 ?

Cheers,
Prabhakar

> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
>
> 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

2020-08-21 14:27:57

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH 1/3] pinctrl: sh-pfc: r8a7790: Add CAN pins, groups and functions

Hi Prabhakar,

On Fri, Aug 21, 2020 at 4:23 PM Lad, Prabhakar
<[email protected]> wrote:
> On Fri, Aug 21, 2020 at 1:52 PM Geert Uytterhoeven <[email protected]> wrote:
> > On Sun, Aug 16, 2020 at 9:07 PM Lad Prabhakar
> > <[email protected]> wrote:
> > > Add pins, groups and functions for the CAN0 and CAN1 interface.
> > >
> > > Signed-off-by: Lad Prabhakar <[email protected]>
> > > Reviewed-by: Chris Paterson <[email protected]>
> >
> > Reviewed-by: Geert Uytterhoeven <[email protected]>
> >
> > Don't you want to add the CAN_CLK pins, too?
> >
> Will do. Would you prefer an incremental patch or a v2 ?

Up to you. Thanks!

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

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

2020-08-25 02:24:11

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH 2/3] dt-bindings: can: rcar_can: Add r8a7742 support

On Sun, 16 Aug 2020 20:07:31 +0100, Lad Prabhakar wrote:
> Document RZ/G1H (r8a7742) SoC specific bindings. The R8A7742 CAN module
> is identical to R-Car Gen2 family.
>
> No driver change is needed due to the fallback compatible value
> "renesas,rcar-gen2-can".
>
> Signed-off-by: Lad Prabhakar <[email protected]>
> Reviewed-by: Chris Paterson <[email protected]>
> ---
> Documentation/devicetree/bindings/net/can/rcar_can.txt | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>

Acked-by: Rob Herring <[email protected]>

2020-10-06 07:39:03

by Lad, Prabhakar

[permalink] [raw]
Subject: Re: [PATCH 2/3] dt-bindings: can: rcar_can: Add r8a7742 support

Hi Marc,

On Tue, Aug 25, 2020 at 3:21 AM Rob Herring <[email protected]> wrote:
>
> On Sun, 16 Aug 2020 20:07:31 +0100, Lad Prabhakar wrote:
> > Document RZ/G1H (r8a7742) SoC specific bindings. The R8A7742 CAN module
> > is identical to R-Car Gen2 family.
> >
> > No driver change is needed due to the fallback compatible value
> > "renesas,rcar-gen2-can".
> >
> > Signed-off-by: Lad Prabhakar <[email protected]>
> > Reviewed-by: Chris Paterson <[email protected]>
> > ---
> > Documentation/devicetree/bindings/net/can/rcar_can.txt | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
>
> Acked-by: Rob Herring <[email protected]>
>
Could you please pick up this patch. It has been acked by the
maintainers. Let me know if you want me to RESEND this patch.

Cheers,
Prabhakar

2020-10-06 21:54:29

by Marc Kleine-Budde

[permalink] [raw]
Subject: Re: [PATCH 2/3] dt-bindings: can: rcar_can: Add r8a7742 support

On 10/6/20 9:36 AM, Lad, Prabhakar wrote:
> On Tue, Aug 25, 2020 at 3:21 AM Rob Herring <[email protected]> wrote:
>>
>> On Sun, 16 Aug 2020 20:07:31 +0100, Lad Prabhakar wrote:
>>> Document RZ/G1H (r8a7742) SoC specific bindings. The R8A7742 CAN module
>>> is identical to R-Car Gen2 family.
>>>
>>> No driver change is needed due to the fallback compatible value
>>> "renesas,rcar-gen2-can".
>>>
>>> Signed-off-by: Lad Prabhakar <[email protected]>
>>> Reviewed-by: Chris Paterson <[email protected]>
>>> ---
>>> Documentation/devicetree/bindings/net/can/rcar_can.txt | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>
>> Acked-by: Rob Herring <[email protected]>
>>
> Could you please pick up this patch. It has been acked by the
> maintainers. Let me know if you want me to RESEND this patch.

Added this patch to linux-can-next.

Tnx,
Marc

--
Pengutronix e.K. | Marc Kleine-Budde |
Embedded Linux | https://www.pengutronix.de |
Vertretung West/Dortmund | Phone: +49-231-2826-924 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |


Attachments:
signature.asc (499.00 B)
OpenPGP digital signature