diff -Naur linux-2.6.25.maxim/arch/arm/configs/som9260m_defconfig linux-2.6.25.at91-20080908/arch/arm/configs/som9260m_defconfig
--- linux-2.6.25.maxim/arch/arm/configs/som9260m_defconfig	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.6.25.at91-20080908/arch/arm/configs/som9260m_defconfig	2008-08-08 11:00:35.000000000 -0500
@@ -0,0 +1,1223 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.25
+# Wed Aug  6 11:23:48 2008
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_MMU=y
+# CONFIG_NO_IOPORT is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_SUPPORTS_AOUT=y
+CONFIG_ZONE_DMA=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_CGROUPS is not set
+CONFIG_GROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_USER_SCHED=y
+# CONFIG_CGROUP_SCHED is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+# CONFIG_ELF_CORE is not set
+# CONFIG_COMPAT_BRK is not set
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+# CONFIG_IOSCHED_AS is not set
+CONFIG_IOSCHED_DEADLINE=y
+# CONFIG_IOSCHED_CFQ is not set
+# CONFIG_DEFAULT_AS is not set
+CONFIG_DEFAULT_DEADLINE=y
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="deadline"
+CONFIG_CLASSIC_RCU=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+CONFIG_ARCH_AT91=y
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_ORION is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_MSM7X00A is not set
+
+#
+# Boot options
+#
+
+#
+# Power management
+#
+
+#
+# Atmel AT91 System-on-Chip
+#
+# CONFIG_ARCH_AT91RM9200 is not set
+CONFIG_ARCH_AT91SAM9260=y
+# CONFIG_ARCH_AT91SAM9261 is not set
+# CONFIG_ARCH_AT91SAM9263 is not set
+# CONFIG_ARCH_AT91SAM9RL is not set
+# CONFIG_ARCH_AT91CAP9 is not set
+# CONFIG_ARCH_AT91X40 is not set
+CONFIG_AT91_PMC_UNIT=y
+
+#
+# AT91SAM9260 Variants
+#
+# CONFIG_ARCH_AT91SAM9260_SAM9XE is not set
+
+#
+# AT91SAM9260 / AT91SAM9XE Board Type
+#
+# CONFIG_MACH_AT91SAM9260EK is not set
+# CONFIG_MACH_CAM60 is not set
+# CONFIG_MACH_SAM9_L9260 is not set
+# CONFIG_MACH_USB_A9260 is not set
+# CONFIG_MACH_QIL_A9260 is not set
+CONFIG_MACH_SOM9260M=y
+# CONFIG_ARMSTRONG_HWMS is not set
+CONFIG_SOM_150ES=y
+
+#
+# SOM9260 Memory Options
+#
+# CONFIG_MACH_SOM9260M_16 is not set
+CONFIG_MACH_SOM9260M_32=y
+# CONFIG_MACH_SOM9260M_64 is not set
+# CONFIG_MACH_SOM9260M_NAND is not set
+
+#
+# AT91 Board Options
+#
+
+#
+# AT91 Feature Selections
+#
+CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
+CONFIG_AT91_SLOW_CLOCK=y
+CONFIG_AT91_TIMER_HZ=100
+# CONFIG_AT91_EARLY_DBGU is not set
+# CONFIG_AT91_EARLY_USART0 is not set
+# CONFIG_AT91_EARLY_USART1 is not set
+# CONFIG_AT91_EARLY_USART2 is not set
+CONFIG_AT91_EARLY_USART3=y
+# CONFIG_AT91_EARLY_USART4 is not set
+# CONFIG_AT91_EARLY_USART5 is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_ARM926T=y
+CONFIG_CPU_32v5=y
+CONFIG_CPU_ABRT_EV5TJ=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
+CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+# CONFIG_ARM_THUMB is not set
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
+# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+# CONFIG_OUTER_CACHE is not set
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+# CONFIG_TICK_ONESHOT is not set
+# CONFIG_NO_HZ is not set
+# CONFIG_HIGH_RES_TIMERS is not set
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_PREEMPT=y
+CONFIG_HZ=100
+CONFIG_AEABI=y
+CONFIG_OABI_COMPAT=y
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4096
+# CONFIG_RESOURCES_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+# CONFIG_LEDS is not set
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw"
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_FPE_NWFPE=y
+# CONFIG_FPE_NWFPE_XP is not set
+# CONFIG_FPE_FASTFPE is not set
+# CONFIG_VFP is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+CONFIG_PM=y
+# CONFIG_PM_LEGACY is not set
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_SLEEP=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_APM_EMULATION=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+# CONFIG_IP_PNP_DHCP is not set
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+
+#
+# Wireless
+#
+# CONFIG_CFG80211 is not set
+# CONFIG_WIRELESS_EXT is not set
+# CONFIG_MAC80211 is not set
+# CONFIG_IEEE80211 is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_FW_LOADER is not set
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_CONCAT=y
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+# CONFIG_MTD_AFS_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=y
+# CONFIG_MTD_CFI_AMDSTD is not set
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+CONFIG_MTD_PHYSMAP=y
+CONFIG_MTD_PHYSMAP_START=0x10000000
+CONFIG_MTD_PHYSMAP_LEN=0
+CONFIG_MTD_PHYSMAP_BANKWIDTH=2
+# CONFIG_MTD_ARM_INTEGRATOR is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+CONFIG_MTD_BLOCK2MTD=y
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_NAND is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=4
+CONFIG_BLK_DEV_RAM_SIZE=8192
+# CONFIG_BLK_DEV_XIP is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_ATMEL_PWM is not set
+# CONFIG_EEPROM_93CX6 is not set
+CONFIG_ATMEL_SSC=y
+# CONFIG_ENCLOSURE_SERVICES is not set
+
+#
+# misc device classes
+#
+CONFIG_GPIOCLASS=y
+CONFIG_GPIOCLASS_SYSFS=y
+CONFIG_GPIOCLASS_CHAR=y
+CONFIG_PWMCLASS=y
+# CONFIG_PWMCLASS_SYSFS is not set
+CONFIG_MMCCLASS=y
+CONFIG_SPICLASS=y
+CONFIG_SPICLASS_SYSFS=y
+CONFIG_SPICLASS_CHAR=y
+CONFIG_LSI2ESC=y
+# CONFIG_HAVE_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_MULTI_LUN is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+# CONFIG_SCSI_SRP_ATTRS is not set
+CONFIG_SCSI_LOWLEVEL=y
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NETDEVICES_MULTIQUEUE is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+CONFIG_LXT_PHY=y
+# CONFIG_CICADA_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_REALTEK_PHY is not set
+# CONFIG_FIXED_PHY is not set
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+CONFIG_MACB=y
+CONFIG_MACB_FAKE_IRQ=y
+# CONFIG_AX88796 is not set
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+# CONFIG_ENC28J60 is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_B44 is not set
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+CONFIG_USB_RTL8150=m
+# CONFIG_USB_USBNET is not set
+# CONFIG_WAN is not set
+CONFIG_PPP=m
+# CONFIG_PPP_MULTILINK is not set
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+# CONFIG_PPP_BSDCOMP is not set
+# CONFIG_PPP_MPPE is not set
+# CONFIG_PPPOE is not set
+# CONFIG_PPPOL2TP is not set
+# CONFIG_SLIP is not set
+CONFIG_SLHC=m
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+# CONFIG_INPUT is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# IO expansion
+#
+CONFIG_ECOREEX=y
+# CONFIG_ECOREEX_TGPIO is not set
+# CONFIG_ECOREEX_SGPWM is not set
+# CONFIG_ECOREEX_GCMB is not set
+# CONFIG_ECOREEX_DENM is not set
+# CONFIG_ECOREEX_HWMS is not set
+CONFIG_ECOREEX_SOM150=y
+# CONFIG_ECOREEX_KEY is not set
+CONFIG_BOARDSPEC=y
+
+#
+# Character devices
+#
+# CONFIG_VT is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_ATMEL=y
+CONFIG_SERIAL_ATMEL_CONSOLE=y
+CONFIG_SERIAL_ATMEL_PDC=y
+# CONFIG_SERIAL_ATMEL_TTYAT is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+# CONFIG_I2C is not set
+
+#
+# SPI support
+#
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_ATMEL=y
+# CONFIG_SPI_BITBANG is not set
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_AT25=y
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_TLE62X0 is not set
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+# CONFIG_HWMON is not set
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_NOWAYOUT=y
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+CONFIG_AT91SAM9_WATCHDOG=y
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_ASIC3 is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+# CONFIG_DAB is not set
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+# CONFIG_FB is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=y
+CONFIG_SND_PCM_OSS=y
+CONFIG_SND_PCM_OSS_PLUGINS=y
+# CONFIG_SND_DYNAMIC_MINORS is not set
+# CONFIG_SND_SUPPORT_OLD_API is not set
+# CONFIG_SND_VERBOSE_PROCFS is not set
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# ALSA ARM devices
+#
+
+#
+# SPI devices
+#
+# CONFIG_SND_AT73C213 is not set
+CONFIG_SND_CS4271=y
+CONFIG_SND_CS4271_TARGET_BITRATE=48000
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+# CONFIG_SND_USB_CAIAQ is not set
+
+#
+# System on Chip audio support
+#
+CONFIG_SND_SOC=y
+CONFIG_SND_AT91_SOC=y
+
+#
+# SoC Audio support for SuperH
+#
+
+#
+# ALSA SoC audio for Freescale SOCs
+#
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+CONFIG_USB_DEVICE_CLASS=y
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_SUSPEND is not set
+# CONFIG_USB_PERSIST is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_ISP116X_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# may also be needed; see USB_STORAGE Help for more information
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+# CONFIG_USB_MON is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_BERRY_CHARGE is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGET is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_ATMEL_USBA is not set
+# CONFIG_USB_GADGET_FSL_USB2 is not set
+# CONFIG_USB_GADGET_NET2280 is not set
+# CONFIG_USB_GADGET_PXA2XX is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_S3C2410 is not set
+CONFIG_USB_GADGET_AT91=y
+CONFIG_USB_AT91=y
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+# CONFIG_USB_GADGET_DUALSPEED is not set
+CONFIG_USB_ZERO=m
+# CONFIG_USB_ETH is not set
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+CONFIG_USB_G_SERIAL=m
+# CONFIG_USB_MIDI_GADGET is not set
+# CONFIG_USB_G_PRINTER is not set
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+
+#
+# MMC/SD Host Controller Drivers
+#
+CONFIG_MMC_AT91=y
+# CONFIG_MMC_SPI is not set
+# CONFIG_NEW_LEDS is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_AT91SAM9=y
+CONFIG_RTC_DRV_AT91SAM9_RTT=0
+CONFIG_RTC_DRV_AT91SAM9_GPBR=0
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=y
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+# CONFIG_JFFS2_FS_WRITEBUFFER is not set
+CONFIG_JFFS2_SUMMARY=y
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_CRAMFS=y
+# CONFIG_VXFS_FS is not set
+CONFIG_MINIX_FS=m
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_NFSD is not set
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# CONFIG_SUNRPC_BIND34 is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+CONFIG_NLS_CODEPAGE_850=y
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_SLAB is not set
+CONFIG_DEBUG_PREEMPT=y
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_SAMPLES is not set
+# CONFIG_DEBUG_USER is not set
+# CONFIG_DEBUG_ERRORS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_LL is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+# CONFIG_CRYPTO is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_CRC_CCITT=y
+# CONFIG_CRC16 is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
diff -Naur linux-2.6.25.maxim/arch/arm/Kconfig linux-2.6.25.at91-20080908/arch/arm/Kconfig
--- linux-2.6.25.maxim/arch/arm/Kconfig	2008-04-16 21:49:44.000000000 -0500
+++ linux-2.6.25.at91-20080908/arch/arm/Kconfig	2008-07-24 11:43:16.000000000 -0500
@@ -1132,6 +1132,8 @@
 
 source "drivers/input/Kconfig"
 
+source "drivers/ioex/Kconfig"
+
 source "drivers/char/Kconfig"
 
 source "drivers/i2c/Kconfig"
diff -Naur linux-2.6.25.maxim/arch/arm/mach-at91/at91sam9260_devices.c linux-2.6.25.at91-20080908/arch/arm/mach-at91/at91sam9260_devices.c
--- linux-2.6.25.maxim/arch/arm/mach-at91/at91sam9260_devices.c	2008-09-08 12:55:20.000000000 -0500
+++ linux-2.6.25.at91-20080908/arch/arm/mach-at91/at91sam9260_devices.c	2008-09-08 13:09:09.000000000 -0500
@@ -21,6 +21,7 @@
 #include <asm/arch/at91sam9260.h>
 #include <asm/arch/at91sam9260_matrix.h>
 #include <asm/arch/at91sam9_smc.h>
+#include <asm/mach/serial_at91.h>
 
 #include "generic.h"
 
@@ -368,10 +369,20 @@
 #if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE)
 
 static struct i2c_gpio_platform_data pdata = {
+#ifdef CONFIG_DATA_FUSION
+	.sda_pin		= AT91_PIN_PC12,
+	.sda_is_open_drain	= 0,
+#else
 	.sda_pin		= AT91_PIN_PA23,
 	.sda_is_open_drain	= 1,
+#endif
+#ifdef CONFIG_DATA_FUSION
+	.scl_pin		= AT91_PIN_PC15,
+	.scl_is_open_drain	= 0,
+#else
 	.scl_pin		= AT91_PIN_PA24,
 	.scl_is_open_drain	= 1,
+#endif
 	.udelay			= 2,		/* ~100 kHz */
 };
 
@@ -383,11 +394,19 @@
 
 void __init at91_add_device_i2c(struct i2c_board_info *devices, int nr_devices)
 {
+#ifdef CONFIG_DATA_FUSION
+	at91_set_GPIO_periph(AT91_PIN_PC12, 1);		/* TWD (SDA) */
+	at91_set_multi_drive(AT91_PIN_PC12, 0);
+
+	at91_set_GPIO_periph(AT91_PIN_PC15, 1);		/* TWCK (SCL) */
+	at91_set_multi_drive(AT91_PIN_PC15, 0);
+#else
 	at91_set_GPIO_periph(AT91_PIN_PA23, 1);		/* TWD (SDA) */
 	at91_set_multi_drive(AT91_PIN_PA23, 1);
 
 	at91_set_GPIO_periph(AT91_PIN_PA24, 1);		/* TWCK (SCL) */
 	at91_set_multi_drive(AT91_PIN_PA24, 1);
+#endif
 
 	i2c_register_board_info(0, devices, nr_devices);
 	platform_device_register(&at91sam9260_twi_device);
@@ -1052,7 +1071,7 @@
 	at91_set_A_periph(AT91_PIN_PB13, 0);		/* RXD5 */
 }
 
-static struct platform_device *__initdata at91_uarts[ATMEL_MAX_UART];	/* the UARTs to use */
+struct platform_device *at91_uarts[ATMEL_MAX_UART];	/* the UARTs to use */
 struct platform_device *atmel_default_console_device;	/* the serial console device */
 
 void __init __deprecated at91_init_serial(struct at91_uart_config *config)
@@ -1177,11 +1196,27 @@
 	if (!atmel_default_console_device)
 		printk(KERN_INFO "AT91: No default serial console defined.\n");
 }
+
+/* if available, calls the serial driver for a given channel to set auto485 mode */
+int at91_auto485_serial(int channel, int fos)
+{
+	struct uart_port *port = NULL;
+
+	if (channel > ATMEL_MAX_UART) 
+		return -1;
+	if (at91_uarts[channel] == NULL)
+		return -2;
+	if((port = platform_get_drvdata(at91_uarts[channel])) == NULL)
+		return -3;
+	return atmel_auto485(port,fos);
+}
+
 #else
 void __init __deprecated at91_init_serial(struct at91_uart_config *config) {}
 void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {}
 void __init at91_set_serial_console(unsigned portnr) {}
 void __init at91_add_device_serial(void) {}
+int at91_auto485_serial(int channel, int fos) { return 0; }
 #endif
 
 
diff -Naur linux-2.6.25.maxim/arch/arm/mach-at91/atod-som9260m.c linux-2.6.25.at91-20080908/arch/arm/mach-at91/atod-som9260m.c
--- linux-2.6.25.maxim/arch/arm/mach-at91/atod-som9260m.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.6.25.at91-20080908/arch/arm/mach-at91/atod-som9260m.c	2008-09-05 18:10:37.000000000 -0500
@@ -0,0 +1,106 @@
+/*
+ * arch/arm/mach-at91/atod-som9260m.c
+ * EMAC.Inc SOM9260m low level AtoD interactions
+ *
+ * Copyright (C) 2007 EMAC.Inc <support@emacinc.com>
+ */
+
+
+#include "atod-som9260m.h"
+
+/* Global Variables Used in the Driver. */
+int drdy;
+void __iomem *adc_base;
+struct clk *adc_clk;
+
+
+int som9260m_atod_init(void)
+{
+	adc_clk = clk_get(NULL, "adc_clk");
+	clk_enable(adc_clk);
+
+	at91_set_A_periph(AT91_PIN_PC0,0);
+	at91_set_A_periph(AT91_PIN_PC1,0);
+	at91_set_A_periph(AT91_PIN_PC2,0);
+	at91_set_A_periph(AT91_PIN_PC3,0);
+
+	/* Set up the ADC */
+	adc_base = ioremap(AT91SAM9260_BASE_ADC, SZ_16K);
+	/* Mode setup */
+	__raw_writel((SHTIM << 24 | STARTUP << 16 | PRESCAL << 8 | SLEEP_MODE << 5 | 
+				LOWRES << 4 | TRGSEL << 1 | TRGEN), adc_base + ADC_MR);
+	/* Disable Channels 1-3 */
+	__raw_writel((0x1 << 0)^(0xF), adc_base + ADC_CHDR);
+	/* Enable Channel 0 */
+	__raw_writel((0x1 << 0), adc_base + ADC_CHER);
+	return 0;
+}
+
+int som9260m_atod_switch(int channel)
+{
+	/* Disable Channels */	
+	__raw_writel((0x1 << channel)^(0xF), adc_base + ADC_CHDR);
+	/* Enable specified channel */
+	__raw_writel((0x1 << channel), adc_base + ADC_CHER);
+
+	return 0;
+}
+
+int som9260m_atod_read_current(void)
+{
+	int data;
+
+	drdy = __raw_readl(adc_base + ADC_SR);
+	if (drdy & 0x10000) {
+		data = __raw_readl(adc_base + ADC_LCDR);
+		return data;
+	}
+	else
+		return -1;
+	return (data);
+}
+
+static gpio_data atod_data_read(struct gpio_s *gpio)
+{
+	int data;
+
+	/* start the conversion */	
+	__raw_writel(0x02, adc_base + ADC_CR);
+	/* loop to get the first available data */
+	do {
+		data = som9260m_atod_read_current();
+	} while (data == -1);
+
+	return data;	
+}
+
+static gpio_data atod_index_read(struct gpio_s *gpio)
+{
+	return gpio->index;
+}
+
+static int atod_index_write(struct gpio_s *gpio,gpio_data index)
+{
+	if(index > 3)
+		return -1;
+	if(index < 0)
+		return -1;
+	gpio->index = index;
+	som9260m_atod_switch(index);	
+	return 0;
+}
+
+struct class_device *som9260m_atod_class_create(const char *name)
+{
+	gpio_t *gpio = kmalloc(sizeof(gpio_t),GFP_KERNEL);
+	memset(gpio,0,sizeof(gpio_t));
+	gpio->name = name;
+	gpio->subclass = GPIO_SUBCLASS;
+	gpio->data_write = gpio_empty_write;
+	gpio->data_read = atod_data_read;
+	gpio->index_write = atod_index_write;
+	gpio->index_read = atod_index_read;
+	gpio->index = 0;
+	printk("registering indexed atod device: %s\n",name);
+	return gpio_register_class_device(gpio);
+}
diff -Naur linux-2.6.25.maxim/arch/arm/mach-at91/atod-som9260m.h linux-2.6.25.at91-20080908/arch/arm/mach-at91/atod-som9260m.h
--- linux-2.6.25.maxim/arch/arm/mach-at91/atod-som9260m.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.6.25.at91-20080908/arch/arm/mach-at91/atod-som9260m.h	2008-07-24 11:43:16.000000000 -0500
@@ -0,0 +1,45 @@
+#ifndef ATODSOM9260M_H_
+#define ATODSOM9260M_H_
+
+#include <asm/io.h>
+#include <asm/hardware.h>
+#include <linux/class/gpio.h>
+#include <linux/clk.h>
+#include <asm/arch/board.h>
+#include <asm/arch/at91sam9260.h>
+#include <asm/arch/gpio.h>
+
+#define ADC_CR          0x00    //Control Register Offset
+#define ADC_MR          0x04    //Mode Register Offset
+#define ADC_CHER        0x10    //Channel Enable Register Offset
+#define ADC_CHDR        0x14    //Channel Disable Register Offset
+#define ADC_CHSR        0x18    //Channel Status Register Offset
+#define ADC_SR          0x1C    //Status Register Offset
+#define ADC_LCDR        0x20    //Last Converted Data Register Offset
+#define ADC_IER         0x24    //Interrupt Enable Register Offset
+#define ADC_IDR         0x28    //Interrupt Disable Register Offset
+#define ADC_IMR         0x2C    //Interrupt Mask Register Offset
+#define ADC_CDR0        0x30    //Channel Data Register 0 Offset
+#define ADC_CDR1        0x34    //Channel Data Register 1 Offset
+#define ADC_CDR2        0x38    //Channel Data Register 2 Offset
+#define ADC_CDR3        0x3C    //Channel Data Register 3 Offset
+
+/* Define some of the values we will want in the registers
+ * This can be changed to reflect the needs of the driver
+ */
+
+#define TRGEN           0x00    //Trigger Enable
+#define TRGSEL          0x00    //Trigger Select
+#define LOWRES          0x00    //Resolution
+#define SLEEP_MODE      0x00    //Sleep Mode
+#define PRESCAL         0x22   //Prescaler Rate Selection (22 --> ~100 samples/sec)
+#define STARTUP         0x02    //Start Up Time
+#define SHTIM           0x00    //Sample and Hold Time
+
+
+int som9260m_atod_init(void);
+int som9260m_atod_switch(int channel);
+int som9260m_atod_read_current(void);
+struct class_device *som9260m_atod_class_create(const char *name);
+
+#endif /*ATODSOM9260M_H_*/
diff -Naur linux-2.6.25.maxim/arch/arm/mach-at91/board-som9260m.c linux-2.6.25.at91-20080908/arch/arm/mach-at91/board-som9260m.c
--- linux-2.6.25.maxim/arch/arm/mach-at91/board-som9260m.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.6.25.at91-20080908/arch/arm/mach-at91/board-som9260m.c	2008-09-05 18:10:37.000000000 -0500
@@ -0,0 +1,676 @@
+/*
+ * linux/arch/arm/mach-at91rm9200/board-som9260m.c
+ *
+ *  Copyright (C) 2005 SAN People
+ *  Copyright (C) 2006 Atmel
+ *  Copyright (C) 2007 EMAC.Inc
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include <linux/types.h>
+#include <linux/init.h>
+#include <linux/mm.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/cs4271.h>
+#include <linux/clk.h>
+#include <linux/ioex/ecoreex.h>
+#include <linux/mtd/physmap.h>
+#include <linux/interrupt.h>
+#ifdef CONFIG_SPICLASS
+#include <linux/class/spi.h>
+#include <linux/class/spi_interface.h>
+#endif /* CONFIG_SPICLASS */
+
+#include <asm/hardware.h>
+#include <asm/setup.h>
+#include <asm/mach-types.h>
+#include <asm/irq.h>
+
+#include <asm/mach/arch.h>
+#include <asm/mach/map.h>
+#include <asm/mach/irq.h>
+
+#include <asm/arch/board.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/at91sam9260.h>
+#include <asm/arch/at91_shdwc.h>
+#include <asm/arch/at91sam9_smc.h>
+
+#include "generic.h"
+#include "atod-som9260m.h"
+#include "data-fusion-som9260.h"
+
+static void __init ek_map_io(void)
+{
+	/* Initialize processor: 18.432 MHz crystal */
+	at91sam9260_initialize(18432000);
+
+	/* DGBU on ttyS5. (Rx & Tx only) */
+	at91_register_uart(0, 5, 0);
+
+	/* USART0 on ttyS0. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */
+	at91_register_uart(AT91SAM9260_ID_US0, 0, ATMEL_UART_CTS | ATMEL_UART_RTS
+			| ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD
+			| ATMEL_UART_RI);
+
+	/* USART1 on ttyS1. (Rx, Tx, RTS, CTS) */
+	at91_register_uart(AT91SAM9260_ID_US1, 1, ATMEL_UART_CTS | ATMEL_UART_RTS);
+
+	/* USART2 on ttyS2. (Rx, Tx, RTS, CTS) */
+	at91_register_uart(AT91SAM9260_ID_US2, 2, ATMEL_UART_CTS | ATMEL_UART_RTS);
+
+	/* USART3 on ttyS3. (Rx, Tx, RTS, CTS) */
+//#ifdef CONFIG_MACH_SOM9260M_64
+	/* CTS3 and RTS3 are used for NOR addressing and PLD CS */
+	at91_register_uart(AT91SAM9260_ID_US3, 3, 0);
+//#else
+	/* CTS3 is shared with A25 -- needed for 64 MB flash */
+//	at91_register_uart(AT91SAM9260_ID_US3, 3, ATMEL_UART_CTS | ATMEL_UART_RTS);
+//#endif
+
+	/* USART5 on ttyS4. (Rx & Tx only) */
+	at91_register_uart(AT91SAM9260_ID_US5, 4, 0);
+
+	/* set serial console to ttyS3 */
+	at91_set_serial_console(3);	
+}
+
+static void __init ek_init_irq(void)
+{
+	at91sam9260_init_interrupts(NULL);
+}
+
+
+/*
+ * USB Host port
+ */
+static struct at91_usbh_data __initdata ek_usbh_data = {
+	.ports		= 2,
+};
+
+/*
+ * USB Device port
+ */
+static struct at91_udc_data __initdata ek_udc_data = {
+	.vbus_pin	= AT91_PIN_PB31,
+	.pullup_pin	= 0,		/* pull-up driven by UDC */
+};
+
+/*
+ * Audio
+ */
+static struct cs4271_board_info cs4271_data = {
+	.ssc_id		= 0,
+	.shortname	= "CS4271 Audio Codec",
+};
+
+#if defined(CONFIG_SND_CS4271) || defined(CONFIG_SND_CS4271_MODULE)
+static void __init cs4271_set_clk(struct cs4271_board_info *info)
+{
+	struct clk *pck0;
+	struct clk *plla;
+
+	pck0 = clk_get(NULL, "pck0");
+	plla = clk_get(NULL, "plla");
+
+	/* MCK Clock */
+	at91_set_A_periph(AT91_PIN_PB30, 0);	/* PCK0 */
+
+	clk_set_parent(pck0, plla);
+
+	clk_put(plla);
+
+	info->dac_clk = pck0;
+}
+#else
+static void __init cs4271_set_clk(struct cs4271_board_info *info) {}
+#endif
+
+/*
+ * SPI devices.
+ */
+
+/************************************************************
+ * mcp3208 atod interface over EMAC SPI class
+ */
+
+#if defined(CONFIG_ARMSTRONG_HWMS) //|| defined(CONFIG_SOM_150ES)
+static struct spi_s mcp3208_spi = 
+{
+	.name = "mcp3208",
+	.subclass = 0,
+	.tip = lsi2esc_spi_tip,
+	.xmit = lsi2esc_spi_xmit,
+	.confwrite = lsi2esc_spi_confwrite,
+	.confread = lsi2esc_spi_confread,
+	.speedread = lsi2esc_spi_speedread,
+	.speedwrite = lsi2esc_spi_speedwrite,
+};
+#endif
+
+static struct spi_s at25fs010_spi = 
+{
+	.name = "at25fs010",
+	.subclass = 0,
+	.tip = lsi2esc_spi_tip,
+	.xmit = lsi2esc_spi_xmit,
+	.confwrite = lsi2esc_spi_confwrite,
+	.confread = lsi2esc_spi_confread,
+	.speedread = lsi2esc_spi_speedread,
+	.speedwrite = lsi2esc_spi_speedwrite,
+};
+
+
+static struct spi_board_info ek_spi_devices[] = {
+#if !defined(CONFIG_MMC_AT91)
+//	{	/* DataFlash chip */
+//		.modalias	= "mtd_dataflash",
+//		.chip_select	= 1,
+//		.max_speed_hz	= 15 * 1000 * 1000,
+//		.bus_num	= 0,
+//	},
+#if defined(CONFIG_MTD_AT91_DATAFLASH_CARD)
+	{	/* DataFlash card */
+		.modalias	= "mtd_dataflash",
+		.chip_select	= 0,
+		.max_speed_hz	= 15 * 1000 * 1000,
+		.bus_num	= 0,
+	},
+#endif
+#endif
+#if defined(CONFIG_SND_CS4271) || defined(CONFIG_SND_CS4271_MODULE)
+	{	/* CS4271 codec */
+		.modalias	= "cs4271",
+		.chip_select	= 0,
+		.max_speed_hz	= 6 * 1000 * 1000,
+		.bus_num	= 1,
+		.platform_data	= &cs4271_data,
+	},
+#endif
+#if defined(CONFIG_ARMSTRONG_HWMS) //|| defined(CONFIG_SOM_150ES)
+	{ /* mcp3208 ADC */
+		.modalias = "lsi2esc", /* use the SPI class interface */
+		.chip_select = 0,
+		.max_speed_hz = 1e6,
+		.bus_num = 1,
+		.platform_data = &mcp3208_spi,
+	},
+#endif
+	{ /* SEEPROM Interface */
+		.modalias = "lsi2esc", /* use the SPI class interface */
+		.chip_select = 1,
+		.max_speed_hz = 50 * 1000 * 1000,
+		.bus_num = 0,
+		.platform_data = &at25fs010_spi,	
+	},
+};
+
+/*
+ * MACB Ethernet device
+ */
+static struct __initdata at91_eth_data ek_macb_data = {
+	.phy_irq_pin	= AT91_PIN_PA7,
+	.is_rmii	= 0,
+};
+
+
+/*
+ * NAND flash
+ */
+#ifdef  CONFIG_MACH_SOM9260M_NAND
+static struct mtd_partition __initdata ek_nand_partition[] = {
+	{
+		.name	= "Boot Partition",
+		.offset	= 0,
+		.size	= 64 * 2 * 1024,
+	},
+	{
+		.name	= "UBoot Partition",
+		.offset	= 64 * 2 * 1024,
+		.size	= 64 * 14 * 1024,
+	},
+	{
+		.name	= "Kernel Partition",
+		.offset	= 64 * 16 * 1024,
+		.size	= 64 * 48 * 1024,
+	},
+	{
+		.name	= "Disk Partition",
+		.offset	= 64 * 64 * 1024,
+		.size	= 64 * 256 * 1024,
+	},
+};
+
+
+static struct mtd_partition *nand_partitions(int size, int *num_partitions)
+{
+	*num_partitions = ARRAY_SIZE(ek_nand_partition);
+	return ek_nand_partition;
+}
+
+static struct at91_nand_data __initdata ek_nand_data = {
+	.ale		= 21,
+	.cle		= 22,
+	//	.det_pin	= ... not connected
+	.rdy_pin	= AT91_PIN_PC13,
+	.enable_pin	= AT91_PIN_PC14,
+	.partition_info	= nand_partitions,
+#if defined(CONFIG_MTD_NAND_AT91_BUSWIDTH_16)
+	.bus_width_16	= 1,
+#else
+	.bus_width_16	= 0,
+#endif
+};
+#else
+
+/*
+ *  NOR Flash
+ */
+
+#define SOM_FLASH_BASE	0x10000000
+
+#ifdef CONFIG_MACH_SOM9260M_16
+#define SOM_FLASH_SIZE	0x1000000
+#else
+#define SOM_FLASH_SIZE	0x2000000
+#endif
+
+static struct mtd_partition som_flash_partitions[] = {
+	{
+		.name	= "Boot Partition",
+		.offset	= 0,
+		.size	= 64 * 2 * 1024, /* ~125 KB */
+		.mask_flags	= MTD_WRITEABLE,
+	},
+	{
+		.name	= "U-Boot Partition",
+		.offset	= 64 * 2 * 1024,
+		.size	= 64 * 14 * 1024, /* ~875 KB */
+		.mask_flags	= MTD_WRITEABLE,
+	},
+	{
+		.name	= "Kernel Partition",
+		.offset	= 64 * 16 * 1024,
+		.size	= 64 * 48 * 1024, /* 3 MB */
+	},
+	{
+		.name	= "Disk Partition",
+		.offset	= 64 * 64 * 1024,
+		.size = SOM_FLASH_SIZE - (64 * 64 * 1024),
+	},
+#ifdef CONFIG_MACH_SOM9260M_64
+	{
+		.name	= "Auxilliary Partition",
+		.offset	= SOM_FLASH_SIZE,
+		.size	= SOM_FLASH_SIZE, /* 32 MB */
+	},
+#endif
+};
+
+static struct physmap_flash_data som_flash_data = {
+	.width		= 2,
+	.parts		= som_flash_partitions,
+	.nr_parts	= ARRAY_SIZE(som_flash_partitions),
+};
+
+static struct resource som_flash_resources[] = {
+	{
+		.start	= SOM_FLASH_BASE,
+		.end	= SOM_FLASH_BASE + SOM_FLASH_SIZE - 1,
+		.flags	= IORESOURCE_MEM,
+	},
+#ifdef CONFIG_MACH_SOM9260M_64
+	{ /* 2nd bank of 32 MB */
+		.start	= SOM_FLASH_BASE + SOM_FLASH_SIZE,
+		.end	= SOM_FLASH_BASE + SOM_FLASH_SIZE + SOM_FLASH_SIZE - 1,
+		.flags	= IORESOURCE_MEM,
+	}
+#endif
+};
+
+static struct platform_device som_flash = {
+	.name		= "physmap-flash",
+	.id		= 0,
+	.dev		= {
+		.platform_data = &som_flash_data,
+	},
+	.resource	= som_flash_resources,
+	.num_resources	= ARRAY_SIZE(som_flash_resources),
+};
+#endif
+
+/*
+ * MCI (SD/MMC)
+ */
+static struct at91_mmc_data __initdata ek_mmc_data = {
+	.slot_b		= 1,
+	.wire4		= 1,
+	.det_pin	= AT91_PIN_PB21,
+	//	.wp_pin		= ... not connected
+	//	.vcc_pin	= ... not connected
+};
+
+#ifdef CONFIG_ECOREEX_SOM9260M
+
+/************************************************************
+ * IOEX Device
+ * Onboard EMAC I/O core platform device used by the ecoreex driver
+ */
+#define CS4_START ((unsigned long)0x50000000)
+#define CS4_END  ((unsigned long)0x5FFFFFFF)
+#define CS4_LEN  ((unsigned long)(CS0_END-CS0_START+1))
+/* key is defined, but may be overridden by the ecoreex driver
+ * based on the static key definition in the config file
+ */
+#define CPLDKEY 0xF
+
+static struct ecoreex_data som9260m_ecoreex_data = {
+	.key_offset	= CPLDKEY,
+	.irq = AT91SAM9260_ID_IRQ1,
+};
+
+static struct resource som9260m_ecoreex_resource = {
+	.start	= CS4_START,
+	.end	= CS4_END,
+	.flags	= IORESOURCE_MEM,
+};
+
+static struct platform_device som9260m_ecoreex_device = {
+	.name		= "ecoreex",
+	.id		= -1,
+	.dev		= {
+		.platform_data	= &som9260m_ecoreex_data,
+	},
+	.num_resources	= 1,
+	.resource	= &som9260m_ecoreex_resource,
+};
+
+/**
+ * enable a generic memory map on cs4 and required module I/O
+ */
+static inline void cs4_setup(void)
+{
+	at91_sys_write(AT91_SMC_SETUP(4),
+			0
+		      );
+
+	at91_sys_write(AT91_SMC_PULSE(4),
+			AT91_SMC_NWEPULSE_(4)|
+			AT91_SMC_NCS_WRPULSE_(6)|
+			AT91_SMC_NRDPULSE_(3)|
+			AT91_SMC_NCS_RDPULSE_(5)
+		      );
+
+	at91_sys_write(AT91_SMC_CYCLE(4),
+			AT91_SMC_NWECYCLE_(5)|
+			AT91_SMC_NRDCYCLE_(6) 
+		      );
+
+	at91_sys_write(AT91_SMC_MODE(4),
+			AT91_SMC_READMODE|
+			AT91_SMC_WRITEMODE|
+			AT91_SMC_EXNWMODE_DISABLE|
+			AT91_SMC_DBW_8|
+			AT91_SMC_TDF_(0X0f)
+		      );
+
+	//at91_sys_write(AT91C_PIOC_PDR,0x100);
+	//at91_sys_write(AT91C_PIOC_OER,0x100);
+
+	at91_set_A_periph(AT91_PIN_PC8, 1);	
+}
+
+/**
+ * creates the 200k clock in using timer1 outputB
+ * TODO: move regdefs to a more appropriate general header
+ * NOTES: hard coded clock values could be more flexibly done through the clock registery, 
+ * but it would require some 
+ * fixed point math, which will be put off for a full PWM implementation
+ * at which point it's methods will replace this code block.
+ */
+#include <asm/arch/at91_tc.h>
+#define AT91SAM9260_TC1_CCR	(AT91SAM9260_BASE_TC1 + AT91_TC_CCR)
+#define AT91SAM9260_TC1_CMR	(AT91SAM9260_BASE_TC1 + AT91_TC_CMR)
+#define AT91SAM9260_TC1_RB	(AT91SAM9260_BASE_TC1 + AT91_TC_RB)
+#define AT91SAM9260_TC1_RC	(AT91SAM9260_BASE_TC1 + AT91_TC_RC)
+
+#define MCLK (25000000)
+
+#define at91_tc_read(reg)		__raw_readl(reg)
+#define at91_tc_write(reg, val)	__raw_writel((val), reg)
+
+static inline void set200kclock(void)
+{
+	struct clk *tc1_clk = clk_get(NULL, "tc1_clk");
+	unsigned long tc1 = (unsigned long)ioremap(AT91SAM9260_BASE_TC1,SZ_16K);
+
+	clk_enable(tc1_clk);//enable tc1 clock in the pmc
+
+	//tc1 setup for waveform on TCIOB1
+	at91_tc_write((tc1 + AT91_TC_CMR),
+			AT91_TC_TIMER_CLOCK1|
+			AT91_TC_WAVE|
+			AT91_TC_EEVT_XC0|
+			AT91_TC_WAVESEL_UP_AUTO|
+			AT91_TC_BCPB_TOGGLE
+		     );
+	//set the frequency
+	at91_tc_write((tc1 + AT91_TC_RC),(MCLK/200000));
+
+	//set RB to < RC for toggle (50% duty)
+	at91_tc_write((tc1 + AT91_TC_RB),((MCLK/200000)/2));
+
+	//reset and start the timer
+	at91_tc_write((tc1 + AT91_TC_CCR),AT91_TC_CLKEN|AT91_TC_SWTRG);
+
+	//enable timer functionality on PC7, TIOB1 
+	at91_set_A_periph(AT91_PIN_PC7, 1);		
+
+}
+
+static inline void at91_add_device_ecoreex4(void)
+{
+	cs4_setup();
+	set200kclock();
+	at91_set_A_periph(AT91_PIN_PC15, 1);//enable IRQ1 on PC15	
+	platform_device_register(&som9260m_ecoreex_device);
+}
+#else
+#define at91_add_device_ecoreex4()
+#endif /* CONFIG_ECOREEX_SOM9260M */
+
+
+/************************************************************/
+#ifdef CONFIG_RTSCLS
+#define GPIOBIT			0
+#define AUTORTSBIT		1
+#define GPIOMASK		(1<<GPIOBIT)
+#define AUTORTSMASK		(1<<AUTORTSBIT)
+#define RS485CHANNEL 	1
+
+static int is_auto_toggle = 0;
+/**
+ * set the rts line manually or put it in auto mode.
+ * bit 1 (0x02) is the auto rts control 0-off 1-on
+ * bit 0 (0x01) is the state of the pin, this cannot be set manually while in auto mode.
+ */
+static int rts_data_write(struct gpio_s *gpio, gpio_data data)
+{
+	if (data & AUTORTSMASK) {
+		if (!is_auto_toggle) { /* if auto toggle is already set, do nothing */
+			at91_set_A_periph(AT91_PIN_PB28, 1);//return RTS to primary functionality
+			at91_auto485_serial(RS485CHANNEL, 1);//call down into the driver to enable RTS auto toggle
+			is_auto_toggle = 1;
+		}
+	}
+	else {
+		if (is_auto_toggle) { /* change from peripheral to GPIO and set value */
+			at91_auto485_serial(RS485CHANNEL, 0);//Auto control off
+			at91_set_gpio_output(AT91_PIN_PB28, (char)(data & GPIOMASK));//set data manually
+			is_auto_toggle = 0;
+		}
+		else { /* already set to GPIO, change the value of the line */
+			at91_set_gpio_value(AT91_PIN_PB28, (char)(data & GPIOMASK));
+		}
+	}
+	return 0;
+}
+
+/**
+ * returns the current auto flow control state and 
+ * state of the pins by reading the hardware registers.
+ */
+static gpio_data rts_data_read(struct gpio_s *gpio)
+{
+	return (at91_get_gpio_value(AT91_PIN_PB28) | (at91_auto485_serial(RS485CHANNEL, 2) << AUTORTSBIT));
+}
+
+/**
+ * Create gpio rts interface through boardspec
+ */
+static inline struct class_device *som9260m_rtscls(void)
+{
+	gpio_t *gpio = kmalloc(sizeof(gpio_t),GFP_KERNEL);
+	memset(gpio,0,sizeof(gpio_t));
+	is_auto_toggle = 0;
+	at91_set_gpio_output(AT91_PIN_PB28, 1); /* rts line */
+	gpio->name = "rtsctl";
+	gpio->subclass = GPIO_SUBCLASS;
+	gpio->data_write = rts_data_write;
+	gpio->data_read = rts_data_read;
+	printk("registering gpio device: %s\n",gpio->name);
+	return gpio_register_class_device(gpio);	
+}
+
+#else /* CONFIG_RTSCLS */
+#define som9260m_rtscls()
+#endif
+
+static int physw_write(struct gpio_s *gpio,gpio_data data)
+{
+	at91_set_gpio_value(AT91_PIN_PA31,(char)data);
+	return 0;
+}
+
+static gpio_data physw_read(struct gpio_s *gpio)
+{
+	return at91_get_gpio_value(AT91_PIN_PA31);
+}
+
+static inline struct class_device *som9260m_physw(void){
+	gpio_t *gpio = kmalloc(sizeof(gpio_t),GFP_KERNEL);
+	memset(gpio,0,sizeof(gpio_t));
+	at91_set_gpio_output(AT91_PIN_PA31, 0);
+	gpio->name = "physw";
+	gpio->subclass = GPIO_SUBCLASS;
+	gpio->data_write = physw_write;
+	gpio->data_read = physw_read;
+	printk("registering gpio device: %s\n",gpio->name);
+	return gpio_register_class_device(gpio);
+}
+
+/************************************************************
+ * device registrations from the arch go here, 
+ * which are called by the boardspec ioex driver
+ */
+static int som9260m_classes(void)
+{
+	som9260m_atod_init();
+	som9260m_atod_class_create("indexed_atod");
+
+	som9260m_led_init();
+	som9260m_led_class_create("indexed_led");
+
+	som9260m_rtscls();
+
+	som9260m_physw();
+
+	//set wakeup mask to all uarts
+	set_irq_wake(AT91SAM9260_ID_US0,1);
+	set_irq_wake(AT91SAM9260_ID_US1,1);
+	set_irq_wake(AT91SAM9260_ID_US2,1);
+	set_irq_wake(AT91SAM9260_ID_US3,1);
+	set_irq_wake(AT91SAM9260_ID_US4,1);
+	//	set_irq_wake(AT91SAM9260_ID_US5,1);
+
+	return 0;
+}
+
+static struct platform_device boardspec_device = {
+	.name = "boardspec",
+	.id = 1,
+	.dev		= {
+		.platform_data	= &som9260m_classes,
+	},
+};
+
+static inline void at91_add_device_boardspec(void){
+	platform_device_register(&boardspec_device);
+}
+/************************************************************/
+
+static void __init ek_board_init(void)
+{
+	/* Serial */
+	at91_add_device_serial();
+	/* USB Host */
+	at91_add_device_usbh(&ek_usbh_data);
+	/* USB Device */
+	at91_add_device_udc(&ek_udc_data);
+	/* SPI */
+	at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices));
+	/* Ethernet */
+	at91_add_device_eth(&ek_macb_data);
+	/* MMC */
+	at91_add_device_mmc(0, &ek_mmc_data);
+
+	/* SSC (to cs4271) */
+	cs4271_set_clk(&cs4271_data);
+	at91_add_device_ssc(AT91SAM9260_ID_SSC, ATMEL_SSC_TX);
+
+	/* I2C if used (i.e. data fusion) */
+	at91_add_device_i2c(NULL, 0);
+
+	/* EMAC Core Extensions */
+	at91_add_device_ecoreex4();
+	/* Board Specific */
+	at91_add_device_boardspec();
+
+	/* Data fusion board support */
+	data_fusion_board_init();
+
+#ifdef  CONFIG_MACH_SOM9260M_NAND
+	/* NAND */
+	at91_add_device_nand(&ek_nand_data);
+#else
+	/* NOR Flash */
+	platform_device_register(&som_flash);
+#endif
+}
+
+MACHINE_START(AT91SAM9260EK, "EMAC SoM-9260M")
+	/* Maintainer: EMAC.Inc */
+	.phys_io	= AT91_BASE_SYS,
+	.io_pg_offst	= (AT91_VA_BASE_SYS >> 18) & 0xfffc,
+	.boot_params	= AT91_SDRAM_BASE + 0x100,
+	.timer		= &at91sam926x_timer,
+	.map_io		= ek_map_io,
+	.init_irq	= ek_init_irq,
+	.init_machine	= ek_board_init,
+MACHINE_END
+
diff -Naur linux-2.6.25.maxim/arch/arm/mach-at91/generic.h linux-2.6.25.at91-20080908/arch/arm/mach-at91/generic.h
--- linux-2.6.25.maxim/arch/arm/mach-at91/generic.h	2008-09-08 12:55:20.000000000 -0500
+++ linux-2.6.25.at91-20080908/arch/arm/mach-at91/generic.h	2008-09-03 16:58:59.000000000 -0500
@@ -43,6 +43,13 @@
 extern void at91_irq_resume(void);
 extern int at91_suspend_entering_slow_clock(void);
 
+/* Uarts */
+extern int at91_auto485_serial(int channel, int fos);
+
+/* LEDs */
+int som9260m_led_init(void);
+struct class_device *som9260m_led_class_create(const char *name);
+
  /* GPIO */
 #define AT91RM9200_PQFP		3	/* AT91RM9200 PQFP package has 3 banks */
 #define AT91RM9200_BGA		4	/* AT91RM9200 BGA package has 4 banks */
diff -Naur linux-2.6.25.maxim/arch/arm/mach-at91/gpio.c linux-2.6.25.at91-20080908/arch/arm/mach-at91/gpio.c
--- linux-2.6.25.maxim/arch/arm/mach-at91/gpio.c	2008-09-08 12:55:20.000000000 -0500
+++ linux-2.6.25.at91-20080908/arch/arm/mach-at91/gpio.c	2008-08-26 12:28:19.000000000 -0500
@@ -63,11 +63,18 @@
  * as NOPs so Linux won't duplicate any setup code
  */
 
+/**
+ * Note: Assigning GPIO pin roles to the PIO or an associated peripheral
+ * is not necessarily known at boot and can be changed on the fly. For example,
+ * the RTS auto-toggle switch in the SoM-9260 code can switch RTS from auto-
+ * toggle to manual mode and back. These cannot be defined as __init_or_module.
+ */
 
 /*
  * mux the pin to the "GPIO" peripheral role.
  */
-int __init_or_module at91_set_GPIO_periph(unsigned pin, int use_pullup)
+/* int __init_or_module at91_set_GPIO_periph(unsigned pin, int use_pullup) */
+int at91_set_GPIO_periph(unsigned pin, int use_pullup)
 {
 	void __iomem	*pio = pin_to_controller(pin);
 	unsigned	mask = pin_to_mask(pin);
@@ -85,7 +92,8 @@
 /*
  * mux the pin to the "A" internal peripheral role.
  */
-int __init_or_module at91_set_A_periph(unsigned pin, int use_pullup)
+/* int __init_or_module at91_set_A_periph(unsigned pin, int use_pullup) */
+int at91_set_A_periph(unsigned pin, int use_pullup)
 {
 	void __iomem	*pio = pin_to_controller(pin);
 	unsigned	mask = pin_to_mask(pin);
@@ -105,7 +113,8 @@
 /*
  * mux the pin to the "B" internal peripheral role.
  */
-int __init_or_module at91_set_B_periph(unsigned pin, int use_pullup)
+/* int __init_or_module at91_set_B_periph(unsigned pin, int use_pullup) */
+int at91_set_B_periph(unsigned pin, int use_pullup)
 {
 	void __iomem	*pio = pin_to_controller(pin);
 	unsigned	mask = pin_to_mask(pin);
diff -Naur linux-2.6.25.maxim/arch/arm/mach-at91/Kconfig linux-2.6.25.at91-20080908/arch/arm/mach-at91/Kconfig
--- linux-2.6.25.maxim/arch/arm/mach-at91/Kconfig	2008-09-08 12:55:20.000000000 -0500
+++ linux-2.6.25.at91-20080908/arch/arm/mach-at91/Kconfig	2008-09-05 18:10:37.000000000 -0500
@@ -203,6 +203,65 @@
 	  Select this if you are using a Calao Systems QIL-A9260 Board.
 	  <http://www.calao-systems.com>
 
+config MACH_SOM9260M
+	bool "EMAC SoM-9260M"
+	depends on ARCH_AT91SAM9260
+	help
+	  Select this if you are using EMAC's SoM-9260M module.
+
+config ARMSTRONG_HWMS
+	bool "EMAC Armstrong HWMS Carrier Support"
+	depends on MACH_SOM9260M
+	help
+	  Support for the EMAC.Inc Armstrong HWMS BrainScan carrier
+	  board and peripherals. Enables compilation of drivers
+	  for ADC and counter.
+
+config DATA_FUSION
+	bool "Data Fusion Carrier Support"
+	depends on MACH_SOM9260M
+
+	help
+	  Support for the Data Fusion carrier board. Utilizes all
+	  six serial ports, GPIO based I2C, and many GPIO lines.
+
+config SOM_150ES
+	bool "EMAC SOM-150 Carrier Support"
+	depends on MACH_SOM9260M
+	help
+	  Support for the EMAC.Inc SOM-150ES carrier board and 
+	  peripherals.	 
+
+config ECOREEX_SOM9260M
+	bool "EMAC Core Extensions for the SoM-9260M"
+	depends on MACH_SOM9260M && !DATA_FUSION
+	help
+	  Select this to enable support for a PLD on on CS4 on the
+	  SoM-9260M module.
+
+if MACH_SOM9260M
+menu "SOM9260 Memory Options"
+
+choice
+	prompt "Flash Size / SDRAM Size"
+
+config MACH_SOM9260M_16
+	bool "16MB / 16MB"
+
+config MACH_SOM9260M_32
+	bool "32MB / 32MB"
+
+config MACH_SOM9260M_64
+	bool "64MB / 64MB"
+
+config MACH_SOM9260M_NAND
+	bool "NAND 32MB / 32MB"
+endchoice
+
+endmenu
+
+endif
+
 endif
 
 # ----------------------------------------------------------
@@ -343,6 +402,12 @@
 	  system clock (of at least several MHz), rounding is less of a
 	  problem so it can be safer to use a decimal values like 100.
 
+config RTSCLS
+	bool "Enable gpio class for the RTS flow control line"
+	depends on MACH_SOM9260M
+	help
+	  Enable class based control of the RTS flow control line.
+
 choice
 	prompt "Select a UART for early kernel messages"
 
diff -Naur linux-2.6.25.maxim/arch/arm/mach-at91/led-som9260m.c linux-2.6.25.at91-20080908/arch/arm/mach-at91/led-som9260m.c
--- linux-2.6.25.maxim/arch/arm/mach-at91/led-som9260m.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.6.25.at91-20080908/arch/arm/mach-at91/led-som9260m.c	2008-09-05 18:10:37.000000000 -0500
@@ -0,0 +1,71 @@
+/*
+ * arch/arm/mach-at91/led-som9260m.c
+ * EMAC.Inc SOM9260m low level led interactions
+ *
+ * Copyright (C) 2007 EMAC.Inc <support@emacinc.com>
+ */
+
+#include <asm/io.h>
+#include <asm/hardware.h>
+#include <linux/class/gpio.h>
+#include <asm/arch/board.h>
+#include <asm/arch/at91sam9260.h>
+#include <asm/arch/gpio.h>
+
+#define LED_CNT 2
+
+/* Global Variables Used in the Driver. */
+static int led_array[LED_CNT] = { AT91_PIN_PA9, AT91_PIN_PA10 };
+static char led_value[LED_CNT] = { 0, 0 };
+
+int som9260m_led_init(void)
+{
+	int i;
+
+	for(i = 0; i < LED_CNT; i++)
+		at91_set_gpio_output(led_array[i],led_value[i]);
+	return 0;
+}
+
+static gpio_data led_data_read(struct gpio_s *gpio)
+{
+	return at91_get_gpio_value(led_array[gpio->index]);
+}
+
+static int led_data_write(struct gpio_s *gpio,gpio_data data)
+{
+	led_value[gpio->index] = (char)data;
+	at91_set_gpio_value(led_array[gpio->index],led_value[gpio->index]);
+	return 0;
+}
+
+static gpio_data led_index_read(struct gpio_s *gpio)
+{
+	return gpio->index;
+}
+
+static int led_index_write(struct gpio_s *gpio, gpio_data index)
+{
+	if (index > LED_CNT)
+		return -1;
+	if (index < 0)
+		return -1;
+	gpio->index = index;
+	return 0;
+}
+
+struct class_device *som9260m_led_class_create(const char *name)
+{
+	gpio_t *gpio = kmalloc(sizeof(gpio_t),GFP_KERNEL);
+	memset(gpio,0,sizeof(gpio_t));
+	gpio->name = name;
+	gpio->subclass = GPIO_SUBCLASS;
+	gpio->data_write = led_data_write;
+	gpio->data_read = led_data_read;
+	gpio->index_write = led_index_write;
+	gpio->index_read = led_index_read;
+	gpio->index = 0;
+	printk("registering indexed led device: %s\n",name);
+	return gpio_register_class_device(gpio);
+}
+
diff -Naur linux-2.6.25.maxim/arch/arm/mach-at91/Makefile linux-2.6.25.at91-20080908/arch/arm/mach-at91/Makefile
--- linux-2.6.25.maxim/arch/arm/mach-at91/Makefile	2008-09-08 12:55:20.000000000 -0500
+++ linux-2.6.25.at91-20080908/arch/arm/mach-at91/Makefile	2008-09-05 18:10:37.000000000 -0500
@@ -37,6 +37,8 @@
 
 # AT91SAM9260 board-specific support
 obj-$(CONFIG_MACH_AT91SAM9260EK) += board-sam9260ek.o
+obj-$(CONFIG_MACH_SOM9260M)	+= board-som9260m.o atod-som9260m.o led-som9260m.o
+obj-$(CONFIG_DATA_FUSION)	+= data-fusion-som9260.o
 obj-$(CONFIG_MACH_CAM60)	+= board-cam60.o
 obj-$(CONFIG_MACH_SAM9_L9260)	+= board-sam9-l9260.o
 obj-$(CONFIG_MACH_USB_A9260)	+= board-usb-a9260.o
