Re: [PATCH v3 2/8] ARM: dts: sun7i: Add GMAC clock node to sun7i DTSI

2014-02-04 Thread Maxime Ripard
On Tue, Feb 04, 2014 at 11:06:24AM +0800, Chen-Yu Tsai wrote:
> On Tue, Feb 4, 2014 at 3:34 AM, Maxime Ripard
>  wrote:
> > On Mon, Feb 03, 2014 at 11:32:20AM +0800, Chen-Yu Tsai wrote:
> >> The GMAC uses 1 of 2 sources for its transmit clock, depending on the
> >> PHY interface mode. Add both sources as dummy clocks, and as parents
> >> to the GMAC clock node.
> >>
> >> Signed-off-by: Chen-Yu Tsai 
> >> ---
> >>  arch/arm/boot/dts/sun7i-a20.dtsi | 28 
> >>  1 file changed, 28 insertions(+)
> >>
> >> diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi 
> >> b/arch/arm/boot/dts/sun7i-a20.dtsi
> >> index 1595e9a..fc7f470 100644
> >> --- a/arch/arm/boot/dts/sun7i-a20.dtsi
> >> +++ b/arch/arm/boot/dts/sun7i-a20.dtsi
> >> @@ -314,6 +314,34 @@
> >>   };
> >>
> >>   /*
> >> +  * The following two are dummy clocks, placeholders used
> >> +  * on gmac_tx clock. The actual frequency and availability
> >> +  * depends on the external PHY, operation mode and link
> >> +  * speed.
> >> +  */
> >
> > If it depends on the external PHY, I guess that means it also depends
> > on the board, right? Or is the GMAC supposed to always have that clock
> > running at 25MHz, no matter what PHY is connected to it?
> 
> What I meant in the comment is that we cannot control the actual clock
> rate of the TX clock. We can only select the source, and this is what
> gmac_tx clock does. It is just a clock mux. The 125MHz and 25MHz clock
> rates are used by the clk_set_rate in the stmmac glue layer to do
> auto-reparenting.
> 
> The board dependent factor is what _type_ of PHY it is using, i.e.
> MII, GMII, or RGMII. If it's MII, the PHY should provide the clock.
> If it's RGMII, the internal clock would be used. GMII is a mix of
> both. The actual clock rate depends on the link speed.
> 
> I should rephrase the comment along the lines of:
> 
> The following two are dummy clocks, placeholders used in the gmac_tx
> clock. The gmac driver will choose one parent depending on the PHY
> interface mode, using clk_set_rate auto-reparenting.
> The actual TX clock rate is not controlled by the gmac_tx clock.

Ok, thanks for the clarification.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com


signature.asc
Description: Digital signature


Re: [PATCH v3 2/8] ARM: dts: sun7i: Add GMAC clock node to sun7i DTSI

2014-02-04 Thread Maxime Ripard
On Tue, Feb 04, 2014 at 11:06:24AM +0800, Chen-Yu Tsai wrote:
 On Tue, Feb 4, 2014 at 3:34 AM, Maxime Ripard
 maxime.rip...@free-electrons.com wrote:
  On Mon, Feb 03, 2014 at 11:32:20AM +0800, Chen-Yu Tsai wrote:
  The GMAC uses 1 of 2 sources for its transmit clock, depending on the
  PHY interface mode. Add both sources as dummy clocks, and as parents
  to the GMAC clock node.
 
  Signed-off-by: Chen-Yu Tsai w...@csie.org
  ---
   arch/arm/boot/dts/sun7i-a20.dtsi | 28 
   1 file changed, 28 insertions(+)
 
  diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi 
  b/arch/arm/boot/dts/sun7i-a20.dtsi
  index 1595e9a..fc7f470 100644
  --- a/arch/arm/boot/dts/sun7i-a20.dtsi
  +++ b/arch/arm/boot/dts/sun7i-a20.dtsi
  @@ -314,6 +314,34 @@
};
 
/*
  +  * The following two are dummy clocks, placeholders used
  +  * on gmac_tx clock. The actual frequency and availability
  +  * depends on the external PHY, operation mode and link
  +  * speed.
  +  */
 
  If it depends on the external PHY, I guess that means it also depends
  on the board, right? Or is the GMAC supposed to always have that clock
  running at 25MHz, no matter what PHY is connected to it?
 
 What I meant in the comment is that we cannot control the actual clock
 rate of the TX clock. We can only select the source, and this is what
 gmac_tx clock does. It is just a clock mux. The 125MHz and 25MHz clock
 rates are used by the clk_set_rate in the stmmac glue layer to do
 auto-reparenting.
 
 The board dependent factor is what _type_ of PHY it is using, i.e.
 MII, GMII, or RGMII. If it's MII, the PHY should provide the clock.
 If it's RGMII, the internal clock would be used. GMII is a mix of
 both. The actual clock rate depends on the link speed.
 
 I should rephrase the comment along the lines of:
 
 The following two are dummy clocks, placeholders used in the gmac_tx
 clock. The gmac driver will choose one parent depending on the PHY
 interface mode, using clk_set_rate auto-reparenting.
 The actual TX clock rate is not controlled by the gmac_tx clock.

Ok, thanks for the clarification.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com


signature.asc
Description: Digital signature


Re: [PATCH v3 2/8] ARM: dts: sun7i: Add GMAC clock node to sun7i DTSI

2014-02-03 Thread Chen-Yu Tsai
On Tue, Feb 4, 2014 at 3:34 AM, Maxime Ripard
 wrote:
> On Mon, Feb 03, 2014 at 11:32:20AM +0800, Chen-Yu Tsai wrote:
>> The GMAC uses 1 of 2 sources for its transmit clock, depending on the
>> PHY interface mode. Add both sources as dummy clocks, and as parents
>> to the GMAC clock node.
>>
>> Signed-off-by: Chen-Yu Tsai 
>> ---
>>  arch/arm/boot/dts/sun7i-a20.dtsi | 28 
>>  1 file changed, 28 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi 
>> b/arch/arm/boot/dts/sun7i-a20.dtsi
>> index 1595e9a..fc7f470 100644
>> --- a/arch/arm/boot/dts/sun7i-a20.dtsi
>> +++ b/arch/arm/boot/dts/sun7i-a20.dtsi
>> @@ -314,6 +314,34 @@
>>   };
>>
>>   /*
>> +  * The following two are dummy clocks, placeholders used
>> +  * on gmac_tx clock. The actual frequency and availability
>> +  * depends on the external PHY, operation mode and link
>> +  * speed.
>> +  */
>
> If it depends on the external PHY, I guess that means it also depends
> on the board, right? Or is the GMAC supposed to always have that clock
> running at 25MHz, no matter what PHY is connected to it?

What I meant in the comment is that we cannot control the actual clock
rate of the TX clock. We can only select the source, and this is what
gmac_tx clock does. It is just a clock mux. The 125MHz and 25MHz clock
rates are used by the clk_set_rate in the stmmac glue layer to do
auto-reparenting.

The board dependent factor is what _type_ of PHY it is using, i.e.
MII, GMII, or RGMII. If it's MII, the PHY should provide the clock.
If it's RGMII, the internal clock would be used. GMII is a mix of
both. The actual clock rate depends on the link speed.

I should rephrase the comment along the lines of:

The following two are dummy clocks, placeholders used in the gmac_tx
clock. The gmac driver will choose one parent depending on the PHY
interface mode, using clk_set_rate auto-reparenting.
The actual TX clock rate is not controlled by the gmac_tx clock.


Cheers
ChenYu
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 2/8] ARM: dts: sun7i: Add GMAC clock node to sun7i DTSI

2014-02-03 Thread Maxime Ripard
On Mon, Feb 03, 2014 at 11:32:20AM +0800, Chen-Yu Tsai wrote:
> The GMAC uses 1 of 2 sources for its transmit clock, depending on the
> PHY interface mode. Add both sources as dummy clocks, and as parents
> to the GMAC clock node.
> 
> Signed-off-by: Chen-Yu Tsai 
> ---
>  arch/arm/boot/dts/sun7i-a20.dtsi | 28 
>  1 file changed, 28 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi 
> b/arch/arm/boot/dts/sun7i-a20.dtsi
> index 1595e9a..fc7f470 100644
> --- a/arch/arm/boot/dts/sun7i-a20.dtsi
> +++ b/arch/arm/boot/dts/sun7i-a20.dtsi
> @@ -314,6 +314,34 @@
>   };
>  
>   /*
> +  * The following two are dummy clocks, placeholders used
> +  * on gmac_tx clock. The actual frequency and availability
> +  * depends on the external PHY, operation mode and link
> +  * speed.
> +  */

If it depends on the external PHY, I guess that means it also depends
on the board, right? Or is the GMAC supposed to always have that clock
running at 25MHz, no matter what PHY is connected to it?

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com


signature.asc
Description: Digital signature


Re: [PATCH v3 2/8] ARM: dts: sun7i: Add GMAC clock node to sun7i DTSI

2014-02-03 Thread Maxime Ripard
On Mon, Feb 03, 2014 at 11:32:20AM +0800, Chen-Yu Tsai wrote:
 The GMAC uses 1 of 2 sources for its transmit clock, depending on the
 PHY interface mode. Add both sources as dummy clocks, and as parents
 to the GMAC clock node.
 
 Signed-off-by: Chen-Yu Tsai w...@csie.org
 ---
  arch/arm/boot/dts/sun7i-a20.dtsi | 28 
  1 file changed, 28 insertions(+)
 
 diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi 
 b/arch/arm/boot/dts/sun7i-a20.dtsi
 index 1595e9a..fc7f470 100644
 --- a/arch/arm/boot/dts/sun7i-a20.dtsi
 +++ b/arch/arm/boot/dts/sun7i-a20.dtsi
 @@ -314,6 +314,34 @@
   };
  
   /*
 +  * The following two are dummy clocks, placeholders used
 +  * on gmac_tx clock. The actual frequency and availability
 +  * depends on the external PHY, operation mode and link
 +  * speed.
 +  */

If it depends on the external PHY, I guess that means it also depends
on the board, right? Or is the GMAC supposed to always have that clock
running at 25MHz, no matter what PHY is connected to it?

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com


signature.asc
Description: Digital signature


Re: [PATCH v3 2/8] ARM: dts: sun7i: Add GMAC clock node to sun7i DTSI

2014-02-03 Thread Chen-Yu Tsai
On Tue, Feb 4, 2014 at 3:34 AM, Maxime Ripard
maxime.rip...@free-electrons.com wrote:
 On Mon, Feb 03, 2014 at 11:32:20AM +0800, Chen-Yu Tsai wrote:
 The GMAC uses 1 of 2 sources for its transmit clock, depending on the
 PHY interface mode. Add both sources as dummy clocks, and as parents
 to the GMAC clock node.

 Signed-off-by: Chen-Yu Tsai w...@csie.org
 ---
  arch/arm/boot/dts/sun7i-a20.dtsi | 28 
  1 file changed, 28 insertions(+)

 diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi 
 b/arch/arm/boot/dts/sun7i-a20.dtsi
 index 1595e9a..fc7f470 100644
 --- a/arch/arm/boot/dts/sun7i-a20.dtsi
 +++ b/arch/arm/boot/dts/sun7i-a20.dtsi
 @@ -314,6 +314,34 @@
   };

   /*
 +  * The following two are dummy clocks, placeholders used
 +  * on gmac_tx clock. The actual frequency and availability
 +  * depends on the external PHY, operation mode and link
 +  * speed.
 +  */

 If it depends on the external PHY, I guess that means it also depends
 on the board, right? Or is the GMAC supposed to always have that clock
 running at 25MHz, no matter what PHY is connected to it?

What I meant in the comment is that we cannot control the actual clock
rate of the TX clock. We can only select the source, and this is what
gmac_tx clock does. It is just a clock mux. The 125MHz and 25MHz clock
rates are used by the clk_set_rate in the stmmac glue layer to do
auto-reparenting.

The board dependent factor is what _type_ of PHY it is using, i.e.
MII, GMII, or RGMII. If it's MII, the PHY should provide the clock.
If it's RGMII, the internal clock would be used. GMII is a mix of
both. The actual clock rate depends on the link speed.

I should rephrase the comment along the lines of:

The following two are dummy clocks, placeholders used in the gmac_tx
clock. The gmac driver will choose one parent depending on the PHY
interface mode, using clk_set_rate auto-reparenting.
The actual TX clock rate is not controlled by the gmac_tx clock.


Cheers
ChenYu
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v3 2/8] ARM: dts: sun7i: Add GMAC clock node to sun7i DTSI

2014-02-02 Thread Chen-Yu Tsai
The GMAC uses 1 of 2 sources for its transmit clock, depending on the
PHY interface mode. Add both sources as dummy clocks, and as parents
to the GMAC clock node.

Signed-off-by: Chen-Yu Tsai 
---
 arch/arm/boot/dts/sun7i-a20.dtsi | 28 
 1 file changed, 28 insertions(+)

diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
index 1595e9a..fc7f470 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -314,6 +314,34 @@
};
 
/*
+* The following two are dummy clocks, placeholders used
+* on gmac_tx clock. The actual frequency and availability
+* depends on the external PHY, operation mode and link
+* speed.
+*/
+   mii_phy_tx_clk: clk@2 {
+   #clock-cells = <0>;
+   compatible = "fixed-clock";
+   clock-frequency = <2500>;
+   clock-output-names = "mii_phy_tx";
+   };
+
+   gmac_int_tx_clk: clk@3 {
+   #clock-cells = <0>;
+   compatible = "fixed-clock";
+   clock-frequency = <12500>;
+   clock-output-names = "gmac_int_tx";
+   };
+
+   gmac_tx_clk: clk@01c20164 {
+   #clock-cells = <0>;
+   compatible = "allwinner,sun7i-a20-gmac-clk";
+   reg = <0x01c20164 0x4>;
+   clocks = <_phy_tx_clk>, <_int_tx_clk>;
+   clock-output-names = "gmac_tx";
+   };
+
+   /*
 * Dummy clock used by output clocks
 */
osc24M_32k: clk@1 {
-- 
1.9.rc1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v3 2/8] ARM: dts: sun7i: Add GMAC clock node to sun7i DTSI

2014-02-02 Thread Chen-Yu Tsai
The GMAC uses 1 of 2 sources for its transmit clock, depending on the
PHY interface mode. Add both sources as dummy clocks, and as parents
to the GMAC clock node.

Signed-off-by: Chen-Yu Tsai w...@csie.org
---
 arch/arm/boot/dts/sun7i-a20.dtsi | 28 
 1 file changed, 28 insertions(+)

diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
index 1595e9a..fc7f470 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -314,6 +314,34 @@
};
 
/*
+* The following two are dummy clocks, placeholders used
+* on gmac_tx clock. The actual frequency and availability
+* depends on the external PHY, operation mode and link
+* speed.
+*/
+   mii_phy_tx_clk: clk@2 {
+   #clock-cells = 0;
+   compatible = fixed-clock;
+   clock-frequency = 2500;
+   clock-output-names = mii_phy_tx;
+   };
+
+   gmac_int_tx_clk: clk@3 {
+   #clock-cells = 0;
+   compatible = fixed-clock;
+   clock-frequency = 12500;
+   clock-output-names = gmac_int_tx;
+   };
+
+   gmac_tx_clk: clk@01c20164 {
+   #clock-cells = 0;
+   compatible = allwinner,sun7i-a20-gmac-clk;
+   reg = 0x01c20164 0x4;
+   clocks = mii_phy_tx_clk, gmac_int_tx_clk;
+   clock-output-names = gmac_tx;
+   };
+
+   /*
 * Dummy clock used by output clocks
 */
osc24M_32k: clk@1 {
-- 
1.9.rc1

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/