[U-Boot] [PATCH v2 09/17] SPEAr : macb driver support added for spear310 and spear320

2010-04-25 Thread Vipin KUMAR
Signed-off-by: Vipin Kumar 
---
 arch/arm/include/asm/arch-spear/clk.h  |   27 +++
 arch/arm/include/asm/arch-spear/hardware.h |7 +++
 board/spear/spear310/spear310.c|9 -
 board/spear/spear320/spear320.c|6 +-
 include/configs/spear3xx.h |   13 +
 5 files changed, 60 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm/include/asm/arch-spear/clk.h

diff --git a/arch/arm/include/asm/arch-spear/clk.h 
b/arch/arm/include/asm/arch-spear/clk.h
new file mode 100644
index 000..343c6ce
--- /dev/null
+++ b/arch/arm/include/asm/arch-spear/clk.h
@@ -0,0 +1,27 @@
+/*
+ * (C) Copyright 2009
+ * Vipin Kumar, STMicroelectronics, 
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+static inline unsigned long get_macb_pclk_rate(unsigned int dev_id)
+{
+   return 8300;
+}
diff --git a/arch/arm/include/asm/arch-spear/hardware.h 
b/arch/arm/include/asm/arch-spear/hardware.h
index 39d64b6..9f1e154 100644
--- a/arch/arm/include/asm/arch-spear/hardware.h
+++ b/arch/arm/include/asm/arch-spear/hardware.h
@@ -56,6 +56,11 @@
 #define CONFIG_SPEAR_EMIBASE   (0x4F00)
 #define CONFIG_SPEAR_RASBASE   (0xB400)
 
+#define CONFIG_SYS_MACB0_BASE  (0xB000)
+#define CONFIG_SYS_MACB1_BASE  (0xB080)
+#define CONFIG_SYS_MACB2_BASE  (0xB100)
+#define CONFIG_SYS_MACB3_BASE  (0xB180)
+
 #elif defined(CONFIG_SPEAR320)
 #define CONFIG_SYS_I2C_BASE(0xD018)
 #define CONFIG_SPEAR_FSMCBASE  (0x4C00)
@@ -63,5 +68,7 @@
 #define CONFIG_SPEAR_EMIBASE   (0x4000)
 #define CONFIG_SPEAR_RASBASE   (0xB300)
 
+#define CONFIG_SYS_MACB0_BASE  (0xAA00)
+
 #endif
 #endif /* _ASM_ARCH_HARDWARE_H */
diff --git a/board/spear/spear310/spear310.c b/board/spear/spear310/spear310.c
index e8a6552..1207709 100644
--- a/board/spear/spear310/spear310.c
+++ b/board/spear/spear310/spear310.c
@@ -61,5 +61,12 @@ int board_nand_init(struct nand_chip *nand)
 
 int board_eth_init(bd_t *bis)
 {
-   return dw_mii_initialize(0, CONFIG_SPEAR_ETHBASE);
+   dw_mii_initialize(0, CONFIG_SPEAR_ETHBASE);
+
+   macb_eth_initialize(0, (void *)CONFIG_SYS_MACB0_BASE, CONFIG_MACB0_PHY);
+   macb_eth_initialize(1, (void *)CONFIG_SYS_MACB1_BASE, CONFIG_MACB1_PHY);
+   macb_eth_initialize(2, (void *)CONFIG_SYS_MACB2_BASE, CONFIG_MACB2_PHY);
+   macb_eth_initialize(3, (void *)CONFIG_SYS_MACB3_BASE, CONFIG_MACB3_PHY);
+
+   return 0;
 }
diff --git a/board/spear/spear320/spear320.c b/board/spear/spear320/spear320.c
index 72bc9a5..efc9a99 100644
--- a/board/spear/spear320/spear320.c
+++ b/board/spear/spear320/spear320.c
@@ -61,5 +61,9 @@ int board_nand_init(struct nand_chip *nand)
 
 int board_eth_init(bd_t *bis)
 {
-   return dw_mii_initialize(0, CONFIG_SPEAR_ETHBASE);
+   dw_mii_initialize(0, CONFIG_SPEAR_ETHBASE);
+
+   macb_eth_initialize(0, (void *)CONFIG_SYS_MACB0_BASE, CONFIG_MACB0_PHY);
+
+   return 0;
 }
diff --git a/include/configs/spear3xx.h b/include/configs/spear3xx.h
index 502c50f..689d914 100644
--- a/include/configs/spear3xx.h
+++ b/include/configs/spear3xx.h
@@ -44,6 +44,19 @@
 /* Ethernet driver configuration */
 #define CONFIG_DW_ALTDESCRIPTOR1
 
+#if defined(CONFIG_SPEAR310)
+#define CONFIG_MACB1
+#define CONFIG_MACB0_PHY   0x01
+#define CONFIG_MACB1_PHY   0x03
+#define CONFIG_MACB2_PHY   0x05
+#define CONFIG_MACB3_PHY   0x07
+
+#elif defined(CONFIG_SPEAR320)
+#define CONFIG_MACB1
+#define CONFIG_MACB0_PHY   0x01
+
+#endif
+
 /* Serial Configuration (PL011) */
 #define CONFIG_SYS_SERIAL0 0xD000
 
-- 
1.6.0.2

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v2 09/17] SPEAr : macb driver support added for spear310 and spear320

2010-05-02 Thread Tom Rix
Vipin KUMAR wrote:

Add more detail in the commit to the what this change is and why it is needed.

> Signed-off-by: Vipin Kumar 
> ---
>  arch/arm/include/asm/arch-spear/clk.h  |   27 +++
>  arch/arm/include/asm/arch-spear/hardware.h |7 +++
>  board/spear/spear310/spear310.c|9 -
>  board/spear/spear320/spear320.c|6 +-
>  include/configs/spear3xx.h |   13 +
>  5 files changed, 60 insertions(+), 2 deletions(-)
>  create mode 100644 arch/arm/include/asm/arch-spear/clk.h
> 
> diff --git a/arch/arm/include/asm/arch-spear/clk.h 
> b/arch/arm/include/asm/arch-spear/clk.h
> new file mode 100644
> index 000..343c6ce
> --- /dev/null
> +++ b/arch/arm/include/asm/arch-spear/clk.h
> @@ -0,0 +1,27 @@
> +/*
> + * (C) Copyright 2009

2009 ?
Maybe this should be 2010?
Check globally.

> + * Vipin Kumar, STMicroelectronics, 
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
> + * MA 02111-1307 USA
> + */
> +
> +static inline unsigned long get_macb_pclk_rate(unsigned int dev_id)
> +{
> + return 8300;
> +}
> diff --git a/arch/arm/include/asm/arch-spear/hardware.h 
> b/arch/arm/include/asm/arch-spear/hardware.h
> index 39d64b6..9f1e154 100644
> --- a/arch/arm/include/asm/arch-spear/hardware.h
> +++ b/arch/arm/include/asm/arch-spear/hardware.h
> @@ -56,6 +56,11 @@
>  #define CONFIG_SPEAR_EMIBASE (0x4F00)
>  #define CONFIG_SPEAR_RASBASE (0xB400)
>  
> +#define CONFIG_SYS_MACB0_BASE(0xB000)
> +#define CONFIG_SYS_MACB1_BASE(0xB080)
> +#define CONFIG_SYS_MACB2_BASE(0xB100)
> +#define CONFIG_SYS_MACB3_BASE(0xB180)
> +
>  #elif defined(CONFIG_SPEAR320)
>  #define CONFIG_SYS_I2C_BASE  (0xD018)
>  #define CONFIG_SPEAR_FSMCBASE(0x4C00)
> @@ -63,5 +68,7 @@
>  #define CONFIG_SPEAR_EMIBASE (0x4000)
>  #define CONFIG_SPEAR_RASBASE (0xB300)
>  
> +#define CONFIG_SYS_MACB0_BASE(0xAA00)
> +
>  #endif
>  #endif /* _ASM_ARCH_HARDWARE_H */
> diff --git a/board/spear/spear310/spear310.c b/board/spear/spear310/spear310.c
> index e8a6552..1207709 100644
> --- a/board/spear/spear310/spear310.c
> +++ b/board/spear/spear310/spear310.c
> @@ -61,5 +61,12 @@ int board_nand_init(struct nand_chip *nand)
>  
>  int board_eth_init(bd_t *bis)
>  {
> - return dw_mii_initialize(0, CONFIG_SPEAR_ETHBASE);
> + dw_mii_initialize(0, CONFIG_SPEAR_ETHBASE);

Previously, status of dw_mii_initialize was forward up to caller.
Now it is ignored.
Add a check if it passes fails.
Foward check status to caller

> +
> + macb_eth_initialize(0, (void *)CONFIG_SYS_MACB0_BASE, CONFIG_MACB0_PHY);
> + macb_eth_initialize(1, (void *)CONFIG_SYS_MACB1_BASE, CONFIG_MACB1_PHY);
> + macb_eth_initialize(2, (void *)CONFIG_SYS_MACB2_BASE, CONFIG_MACB2_PHY);
> + macb_eth_initialize(3, (void *)CONFIG_SYS_MACB3_BASE, CONFIG_MACB3_PHY);
> +
> + return 0;
>  }
> diff --git a/board/spear/spear320/spear320.c b/board/spear/spear320/spear320.c
> index 72bc9a5..efc9a99 100644
> --- a/board/spear/spear320/spear320.c
> +++ b/board/spear/spear320/spear320.c
> @@ -61,5 +61,9 @@ int board_nand_init(struct nand_chip *nand)
>  
>  int board_eth_init(bd_t *bis)
>  {
> - return dw_mii_initialize(0, CONFIG_SPEAR_ETHBASE);
> + dw_mii_initialize(0, CONFIG_SPEAR_ETHBASE);
> +
> + macb_eth_initialize(0, (void *)CONFIG_SYS_MACB0_BASE, CONFIG_MACB0_PHY);
> +
> + return 0;
>  }
> diff --git a/include/configs/spear3xx.h b/include/configs/spear3xx.h
> index 502c50f..689d914 100644
> --- a/include/configs/spear3xx.h
> +++ b/include/configs/spear3xx.h
> @@ -44,6 +44,19 @@
>  /* Ethernet driver configuration */
>  #define CONFIG_DW_ALTDESCRIPTOR  1
>  
> +#if defined(CONFIG_SPEAR310)
> +#define CONFIG_MACB  1
> +#define CONFIG_MACB0_PHY 0x01
> +#define CONFIG_MACB1_PHY 0x03
> +#define CONFIG_MACB2_PHY 0x05
> +#define CONFIG_MACB3_PHY 

Re: [U-Boot] [PATCH v2 09/17] SPEAr : macb driver support added for spear310 and spear320

2010-05-04 Thread Vipin KUMAR
On 5/3/2010 5:44 AM, Tom Rix wrote:
> Vipin KUMAR wrote:
> 
> Add more detail in the commit to the what this change is and why it is
> needed.
> 
>> Signed-off-by: Vipin Kumar 
>> ---
>>  arch/arm/include/asm/arch-spear/clk.h  |   27
>> +++
>>  arch/arm/include/asm/arch-spear/hardware.h |7 +++
>>  board/spear/spear310/spear310.c|9 -
>>  board/spear/spear320/spear320.c|6 +-
>>  include/configs/spear3xx.h |   13 +
>>  5 files changed, 60 insertions(+), 2 deletions(-)
>>  create mode 100644 arch/arm/include/asm/arch-spear/clk.h
>>
>> diff --git a/arch/arm/include/asm/arch-spear/clk.h
>> b/arch/arm/include/asm/arch-spear/clk.h
>> new file mode 100644
>> index 000..343c6ce
>> --- /dev/null
>> +++ b/arch/arm/include/asm/arch-spear/clk.h
>> @@ -0,0 +1,27 @@
>> +/*
>> + * (C) Copyright 2009
> 
> 2009 ?
> Maybe this should be 2010?
> Check globally.

OK. Please find the related changes in v3

>> + * Vipin Kumar, STMicroelectronics, 
>> + *
>> + * See file CREDITS for list of people who contributed to this
>> + * project.
>> + *
>> + * This program is free software; you can redistribute it and/or
>> + * modify it under the terms of the GNU General Public License as
>> + * published by the Free Software Foundation; either version 2 of
>> + * the License, or (at your option) any later version.
>> + *
>> + * This program is distributed in the hope that it will be useful,
>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
>> + * GNU General Public License for more details.
>> + *
>> + * You should have received a copy of the GNU General Public License
>> + * along with this program; if not, write to the Free Software
>> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
>> + * MA 02111-1307 USA
>> + */
>> +
>> +static inline unsigned long get_macb_pclk_rate(unsigned int dev_id)
>> +{
>> +return 8300;
>> +}
>> diff --git a/arch/arm/include/asm/arch-spear/hardware.h
>> b/arch/arm/include/asm/arch-spear/hardware.h
>> index 39d64b6..9f1e154 100644
>> --- a/arch/arm/include/asm/arch-spear/hardware.h
>> +++ b/arch/arm/include/asm/arch-spear/hardware.h
>> @@ -56,6 +56,11 @@
>>  #define CONFIG_SPEAR_EMIBASE(0x4F00)
>>  #define CONFIG_SPEAR_RASBASE(0xB400)
>>  
>> +#define CONFIG_SYS_MACB0_BASE(0xB000)
>> +#define CONFIG_SYS_MACB1_BASE(0xB080)
>> +#define CONFIG_SYS_MACB2_BASE(0xB100)
>> +#define CONFIG_SYS_MACB3_BASE(0xB180)
>> +
>>  #elif defined(CONFIG_SPEAR320)
>>  #define CONFIG_SYS_I2C_BASE(0xD018)
>>  #define CONFIG_SPEAR_FSMCBASE(0x4C00)
>> @@ -63,5 +68,7 @@
>>  #define CONFIG_SPEAR_EMIBASE(0x4000)
>>  #define CONFIG_SPEAR_RASBASE(0xB300)
>>  
>> +#define CONFIG_SYS_MACB0_BASE(0xAA00)
>> +
>>  #endif
>>  #endif /* _ASM_ARCH_HARDWARE_H */
>> diff --git a/board/spear/spear310/spear310.c
>> b/board/spear/spear310/spear310.c
>> index e8a6552..1207709 100644
>> --- a/board/spear/spear310/spear310.c
>> +++ b/board/spear/spear310/spear310.c
>> @@ -61,5 +61,12 @@ int board_nand_init(struct nand_chip *nand)
>>  
>>  int board_eth_init(bd_t *bis)
>>  {
>> -return dw_mii_initialize(0, CONFIG_SPEAR_ETHBASE);
>> +dw_mii_initialize(0, CONFIG_SPEAR_ETHBASE);
> 
> Previously, status of dw_mii_initialize was forward up to caller.
> Now it is ignored.
> Add a check if it passes fails.
> Foward check status to caller

OK. Please find the suggested modifications in v3

>> +
>> +macb_eth_initialize(0, (void *)CONFIG_SYS_MACB0_BASE,
>> CONFIG_MACB0_PHY);
>> +macb_eth_initialize(1, (void *)CONFIG_SYS_MACB1_BASE,
>> CONFIG_MACB1_PHY);
>> +macb_eth_initialize(2, (void *)CONFIG_SYS_MACB2_BASE,
>> CONFIG_MACB2_PHY);
>> +macb_eth_initialize(3, (void *)CONFIG_SYS_MACB3_BASE,
>> CONFIG_MACB3_PHY);
>> +
>> +return 0;
>>  }
>> diff --git a/board/spear/spear320/spear320.c
>> b/board/spear/spear320/spear320.c
>> index 72bc9a5..efc9a99 100644
>> --- a/board/spear/spear320/spear320.c
>> +++ b/board/spear/spear320/spear320.c
>> @@ -61,5 +61,9 @@ int board_nand_init(struct nand_chip *nand)
>>  
>>  int board_eth_init(bd_t *bis)
>>  {
>> -return dw_mii_initialize(0, CONFIG_SPEAR_ETHBASE);
>> +dw_mii_initialize(0, CONFIG_SPEAR_ETHBASE);
>> +
>> +macb_eth_initialize(0, (void *)CONFIG_SYS_MACB0_BASE,
>> CONFIG_MACB0_PHY);
>> +
>> +return 0;
>>  }
>> diff --git a/include/configs/spear3xx.h b/include/configs/spear3xx.h
>> index 502c50f..689d914 100644
>> --- a/include/configs/spear3xx.h
>> +++ b/include/configs/spear3xx.h
>> @@ -44,6 +44,19 @@
>>  /* Ethernet driver configuration */
>>  #define CONFIG_DW_ALTDESCRIPTOR1
>>  
>> +#if defined(CONFIG_SPEAR310)
>> +#define CONFIG_MACB1
>> +#define CONFIG_MACB0_PHY