[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