19c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin/* 29c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * linux/arch/arm/mach-at91/board-afeb-9260v1.c 39c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * 49c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * Copyright (C) 2005 SAN People 59c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * Copyright (C) 2006 Atmel 69c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * Copyright (C) 2008 Sergey Lapin 79c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * 89c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * A custom board designed as open hardware; PCBs and various information 99c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * is available at http://groups.google.com/group/arm9fpga-evolution-board/ 109c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * Subversion repository: svn://194.85.238.22/home/users/george/svn/arm9eb 119c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * 129c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * This program is free software; you can redistribute it and/or modify 139c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * it under the terms of the GNU General Public License as published by 149c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * the Free Software Foundation; either version 2 of the License, or 159c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * (at your option) any later version. 169c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * 179c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * This program is distributed in the hope that it will be useful, 189c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * but WITHOUT ANY WARRANTY; without even the implied warranty of 199c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 209c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * GNU General Public License for more details. 219c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * 229c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * You should have received a copy of the GNU General Public License 239c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * along with this program; if not, write to the Free Software 249c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 259c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin */ 269c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 279c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin#include <linux/types.h> 282f8163baada3dbd0ce891c35bc59ae46e773487aRussell King#include <linux/gpio.h> 299c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin#include <linux/init.h> 309c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin#include <linux/mm.h> 319c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin#include <linux/module.h> 329c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin#include <linux/platform_device.h> 339c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin#include <linux/spi/spi.h> 349c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin#include <linux/clk.h> 359c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin#include <linux/dma-mapping.h> 369c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 379c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin#include <mach/hardware.h> 389c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin#include <asm/setup.h> 399c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin#include <asm/mach-types.h> 409c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin#include <asm/irq.h> 419c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 429c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin#include <asm/mach/arch.h> 439c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin#include <asm/mach/map.h> 449c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin#include <asm/mach/irq.h> 459c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 46a510b9bacd365dbf7d20a825f34116b9833dd146Jean-Christophe PLAGNIOL-VILLARD#include "at91_aic.h" 4743d2f532925cdf7fe1e4c7a48fb555705421eb66Jean-Christophe PLAGNIOL-VILLARD#include "board.h" 489c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin#include "generic.h" 49cf2e933ce6da2a8bacd52e49c4dd4c0974af1d09Linus Walleij#include "gpio.h" 509c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 519c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 521b021a3b23a40be89c4f3fbe6f4696aa15141f26Jean-Christophe PLAGNIOL-VILLARDstatic void __init afeb9260_init_early(void) 539c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin{ 549c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin /* Initialize processor: 18.432 MHz crystal */ 5521d08b9d5536ac418bbce4f419fe2b528b7ddf31Jean-Christophe PLAGNIOL-VILLARD at91_initialize(18432000); 569c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin} 579c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 589c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin/* 599c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * USB Host port 609c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin */ 619c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapinstatic struct at91_usbh_data __initdata afeb9260_usbh_data = { 629c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .ports = 1, 6363b4c2967850033de0a488d2ba7cd09052199d99Jean-Christophe PLAGNIOL-VILLARD .vbus_pin = {-EINVAL, -EINVAL}, 6463b4c2967850033de0a488d2ba7cd09052199d99Jean-Christophe PLAGNIOL-VILLARD .overcurrent_pin= {-EINVAL, -EINVAL}, 659c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin}; 669c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 679c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin/* 689c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * USB Device port 699c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin */ 709c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapinstatic struct at91_udc_data __initdata afeb9260_udc_data = { 719c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .vbus_pin = AT91_PIN_PC5, 7263b4c2967850033de0a488d2ba7cd09052199d99Jean-Christophe PLAGNIOL-VILLARD .pullup_pin = -EINVAL, /* pull-up driven by UDC */ 739c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin}; 749c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 759c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 769c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 779c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin/* 789c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * SPI devices. 799c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin */ 809c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapinstatic struct spi_board_info afeb9260_spi_devices[] = { 819c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin { /* DataFlash chip */ 829c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .modalias = "mtd_dataflash", 839c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .chip_select = 1, 849c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .max_speed_hz = 15 * 1000 * 1000, 859c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .bus_num = 0, 869c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin }, 879c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin}; 889c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 899c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 9053d4351f5868c7d3faa9507608c324ff7d7c186cSergey Lapin/* 9153d4351f5868c7d3faa9507608c324ff7d7c186cSergey Lapin * MACB Ethernet device 9253d4351f5868c7d3faa9507608c324ff7d7c186cSergey Lapin */ 9384e0cdb0a262483a3618091c43dae33d36226430Jamie Ilesstatic struct macb_platform_data __initdata afeb9260_macb_data = { 9453d4351f5868c7d3faa9507608c324ff7d7c186cSergey Lapin .phy_irq_pin = AT91_PIN_PA9, 9553d4351f5868c7d3faa9507608c324ff7d7c186cSergey Lapin .is_rmii = 0, 9653d4351f5868c7d3faa9507608c324ff7d7c186cSergey Lapin}; 9753d4351f5868c7d3faa9507608c324ff7d7c186cSergey Lapin 989c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 999c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin/* 1009c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * NAND flash 1019c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin */ 1029c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapinstatic struct mtd_partition __initdata afeb9260_nand_partition[] = { 1039c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin { 1049c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .name = "bootloader", 1059c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .offset = 0, 1069c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .size = (640 * SZ_1K), 1079c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin }, 1089c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin { 1099c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .name = "kernel", 1109c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .offset = MTDPART_OFS_NXTBLK, 1119c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .size = SZ_2M, 1129c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin }, 1139c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin { 1149c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .name = "rootfs", 1159c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .offset = MTDPART_OFS_NXTBLK, 1169c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .size = MTDPART_SIZ_FULL, 1179c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin }, 1189c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin}; 1199c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 1209c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapinstatic struct atmel_nand_data __initdata afeb9260_nand_data = { 1219c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .ale = 21, 1229c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .cle = 22, 1239c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .rdy_pin = AT91_PIN_PC13, 1249c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .enable_pin = AT91_PIN_PC14, 1259c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .bus_width_16 = 0, 126bf4289cba02b8cf770ecd7959ca70839f0dd9d3cJean-Christophe PLAGNIOL-VILLARD .ecc_mode = NAND_ECC_SOFT, 1271754aab9bb869c173aa03b57587256827250e488Dmitry Eremin-Solenikov .parts = afeb9260_nand_partition, 1281754aab9bb869c173aa03b57587256827250e488Dmitry Eremin-Solenikov .num_parts = ARRAY_SIZE(afeb9260_nand_partition), 12963b4c2967850033de0a488d2ba7cd09052199d99Jean-Christophe PLAGNIOL-VILLARD .det_pin = -EINVAL, 1309c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin}; 1319c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 1329c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 1339c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin/* 1349c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin * MCI (SD/MMC) 1359c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin */ 1364cf3326ab5f34a333a46c59d0d3783db9cef13bfLudovic Desrochesstatic struct mci_platform_data __initdata afeb9260_mci0_data = { 1374cf3326ab5f34a333a46c59d0d3783db9cef13bfLudovic Desroches .slot[1] = { 1384cf3326ab5f34a333a46c59d0d3783db9cef13bfLudovic Desroches .bus_width = 4, 1394cf3326ab5f34a333a46c59d0d3783db9cef13bfLudovic Desroches .detect_pin = AT91_PIN_PC9, 1404cf3326ab5f34a333a46c59d0d3783db9cef13bfLudovic Desroches .wp_pin = AT91_PIN_PC4, 1414cf3326ab5f34a333a46c59d0d3783db9cef13bfLudovic Desroches }, 1429c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin}; 1439c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 1449c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 1459c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 1469c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapinstatic struct i2c_board_info __initdata afeb9260_i2c_devices[] = { 1479c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin { 14834e559eabf57d07c55a57e9455c1df2e6a208d57Sergey Lapin I2C_BOARD_INFO("tlv320aic23", 0x1a), 14934e559eabf57d07c55a57e9455c1df2e6a208d57Sergey Lapin }, { 1509c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin I2C_BOARD_INFO("fm3130", 0x68), 151b73b925a6b9d69478c6ae4e74ef20607fd24aeaaSergey Lapin }, { 1529c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin I2C_BOARD_INFO("24c64", 0x50), 1539c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin }, 1549c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin}; 1559c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 1560c30df6fe0bd1e3845357e793dc1bfd908751c45Sergey Matyukevich/* 1570c30df6fe0bd1e3845357e793dc1bfd908751c45Sergey Matyukevich * IDE (CF True IDE mode) 1580c30df6fe0bd1e3845357e793dc1bfd908751c45Sergey Matyukevich */ 1590c30df6fe0bd1e3845357e793dc1bfd908751c45Sergey Matyukevichstatic struct at91_cf_data afeb9260_cf_data = { 1600c30df6fe0bd1e3845357e793dc1bfd908751c45Sergey Matyukevich .chipselect = 4, 1610c30df6fe0bd1e3845357e793dc1bfd908751c45Sergey Matyukevich .irq_pin = AT91_PIN_PA6, 16263b4c2967850033de0a488d2ba7cd09052199d99Jean-Christophe PLAGNIOL-VILLARD .det_pin = -EINVAL, 16363b4c2967850033de0a488d2ba7cd09052199d99Jean-Christophe PLAGNIOL-VILLARD .vcc_pin = -EINVAL, 1640c30df6fe0bd1e3845357e793dc1bfd908751c45Sergey Matyukevich .rst_pin = AT91_PIN_PA7, 1650c30df6fe0bd1e3845357e793dc1bfd908751c45Sergey Matyukevich .flags = AT91_CF_TRUE_IDE, 1660c30df6fe0bd1e3845357e793dc1bfd908751c45Sergey Matyukevich}; 1670c30df6fe0bd1e3845357e793dc1bfd908751c45Sergey Matyukevich 1689c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapinstatic void __init afeb9260_board_init(void) 1699c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin{ 170e76265c627ca0aff6cc129486ac656b6b6dd06afMaxime Ripard at91_register_devices(); 171e76265c627ca0aff6cc129486ac656b6b6dd06afMaxime Ripard 1729c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin /* Serial */ 17371b149b3f740501c2d59c80de5b10f5e45051099Jean-Christophe PLAGNIOL-VILLARD /* DBGU on ttyS0. (Rx & Tx only) */ 17471b149b3f740501c2d59c80de5b10f5e45051099Jean-Christophe PLAGNIOL-VILLARD at91_register_uart(0, 0, 0); 17571b149b3f740501c2d59c80de5b10f5e45051099Jean-Christophe PLAGNIOL-VILLARD 17671b149b3f740501c2d59c80de5b10f5e45051099Jean-Christophe PLAGNIOL-VILLARD /* USART0 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */ 17771b149b3f740501c2d59c80de5b10f5e45051099Jean-Christophe PLAGNIOL-VILLARD at91_register_uart(AT91SAM9260_ID_US0, 1, 17871b149b3f740501c2d59c80de5b10f5e45051099Jean-Christophe PLAGNIOL-VILLARD ATMEL_UART_CTS | ATMEL_UART_RTS 17971b149b3f740501c2d59c80de5b10f5e45051099Jean-Christophe PLAGNIOL-VILLARD | ATMEL_UART_DTR | ATMEL_UART_DSR 18071b149b3f740501c2d59c80de5b10f5e45051099Jean-Christophe PLAGNIOL-VILLARD | ATMEL_UART_DCD | ATMEL_UART_RI); 18171b149b3f740501c2d59c80de5b10f5e45051099Jean-Christophe PLAGNIOL-VILLARD 18271b149b3f740501c2d59c80de5b10f5e45051099Jean-Christophe PLAGNIOL-VILLARD /* USART1 on ttyS2. (Rx, Tx, RTS, CTS) */ 18371b149b3f740501c2d59c80de5b10f5e45051099Jean-Christophe PLAGNIOL-VILLARD at91_register_uart(AT91SAM9260_ID_US1, 2, 18471b149b3f740501c2d59c80de5b10f5e45051099Jean-Christophe PLAGNIOL-VILLARD ATMEL_UART_CTS | ATMEL_UART_RTS); 1859c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin at91_add_device_serial(); 1869c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin /* USB Host */ 1879c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin at91_add_device_usbh(&afeb9260_usbh_data); 1889c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin /* USB Device */ 1899c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin at91_add_device_udc(&afeb9260_udc_data); 1909c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin /* SPI */ 1919c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin at91_add_device_spi(afeb9260_spi_devices, 1929c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin ARRAY_SIZE(afeb9260_spi_devices)); 1939c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin /* NAND */ 1949c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin at91_add_device_nand(&afeb9260_nand_data); 19553d4351f5868c7d3faa9507608c324ff7d7c186cSergey Lapin /* Ethernet */ 19653d4351f5868c7d3faa9507608c324ff7d7c186cSergey Lapin at91_add_device_eth(&afeb9260_macb_data); 19753d4351f5868c7d3faa9507608c324ff7d7c186cSergey Lapin 19853d4351f5868c7d3faa9507608c324ff7d7c186cSergey Lapin /* Standard function's pin assignments are not 19953d4351f5868c7d3faa9507608c324ff7d7c186cSergey Lapin * appropriate for us and generic code provide 20053d4351f5868c7d3faa9507608c324ff7d7c186cSergey Lapin * no API to configure these pins any other way */ 20153d4351f5868c7d3faa9507608c324ff7d7c186cSergey Lapin at91_set_B_periph(AT91_PIN_PA10, 0); /* ETX2 */ 20253d4351f5868c7d3faa9507608c324ff7d7c186cSergey Lapin at91_set_B_periph(AT91_PIN_PA11, 0); /* ETX3 */ 2039c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin /* MMC */ 2044cf3326ab5f34a333a46c59d0d3783db9cef13bfLudovic Desroches at91_add_device_mci(0, &afeb9260_mci0_data); 2059c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin /* I2C */ 2069c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin at91_add_device_i2c(afeb9260_i2c_devices, 2079c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin ARRAY_SIZE(afeb9260_i2c_devices)); 20834e559eabf57d07c55a57e9455c1df2e6a208d57Sergey Lapin /* Audio */ 20934e559eabf57d07c55a57e9455c1df2e6a208d57Sergey Lapin at91_add_device_ssc(AT91SAM9260_ID_SSC, ATMEL_SSC_TX); 2100c30df6fe0bd1e3845357e793dc1bfd908751c45Sergey Matyukevich /* IDE */ 2110c30df6fe0bd1e3845357e793dc1bfd908751c45Sergey Matyukevich at91_add_device_cf(&afeb9260_cf_data); 2129c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin} 2139c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 2149c784f958d01097e3fae24ad75ab3a80ed1e556bSergey LapinMACHINE_START(AFEB9260, "Custom afeb9260 board") 2159c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin /* Maintainer: Sergey Lapin <slapin@ossfans.org> */ 2160f391f189eae2c479122dc934d8ffdcbe4257cfeMaxime Ripard .init_time = at91_init_time, 21721d08b9d5536ac418bbce4f419fe2b528b7ddf31Jean-Christophe PLAGNIOL-VILLARD .map_io = at91_map_io, 2183e135466745a62b1814edef74c7b4a25e6bda707Ludovic Desroches .handle_irq = at91_aic_handle_irq, 2191b021a3b23a40be89c4f3fbe6f4696aa15141f26Jean-Christophe PLAGNIOL-VILLARD .init_early = afeb9260_init_early, 22092100c12ca1bc5f347ff41c1413f9db07c4d276cJean-Christophe PLAGNIOL-VILLARD .init_irq = at91_init_irq_default, 2219c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin .init_machine = afeb9260_board_init, 2229c784f958d01097e3fae24ad75ab3a80ed1e556bSergey LapinMACHINE_END 2239c784f958d01097e3fae24ad75ab3a80ed1e556bSergey Lapin 224