diff --git a/arch/arm/mach-at91/include/mach/cpu.h b/arch/arm/mach-at91/include/mach/cpu.h index dbfd9f7..b2a96fe 100644 --- a/arch/arm/mach-at91/include/mach/cpu.h +++ b/arch/arm/mach-at91/include/mach/cpu.h @@ -99,5 +99,6 @@ static inline unsigned long at91_arch_identify(void) * definitions may reduce clutter in common drivers. */ #define cpu_is_at32ap7000() (0) +#define cpu_is_at32ap7200() (0) #endif diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig index 7c239a9..6cef643 100644 --- a/arch/avr32/Kconfig +++ b/arch/avr32/Kconfig @@ -83,6 +83,18 @@ config MMU config PERFORMANCE_COUNTERS bool +# The old "PIO" portmux/GPIO module used on AT32AP700x +config PORTMUX_PIO + bool + +# The new "GPIO" portmux/GPIO module, version 2 +config PORTMUX_GPIO_V2 + bool + +# Asynchronous Timer clocksource/clockevent driver +config TIMER_AST + bool + config PLATFORM_AT32AP bool select SUBARCH_AVR32B @@ -99,6 +111,7 @@ config PLATFORM_AT32AP config CPU_AT32AP700X bool select PLATFORM_AT32AP + select PORTMUX_PIO config CPU_AT32AP7000 bool select CPU_AT32AP700X @@ -109,6 +122,16 @@ config CPU_AT32AP7002 bool select CPU_AT32AP700X +# AP7200 derivatives +config CPU_AT32AP720X + bool + select PLATFORM_AT32AP + select TIMER_AST + select PORTMUX_GPIO_V2 +config CPU_AT32AP7200 + bool + select CPU_AT32AP720X + choice prompt "AVR32 board type" default BOARD_ATSTK1000 @@ -119,11 +142,19 @@ config BOARD_ATSTK1000 config BOARD_ATNGW100 bool "ATNGW100 Network Gateway" select CPU_AT32AP7000 + +config BOARD_FAVR_32 + bool "Favr-32 LCD-board" + select CPU_AT32AP7000 + +config BOARD_MIMC200 + bool "MIMC200 CPU board" + select CPU_AT32AP7000 endchoice -if BOARD_ATSTK1000 source "arch/avr32/boards/atstk1000/Kconfig" -endif +source "arch/avr32/boards/atngw100/Kconfig" +source "arch/avr32/boards/favr-32/Kconfig" choice prompt "Boot loader type" @@ -138,14 +169,17 @@ source "arch/avr32/mach-at32ap/Kconfig" config LOAD_ADDRESS hex default 0x10000000 if LOADER_U_BOOT=y && CPU_AT32AP700X=y + default 0x10000000 if LOADER_U_BOOT=y && CPU_AT32AP720X=y config ENTRY_ADDRESS hex default 0x90000000 if LOADER_U_BOOT=y && CPU_AT32AP700X=y + default 0x90000000 if LOADER_U_BOOT=y && CPU_AT32AP720X=y config PHYS_OFFSET hex default 0x10000000 if CPU_AT32AP700X=y + default 0x10000000 if CPU_AT32AP720X=y source "kernel/Kconfig.preempt" diff --git a/arch/avr32/Makefile b/arch/avr32/Makefile index c9e1f0b..b088e10 100644 --- a/arch/avr32/Makefile +++ b/arch/avr32/Makefile @@ -33,6 +33,8 @@ head-y += arch/avr32/kernel/head.o core-y += $(machdirs) core-$(CONFIG_BOARD_ATSTK1000) += arch/avr32/boards/atstk1000/ core-$(CONFIG_BOARD_ATNGW100) += arch/avr32/boards/atngw100/ +core-$(CONFIG_BOARD_FAVR_32) += arch/avr32/boards/favr-32/ +core-$(CONFIG_BOARD_MIMC200) += arch/avr32/boards/mimc200/ core-$(CONFIG_LOADER_U_BOOT) += arch/avr32/boot/u-boot/ core-y += arch/avr32/kernel/ core-y += arch/avr32/mm/ diff --git a/arch/avr32/boards/atngw100/Kconfig b/arch/avr32/boards/atngw100/Kconfig new file mode 100644 index 0000000..b3f9947 --- /dev/null +++ b/arch/avr32/boards/atngw100/Kconfig @@ -0,0 +1,35 @@ +# NGW100 customization + +if BOARD_ATNGW100 + +config BOARD_ATNGW100_EVKLCD10X + bool "Add support for EVKLCD10X addon board" + help + This enables support for the EVKLCD100 (QVGA) or EVKLCD101 (VGA) + addon board for the NGW100. By enabling this the LCD controller and + AC97 controller is added as platform devices. + + This choice disables the detect pin and the write-protect pin for the + MCI platform device, since it conflicts with the LCD platform device. + The MCI pins can be reenabled by editing the "add device function" but + this may break the setup for other displays that use these pins. + + Choose 'Y' here if you have a EVKLCD100/101 connected to the NGW100. + +choice + prompt "LCD panel resolution on EVKLCD10X" + depends on BOARD_ATNGW100_EVKLCD10X + default BOARD_ATNGW100_EVKLCD10X_VGA + +config BOARD_ATNGW100_EVKLCD10X_QVGA + bool "QVGA (320x240)" + +config BOARD_ATNGW100_EVKLCD10X_VGA + bool "VGA (640x480)" + +config BOARD_ATNGW100_EVKLCD10X_POW_QVGA + bool "Powertip QVGA (320x240)" + +endchoice + +endif # BOARD_ATNGW100 diff --git a/arch/avr32/boards/atngw100/Makefile b/arch/avr32/boards/atngw100/Makefile index c740aa1..6376f53 100644 --- a/arch/avr32/boards/atngw100/Makefile +++ b/arch/avr32/boards/atngw100/Makefile @@ -1 +1,2 @@ -obj-y += setup.o flash.o +obj-y += setup.o flash.o +obj-$(CONFIG_BOARD_ATNGW100_EVKLCD10X) += evklcd10x.o diff --git a/arch/avr32/boards/atngw100/evklcd10x.c b/arch/avr32/boards/atngw100/evklcd10x.c new file mode 100644 index 0000000..8140b22 --- /dev/null +++ b/arch/avr32/boards/atngw100/evklcd10x.c @@ -0,0 +1,155 @@ +/* + * Board-specific setup code for the ATEVKLCD10X addon board to the ATNGW100 + * Network Gateway + * + * Copyright (C) 2008 Atmel Corporation + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ + +#include +#include +#include +#include + +#include