[U-Boot-Users] [PATCH 4/6] AT572D940HF-EB Support v2 (include files part 2)
Jean-Christophe PLAGNIOL-VILLARD
plagnioj at jcrosoft.com
Sat Jul 5 22:38:17 CEST 2008
On 16:14 Thu 12 Jun , Antonio R. Costa wrote:
>
> Signed-off-by: Antonio R. Costa <antonio.costa at atmel.com>
>
> diff --git a/include/asm-arm/arch-at572d940hf/at572d940hf.h b/include/asm-arm/arch-at572d940hf/at572d940hf.h
> new file mode 100644
> index 0000000..53f049b
> --- /dev/null
> +++ b/include/asm-arm/arch-at572d940hf/at572d940hf.h
> @@ -0,0 +1,147 @@
> +/*
> + * include/asm-arm/arch-at91/AT572D940HFhf.h
> + *
> + * (C) 2008 Antonio R. Costa
> + *
> + * Common definitions.
> + * Based on AT572D940HFHF datasheet rev A.
> + *
> + * 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.
> + */
> +
> +#ifndef AT572D940HFHF_H
> +#define AT572D940HFHF_H
> +
> +/*
> + * Peripheral identifiers/interrupts.
> + */
> +#define AT91_ID_FIQ 0 /* Advanced Interrupt Controller (FIQ) */
> +#define AT91_ID_SYS 1 /* System Peripherals */
> +#define AT572D940HF_ID_PIOA 2 /* Parallel IO Controller A */
> +#define AT572D940HF_ID_PIOB 3 /* Parallel IO Controller B */
> +#define AT572D940HF_ID_PIOC 4 /* Parallel IO Controller C */
> +#define AT572D940HF_ID_EMAC 5 /* Ethernet */
> +#define AT572D940HF_ID_US0 6 /* USART 0 */
> +#define AT572D940HF_ID_US1 7 /* USART 1 */
> +#define AT572D940HF_ID_US2 8 /* USART 2 */
> +#define AT572D940HF_ID_MCI 9 /* Multimedia Card Interface */
> +#define AT572D940HF_ID_UDP 10 /* USB Device Port */
> +#define AT572D940HF_ID_TWI 11 /* Two-Wire Interface */
> +#define AT572D940HF_ID_TWI0 11 /* Two-Wire Interface */
> +#define AT572D940HF_ID_SPI0 12 /* Serial Peripheral Interface 0 */
> +#define AT572D940HF_ID_SPI1 13 /* Serial Peripheral Interface 1 */
> +#define AT572D940HF_ID_SSC 14 /* Serial Synchronous Controller */
> +#define AT572D940HF_ID_SSC0 14 /* Serial Synchronous Controller */
> +#define AT572D940HF_ID_SSC1 15 /* Serial Synchronous Controller */
> +#define AT572D940HF_ID_SSC2 16 /* Serial Synchronous Controller */
> +#define AT572D940HF_ID_TC0 17 /* Timer Counter 0 */
> +#define AT572D940HF_ID_TC1 18 /* Timer Counter 1 */
> +#define AT572D940HF_ID_TC2 19 /* Timer Counter 2 */
> +#define AT572D940HF_ID_UHP 20 /* USB Host port */
> +#define AT572D940HF_ID_SSC3 21 /* Serial Synchronous Controller */
> +#define AT572D940HF_ID_TWI1 22 /* Two-Wire Interface */
> +#define AT572D940HF_ID_CAN0 23 /* CAN Controller */
> +#define AT572D940HF_ID_CAN1 24 /* CAN Controller */
> +#define AT572D940HF_ID_mHALT 25 /* mAgicV DSP halt int */
> +#define AT572D940HF_ID_mSIRQ1 26 /* mAgicV DSP SIRQ1 int */
> +#define AT572D940HF_ID_mEXC 27 /* mAgicV DSP Exception int */
> +#define AT572D940HF_ID_mEDMA 28 /* mAgicV DSP end of DMA transfer int */
> +#define AT572D940HF_ID_IRQ0 29 /* Advanced Interrupt Controller (IRQ0) */
> +#define AT572D940HF_ID_IRQ1 30 /* Advanced Interrupt Controller (IRQ1) */
> +#define AT572D940HF_ID_IRQ2 31 /* Advanced Interrupt Controller (IRQ2) */
> +
> +#define AT91_ID_US0 AT572D940HF_ID_US0
> +#define AT91_ID_US1 AT572D940HF_ID_US1
> +#define AT91_ID_US2 AT572D940HF_ID_US2
> +#define AT91_ID_US3 AT572D940HF_ID_US3
few whitespaces
> +
> +#define AT91_ID_UHP AT572D940HF_ID_UHP
> +#define AT91_PMC_UHP AT572D940HF_ID_UHP
> +
> +/*
> + * User Peripheral physical base addresses.
> + */
> +#define AT572D940HF_BASE_TCB0 0xfffa0000
> +#define AT572D940HF_BASE_TC0 0xfffa0000
> +#define AT572D940HF_BASE_TC1 0xfffa0040
> +#define AT572D940HF_BASE_TC2 0xfffa0080
> +#define AT572D940HF_BASE_UDP 0xfffa4000
> +#define AT572D940HF_BASE_MCI 0xfffa8000
> +#define AT572D940HF_BASE_TWI 0xfffac000
> +#define AT572D940HF_BASE_US0 0xfffb0000
> +#define AT572D940HF_BASE_US1 0xfffb4000
> +#define AT572D940HF_BASE_US2 0xfffb8000
> +#define AT572D940HF_BASE_SSC 0xfffbc000
> +#define AT572D940HF_BASE_ISI 0xfffc0000
> +#define AT572D940HF_BASE_EMAC 0xfffd8000
> +#define AT572D940HF_BASE_SPI0 0xfffc8000
> +#define AT572D940HF_BASE_SPI1 0xfffcc000
> +#define AT572D940HF_BASE_US3 0xfffd0000
> +#define AT572D940HF_BASE_US4 0xfffd4000
> +#define AT572D940HF_BASE_US5 0xfffd8000
> +#define AT572D940HF_BASE_TCB1 0xfffdc000
> +#define AT572D940HF_BASE_TC3 0xfffdc000
> +#define AT572D940HF_BASE_TC4 0xfffdc040
> +#define AT572D940HF_BASE_TC5 0xfffdc080
> +#define AT572D940HF_BASE_ADC 0xfffe0000
> +#define AT572D940HF_BASE_RSTC 0xfffffd00
> +#define AT91_BASE_SYS 0xffffea00
> +
> +#define AT91_BASE_EMAC AT572D940HF_BASE_EMAC
> +#define AT91_BASE_SPI AT572D940HF_BASE_SPI0
> +#define MMCI_BASE AT572D940HF_BASE_MCI
> +
> +/*
> + * System Peripherals (offset from AT91_BASE_SYS)
> + */
> +#define AT91_ECC (0xffffe800 - AT91_BASE_SYS)
> +#define AT91_SDRAMC (0xffffea00 - AT91_BASE_SYS)
> +#define AT91_SMC (0xffffec00 - AT91_BASE_SYS)
> +#define AT91_MATRIX (0xffffee00 - AT91_BASE_SYS)
> +#define AT91_CCFG (0xffffef10 - AT91_BASE_SYS)
> +#define AT91_AIC (0xfffff000 - AT91_BASE_SYS)
> +#define AT91_DBGU (0xfffff200 - AT91_BASE_SYS)
> +#define AT91_PIOA (0xfffff400 - AT91_BASE_SYS)
> +#define AT91_PIOB (0xfffff600 - AT91_BASE_SYS)
> +#define AT91_PIOC (0xfffff800 - AT91_BASE_SYS)
> +#define AT91_PMC (0xfffffc00 - AT91_BASE_SYS)
> +#define AT91_RSTC (0xfffffd00 - AT91_BASE_SYS)
> +#define AT91_SHDWC (0xfffffd10 - AT91_BASE_SYS)
> +#define AT91_RTT (0xfffffd20 - AT91_BASE_SYS)
> +#define AT91_PIT (0xfffffd30 - AT91_BASE_SYS)
> +#define AT91_WDT (0xfffffd40 - AT91_BASE_SYS)
> +#define AT91_GPBR (0xfffffd50 - AT91_BASE_SYS)
> +
> +#define AT91_USART0 AT572D940HF_BASE_US0
> +#define AT91_USART1 AT572D940HF_BASE_US1
> +#define AT91_USART2 AT572D940HF_BASE_US2
> +#define AT91_USART3 AT572D940HF_BASE_US3
> +#define AT91_USART4 AT572D940HF_BASE_US4
> +#define AT91_USART5 AT572D940HF_BASE_US5
> +
> +/*
> + * Internal Memory.
> + */
> +#define AT572D940HF_ROM_BASE 0x00400000 /* Internal ROM base address */
> +#define AT572D940HF_ROM_SIZE SZ_32K /* Internal ROM size (32Kb) */
> +
> +#define AT572D940HF_SRAM0_BASE 0x00100000 /* Internal SRAM 0 base address */
> +#define AT572D940HF_SRAM0_SIZE SZ_16K /* Internal SRAM 0 size (4Kb) */
> +#define AT572D940HF_SRAM1_BASE 0x00200000 /* Internal SRAM 0 base address */
> +#define AT572D940HF_SRAM1_SIZE SZ_16K /* Internal SRAM 0 size (4Kb) */
> +#define AT572D940HF_SRAM2_BASE 0x00300000 /* Internal SRAM 1 base address */
> +#define AT572D940HF_SRAM2_SIZE SZ_16K /* Internal SRAM 1 size (4Kb) */
> +
> +//SDRAM
No c++ comment please
> +#define AT572D940HF_SDRAM_BASE 0x20000000
> +
> +// USB Host
No c++ comment please
> +#define AT572D940HF_UHP_BASE 0x00500000 /* USB Host controller */
> +
> +#define AT91SAM9XE_FLASH_BASE 0x00200000 /* Internal FLASH base address */
> +#define AT91SAM9XE_SRAM_BASE 0x00300000 /* Internal SRAM base address */
> +
> +#endif
> diff --git a/include/asm-arm/arch-at572d940hf/at572d940hf_matrix.h b/include/asm-arm/arch-at572d940hf/at572d940hf_matrix.h
> new file mode 100644
> index 0000000..a8e9fec
> --- /dev/null
> +++ b/include/asm-arm/arch-at572d940hf/at572d940hf_matrix.h
> @@ -0,0 +1,78 @@
> +/*
Please adapt this file for your the at572d940hf or if its really the
same include the at91sam9260_matrix.h
> + * include/asm-arm/arch-at91/at91sam9260_matrix.h
> + *
> + * Memory Controllers (MATRIX, EBI) - System peripherals registers.
> + * Based on AT91SAM9260 datasheet revision B.
> + *
> diff --git a/include/asm-arm/arch-at572d940hf/at572d940hf_mc.h b/include/asm-arm/arch-at572d940hf/at572d940hf_mc.h
> new file mode 100644
> index 0000000..161d504
> --- /dev/null
> +++ b/include/asm-arm/arch-at572d940hf/at572d940hf_mc.h
> @@ -0,0 +1,140 @@
> +/*
Please adapt this file for your the at572d940hf or if its really the
same include the at91sam926x_mc.h
> + * include/asm-arm/arch-at91/at91sam926x_mc.h
> + *
> + * Memory Controllers (SMC, SDRAMC) - System peripherals registers.
> + * Based on AT91SAM9261 datasheet revision D.
> + *
> + * 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.
> + */
> diff --git a/include/asm-arm/arch-at572d940hf/interrupts.h b/include/asm-arm/arch-at572d940hf/interrupts.h
> new file mode 100644
> index 0000000..71d3f5d
> --- /dev/null
> +++ b/include/asm-arm/arch-at572d940hf/interrupts.h
> @@ -0,0 +1,41 @@
> +/*
> + * include/asm-arm/arch-at572d940/at91_aic.h
> + *
> + * Copyright (C) 2008 Antonio R. Costa
> + * Copyright (C) ATMEL
> + *
> + * Advanced Interrupt Controller (AIC).
> + * Based on AT572D940 datasheet.
> + *
> + * 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.
> + */
> +
> +#ifndef __AT572D940_INTERRUPTS_H__
> +#define __AT572D940_INTERRUPTS_H__
> +
> +#include <asm/arch/at91_aic.h>
> +
> +typedef void (*irq_handler_t) (unsigned long int);
> +
some coding style issue
> +#define SET_IRQ_HANDLER(s,m,h) \
> +do { \
> + AIC_WRITE(AIC_SMR(s),m); \
> + AIC_WRITE(AIC_SVR(s),h); \
> + AIC_WRITE(AIC_IECR,(1<<s)); \
> +} while(0)
> +
> +#define RESET_IRQ_HANDLER(s) \
> +do { \
> + AIC_WRITE(AIC_SMR(s),0); \
> + AIC_WRITE(AIC_SVR(s),0); \
> + AIC_WRITE(AIC_IDCR,(1<<s)); \
> +} while(0)
> +
> +#define IRQ_ACKNOWLEDGE(n) AIC_WRITE(AIC_EOICR,(n))
> +
> +extern reset_irqs(void);
> +
Best Regards,
J.
More information about the U-Boot
mailing list