2021-05-13 12:17:08

by Adam Ford

[permalink] [raw]
Subject: [PATCH 1/3] arm64: dts: renesas: beacon: Fix USB extal reference

The USB extal clock reference isn't associated to a crystal, it's
assoicated to a programmable clock, so remove the extal reference,
add the usb2_clksel. Since usb_extal is referenced by the versaclock,
reference it here so the usb2_clksel can get the proper clock speed
of 50MHz.

Signed-off-by: Adam Ford <[email protected]>

diff --git a/arch/arm64/boot/dts/renesas/beacon-renesom-som.dtsi b/arch/arm64/boot/dts/renesas/beacon-renesom-som.dtsi
index 8d3a4d6ee885..bd3d26b2a2bb 100644
--- a/arch/arm64/boot/dts/renesas/beacon-renesom-som.dtsi
+++ b/arch/arm64/boot/dts/renesas/beacon-renesom-som.dtsi
@@ -319,8 +319,10 @@
status = "okay";
};

-&usb_extal_clk {
- clock-frequency = <50000000>;
+&usb2_clksel {
+ clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>,
+ <&versaclock5 3>, <&usb3s0_clk>;
+ status = "okay";
};

&usb3s0_clk {
--
2.17.1



2021-05-13 19:15:24

by Adam Ford

[permalink] [raw]
Subject: [PATCH 2/3] arm64: dts: renesas: beacon: Fix USB ref clock references

The RZ/G2 boards expect there to be a external clock reference for
USB2 EHCI controllers. For the Beacon boards, this reference clock
is controlled by a programmable verasaclock. Because the RZ/G2
family have a special clock driver when using an external clock,
the third clock reference in the EHCI node needs to point to this
special clock, called usb2_clksel.

Since the usb2_clksel does not keep the usb_extal clock enabled,
the 4th clock entry for the EHCI nodes needs to reference it to
keep the clock running and make USB functional.

Signed-off-by: Adam Ford <[email protected]>

diff --git a/arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi b/arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi
index d8046fedf9c1..e3c8b2fe143e 100644
--- a/arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi
+++ b/arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi
@@ -271,12 +271,12 @@
&ehci0 {
dr_mode = "otg";
status = "okay";
- clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
+ clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>, <&usb2_clksel>, <&versaclock5 3>;
};

&ehci1 {
status = "okay";
- clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
+ clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>, <&usb2_clksel>, <&versaclock5 3>;
};

&hdmi0 {
--
2.17.1


2021-05-13 19:15:39

by Adam Ford

[permalink] [raw]
Subject: [PATCH 3/3] arm64: defconfig: Enable usb2_clksel for rcar3 and RZ/G2

There is a clock driver that's needed when using an external
USB reference clock called usb2_clksel.
Enable it in the defconfig.

Signed-off-by: Adam Ford <[email protected]>

diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 08c6f769df9a..c1110fc20cdb 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -987,6 +987,7 @@ CONFIG_SM_GPUCC_8250=y
CONFIG_SM_DISPCC_8250=y
CONFIG_QCOM_HFPLL=y
CONFIG_CLK_GFM_LPASS_SM8250=m
+CONFIG_CLK_RCAR_USB2_CLOCK_SEL=y
CONFIG_HWSPINLOCK=y
CONFIG_HWSPINLOCK_QCOM=y
CONFIG_ARM_MHU=y
--
2.17.1


2021-05-17 10:09:14

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH 1/3] arm64: dts: renesas: beacon: Fix USB extal reference

Hi Adam,

Thanks for your patch!

On Thu, May 13, 2021 at 1:46 PM Adam Ford <[email protected]> wrote:
> The USB extal clock reference isn't associated to a crystal, it's
> assoicated to a programmable clock, so remove the extal reference,

associated

> add the usb2_clksel. Since usb_extal is referenced by the versaclock,
> reference it here so the usb2_clksel can get the proper clock speed
> of 50MHz.
>
> Signed-off-by: Adam Ford <[email protected]>

Reviewed-by: Geert Uytterhoeven <[email protected]>
i.e. will queue in renesas-devel for v5.14, with the above fixed.

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

2021-05-17 17:19:35

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH 2/3] arm64: dts: renesas: beacon: Fix USB ref clock references

Hi Adam,

Thanks for your patch!

On Thu, May 13, 2021 at 1:46 PM Adam Ford <[email protected]> wrote:
> The RZ/G2 boards expect there to be a external clock reference for

an

> USB2 EHCI controllers. For the Beacon boards, this reference clock
> is controlled by a programmable verasaclock. Because the RZ/G2

versaclock

> family have a special clock driver when using an external clock,

has

> the third clock reference in the EHCI node needs to point to this
> special clock, called usb2_clksel.
>
> Since the usb2_clksel does not keep the usb_extal clock enabled,
> the 4th clock entry for the EHCI nodes needs to reference it to
> keep the clock running and make USB functional.
>
> Signed-off-by: Adam Ford <[email protected]>

Reviewed-by: Geert Uytterhoeven <[email protected]>
i.e. will queue in renesas-devel for v5.14, with the above fixed.

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

2021-05-17 17:20:03

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH 3/3] arm64: defconfig: Enable usb2_clksel for rcar3 and RZ/G2

On Thu, May 13, 2021 at 1:46 PM Adam Ford <[email protected]> wrote:
> There is a clock driver that's needed when using an external
> USB reference clock called usb2_clksel.
> Enable it in the defconfig.
>
> Signed-off-by: Adam Ford <[email protected]>

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

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