[U-Boot] [PATCH v4] at91: Add support for taskit AT91SAM9G20 boards.

Andreas Bießmann andreas.devel at googlemail.com
Mon Aug 6 15:46:49 CEST 2012


Dear Markus Hubig,

One more thing to mention!

On 06.08.2012 15:01, Andreas Bießmann wrote:
> Dear Markus Hubig,

<snip>

>> diff --git a/board/taskit/stamp9g20/stamp9g20.c b/board/taskit/stamp9g20/stamp9g20.c
>> new file mode 100644
>> index 0000000..c85e6c3
>> --- /dev/null
>> +++ b/board/taskit/stamp9g20/stamp9g20.c
>> @@ -0,0 +1,192 @@
>> +/*
>> + * (C) Copyright 2007-2008
>> + * Stelian Pop <stelian at popies.net>
>> + * Lead Tech Design <www.leadtechdesign.com>
>> + *
>> + * Achim Ehrlich <aehrlich at taskit.de>
>> + * taskit GmbH <www.taskit.de>
>> + *
>> + * (C) Copyright 2012-
>> + * Markus Hubig <mhubig at imko.de>
>> + * IMKO GmbH <www.imko.de>
>> + *
>> + * 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
>> + */
>> +
>> +#include <common.h>
>> +#include <asm/io.h>
>> +#include <asm/arch/at91sam9260_matrix.h>
>> +#include <asm/arch/at91sam9_smc.h>
>> +#include <asm/arch/at91_common.h>
>> +#include <asm/arch/at91_pmc.h>
>> +#include <asm/arch/at91_rstc.h>
>> +#include <asm/arch/gpio.h>
>> +#include <watchdog.h>
>> +
>> +#ifdef CONFIG_MACB
>> +# include <net.h>
>> +# include <netdev.h>
>> +#endif
>> +
>> +DECLARE_GLOBAL_DATA_PTR;
>> +
>> +static void stamp9G20_nand_hw_init(void)
>> +{
>> +	struct at91_smc *smc = (struct at91_smc *)ATMEL_BASE_SMC;
>> +	struct at91_matrix *matrix = (struct at91_matrix *)ATMEL_BASE_MATRIX;
>> +	unsigned long csa;
>> +
>> +	/* Assign CS3 to NAND/SmartMedia Interface */
>> +	csa = readl(&matrix->ebicsa);
>> +	csa |= AT91_MATRIX_CS3A_SMC_SMARTMEDIA;
>> +	writel(csa, &matrix->ebicsa);
>> +
>> +	/* Configure SMC CS3 for NAND/SmartMedia */
>> +	writel(AT91_SMC_SETUP_NWE(1) | AT91_SMC_SETUP_NCS_WR(0) |
>> +		AT91_SMC_SETUP_NRD(1) | AT91_SMC_SETUP_NCS_RD(0),
>> +		&smc->cs[3].setup);
>> +	writel(AT91_SMC_PULSE_NWE(3) | AT91_SMC_PULSE_NCS_WR(3) |
>> +		AT91_SMC_PULSE_NRD(3) | AT91_SMC_PULSE_NCS_RD(3),
>> +		&smc->cs[3].pulse);
>> +	writel(AT91_SMC_CYCLE_NWE(5) | AT91_SMC_CYCLE_NRD(5),
>> +		&smc->cs[3].cycle);
>> +	writel(AT91_SMC_MODE_RM_NRD | AT91_SMC_MODE_WM_NWE |
>> +		AT91_SMC_MODE_EXNW_DISABLE |
>> +		AT91_SMC_MODE_DBW_8 |
>> +		AT91_SMC_MODE_TDF_CYCLE(2),
>> +		&smc->cs[3].mode);
>> +
>> +	/* Configure RDY/BSY */
>> +	at91_set_gpio_input(CONFIG_SYS_NAND_READY_PIN, 1);
>> +
>> +	/* Enable NandFlash */
>> +	at91_set_gpio_output(CONFIG_SYS_NAND_ENABLE_PIN, 1);
>> +}
>> +
>> +#ifdef CONFIG_MACB
>> +static void stamp9G20_macb_hw_init(void)
>> +{
>> +	struct at91_port *pioa = (struct at91_port *)ATMEL_BASE_PIOA;
>> +	struct at91_rstc *rstc = (struct at91_rstc *)ATMEL_BASE_RSTC;
>> +	unsigned long erstl;
>> +
>> +	/* Enable the PHY Chip via PA26 on the Stamp 2 Adaptor */
>> +	at91_set_gpio_output(AT91_PIN_PA26, 0);
>> +
>> +	/*
>> +	 * Disable pull-up on:
>> +	 *	RXDV (PA17) => PHY normal mode (not Test mode)
>> +	 *	ERX0 (PA14) => PHY ADDR0
>> +	 *	ERX1 (PA15) => PHY ADDR1
>> +	 *	ERX2 (PA25) => PHY ADDR2
>> +	 *	ERX3 (PA26) => PHY ADDR3
>> +	 *	ECRS (PA28) => PHY ADDR4  => PHYADDR = 0x0
>> +	 *
>> +	 * PHY has internal pull-down
>> +	 */
>> +	writel(pin_to_mask(AT91_PIN_PA14) |
>> +		pin_to_mask(AT91_PIN_PA15) |
>> +		pin_to_mask(AT91_PIN_PA17) |
>> +		pin_to_mask(AT91_PIN_PA18) |
>> +		pin_to_mask(AT91_PIN_PA28),
>> +		&pioa->pudr);
>> +
>> +	erstl = readl(&rstc->mr) & AT91_RSTC_MR_ERSTL_MASK;
>> +
>> +	/* Need to reset PHY -> 500ms reset */
>> +	writel(AT91_RSTC_KEY | AT91_RSTC_MR_ERSTL(13)
>> +		& ~AT91_RSTC_MR_URSTEN, &rstc->mr);

stamp9g20.c: In function 'stamp9G20_macb_hw_init':
stamp9g20.c:113:2: warning: suggest parentheses around arithmetic in
operand of '|' [-Wparentheses]

<snip>

Best regards

Andreas Bießmann


More information about the U-Boot mailing list