[ARM] 5570/1: at91: Support for at91sam9g10: core chip & board support
From: Hong Xu <hong.xu@atmel.com> Here are the modification to at91sam9261 files dedicated to the support of at91sam9g10. This direction has been adopted to minimize code duplication. All at91sam9261 drivers are enabled in _devices and board- files. Modificaton to peripherals that support at91sam9g10 will be added in future patches. Signed-off-by: Hong Xu <hong.xu@atmel.com> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com> Acked-by: Andrew Victor <linux@maxim.org.za> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
b784b7c037
commit
b319ff8085
@ -23,6 +23,12 @@ config ARCH_AT91SAM9261
|
||||
select GENERIC_TIME
|
||||
select GENERIC_CLOCKEVENTS
|
||||
|
||||
config ARCH_AT91SAM9G10
|
||||
bool "AT91SAM9G10"
|
||||
select CPU_ARM926T
|
||||
select GENERIC_TIME
|
||||
select GENERIC_CLOCKEVENTS
|
||||
|
||||
config ARCH_AT91SAM9263
|
||||
bool "AT91SAM9263"
|
||||
select CPU_ARM926T
|
||||
@ -230,6 +236,21 @@ endif
|
||||
|
||||
# ----------------------------------------------------------
|
||||
|
||||
if ARCH_AT91SAM9G10
|
||||
|
||||
comment "AT91SAM9G10 Board Type"
|
||||
|
||||
config MACH_AT91SAM9G10EK
|
||||
bool "Atmel AT91SAM9G10-EK Evaluation Kit"
|
||||
depends on ARCH_AT91SAM9G10
|
||||
help
|
||||
Select this if you are using Atmel's AT91SAM9G10-EK Evaluation Kit.
|
||||
<http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4588>
|
||||
|
||||
endif
|
||||
|
||||
# ----------------------------------------------------------
|
||||
|
||||
if ARCH_AT91SAM9263
|
||||
|
||||
comment "AT91SAM9263 Board Type"
|
||||
@ -337,13 +358,13 @@ comment "AT91 Board Options"
|
||||
|
||||
config MTD_AT91_DATAFLASH_CARD
|
||||
bool "Enable DataFlash Card support"
|
||||
depends on (ARCH_AT91RM9200DK || MACH_AT91RM9200EK || MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_ECBAT91 || MACH_SAM9_L9260 || MACH_AT91CAP9ADK || MACH_NEOCORE926)
|
||||
depends on (ARCH_AT91RM9200DK || MACH_AT91RM9200EK || MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_ECBAT91 || MACH_SAM9_L9260 || MACH_AT91CAP9ADK || MACH_NEOCORE926)
|
||||
help
|
||||
Enable support for the DataFlash card.
|
||||
|
||||
config MTD_NAND_ATMEL_BUSWIDTH_16
|
||||
bool "Enable 16-bit data bus interface to NAND flash"
|
||||
depends on (MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_AT91SAM9G45EKES || MACH_AT91CAP9ADK)
|
||||
depends on (MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_AT91SAM9G45EKES || MACH_AT91CAP9ADK)
|
||||
help
|
||||
On AT91SAM926x boards both types of NAND flash can be present
|
||||
(8 and 16 bit data bus width).
|
||||
|
@ -13,6 +13,7 @@ obj-$(CONFIG_AT91_PMC_UNIT) += clock.o
|
||||
obj-$(CONFIG_ARCH_AT91RM9200) += at91rm9200.o at91rm9200_time.o at91rm9200_devices.o
|
||||
obj-$(CONFIG_ARCH_AT91SAM9260) += at91sam9260.o at91sam926x_time.o at91sam9260_devices.o sam9_smc.o
|
||||
obj-$(CONFIG_ARCH_AT91SAM9261) += at91sam9261.o at91sam926x_time.o at91sam9261_devices.o sam9_smc.o
|
||||
obj-$(CONFIG_ARCH_AT91SAM9G10) += at91sam9261.o at91sam926x_time.o at91sam9261_devices.o sam9_smc.o
|
||||
obj-$(CONFIG_ARCH_AT91SAM9263) += at91sam9263.o at91sam926x_time.o at91sam9263_devices.o sam9_smc.o
|
||||
obj-$(CONFIG_ARCH_AT91SAM9RL) += at91sam9rl.o at91sam926x_time.o at91sam9rl_devices.o sam9_smc.o
|
||||
obj-$(CONFIG_ARCH_AT91SAM9G20) += at91sam9260.o at91sam926x_time.o at91sam9260_devices.o sam9_smc.o
|
||||
@ -44,6 +45,7 @@ obj-$(CONFIG_MACH_AFEB9260) += board-afeb-9260v1.o
|
||||
|
||||
# AT91SAM9261 board-specific support
|
||||
obj-$(CONFIG_MACH_AT91SAM9261EK) += board-sam9261ek.o
|
||||
obj-$(CONFIG_MACH_AT91SAM9G10EK) += board-sam9261ek.o
|
||||
|
||||
# AT91SAM9263 board-specific support
|
||||
obj-$(CONFIG_MACH_AT91SAM9263EK) += board-sam9263ek.o
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include <asm/irq.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <mach/cpu.h>
|
||||
#include <mach/at91sam9261.h>
|
||||
#include <mach/at91_pmc.h>
|
||||
#include <mach/at91_rstc.h>
|
||||
@ -30,7 +31,11 @@ static struct map_desc at91sam9261_io_desc[] __initdata = {
|
||||
.pfn = __phys_to_pfn(AT91_BASE_SYS),
|
||||
.length = SZ_16K,
|
||||
.type = MT_DEVICE,
|
||||
}, {
|
||||
},
|
||||
};
|
||||
|
||||
static struct map_desc at91sam9261_sram_desc[] __initdata = {
|
||||
{
|
||||
.virtual = AT91_IO_VIRT_BASE - AT91SAM9261_SRAM_SIZE,
|
||||
.pfn = __phys_to_pfn(AT91SAM9261_SRAM_BASE),
|
||||
.length = AT91SAM9261_SRAM_SIZE,
|
||||
@ -38,6 +43,15 @@ static struct map_desc at91sam9261_io_desc[] __initdata = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct map_desc at91sam9g10_sram_desc[] __initdata = {
|
||||
{
|
||||
.virtual = AT91_IO_VIRT_BASE - AT91SAM9G10_SRAM_SIZE,
|
||||
.pfn = __phys_to_pfn(AT91SAM9G10_SRAM_BASE),
|
||||
.length = AT91SAM9G10_SRAM_SIZE,
|
||||
.type = MT_DEVICE,
|
||||
},
|
||||
};
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* Clocks
|
||||
* -------------------------------------------------------------------- */
|
||||
@ -263,6 +277,12 @@ void __init at91sam9261_initialize(unsigned long main_clock)
|
||||
/* Map peripherals */
|
||||
iotable_init(at91sam9261_io_desc, ARRAY_SIZE(at91sam9261_io_desc));
|
||||
|
||||
if (cpu_is_at91sam9g10())
|
||||
iotable_init(at91sam9g10_sram_desc, ARRAY_SIZE(at91sam9g10_sram_desc));
|
||||
else
|
||||
iotable_init(at91sam9261_sram_desc, ARRAY_SIZE(at91sam9261_sram_desc));
|
||||
|
||||
|
||||
at91_arch_reset = at91sam9261_reset;
|
||||
pm_power_off = at91sam9261_poweroff;
|
||||
at91_extern_irq = (1 << AT91SAM9261_ID_IRQ0) | (1 << AT91SAM9261_ID_IRQ1)
|
||||
|
@ -287,7 +287,11 @@ static void __init ek_add_device_ts(void) {}
|
||||
*/
|
||||
static struct at73c213_board_info at73c213_data = {
|
||||
.ssc_id = 1,
|
||||
#if defined(CONFIG_MACH_AT91SAM9261EK)
|
||||
.shortname = "AT91SAM9261-EK external DAC",
|
||||
#else
|
||||
.shortname = "AT91SAM9G10-EK external DAC",
|
||||
#endif
|
||||
};
|
||||
|
||||
#if defined(CONFIG_SND_AT73C213) || defined(CONFIG_SND_AT73C213_MODULE)
|
||||
@ -414,6 +418,9 @@ static struct atmel_lcdfb_info __initdata ek_lcdc_data = {
|
||||
.default_monspecs = &at91fb_default_stn_monspecs,
|
||||
.atmel_lcdfb_power_control = at91_lcdc_stn_power_control,
|
||||
.guard_time = 1,
|
||||
#if defined(CONFIG_MACH_AT91SAM9G10EK)
|
||||
.lcd_wiring_mode = ATMEL_LCDC_WIRING_RGB,
|
||||
#endif
|
||||
};
|
||||
|
||||
#else
|
||||
@ -467,6 +474,9 @@ static struct atmel_lcdfb_info __initdata ek_lcdc_data = {
|
||||
.default_monspecs = &at91fb_default_tft_monspecs,
|
||||
.atmel_lcdfb_power_control = at91_lcdc_tft_power_control,
|
||||
.guard_time = 1,
|
||||
#if defined(CONFIG_MACH_AT91SAM9G10EK)
|
||||
.lcd_wiring_mode = ATMEL_LCDC_WIRING_RGB,
|
||||
#endif
|
||||
};
|
||||
#endif
|
||||
|
||||
@ -600,7 +610,11 @@ static void __init ek_board_init(void)
|
||||
at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
|
||||
}
|
||||
|
||||
#if defined(CONFIG_MACH_AT91SAM9261EK)
|
||||
MACHINE_START(AT91SAM9261EK, "Atmel AT91SAM9261-EK")
|
||||
#else
|
||||
MACHINE_START(AT91SAM9G10EK, "Atmel AT91SAM9G10-EK")
|
||||
#endif
|
||||
/* Maintainer: Atmel */
|
||||
.phys_io = AT91_BASE_SYS,
|
||||
.io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc,
|
||||
|
@ -201,7 +201,8 @@ static int at91_pm_verify_clocks(void)
|
||||
pr_err("AT91: PM - Suspend-to-RAM with USB still active\n");
|
||||
return 0;
|
||||
}
|
||||
} else if (cpu_is_at91sam9260() || cpu_is_at91sam9261() || cpu_is_at91sam9263() || cpu_is_at91sam9g20()) {
|
||||
} else if (cpu_is_at91sam9260() || cpu_is_at91sam9261() || cpu_is_at91sam9263()
|
||||
|| cpu_is_at91sam9g20() || cpu_is_at91sam9g10()) {
|
||||
if ((scsr & (AT91SAM926x_PMC_UHP | AT91SAM926x_PMC_UDP)) != 0) {
|
||||
pr_err("AT91: PM - Suspend-to-RAM with USB still active\n");
|
||||
return 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user