diff mbox

[2/2] ARM: dts: r8a7791: Add GyroADC bindings

Message ID 20170416165709.27449-2-marek.vasut+renesas@gmail.com (mailing list archive)
State Changes Requested
Delegated to: Simon Horman
Headers show

Commit Message

Marek Vasut April 16, 2017, 4:57 p.m. UTC
Add bindings for the GyroADC block and it's associated clock.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Simon Horman <horms+renesas@verge.net.au>
Cc: linux-renesas-soc@vger.kernel.org
---
 arch/arm/boot/dts/r8a7791.dtsi | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

Comments

Sergei Shtylyov April 17, 2017, 9:19 a.m. UTC | #1
Hello!

On 4/16/2017 7:57 PM, Marek Vasut wrote:

> Add bindings for the GyroADC block and it's associated clock.

    Well, I already spoke to you about the bindings on IRC...

> Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
> Cc: Geert Uytterhoeven <geert+renesas@glider.be>
> Cc: Simon Horman <horms+renesas@verge.net.au>
> Cc: linux-renesas-soc@vger.kernel.org
> ---
>  arch/arm/boot/dts/r8a7791.dtsi | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
>
> diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi
> index 4d0c2ce59900..1b099dbc9eef 100644
> --- a/arch/arm/boot/dts/r8a7791.dtsi
> +++ b/arch/arm/boot/dts/r8a7791.dtsi
> @@ -776,6 +776,15 @@
>  		status = "disabled";
>  	};
>
> +	adc: adc@e6e54000 {

    Why not label it "gyroadc:"?

> +		compatible = "renesas,r8a7791-gyroadc", "renesas,rcar-gyroadc";
> +		reg = <0 0xe6e54000 0 64>;

    s/64/0x40/.

[...]
> @@ -1133,6 +1142,13 @@
>  			clock-frequency = <0>;
>  		};
>
> +		/* GyroADC clock */
> +		adc_clk: adc_clk {

    We geberally skip the "_clk" suffix in the clock node names, so that the 
clock name generated from the node name doesn't have this suffix.

[...]

MBR, Sergei
Geert Uytterhoeven April 18, 2017, 1:59 p.m. UTC | #2
Hi Marek,

On Sun, Apr 16, 2017 at 6:57 PM, Marek Vasut <marek.vasut@gmail.com> wrote:
> Add bindings for the GyroADC block and it's associated clock.

bindings??

> --- a/arch/arm/boot/dts/r8a7791.dtsi
> +++ b/arch/arm/boot/dts/r8a7791.dtsi
> @@ -776,6 +776,15 @@
>                 status = "disabled";
>         };
>
> +       adc: adc@e6e54000 {
> +               compatible = "renesas,r8a7791-gyroadc", "renesas,rcar-gyroadc";
> +               reg = <0 0xe6e54000 0 64>;
> +               clocks = <&mstp9_clks R8A7791_CLK_GYROADC>, <&adc_clk>;
> +               clock-names = "fck", "if";
> +               power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
> +               status = "disabled";
> +       };
> +
>         scif2: serial@e6e58000 {
>                 compatible = "renesas,scif-r8a7791", "renesas,rcar-gen2-scif",
>                              "renesas,scif";
> @@ -1133,6 +1142,13 @@
>                         clock-frequency = <0>;
>                 };
>
> +               /* GyroADC clock */
> +               adc_clk: adc_clk {
> +                       compatible = "fixed-clock";
> +                       #clock-cells = <0>;
> +                       clock-frequency = <65000000>;
> +               };

Why do you have to add a clock?
I think you should just refer to the on-SoC peripheral clock: &cp_clk.

> +
>                 /* Special CPG clocks */
>                 cpg_clocks: cpg_clocks@e6150000 {
>                         compatible = "renesas,r8a7791-cpg-clocks",
> @@ -1432,6 +1448,7 @@
>                                  <&hp_clk>, <&hp_clk>;

Missing addition of the parent clock for the newly added module clock.
Perhaps this should be the peripheral clock (<&cp_clk>)?

Oops, that means there's no need to have two clock inputs in the adc device
node, and thus we screwed up when reviewing the GyroADC bindings :-(

>                         #clock-cells = <1>;
>                         clock-indices = <
> +                               R8A7791_CLK_GYROADC
>                                 R8A7791_CLK_GPIO7 R8A7791_CLK_GPIO6 R8A7791_CLK_GPIO5 R8A7791_CLK_GPIO4
>                                 R8A7791_CLK_GPIO3 R8A7791_CLK_GPIO2 R8A7791_CLK_GPIO1 R8A7791_CLK_GPIO0
>                                 R8A7791_CLK_RCAN1 R8A7791_CLK_RCAN0 R8A7791_CLK_QSPI_MOD R8A7791_CLK_I2C5
> @@ -1439,6 +1456,7 @@
>                                 R8A7791_CLK_I2C1 R8A7791_CLK_I2C0
>                         >;
>                         clock-output-names =
> +                               "gyroadc",
>                                 "gpio7", "gpio6", "gpio5", "gpio4", "gpio3", "gpio2", "gpio1", "gpio0",
>                                 "rcan1", "rcan0", "qspi_mod", "i2c5", "i2c6", "i2c4", "i2c3", "i2c2",
>                                 "i2c1", "i2c0";

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
Marek Vasut April 18, 2017, 6:44 p.m. UTC | #3
On 04/17/2017 11:19 AM, Sergei Shtylyov wrote:
> Hello!

Hi!

> On 4/16/2017 7:57 PM, Marek Vasut wrote:
> 
>> Add bindings for the GyroADC block and it's associated clock.
> 
>    Well, I already spoke to you about the bindings on IRC...

That's fixed.

>> Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
>> Cc: Geert Uytterhoeven <geert+renesas@glider.be>
>> Cc: Simon Horman <horms+renesas@verge.net.au>
>> Cc: linux-renesas-soc@vger.kernel.org
>> ---
>>  arch/arm/boot/dts/r8a7791.dtsi | 18 ++++++++++++++++++
>>  1 file changed, 18 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/r8a7791.dtsi
>> b/arch/arm/boot/dts/r8a7791.dtsi
>> index 4d0c2ce59900..1b099dbc9eef 100644
>> --- a/arch/arm/boot/dts/r8a7791.dtsi
>> +++ b/arch/arm/boot/dts/r8a7791.dtsi
>> @@ -776,6 +776,15 @@
>>          status = "disabled";
>>      };
>>
>> +    adc: adc@e6e54000 {
> 
>    Why not label it "gyroadc:"?

We can ... I don't mind either way. Shall we ?

>> +        compatible = "renesas,r8a7791-gyroadc", "renesas,rcar-gyroadc";
>> +        reg = <0 0xe6e54000 0 64>;
> 
>    s/64/0x40/.

The surrounding code uses 64, so I kept it consistent.

> [...]
>> @@ -1133,6 +1142,13 @@
>>              clock-frequency = <0>;
>>          };
>>
>> +        /* GyroADC clock */
>> +        adc_clk: adc_clk {
> 
>    We geberally skip the "_clk" suffix in the clock node names, so that
> the clock name generated from the node name doesn't have this suffix.

Fixed

> [...]
> 
> MBR, Sergei
>
Marek Vasut April 18, 2017, 7:05 p.m. UTC | #4
On 04/18/2017 03:59 PM, Geert Uytterhoeven wrote:
> Hi Marek,

Hi Geert,

> On Sun, Apr 16, 2017 at 6:57 PM, Marek Vasut <marek.vasut@gmail.com> wrote:
>> Add bindings for the GyroADC block and it's associated clock.
> 
> bindings??

That's fixed...

>> --- a/arch/arm/boot/dts/r8a7791.dtsi
>> +++ b/arch/arm/boot/dts/r8a7791.dtsi
>> @@ -776,6 +776,15 @@
>>                 status = "disabled";
>>         };
>>
>> +       adc: adc@e6e54000 {
>> +               compatible = "renesas,r8a7791-gyroadc", "renesas,rcar-gyroadc";
>> +               reg = <0 0xe6e54000 0 64>;
>> +               clocks = <&mstp9_clks R8A7791_CLK_GYROADC>, <&adc_clk>;
>> +               clock-names = "fck", "if";
>> +               power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
>> +               status = "disabled";
>> +       };
>> +
>>         scif2: serial@e6e58000 {
>>                 compatible = "renesas,scif-r8a7791", "renesas,rcar-gen2-scif",
>>                              "renesas,scif";
>> @@ -1133,6 +1142,13 @@
>>                         clock-frequency = <0>;
>>                 };
>>
>> +               /* GyroADC clock */
>> +               adc_clk: adc_clk {
>> +                       compatible = "fixed-clock";
>> +                       #clock-cells = <0>;
>> +                       clock-frequency = <65000000>;
>> +               };
> 
> Why do you have to add a clock?
> I think you should just refer to the on-SoC peripheral clock: &cp_clk.

I think you are right, in fact, see below ...

>> +
>>                 /* Special CPG clocks */
>>                 cpg_clocks: cpg_clocks@e6150000 {
>>                         compatible = "renesas,r8a7791-cpg-clocks",
>> @@ -1432,6 +1448,7 @@
>>                                  <&hp_clk>, <&hp_clk>;
> 
> Missing addition of the parent clock for the newly added module clock.
> Perhaps this should be the peripheral clock (<&cp_clk>)?
> 
> Oops, that means there's no need to have two clock inputs in the adc device
> node, and thus we screwed up when reviewing the GyroADC bindings :-(

I think you're right. I should be just getting the clk rate of the fck
and derive the gyroadc timings from that, correct ? I can send a patch
for the driver to just ignore the second clock entry and update the DT
binding document to drop the "if" clock (?) .

>>                         #clock-cells = <1>;
>>                         clock-indices = <
>> +                               R8A7791_CLK_GYROADC
>>                                 R8A7791_CLK_GPIO7 R8A7791_CLK_GPIO6 R8A7791_CLK_GPIO5 R8A7791_CLK_GPIO4
>>                                 R8A7791_CLK_GPIO3 R8A7791_CLK_GPIO2 R8A7791_CLK_GPIO1 R8A7791_CLK_GPIO0
>>                                 R8A7791_CLK_RCAN1 R8A7791_CLK_RCAN0 R8A7791_CLK_QSPI_MOD R8A7791_CLK_I2C5

[...]
Geert Uytterhoeven April 18, 2017, 7:09 p.m. UTC | #5
Hi Marek,

On Tue, Apr 18, 2017 at 9:05 PM, Marek Vasut <marek.vasut@gmail.com> wrote:
> On 04/18/2017 03:59 PM, Geert Uytterhoeven wrote:
>> On Sun, Apr 16, 2017 at 6:57 PM, Marek Vasut <marek.vasut@gmail.com> wrote:
>>> --- a/arch/arm/boot/dts/r8a7791.dtsi
>>> +++ b/arch/arm/boot/dts/r8a7791.dtsi
>>> @@ -776,6 +776,15 @@
>>>                 status = "disabled";
>>>         };
>>>
>>> +       adc: adc@e6e54000 {
>>> +               compatible = "renesas,r8a7791-gyroadc", "renesas,rcar-gyroadc";
>>> +               reg = <0 0xe6e54000 0 64>;
>>> +               clocks = <&mstp9_clks R8A7791_CLK_GYROADC>, <&adc_clk>;
>>> +               clock-names = "fck", "if";
>>> +               power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
>>> +               status = "disabled";
>>> +       };
>>> +
>>>         scif2: serial@e6e58000 {
>>>                 compatible = "renesas,scif-r8a7791", "renesas,rcar-gen2-scif",
>>>                              "renesas,scif";
>>> @@ -1133,6 +1142,13 @@
>>>                         clock-frequency = <0>;
>>>                 };
>>>
>>> +               /* GyroADC clock */
>>> +               adc_clk: adc_clk {
>>> +                       compatible = "fixed-clock";
>>> +                       #clock-cells = <0>;
>>> +                       clock-frequency = <65000000>;
>>> +               };
>>
>> Why do you have to add a clock?
>> I think you should just refer to the on-SoC peripheral clock: &cp_clk.
>
> I think you are right, in fact, see below ...
>
>>> +
>>>                 /* Special CPG clocks */
>>>                 cpg_clocks: cpg_clocks@e6150000 {
>>>                         compatible = "renesas,r8a7791-cpg-clocks",
>>> @@ -1432,6 +1448,7 @@
>>>                                  <&hp_clk>, <&hp_clk>;
>>
>> Missing addition of the parent clock for the newly added module clock.
>> Perhaps this should be the peripheral clock (<&cp_clk>)?
>>
>> Oops, that means there's no need to have two clock inputs in the adc device
>> node, and thus we screwed up when reviewing the GyroADC bindings :-(
>
> I think you're right. I should be just getting the clk rate of the fck
> and derive the gyroadc timings from that, correct ? I can send a patch
> for the driver to just ignore the second clock entry and update the DT
> binding document to drop the "if" clock (?) .

Fine for me. Thanks!

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
Marek Vasut April 18, 2017, 7:57 p.m. UTC | #6
On 04/18/2017 09:09 PM, Geert Uytterhoeven wrote:
> Hi Marek,

Hi!

> On Tue, Apr 18, 2017 at 9:05 PM, Marek Vasut <marek.vasut@gmail.com> wrote:
>> On 04/18/2017 03:59 PM, Geert Uytterhoeven wrote:
>>> On Sun, Apr 16, 2017 at 6:57 PM, Marek Vasut <marek.vasut@gmail.com> wrote:
>>>> --- a/arch/arm/boot/dts/r8a7791.dtsi
>>>> +++ b/arch/arm/boot/dts/r8a7791.dtsi
>>>> @@ -776,6 +776,15 @@
>>>>                 status = "disabled";
>>>>         };
>>>>
>>>> +       adc: adc@e6e54000 {
>>>> +               compatible = "renesas,r8a7791-gyroadc", "renesas,rcar-gyroadc";
>>>> +               reg = <0 0xe6e54000 0 64>;
>>>> +               clocks = <&mstp9_clks R8A7791_CLK_GYROADC>, <&adc_clk>;
>>>> +               clock-names = "fck", "if";
>>>> +               power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
>>>> +               status = "disabled";
>>>> +       };
>>>> +
>>>>         scif2: serial@e6e58000 {
>>>>                 compatible = "renesas,scif-r8a7791", "renesas,rcar-gen2-scif",
>>>>                              "renesas,scif";
>>>> @@ -1133,6 +1142,13 @@
>>>>                         clock-frequency = <0>;
>>>>                 };
>>>>
>>>> +               /* GyroADC clock */
>>>> +               adc_clk: adc_clk {
>>>> +                       compatible = "fixed-clock";
>>>> +                       #clock-cells = <0>;
>>>> +                       clock-frequency = <65000000>;
>>>> +               };
>>>
>>> Why do you have to add a clock?
>>> I think you should just refer to the on-SoC peripheral clock: &cp_clk.
>>
>> I think you are right, in fact, see below ...
>>
>>>> +
>>>>                 /* Special CPG clocks */
>>>>                 cpg_clocks: cpg_clocks@e6150000 {
>>>>                         compatible = "renesas,r8a7791-cpg-clocks",
>>>> @@ -1432,6 +1448,7 @@
>>>>                                  <&hp_clk>, <&hp_clk>;
>>>
>>> Missing addition of the parent clock for the newly added module clock.
>>> Perhaps this should be the peripheral clock (<&cp_clk>)?
>>>
>>> Oops, that means there's no need to have two clock inputs in the adc device
>>> node, and thus we screwed up when reviewing the GyroADC bindings :-(
>>
>> I think you're right. I should be just getting the clk rate of the fck
>> and derive the gyroadc timings from that, correct ? I can send a patch
>> for the driver to just ignore the second clock entry and update the DT
>> binding document to drop the "if" clock (?) .
> 
> Fine for me. Thanks!

OK, patches are ready. I need to find koelsch to test on ..
diff mbox

Patch

diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi
index 4d0c2ce59900..1b099dbc9eef 100644
--- a/arch/arm/boot/dts/r8a7791.dtsi
+++ b/arch/arm/boot/dts/r8a7791.dtsi
@@ -776,6 +776,15 @@ 
 		status = "disabled";
 	};
 
+	adc: adc@e6e54000 {
+		compatible = "renesas,r8a7791-gyroadc", "renesas,rcar-gyroadc";
+		reg = <0 0xe6e54000 0 64>;
+		clocks = <&mstp9_clks R8A7791_CLK_GYROADC>, <&adc_clk>;
+		clock-names = "fck", "if";
+		power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+		status = "disabled";
+	};
+
 	scif2: serial@e6e58000 {
 		compatible = "renesas,scif-r8a7791", "renesas,rcar-gen2-scif",
 			     "renesas,scif";
@@ -1133,6 +1142,13 @@ 
 			clock-frequency = <0>;
 		};
 
+		/* GyroADC clock */
+		adc_clk: adc_clk {
+			compatible = "fixed-clock";
+			#clock-cells = <0>;
+			clock-frequency = <65000000>;
+		};
+
 		/* Special CPG clocks */
 		cpg_clocks: cpg_clocks@e6150000 {
 			compatible = "renesas,r8a7791-cpg-clocks",
@@ -1432,6 +1448,7 @@ 
 				 <&hp_clk>, <&hp_clk>;
 			#clock-cells = <1>;
 			clock-indices = <
+				R8A7791_CLK_GYROADC
 				R8A7791_CLK_GPIO7 R8A7791_CLK_GPIO6 R8A7791_CLK_GPIO5 R8A7791_CLK_GPIO4
 				R8A7791_CLK_GPIO3 R8A7791_CLK_GPIO2 R8A7791_CLK_GPIO1 R8A7791_CLK_GPIO0
 				R8A7791_CLK_RCAN1 R8A7791_CLK_RCAN0 R8A7791_CLK_QSPI_MOD R8A7791_CLK_I2C5
@@ -1439,6 +1456,7 @@ 
 				R8A7791_CLK_I2C1 R8A7791_CLK_I2C0
 			>;
 			clock-output-names =
+				"gyroadc",
 				"gpio7", "gpio6", "gpio5", "gpio4", "gpio3", "gpio2", "gpio1", "gpio0",
 				"rcan1", "rcan0", "qspi_mod", "i2c5", "i2c6", "i2c4", "i2c3", "i2c2",
 				"i2c1", "i2c0";