[U-Boot] [PATCH v2 3/4] arm: at91: add at91sam9n12ek board support

Josh Wu josh.wu at atmel.com
Wed Mar 20 12:14:55 CET 2013


Hi, Andreas

Sorry, the lcd initialization function still has wrong config. see my 
comment below.

On 3/20/2013 3:55 PM, Josh Wu wrote:
> Add support for following features:
>    - nand boot, with PMECC 2bit ECC for 512 bytes sector
>    - SPI flash boot
>    - SD card boot
>    - LCD support
>
> Signed-off-by: Josh Wu <josh.wu at atmel.com>
> ---
>   MAINTAINERS                                       |    3 +
>   arch/arm/cpu/arm926ejs/at91/Makefile              |    1 +
>   arch/arm/cpu/arm926ejs/at91/at91sam9n12_devices.c |  180 ++++++++++++++++
>   arch/arm/cpu/arm926ejs/at91/clock.c               |    4 +-
>   board/atmel/at91sam9n12ek/Makefile                |   52 +++++
>   board/atmel/at91sam9n12ek/at91sam9n12ek.c         |  228 ++++++++++++++++++++
>   boards.cfg                                        |    3 +
>   include/configs/at91sam9n12ek.h                   |  232 +++++++++++++++++++++
>   8 files changed, 701 insertions(+), 2 deletions(-)
>   create mode 100644 arch/arm/cpu/arm926ejs/at91/at91sam9n12_devices.c
>   create mode 100644 board/atmel/at91sam9n12ek/Makefile
>   create mode 100644 board/atmel/at91sam9n12ek/at91sam9n12ek.c
>   create mode 100644 include/configs/at91sam9n12ek.h
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index e792a8b..5ecb2f7 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1007,6 +1007,9 @@ Richard Woodruff <r-woodruff2 at ti.com>
>   
>   	omap2420h4	ARM1136EJS
>   
> +Josh Wu <josh.wu at atmel.com>
> +	at91sam9n12ek	ARM926EJS (AT91SAM9N12 SoC)
> +
>   Ilya Yanok <yanok at emcraft.com>
>   
>   	mcx		ARM ARMV7 (AM35x SoC)
> diff --git a/arch/arm/cpu/arm926ejs/at91/Makefile b/arch/arm/cpu/arm926ejs/at91/Makefile
> index 346e58f..c4408f6 100644
> --- a/arch/arm/cpu/arm926ejs/at91/Makefile
> +++ b/arch/arm/cpu/arm926ejs/at91/Makefile
> @@ -35,6 +35,7 @@ COBJS-$(CONFIG_AT91SAM9263)	+= at91sam9263_devices.o
>   COBJS-$(CONFIG_AT91SAM9RL)	+= at91sam9rl_devices.o
>   COBJS-$(CONFIG_AT91SAM9M10G45)	+= at91sam9m10g45_devices.o
>   COBJS-$(CONFIG_AT91SAM9G45)	+= at91sam9m10g45_devices.o
> +COBJS-$(CONFIG_AT91SAM9N12)	+= at91sam9n12_devices.o
>   COBJS-$(CONFIG_AT91SAM9X5)	+= at91sam9x5_devices.o
>   COBJS-$(CONFIG_AT91_EFLASH)	+= eflash.o
>   COBJS-$(CONFIG_AT91_LED)	+= led.o
> diff --git a/arch/arm/cpu/arm926ejs/at91/at91sam9n12_devices.c b/arch/arm/cpu/arm926ejs/at91/at91sam9n12_devices.c
> new file mode 100644
> index 0000000..2333031
> --- /dev/null
> +++ b/arch/arm/cpu/arm926ejs/at91/at91sam9n12_devices.c

[snip]

> +
> +#ifdef CONFIG_LCD
> +void at91_lcd_hw_init(void)
> +{
> +	struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
> +
> +	at91_set_a_periph(AT91_PIO_PORTC, 24, 0);	/* LCDDPWR */
> +	at91_set_a_periph(AT91_PIO_PORTC, 26, 0);	/* LCDVSYNC */
> +	at91_set_a_periph(AT91_PIO_PORTC, 27, 0);	/* LCDHSYNC */
> +	at91_set_a_periph(AT91_PIO_PORTC, 28, 0);	/* LCDDOTCK */
> +	at91_set_a_periph(AT91_PIO_PORTC, 29, 0);	/* LCDDEN */
> +	at91_set_a_periph(AT91_PIO_PORTC, 30, 0);	/* LCDDOTCK */
> +
> +	at91_set_a_periph(AT91_PIO_PORTC, 0, 0);	/* LCDD0 */
> +	at91_set_a_periph(AT91_PIO_PORTC, 1, 0);	/* LCDD1 */
> +	at91_set_a_periph(AT91_PIO_PORTC, 2, 0);	/* LCDD2 */
> +	at91_set_a_periph(AT91_PIO_PORTC, 3, 0);	/* LCDD3 */
> +	at91_set_a_periph(AT91_PIO_PORTC, 4, 0);	/* LCDD4 */
> +	at91_set_a_periph(AT91_PIO_PORTC, 5, 0);	/* LCDD5 */
> +	at91_set_a_periph(AT91_PIO_PORTC, 6, 0);	/* LCDD6 */
> +	at91_set_a_periph(AT91_PIO_PORTC, 7, 0);	/* LCDD7 */
> +	at91_set_a_periph(AT91_PIO_PORTC, 8, 0);	/* LCDD8 */
> +	at91_set_a_periph(AT91_PIO_PORTC, 9, 0);	/* LCDD9 */
> +	at91_set_a_periph(AT91_PIO_PORTC, 10, 0);	/* LCDD10 */
> +	at91_set_a_periph(AT91_PIO_PORTC, 11, 0);	/* LCDD11 */
> +	at91_set_a_periph(AT91_PIO_PORTC, 12, 0);	/* LCDD12 */
> +	at91_set_b_periph(AT91_PIO_PORTC, 13, 0);	/* LCDD13 */

It should be:

+	at91_set_a_periph(AT91_PIO_PORTC, 13, 0);	/* LCDD13 */


> +	at91_set_a_periph(AT91_PIO_PORTC, 14, 0);	/* LCDD14 */
> +	at91_set_a_periph(AT91_PIO_PORTC, 15, 0);	/* LCDD15 */
> +	at91_set_a_periph(AT91_PIO_PORTC, 16, 0);	/* LCDD16 */
> +	at91_set_a_periph(AT91_PIO_PORTC, 17, 0);	/* LCDD17 */
> +	at91_set_a_periph(AT91_PIO_PORTC, 18, 0);	/* LCDD18 */
> +	at91_set_a_periph(AT91_PIO_PORTC, 19, 0);	/* LCDD19 */
> +	at91_set_a_periph(AT91_PIO_PORTC, 20, 0);	/* LCDD20 */
> +	at91_set_b_periph(AT91_PIO_PORTC, 21, 0);	/* LCDD21 */

it should be

+	at91_set_a_periph(AT91_PIO_PORTC, 21, 0);	/* LCDD21 */

I will resend this single patch again which includes above lcd pin fix.

Best Regards,
Josh Wu




More information about the U-Boot mailing list