22 #include <linux/types.h>
26 #include <linux/module.h>
35 #include <linux/input.h>
39 #include <asm/setup.h>
47 #include <mach/hardware.h>
48 #include <mach/board.h>
58 static void __init ek_init_early(
void)
67 #if defined(CONFIG_DM9000)
68 static struct resource dm9000_resource[] = {
93 .resource = dm9000_resource,
95 .platform_data = &dm9000_platdata,
106 .ncs_write_setup = 0,
111 .ncs_write_pulse = 8,
121 static void __init ek_add_device_dm9000(
void)
123 struct resource *
r = &dm9000_resource[2];
138 static void __init ek_add_device_dm9000(
void) {}
166 .name =
"Partition 1",
171 .name =
"Partition 2",
185 .parts = ek_nand_partition,
192 .ncs_write_setup = 0,
197 .ncs_write_pulse = 3,
207 static void __init ek_add_device_nand(
void)
225 #if defined(CONFIG_SPI_ATMEL) || defined(CONFIG_SPI_ATMEL_MODULE)
230 #if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
232 static int ads7843_pendown_state(
void)
243 .vref_delay_usecs = 100,
246 .pressure_max = 15000,
249 .debounce_tol = (~0),
253 static void __init ek_add_device_ts(
void)
259 static void __init ek_add_device_ts(
void) {}
267 #if defined(CONFIG_MACH_AT91SAM9261EK)
268 .shortname =
"AT91SAM9261-EK external DAC",
270 .shortname =
"AT91SAM9G10-EK external DAC",
274 #if defined(CONFIG_SND_AT73C213) || defined(CONFIG_SND_AT73C213_MODULE)
302 .max_speed_hz = 15 * 1000 * 1000,
305 #if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
307 .modalias =
"ads7846",
309 .max_speed_hz = 125000 * 26,
311 .platform_data = &ads_info,
316 #
if defined(CONFIG_MTD_AT91_DATAFLASH_CARD)
318 .modalias =
"mtd_dataflash",
320 .max_speed_hz = 15 * 1000 * 1000,
323 #elif defined(CONFIG_SND_AT73C213) || defined(CONFIG_SND_AT73C213_MODULE)
325 .modalias =
"at73c213",
327 .max_speed_hz = 10 * 1000 * 1000,
330 .platform_data = &at73c213_data,
357 #if defined(CONFIG_FB_ATMEL) || defined(CONFIG_FB_ATMEL_MODULE)
359 #if defined(CONFIG_FB_ATMEL_STN)
364 .
name =
"SP06Q002 @ 75",
366 .xres = 320, .yres = 240,
369 .left_margin = 1, .right_margin = 1,
370 .upper_margin = 0, .lower_margin = 0,
371 .hsync_len = 1, .vsync_len = 1,
378 static struct fb_monspecs at91fb_default_stn_monspecs = {
380 .monitor =
"SP06Q002",
382 .modedb = at91_stn_modes,
390 #define AT91SAM9261_DEFAULT_STN_LCDCON2 (ATMEL_LCDC_MEMOR_LITTLE \
391 | ATMEL_LCDC_DISTYPE_STNMONO \
392 | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE \
393 | ATMEL_LCDC_IFWIDTH_4 \
394 | ATMEL_LCDC_SCANMOD_SINGLE)
396 static void at91_lcdc_stn_power_control(
int on)
411 .default_lcdcon2 = AT91SAM9261_DEFAULT_STN_LCDCON2,
412 .default_monspecs = &at91fb_default_stn_monspecs,
413 .atmel_lcdfb_power_control = at91_lcdc_stn_power_control,
415 #if defined(CONFIG_MACH_AT91SAM9G10EK)
425 .
name =
"TX09D50VM1CCA @ 60",
427 .xres = 240, .yres = 320,
430 .left_margin = 1, .right_margin = 33,
431 .upper_margin = 1, .lower_margin = 0,
432 .hsync_len = 5, .vsync_len = 1,
439 static struct fb_monspecs at91fb_default_tft_monspecs = {
441 .monitor =
"TX09D50VM1CCA",
443 .modedb = at91_tft_vga_modes,
451 #define AT91SAM9261_DEFAULT_TFT_LCDCON2 (ATMEL_LCDC_MEMOR_LITTLE \
452 | ATMEL_LCDC_DISTYPE_TFT \
453 | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE)
455 static void at91_lcdc_tft_power_control(
int on)
467 .default_lcdcon2 = AT91SAM9261_DEFAULT_TFT_LCDCON2,
468 .default_monspecs = &at91fb_default_tft_monspecs,
469 .atmel_lcdfb_power_control = at91_lcdc_tft_power_control,
471 #if defined(CONFIG_MACH_AT91SAM9G10EK)
485 #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
527 .platform_data = &ek_button_data,
531 static void __init ek_add_device_buttons(
void)
545 static void __init ek_add_device_buttons(
void) {}
551 static struct gpio_led ek_leds[] = {
556 .default_trigger =
"none",
562 .default_trigger =
"none",
567 .default_trigger =
"heartbeat",
571 static void __init ek_board_init(
void)
584 ek_add_device_nand();
586 ek_add_device_dm9000();
589 #if defined(CONFIG_SPI_ATMEL) || defined(CONFIG_SPI_ATMEL_MODULE)
595 at73c213_set_clk(&at73c213_data);
604 ek_add_device_buttons();
609 #if defined(CONFIG_MACH_AT91SAM9261EK)
618 .init_early = ek_init_early,
620 .init_machine = ek_board_init,