[U-Boot] [PATCH 4/4] SPEAr : macb driver support added for spear310 and spear320
Tom
Tom.Rix at windriver.com
Mon Mar 29 00:40:51 CEST 2010
Vipin KUMAR wrote:
> Signed-off-by: Vipin Kumar <vipin.kumar at st.com>
> ---
> board/spear/spear310/spear310.c | 9 ++++++++-
> board/spear/spear320/spear320.c | 6 +++++-
> include/asm-arm/arch-spear/clk.h | 27 +++++++++++++++++++++++++++
> include/configs/spear3xx.h | 21 +++++++++++++++++++++
> 4 files changed, 61 insertions(+), 2 deletions(-)
> create mode 100644 include/asm-arm/arch-spear/clk.h
>
> diff --git a/board/spear/spear310/spear310.c b/board/spear/spear310/spear310.c
> index 2c35a55..6f5c52a 100755
> --- 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 spear_mii_initialize(0);
> + spear_mii_initialize(0);
> +
> + macb_eth_initialize(0, (void *)SPR310_MACB0_BASE, SPR310_MACB0_PHY);
> + macb_eth_initialize(1, (void *)SPR310_MACB1_BASE, SPR310_MACB1_PHY);
> + macb_eth_initialize(2, (void *)SPR310_MACB2_BASE, SPR310_MACB2_PHY);
> + macb_eth_initialize(3, (void *)SPR310_MACB3_BASE, SPR310_MACB3_PHY);
> +
> + return 0;
> }
> diff --git a/board/spear/spear320/spear320.c b/board/spear/spear320/spear320.c
> index a804123..e9d8f9f 100755
> --- 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 spear_mii_initialize(0);
> + spear_mii_initialize(0);
> +
> + macb_eth_initialize(0, (void *)SPR320_MACB0_BASE, SPR320_MACB0_PHY);
> +
> + return 0;
> }
> diff --git a/include/asm-arm/arch-spear/clk.h b/include/asm-arm/arch-spear/clk.h
> new file mode 100644
> index 0000000..343c6ce
> --- /dev/null
> +++ b/include/asm-arm/arch-spear/clk.h
> @@ -0,0 +1,27 @@
> +/*
> + * (C) Copyright 2009
> + * Vipin Kumar, STMicroelectronics, <vipin.kumar at st.com>
> + *
> + * 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 83000000;
> +}
These seems like overkill but supports the macb driver..
Ok
> diff --git a/include/configs/spear3xx.h b/include/configs/spear3xx.h
> index b69e734..3bf01b5 100755
> --- a/include/configs/spear3xx.h
> +++ b/include/configs/spear3xx.h
> @@ -44,6 +44,27 @@
> /* Ethernet configuration */
> #define CONFIG_SPEAR_ALTDESC
>
> +#if defined(CONFIG_SPEAR310)
> +#define CONFIG_MACB 1
> +#define CONFIG_MACB_SEARCH_PHY 1
> +
> +#define SPR310_MACB0_BASE 0xB0000000
> +#define SPR310_MACB1_BASE 0xB0800000
> +#define SPR310_MACB2_BASE 0xB1000000
> +#define SPR310_MACB3_BASE 0xB1800000
> +#define SPR310_MACB0_PHY 0x01
> +#define SPR310_MACB1_PHY 0x03
> +#define SPR310_MACB2_PHY 0x05
> +#define SPR310_MACB3_PHY 0x07
> +
> +#elif defined(CONFIG_SPEAR320)
> +#define CONFIG_MACB 1
> +#define CONFIG_MACB_SEARCH_PHY 1
> +
> +#define SPR320_MACB0_BASE 0xAA000000
> +#define SPR320_MACB0_PHY 0x01
> +#endif
> +
> /* Serial Configuration (PL011) */
> #define CONFIG_SYS_SERIAL0 0xD0000000
>
The non CONFIG_* #defines should be in asm/arch-spear/hardware.h or
another appropriate arch *.h
Tom
More information about the U-Boot
mailing list