Message ID | 1453352981-16104-2-git-send-email-horms+renesas@verge.net.au (mailing list archive) |
---|---|
State | Deferred |
Delegated to: | Simon Horman |
Headers | show |
Hi Simon, On Thu, Jan 21, 2016 at 6:09 AM, Simon Horman <horms+renesas@verge.net.au> wrote: > The R-Car CAN controllers can derive the CAN bus clock not only from their > peripheral clock input (clkp1) but also from the other internal clock > (clkp2) and external clock fed on CAN_CLK pin. Describe those clocks in > the device tree along with the USB_EXTAL clock from which clkp2 is > derived. > > Based on work by Sergei Shtylyov for the r8a7791 SoC. > > Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> > Signed-off-by: Simon Horman <horms+renesas@verge.net.au> > --- > arch/arm/boot/dts/r8a7793.dtsi | 20 +++++++++++++++++++- > 1 file changed, 19 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi > index 0ce7cc420c9d..5d9375fa6759 100644 > --- a/arch/arm/boot/dts/r8a7793.dtsi > +++ b/arch/arm/boot/dts/r8a7793.dtsi > @@ -706,12 +706,30 @@ > clock-output-names = "extal"; > }; > > + /* External USB clock - can be overridden by the board */ > + usb_extal_clk: usb_extal_clk { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <48000000>; > + clock-output-names = "usb_extal"; > + }; > + > + /* External CAN clock */ > + can_clk: can_clk { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + /* This value must be overridden by the board. */ > + clock-frequency = <0>; > + clock-output-names = "can_clk"; > + status = "disabled"; > + }; > + > /* Special CPG clocks */ > cpg_clocks: cpg_clocks@e6150000 { > compatible = "renesas,r8a7793-cpg-clocks", > "renesas,rcar-gen2-cpg-clocks"; > reg = <0 0xe6150000 0 0x1000>; > - clocks = <&extal_clk>; > + clocks = <&extal_clk &usb_extal_clk>; > #clock-cells = <1>; > clock-output-names = "main", "pll0", "pll1", "pll3", > "lb", "qspi", "sdh", "sd0", "z", To create the "rcan" clock, it should be listed in clock-output-names. 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
On ?, 1? 21, 2016 at 09:38:21?? +0100, Geert Uytterhoeven wrote: > Hi Simon, > > On Thu, Jan 21, 2016 at 6:09 AM, Simon Horman > <horms+renesas@verge.net.au> wrote: > > The R-Car CAN controllers can derive the CAN bus clock not only from their > > peripheral clock input (clkp1) but also from the other internal clock > > (clkp2) and external clock fed on CAN_CLK pin. Describe those clocks in > > the device tree along with the USB_EXTAL clock from which clkp2 is > > derived. > > > > Based on work by Sergei Shtylyov for the r8a7791 SoC. > > > > Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> > > Signed-off-by: Simon Horman <horms+renesas@verge.net.au> > > --- > > arch/arm/boot/dts/r8a7793.dtsi | 20 +++++++++++++++++++- > > 1 file changed, 19 insertions(+), 1 deletion(-) > > > > diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi > > index 0ce7cc420c9d..5d9375fa6759 100644 > > --- a/arch/arm/boot/dts/r8a7793.dtsi > > +++ b/arch/arm/boot/dts/r8a7793.dtsi > > @@ -706,12 +706,30 @@ > > clock-output-names = "extal"; > > }; > > > > + /* External USB clock - can be overridden by the board */ > > + usb_extal_clk: usb_extal_clk { > > + compatible = "fixed-clock"; > > + #clock-cells = <0>; > > + clock-frequency = <48000000>; > > + clock-output-names = "usb_extal"; > > + }; > > + > > + /* External CAN clock */ > > + can_clk: can_clk { > > + compatible = "fixed-clock"; > > + #clock-cells = <0>; > > + /* This value must be overridden by the board. */ > > + clock-frequency = <0>; > > + clock-output-names = "can_clk"; > > + status = "disabled"; > > + }; > > + > > /* Special CPG clocks */ > > cpg_clocks: cpg_clocks@e6150000 { > > compatible = "renesas,r8a7793-cpg-clocks", > > "renesas,rcar-gen2-cpg-clocks"; > > reg = <0 0xe6150000 0 0x1000>; > > - clocks = <&extal_clk>; > > + clocks = <&extal_clk &usb_extal_clk>; > > #clock-cells = <1>; > > clock-output-names = "main", "pll0", "pll1", "pll3", > > "lb", "qspi", "sdh", "sd0", "z", > > To create the "rcan" clock, it should be listed in clock-output-names. Thanks, sorry for missing that.
On Thu, Jan 21, 2016 at 09:15:27PM +0900, Simon Horman wrote: > On ?, 1? 21, 2016 at 09:38:21?? +0100, Geert Uytterhoeven wrote: > > Hi Simon, > > > > On Thu, Jan 21, 2016 at 6:09 AM, Simon Horman > > <horms+renesas@verge.net.au> wrote: > > > The R-Car CAN controllers can derive the CAN bus clock not only from their > > > peripheral clock input (clkp1) but also from the other internal clock > > > (clkp2) and external clock fed on CAN_CLK pin. Describe those clocks in > > > the device tree along with the USB_EXTAL clock from which clkp2 is > > > derived. > > > > > > Based on work by Sergei Shtylyov for the r8a7791 SoC. > > > > > > Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> > > > Signed-off-by: Simon Horman <horms+renesas@verge.net.au> > > > --- > > > arch/arm/boot/dts/r8a7793.dtsi | 20 +++++++++++++++++++- > > > 1 file changed, 19 insertions(+), 1 deletion(-) > > > > > > diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi > > > index 0ce7cc420c9d..5d9375fa6759 100644 > > > --- a/arch/arm/boot/dts/r8a7793.dtsi > > > +++ b/arch/arm/boot/dts/r8a7793.dtsi > > > @@ -706,12 +706,30 @@ > > > clock-output-names = "extal"; > > > }; > > > > > > + /* External USB clock - can be overridden by the board */ > > > + usb_extal_clk: usb_extal_clk { > > > + compatible = "fixed-clock"; > > > + #clock-cells = <0>; > > > + clock-frequency = <48000000>; > > > + clock-output-names = "usb_extal"; > > > + }; > > > + > > > + /* External CAN clock */ > > > + can_clk: can_clk { > > > + compatible = "fixed-clock"; > > > + #clock-cells = <0>; > > > + /* This value must be overridden by the board. */ > > > + clock-frequency = <0>; > > > + clock-output-names = "can_clk"; > > > + status = "disabled"; > > > + }; > > > + > > > /* Special CPG clocks */ > > > cpg_clocks: cpg_clocks@e6150000 { > > > compatible = "renesas,r8a7793-cpg-clocks", > > > "renesas,rcar-gen2-cpg-clocks"; > > > reg = <0 0xe6150000 0 0x1000>; > > > - clocks = <&extal_clk>; > > > + clocks = <&extal_clk &usb_extal_clk>; > > > #clock-cells = <1>; > > > clock-output-names = "main", "pll0", "pll1", "pll3", > > > "lb", "qspi", "sdh", "sd0", "z", > > > > To create the "rcan" clock, it should be listed in clock-output-names. Checking this morning I see that it is already there. The next line of the file is: "rcan", "adsp";
On Fri, Jan 22, 2016 at 1:48 AM, Simon Horman <horms@verge.net.au> wrote: >> > > --- a/arch/arm/boot/dts/r8a7793.dtsi >> > > +++ b/arch/arm/boot/dts/r8a7793.dtsi >> > > @@ -706,12 +706,30 @@ >> > > clock-output-names = "extal"; >> > > }; >> > > >> > > + /* External USB clock - can be overridden by the board */ >> > > + usb_extal_clk: usb_extal_clk { >> > > + compatible = "fixed-clock"; >> > > + #clock-cells = <0>; >> > > + clock-frequency = <48000000>; >> > > + clock-output-names = "usb_extal"; >> > > + }; >> > > + >> > > + /* External CAN clock */ >> > > + can_clk: can_clk { >> > > + compatible = "fixed-clock"; >> > > + #clock-cells = <0>; >> > > + /* This value must be overridden by the board. */ >> > > + clock-frequency = <0>; >> > > + clock-output-names = "can_clk"; >> > > + status = "disabled"; >> > > + }; >> > > + >> > > /* Special CPG clocks */ >> > > cpg_clocks: cpg_clocks@e6150000 { >> > > compatible = "renesas,r8a7793-cpg-clocks", >> > > "renesas,rcar-gen2-cpg-clocks"; >> > > reg = <0 0xe6150000 0 0x1000>; >> > > - clocks = <&extal_clk>; >> > > + clocks = <&extal_clk &usb_extal_clk>; >> > > #clock-cells = <1>; >> > > clock-output-names = "main", "pll0", "pll1", "pll3", >> > > "lb", "qspi", "sdh", "sd0", "z", >> > >> > To create the "rcan" clock, it should be listed in clock-output-names. > > Checking this morning I see that it is already there. > The next line of the file is: > > "rcan", "adsp"; I stand corrected. BTW, that means you saw "failed to register ... rcan" messages before? 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
On Fri, Jan 22, 2016 at 08:46:37AM +0100, Geert Uytterhoeven wrote: > On Fri, Jan 22, 2016 at 1:48 AM, Simon Horman <horms@verge.net.au> wrote: > >> > > --- a/arch/arm/boot/dts/r8a7793.dtsi > >> > > +++ b/arch/arm/boot/dts/r8a7793.dtsi > >> > > @@ -706,12 +706,30 @@ > >> > > clock-output-names = "extal"; > >> > > }; > >> > > > >> > > + /* External USB clock - can be overridden by the board */ > >> > > + usb_extal_clk: usb_extal_clk { > >> > > + compatible = "fixed-clock"; > >> > > + #clock-cells = <0>; > >> > > + clock-frequency = <48000000>; > >> > > + clock-output-names = "usb_extal"; > >> > > + }; > >> > > + > >> > > + /* External CAN clock */ > >> > > + can_clk: can_clk { > >> > > + compatible = "fixed-clock"; > >> > > + #clock-cells = <0>; > >> > > + /* This value must be overridden by the board. */ > >> > > + clock-frequency = <0>; > >> > > + clock-output-names = "can_clk"; > >> > > + status = "disabled"; > >> > > + }; > >> > > + > >> > > /* Special CPG clocks */ > >> > > cpg_clocks: cpg_clocks@e6150000 { > >> > > compatible = "renesas,r8a7793-cpg-clocks", > >> > > "renesas,rcar-gen2-cpg-clocks"; > >> > > reg = <0 0xe6150000 0 0x1000>; > >> > > - clocks = <&extal_clk>; > >> > > + clocks = <&extal_clk &usb_extal_clk>; > >> > > #clock-cells = <1>; > >> > > clock-output-names = "main", "pll0", "pll1", "pll3", > >> > > "lb", "qspi", "sdh", "sd0", "z", > >> > > >> > To create the "rcan" clock, it should be listed in clock-output-names. > > > > Checking this morning I see that it is already there. > > The next line of the file is: > > > > "rcan", "adsp"; > > I stand corrected. > > BTW, that means you saw "failed to register ... rcan" messages > before? Yes, I checked and I see: rcar_gen2_cpg_clocks_init: failed to register cpg_clocks rcan clock (-12)
diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi index 0ce7cc420c9d..5d9375fa6759 100644 --- a/arch/arm/boot/dts/r8a7793.dtsi +++ b/arch/arm/boot/dts/r8a7793.dtsi @@ -706,12 +706,30 @@ clock-output-names = "extal"; }; + /* External USB clock - can be overridden by the board */ + usb_extal_clk: usb_extal_clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <48000000>; + clock-output-names = "usb_extal"; + }; + + /* External CAN clock */ + can_clk: can_clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by the board. */ + clock-frequency = <0>; + clock-output-names = "can_clk"; + status = "disabled"; + }; + /* Special CPG clocks */ cpg_clocks: cpg_clocks@e6150000 { compatible = "renesas,r8a7793-cpg-clocks", "renesas,rcar-gen2-cpg-clocks"; reg = <0 0xe6150000 0 0x1000>; - clocks = <&extal_clk>; + clocks = <&extal_clk &usb_extal_clk>; #clock-cells = <1>; clock-output-names = "main", "pll0", "pll1", "pll3", "lb", "qspi", "sdh", "sd0", "z",
The R-Car CAN controllers can derive the CAN bus clock not only from their peripheral clock input (clkp1) but also from the other internal clock (clkp2) and external clock fed on CAN_CLK pin. Describe those clocks in the device tree along with the USB_EXTAL clock from which clkp2 is derived. Based on work by Sergei Shtylyov for the r8a7791 SoC. Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- arch/arm/boot/dts/r8a7793.dtsi | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-)