at91: upgrade to kernel 3.8.7 and use devicetree
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 26 Apr 2013 16:55:40 +0000 (16:55 +0000)
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 26 Apr 2013 16:55:40 +0000 (16:55 +0000)
This upgrades the AT91 target to 3.8.7, and migrates to device tree.
This allows a single kernel to be built for most at91 variants which
simplifies things quite a bit. The immediate result is that all
subtargets are nuked, and any boards without dts files are no longer
supported, though the target now includes more boards than before. The
adc driver was also nuked as 3.8.7 includes a new one under the IIO
subsystem.

Signed-off-by: Adam Porter <porter.adam@gmail.com>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36452 3c298f89-4303-0410-b956-a3cf2f4a3e73

23 files changed:
target/linux/at91/9260/base-files/etc/config/network [deleted file]
target/linux/at91/9260/base-files/etc/config/system [deleted file]
target/linux/at91/9260/base-files/etc/init.d/custom-user-startup [deleted file]
target/linux/at91/9260/config-default [deleted file]
target/linux/at91/9260/profiles/000-flexibity-minimal.mk [deleted file]
target/linux/at91/9260/profiles/001-flexibity-xwrt.mk [deleted file]
target/linux/at91/9260/profiles/002-flexibity-luci.mk [deleted file]
target/linux/at91/9260/target.mk [deleted file]
target/linux/at91/9263/config-default [deleted file]
target/linux/at91/9263/target.mk [deleted file]
target/linux/at91/9g20/config-default [deleted file]
target/linux/at91/9g20/target.mk [deleted file]
target/linux/at91/Makefile
target/linux/at91/config-default
target/linux/at91/files/arch/arm/boot/dts/lmu5000.dts [new file with mode: 0644]
target/linux/at91/files/drivers/misc/at91-adc.c [deleted file]
target/linux/at91/files/drivers/misc/at91_adc.h [deleted file]
target/linux/at91/image/Makefile
target/linux/at91/modules.mk
target/linux/at91/patches/900-AT91-Add-external-RTC-for-Flexibity-board.patch [deleted file]
target/linux/at91/profiles/00-default.mk [new file with mode: 0644]
target/linux/at91/profiles/atmel.mk [new file with mode: 0644]
target/linux/at91/profiles/calamp.mk [new file with mode: 0644]

diff --git a/target/linux/at91/9260/base-files/etc/config/network b/target/linux/at91/9260/base-files/etc/config/network
deleted file mode 100644 (file)
index 5800a0b..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-
-config 'interface' 'loopback'
-       option 'ifname' 'lo'
-       option 'proto' 'static'
-       option 'ipaddr' '127.0.0.1'
-       option 'netmask' '255.0.0.0'
-
-config 'interface' 'cfg'
-       option 'ifname' 'usb0'
-       option 'proto' 'static'
-       option 'netmask' '255.255.255.0'
-       option 'gateway' '192.168.119.1'
-       option 'ipaddr' '192.168.119.2'
-
-config 'interface' 'lan'
-       option 'ifname' 'wlan0'
-       option 'proto' 'dhcp'
-
-#config 'interface' 'wan'
-#      option 
diff --git a/target/linux/at91/9260/base-files/etc/config/system b/target/linux/at91/9260/base-files/etc/config/system
deleted file mode 100644 (file)
index ba7e87c..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-config 'system'
-       option 'timezone' 'UTC'
-       option 'hostname' 'flexibity'
-
-config timeserver ntp
-       list server     0.openwrt.pool.ntp.org
-       list server     1.openwrt.pool.ntp.org
-       list server     2.openwrt.pool.ntp.org
-       list server     3.openwrt.pool.ntp.org
diff --git a/target/linux/at91/9260/base-files/etc/init.d/custom-user-startup b/target/linux/at91/9260/base-files/etc/init.d/custom-user-startup
deleted file mode 100644 (file)
index dc9f77c..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh /etc/rc.common
-START=90
-# place your own startup commands here
-#
-# REMEMBER: You *MUST* place an '&' after launching programs you 
-#   that are to continue running in the background.
-#
-#   i.e. 
-#   BAD:  upnpd
-#   GOOD: upnpd &
-# 
-# Failure to do this will result in the startup process halting
-# on this file and the diagnostic light remaining on (at least
-# for WRT54G(s) models).
-#
-
-# coldplug USB devices
-udevtrigger &
-
-# wait for coldplug and re-generate wireless config
-#wifi detect > /etc/config/wireless &
-
diff --git a/target/linux/at91/9260/config-default b/target/linux/at91/9260/config-default
deleted file mode 100644 (file)
index 5d19d06..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-CONFIG_ARCH_AT91SAM9260=y
-# CONFIG_MACH_AFEB9260 is not set
-# CONFIG_MACH_AT91SAM9260EK is not set
-# CONFIG_MACH_CAM60 is not set
-# CONFIG_MACH_CPU9260 is not set
-CONFIG_MACH_FLEXIBITY=y
-CONFIG_MACH_NO_WESTBRIDGE=y
-# CONFIG_MACH_QIL_A9260 is not set
-# CONFIG_MACH_SAM9_L9260 is not set
-# CONFIG_MACH_SNAPPER_9260 is not set
-# CONFIG_MACH_USB_A9260 is not set
diff --git a/target/linux/at91/9260/profiles/000-flexibity-minimal.mk b/target/linux/at91/9260/profiles/000-flexibity-minimal.mk
deleted file mode 100644 (file)
index f8e7a65..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Copyright (C) 20011-2012 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-define Profile/flexibity-minimal
-  NAME:=Flexibity Connect (minimal)
-  PACKAGES:=
-endef
-
-define Profile/flexibity-minimal/Description
-       Minimal packages set for the Flexibity Connect device.
-endef
-
-$(eval $(call Profile,flexibity-minimal))
-
diff --git a/target/linux/at91/9260/profiles/001-flexibity-xwrt.mk b/target/linux/at91/9260/profiles/001-flexibity-xwrt.mk
deleted file mode 100644 (file)
index fcd0699..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# Copyright (C) 2011-2012 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-define Profile/flexibity-xwrt
-  NAME:=Flexibity Connect (XWrt)
-  PACKAGES:=bridge block-mount modprobe dnsmasq hotplug2 udev webif webif-applications webif-flexibity \
-       syslog-ng sudo transmission-web miniupnpd nmap-ssl ip ntpclient ntpdate chat crda e169-stats genl hostapd-utils \
-       iw madwimax netcat portmap ppp ppp-mod-pppoe pptp tcpdump usb-modem usb-modem-huawei-e175x usb-modem-huawei-eg162 \
-       usb-modem-nokia-5800 wpa-cli wpa-supplicant motion badblocks blkid cifsmount disktype dosfsck dosfslabel e2fsprogs \
-       fuse-utils mkdosfs nfs-utils ntfs-3g ntfs-3g-utils reiserfsprogs resize2fs sysfsutils tune2fs uuidgen certtool \
-       gnutls-utils picocom setterm unrar unzip sqlite3-cli alsa-utils anyremote bluez-utils bzip2 comgt crypto-tools \
-       file flock gdbserver gnupg gsm-utils gzip huaweiaktbbo hwclock i2c-tools input-utils ldd lsof mdadm \
-       module-init-tools mount-utils openssl-util procps psmisc px5g screen strace stress sysstat uboot-envtools \
-       usb-modeswitch usb-modeswitch-data usbutils lua
-endef
-
-define Profile/flexibity-xwrt/Description
-       Complete packages set for the Flexibity Connect device (XWrt).
-endef
-
-$(eval $(call Profile,flexibity-xwrt))
-
diff --git a/target/linux/at91/9260/profiles/002-flexibity-luci.mk b/target/linux/at91/9260/profiles/002-flexibity-luci.mk
deleted file mode 100644 (file)
index 7985990..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# Copyright (C) 2011-2012 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-define Profile/flexibity-luci
-  NAME:=Flexibity Connect (LuCI)
-  PACKAGES:=bridge block-mount modprobe dnsmasq hotplug2 udev luci-flexibity  \
-       syslog-ng sudo transmission-web miniupnpd nmap-ssl ip ntpclient ntpdate chat crda e169-stats genl hostapd-utils \
-       iw madwimax netcat portmap ppp ppp-mod-pppoe pptp tcpdump usb-modem usb-modem-huawei-e175x usb-modem-huawei-eg162 \
-       usb-modem-nokia-5800 wpa-cli wpa-supplicant motion badblocks blkid cifsmount disktype dosfsck dosfslabel e2fsprogs \
-       fuse-utils mkdosfs nfs-utils ntfs-3g ntfs-3g-utils reiserfsprogs resize2fs sysfsutils tune2fs uuidgen certtool \
-       gnutls-utils picocom setterm unrar unzip sqlite3-cli alsa-utils anyremote bluez-utils bzip2 comgt crypto-tools \
-       file flock gdbserver gnupg gsm-utils gzip huaweiaktbbo hwclock i2c-tools input-utils ldd lsof mdadm \
-       module-init-tools mount-utils openssl-util procps psmisc px5g screen strace stress sysstat uboot-envtools \
-       usb-modeswitch usb-modeswitch-data usbutils lua
-endef
-
-define Profile/flexibity-luci/Description
-       Complete packages set for the Flexibity Connect device with LuCI.
-endef
-
-$(eval $(call Profile,flexibity-luci))
-
diff --git a/target/linux/at91/9260/target.mk b/target/linux/at91/9260/target.mk
deleted file mode 100644 (file)
index 91a1d75..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-# 
-# Copyright (C) 2011 Flexibity
-# Copyright (C) 2012 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-SUBTARGET:=9260
-BOARDNAME:=AT91SAM9260 Based board
-
-define Target/Description
-       Build images for AT91SAM9260 based board, supported board:
-               * Flexibity Connect
-endef
-
diff --git a/target/linux/at91/9263/config-default b/target/linux/at91/9263/config-default
deleted file mode 100644 (file)
index edba732..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-CONFIG_ARCH_AT91SAM9263=y
-# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
-CONFIG_AT91_EARLY_DBGU1=y
-CONFIG_CRC16=y
-CONFIG_HAVE_FB_ATMEL=y
-CONFIG_I2C=y
-# CONFIG_I2C_AT91 is not set
-CONFIG_I2C_BOARDINFO=y
-CONFIG_JBD2=y
-# CONFIG_MACH_AT91SAM9263EK is not set
-# CONFIG_MACH_NEOCORE926 is not set
-CONFIG_MACH_TQMA9263=y
-# CONFIG_MACH_USB_A9263 is not set
-CONFIG_MTD_NAND=y
-CONFIG_MTD_NAND_ATMEL=y
-CONFIG_MTD_NAND_ATMEL_ECC_HW=y
-# CONFIG_MTD_NAND_ATMEL_ECC_NONE is not set
-# CONFIG_MTD_NAND_ATMEL_ECC_SOFT is not set
-CONFIG_MTD_NAND_ECC=y
-# CONFIG_MTD_SM_COMMON is not set
-# CONFIG_USB_FUNCTIONFS is not set
diff --git a/target/linux/at91/9263/target.mk b/target/linux/at91/9263/target.mk
deleted file mode 100644 (file)
index fba2087..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# 
-# Copyright (C) 2011-2012 OpenWrt.org
-#
-
-SUBTARGET:=9263
-BOARDNAME:=AT91SAM9263 Based board
-
-define Target/Description
-       Build images for AT91SAM9263 based board, supported board:
-               * TQ Components TQMa9263
-endef
diff --git a/target/linux/at91/9g20/config-default b/target/linux/at91/9g20/config-default
deleted file mode 100644 (file)
index b777628..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-CONFIG_ARCH_AT91SAM9G20=y
-CONFIG_MACH_ACMENETUSFOXG20=y
-CONFIG_MACH_AT91SAM9G20EK=y
-# CONFIG_MACH_AT91SAM9G20EK_2MMC is not set
-CONFIG_MACH_STAMP9G20=y
-CONFIG_MACH_STAMP9G20_EVB=y
-# CONFIG_MTD_AT91_DATAFLASH_CARD is not set
diff --git a/target/linux/at91/9g20/target.mk b/target/linux/at91/9g20/target.mk
deleted file mode 100644 (file)
index 626436e..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-# 
-# Copyright (C) 2006-2012 OpenWrt.org
-#
-
-SUBTARGET:=9g20
-BOARDNAME:=AT91SAM9g20 Based board
-
-define Target/Description
-       Build images for AT91SAM9g20 based board, supported board:
-               * Acmesystems NetusG20
-               * Taskit Stamp9G20 Evaluation Board
-endef
index 3c7d85b..10b91cc 100644 (file)
@@ -1,5 +1,5 @@
 # 
-# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2006-2013 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -12,14 +12,11 @@ MAINTAINER:=Claudio Mignanti <c.mignanti@gmail.com>
 BOARDNAME:=Atmel AT91
 FEATURES:=squashfs jffs2 targz ext2 usb
 CFLAGS:=-Os -pipe -march=armv5te -mtune=arm926ej-s -fno-caller-saves
-SUBTARGETS:=9g20 9260 9263
 
-LINUX_VERSION:=3.3.8
-DEVICE_TYPE=
+LINUX_VERSION:=3.8.7
 
 include $(INCLUDE_DIR)/target.mk
 
-DEFAULT_PACKAGES+= kmod-usb-ohci
-KERNELNAME:="uImage"
+DEFAULT_PACKAGES += kmod-usb-ohci
 
 $(eval $(call BuildTarget))
index 5b1534d..6d4d346 100644 (file)
@@ -1,6 +1,5 @@
 CONFIG_ALIGNMENT_TRAP=y
 CONFIG_ARCH_AT91=y
-# CONFIG_ARCH_AT91CAP9 is not set
 # CONFIG_ARCH_AT91RM9200 is not set
 # CONFIG_ARCH_AT91SAM9260 is not set
 # CONFIG_ARCH_AT91SAM9261 is not set
@@ -9,41 +8,41 @@ CONFIG_ARCH_AT91=y
 # CONFIG_ARCH_AT91SAM9G20 is not set
 # CONFIG_ARCH_AT91SAM9G45 is not set
 # CONFIG_ARCH_AT91SAM9RL is not set
-# CONFIG_ARCH_AT91X40 is not set
+CONFIG_ARCH_AT91_NONE=y
 CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
-CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
+CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
 CONFIG_ARCH_NR_GPIO=0
 CONFIG_ARCH_REQUIRE_GPIOLIB=y
 # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
 # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
-# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
+# CONFIG_ARCH_VT8500_SINGLE is not set
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
 CONFIG_ARM=y
+CONFIG_ARM_APPENDED_DTB=y
+# CONFIG_ARM_ATAG_DTB_COMPAT is not set
 # CONFIG_ARM_CPU_SUSPEND is not set
 CONFIG_ARM_L1_CACHE_SHIFT=5
 CONFIG_ARM_NR_BANKS=8
+CONFIG_ARM_PATCH_PHYS_VIRT=y
 CONFIG_ARM_THUMB=y
-# CONFIG_AT91SAM9X_WATCHDOG is not set
-CONFIG_AT91_EARLY_DBGU0=y
-# 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 is not set
-# CONFIG_AT91_EARLY_USART4 is not set
-# CONFIG_AT91_EARLY_USART5 is not set
+CONFIG_AT91SAM9X_WATCHDOG=y
 CONFIG_AT91_PMC_UNIT=y
 CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
+CONFIG_AT91_SAM9G45_RESET=y
 CONFIG_AT91_SAM9_ALT_RESET=y
 CONFIG_AT91_TIMER_HZ=100
-# CONFIG_ATMEL_PWM is not set
+CONFIG_ATAGS=y
 # CONFIG_ATMEL_SSC is not set
 # CONFIG_ATMEL_TCLIB is not set
-CONFIG_BCMA_POSSIBLE=y
 # CONFIG_BLK_DEV is not set
 # CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_CACHE_L2X0 is not set
 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 CONFIG_CLKDEV_LOOKUP=y
+CONFIG_CLONE_BACKWARDS=y
 CONFIG_CPU_32v5=y
 CONFIG_CPU_ABRT_EV5TJ=y
 CONFIG_CPU_ARM926T=y
@@ -58,10 +57,15 @@ CONFIG_CPU_PABRT_LEGACY=y
 CONFIG_CPU_TLB_V4WBI=y
 CONFIG_CPU_USE_DOMAINS=y
 CONFIG_CRC16=y
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
 CONFIG_DEBUG_BUGVERBOSE=y
+CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
+# CONFIG_DEBUG_PINCTRL is not set
 # CONFIG_DEBUG_USER is not set
 CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
-# CONFIG_DW_WATCHDOG is not set
+CONFIG_DTC=y
 CONFIG_EXT4_FS=y
 CONFIG_FRAME_POINTER=y
 CONFIG_FS_MBCACHE=y
@@ -70,8 +74,12 @@ CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
 CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_IO=y
 CONFIG_GENERIC_IRQ_SHOW=y
 CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
 CONFIG_GPIOLIB=y
 CONFIG_GPIO_SYSFS=y
 # CONFIG_HAMRADIO is not set
@@ -80,16 +88,22 @@ CONFIG_HAS_DMA=y
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
 CONFIG_HAVE_AOUT=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
 CONFIG_HAVE_ARCH_KGDB=y
 CONFIG_HAVE_ARCH_PFN_VALID=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
 CONFIG_HAVE_AT91_DBGU0=y
-CONFIG_HAVE_AT91_USART3=y
-CONFIG_HAVE_AT91_USART4=y
-CONFIG_HAVE_AT91_USART5=y
+CONFIG_HAVE_AT91_DBGU1=y
+CONFIG_HAVE_BPF_JIT=y
 CONFIG_HAVE_CLK=y
 CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
 CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
 CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FB_ATMEL=y
 CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
 CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
 CONFIG_HAVE_FUNCTION_TRACER=y
@@ -102,50 +116,66 @@ CONFIG_HAVE_KERNEL_LZO=y
 CONFIG_HAVE_KERNEL_XZ=y
 CONFIG_HAVE_LATENCYTOP_SUPPORT=y
 CONFIG_HAVE_MEMBLOCK=y
-CONFIG_HAVE_NET_MACB=y
+CONFIG_HAVE_NET_DSA=y
 CONFIG_HAVE_OPROFILE=y
 CONFIG_HAVE_PERF_EVENTS=y
 CONFIG_HAVE_PROC_CPU=y
 CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_UID16=y
+CONFIG_IRQ_DOMAIN=y
 # CONFIG_ISDN is not set
 CONFIG_JBD2=y
+CONFIG_JFFS2_ZLIB=y
 CONFIG_KTIME_SCALAR=y
-# CONFIG_LEDS is not set
-# CONFIG_LEDS_ATMEL_PWM is not set
 CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-# CONFIG_MACB is not set
-# CONFIG_MACH_ACMENETUSFOXG20 is not set
-# CONFIG_MACH_AT91SAM9G20EK is not set
-# CONFIG_MACH_AT91SAM_DT is not set
-# CONFIG_MACH_CPU9G20 is not set
-# CONFIG_MACH_GSIA18S is not set
-# CONFIG_MACH_PCONTROL_G20 is not set
-# CONFIG_MACH_PORTUXG20 is not set
-# CONFIG_MACH_SNAPPER_9260 is not set
-# CONFIG_MACH_STAMP9G20 is not set
-# CONFIG_MACH_USB_A9G20 is not set
+CONFIG_MACB=y
+CONFIG_MACH_AT91SAM_DT=y
 CONFIG_MDIO_BOARDINFO=y
-# CONFIG_MFD_T7L66XB is not set
 # CONFIG_MII is not set
 CONFIG_MMC=y
-CONFIG_MMC_AT91=y
-# CONFIG_MMC_ATMELMCI is not set
+CONFIG_MMC_ATMELMCI=y
 CONFIG_MMC_BLOCK=y
+CONFIG_MODULES_USE_ELF_REL=y
 CONFIG_MTD_DATAFLASH=y
 # CONFIG_MTD_DATAFLASH_OTP is not set
 # CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_ATMEL=y
+CONFIG_MTD_NAND_ECC=y
+CONFIG_MTD_OF_PARTS=y
+# CONFIG_MTD_PHYSMAP_OF is not set
+# CONFIG_MTD_SM_COMMON is not set
+CONFIG_MULTI_IRQ_HANDLER=y
 CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_MACH_GPIO_H=y
 CONFIG_NEED_PER_CPU_KM=y
+CONFIG_NET_SCH_FQ_CODEL=y
 CONFIG_NLS=y
+CONFIG_OF=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_DEVICE=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_MTD=y
+CONFIG_OF_NET=y
 CONFIG_PAGEFLAGS_EXTENDED=y
 CONFIG_PAGE_OFFSET=0xC0000000
 # CONFIG_PCI_SYSCALL is not set
+CONFIG_PERCPU_RWSEM=y
 CONFIG_PERF_USE_VMALLOC=y
 CONFIG_PHYLIB=y
-CONFIG_PHYS_OFFSET=0x0
+CONFIG_PINCONF=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_AT91=y
+# CONFIG_PINCTRL_SINGLE is not set
+CONFIG_PINMUX=y
 # CONFIG_PREEMPT_RCU is not set
 CONFIG_RTC_CLASS=y
+# CONFIG_RTC_DRV_AT91RM9200 is not set
 # CONFIG_RTC_DRV_AT91SAM9 is not set
 # CONFIG_RTC_DRV_CMOS is not set
 # CONFIG_SCSI_DMA is not set
@@ -154,6 +184,16 @@ CONFIG_SERIAL_ATMEL=y
 CONFIG_SERIAL_ATMEL_CONSOLE=y
 CONFIG_SERIAL_ATMEL_PDC=y
 # CONFIG_SERIAL_ATMEL_TTYAT is not set
+# CONFIG_SOC_AT91RM9200 is not set
+CONFIG_SOC_AT91SAM9=y
+CONFIG_SOC_AT91SAM9260=y
+CONFIG_SOC_AT91SAM9261=y
+CONFIG_SOC_AT91SAM9263=y
+CONFIG_SOC_AT91SAM9G45=y
+CONFIG_SOC_AT91SAM9N12=y
+CONFIG_SOC_AT91SAM9RL=y
+CONFIG_SOC_AT91SAM9X5=y
+CONFIG_SPARSE_IRQ=y
 CONFIG_SPI=y
 CONFIG_SPI_ATMEL=y
 CONFIG_SPI_MASTER=y
@@ -161,38 +201,22 @@ CONFIG_SPI_SPIDEV=y
 CONFIG_SPLIT_PTLOCK_CPUS=999999
 # CONFIG_STAGING is not set
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_TICK_CPU_ACCOUNTING=y
 CONFIG_UID16=y
-# CONFIG_USB_ARCH_HAS_EHCI is not set
+CONFIG_UIDGID_CONVERTED=y
 # CONFIG_USB_ARCH_HAS_XHCI is not set
 CONFIG_USB_AT91=y
-# CONFIG_USB_CDC_COMPOSITE is not set
 CONFIG_USB_COMMON=y
 CONFIG_USB_ETH=y
 # CONFIG_USB_ETH_EEM is not set
 CONFIG_USB_ETH_RNDIS=y
-# CONFIG_USB_FILE_STORAGE is not set
-# CONFIG_USB_FUNCTIONFS is not set
-# CONFIG_USB_FUSB300 is not set
 CONFIG_USB_GADGET=y
-# CONFIG_USB_GADGETFS is not set
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-# CONFIG_USB_GADGET_DEBUG_FS is not set
-CONFIG_USB_GADGET_VBUS_DRAW=2
-# CONFIG_USB_G_DBGP is not set
-# CONFIG_USB_G_HID is not set
-# CONFIG_USB_G_NCM is not set
-# CONFIG_USB_G_PRINTER is not set
-# CONFIG_USB_G_SERIAL is not set
-# CONFIG_USB_M66592 is not set
-# CONFIG_USB_MV_UDC is not set
-# CONFIG_USB_NET2272 is not set
-# CONFIG_USB_R8A66597 is not set
+CONFIG_USB_LIBCOMPOSITE=y
 CONFIG_USB_SUPPORT=y
-# CONFIG_USB_ZERO is not set
+CONFIG_USE_OF=y
 CONFIG_VECTORS_BASE=0xffff0000
 # CONFIG_VFP is not set
 # CONFIG_WLAN is not set
-CONFIG_XZ_DEC=y
 CONFIG_XZ_DEC_ARM=y
 CONFIG_XZ_DEC_BCJ=y
 CONFIG_ZBOOT_ROM_BSS=0
diff --git a/target/linux/at91/files/arch/arm/boot/dts/lmu5000.dts b/target/linux/at91/files/arch/arm/boot/dts/lmu5000.dts
new file mode 100644 (file)
index 0000000..671f452
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+ * lmu5000.dst - Device Tree file for CalAmp LMU5000 board
+ *
+ * Copyright (C) 2013 Adam Porter <porter.adam@gmail.com>
+ *
+ * Licensed under GPLv2.
+ */
+/dts-v1/;
+/include/ "at91sam9g20.dtsi"
+
+/ {
+       model = "CalAmp LMU5000";
+       compatible = "calamp,lmu5000", "atmel,at91sam9g20", "atmel,at91sam9";
+
+       chosen {
+               bootargs = "mem=64M console=ttyS0,115200 rootfstype=jffs2";
+       };
+
+       memory {
+               reg = <0x20000000 0x4000000>;
+       };
+
+       clocks {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               main_clock: clock@0 {
+                       compatible = "atmel,osc", "fixed-clock";
+                       clock-frequency = <18432000>;
+               };
+       };
+
+       ahb {
+               apb {
+                       pinctrl@fffff400 {
+                               board {
+                                       pinctrl_pck0_as_mck: pck0_as_mck {
+                                               atmel,pins =
+                                                       <2 1 0x2 0x0>;  /* PC1 periph B */
+                                       };
+
+                               };
+                       };
+
+                       dbgu: serial@fffff200 {
+                               status = "okay";
+                       };
+
+                       usart0: serial@fffb0000 {
+                               pinctrl-0 =
+                                       <&pinctrl_usart0
+                                        &pinctrl_usart0_rts
+                                        &pinctrl_usart0_cts
+                                        &pinctrl_usart0_dtr_dsr
+                                        &pinctrl_usart0_dcd
+                                        &pinctrl_usart0_ri>;
+                               status = "okay";
+                       };
+
+                       usart2: serial@fffb8000 {
+                               status = "okay";
+                       };
+
+                       uart0: serial@fffd4000 {
+                               status = "okay";
+                       };
+
+                       uart1: serial@fffd8000 {
+                               status = "okay";
+                       };
+
+                       macb0: ethernet@fffc4000 {
+                               phy-mode = "mii";
+                               status = "okay";
+                       };
+
+                       usb1: gadget@fffa4000 {
+                               atmel,vbus-gpio = <&pioC 5 0>;
+                               status = "okay";
+                       };
+
+                       ssc0: ssc@fffbc000 {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_ssc0_tx>;
+                       };
+
+                       watchdog@fffffd40 {
+                               status = "okay";
+                       };
+               };
+
+               nand0: nand@40000000 {
+                       nand-bus-width = <8>;
+                       nand-ecc-mode = "soft";
+                       nand-on-flash-bbt;
+                       status = "okay";
+
+                       kernel@0 {
+                               label = "kernel";
+                               reg = <0x0 0x400000>;
+                       };
+
+                       rootfs@400000 {
+                               label = "rootfs";
+                               reg = <0x400000 0x3C00000>;
+                       };
+
+                       user1@4000000 {
+                               label = "user1";
+                               reg = <0x4000000 0x2000000>;
+                       };
+
+                       user2@6000000 {
+                               label = "user2";
+                               reg = <0x6000000 0x2000000>;
+                       };
+               };
+
+               usb0: ohci@00500000 {
+                       num-ports = <2>;
+                       status = "okay";
+               };
+       };
+};
diff --git a/target/linux/at91/files/drivers/misc/at91-adc.c b/target/linux/at91/files/drivers/misc/at91-adc.c
deleted file mode 100644 (file)
index 90ea818..0000000
+++ /dev/null
@@ -1,355 +0,0 @@
-/*
- *     Driver for ADC on Atmel AT91 SoC Family
- *
- *     Copyright (C) 2010 Claudio Mignanti - c.mignanti@gmail.com
- *     Based on http://www.at91.com/forum/viewtopic.php/p,9409/#p9409
- *
- *     Copyright (C) 2010 Stefano Barbato - stefano@codesink.org
- *
- *     2010/05/18 Antonio Galea
- *             Sysfs device model, different drivers integration
- *
- *     WISHLIST:
- *     - concurrent access control
- *     - add support for dynamic reconfiguration
- *     - hardware triggers
- *
- *     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.
- *
- * ---------------------------------------------------------------------------
-*/
-
-#include <linux/cdev.h>
-#include <linux/clk.h>
-#include <linux/fs.h>
-#include <linux/gpio.h>
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/platform_device.h>
-#include <linux/kernel.h>
-#include <linux/smp_lock.h>
-
-#include <asm/io.h>
-
-#include "at91_adc.h"
-
-#define DRV_CLASS      "at91_adc"
-
-#define ADC_REQUEST            1       //un-used atm
-#define ADC_READ               2
-#define ADC_FREE               3
-
-/* Device functions */
-#define at91_adc_read(reg)                             ioread32(at91_adc_base + (reg))
-#define at91_adc_write(reg, val)       iowrite32((val), at91_adc_base + (reg))
-#define AT91_DEFAULT_CONFIG                     AT91_ADC_SHTIM  | \
-                                                                                                                                       AT91_ADC_STARTUP | \
-                                                                                                                                       AT91_ADC_PRESCAL | \
-                                                                                                                                       AT91_ADC_SLEEP
-
-static void at91_adc_device_release(struct device *dev) {}
-
-struct platform_device at91_adc_device = {
-       .name                                   = "at91_adc",
-       .id                                             = -1,
-       .dev.release     = at91_adc_device_release,
-};
-
-struct clk                             *at91_adc_clk;
-void __iomem                           *at91_adc_base;
-void __iomem                           *at91_pioc_base;
-static struct cdev                     *at91_adc_cdev  = NULL;
-static dev_t                           at91_adc_devno  = 0;
-static struct class                    *at91_adc_class = NULL;
-
-static int at91_adc_read_chan(int chan){
-       int val, sr;
-
-       if(chan<0 || chan>3){
-               return -EINVAL;
-       }
-       /* disable pull-up resistor */
-       iowrite32(1 << chan, at91_pioc_base + 0x60);
-
-       at91_adc_write(AT91_ADC_CHER,AT91_ADC_CH(chan));        // Enable Channel
-       at91_adc_write(AT91_ADC_CR,AT91_ADC_START);             //Start the ADC
-       
-       for(sr=0; !(sr & AT91_ADC_EOC(chan)); sr=at91_adc_read(AT91_ADC_SR))
-               cpu_relax();
-
-       val=at91_adc_read(AT91_ADC_CHR(chan)) & AT91_ADC_DATA; //Read up to 10 bits
-
-       return val;
-}
-
-/*     PC0 ->  AD0
-       PC1 ->  AD1
-       PC2 ->  AD2
-       PC3 ->  AD3 */
-static int mux_chan (int chan, int operation) {
-
-       int pin_chan;
-
-       if(chan<0 || chan>3){
-               return -EINVAL;
-       }
-
-       switch (chan) { 
-               case 0:
-                       pin_chan=AT91_PIN_PC0;
-                       break;
-               case 1:
-                       pin_chan=AT91_PIN_PC1;
-                       break;
-               case 2:
-                       pin_chan=AT91_PIN_PC2;
-                       break;
-               case 3:
-                       pin_chan=AT91_PIN_PC3;
-                       break;
-               default:
-                       return -EINVAL;
-       }
-
-       if (operation == 1)             //request_chan
-               at91_set_A_periph(pin_chan, 0);                         //Mux PIN to GPIO
-       else                                    //free_chan
-               at91_set_B_periph(pin_chan, 0);                         //Mux PIN to GPIO
-
-       return 0;
-}
-
-static int at91_adc_config(int requested_config){
-       int actual_config;
-
-       at91_adc_write(AT91_ADC_CR,AT91_ADC_SWRST);      //Reset the ADC
-       at91_adc_write(AT91_ADC_MR,requested_config); //Mode setup
-       actual_config = at91_adc_read(AT91_ADC_MR);      //Read it back
-
-       return (requested_config==actual_config? 0: -EINVAL);
-}
-
-/* Sysfs interface */
-static ssize_t at91_adc_chanX_show(
-       struct device *dev, struct device_attribute *attr, char *buf ){
-
-       ssize_t status = 0;
-       int              chan = -1;
-       int              value;
-
-       if(strlen(attr->attr.name)==5 && strncmp(attr->attr.name,"chan",4)==0){
-               chan = attr->attr.name[4]-'0';
-       }
-
-       if(chan<0 || chan>3){
-               return -EIO;
-       }
-
-       value   = at91_adc_read_chan(chan);
-       status = sprintf(buf, "%d\n", value);
-
-       return status;
-}
-
-static DEVICE_ATTR(chan0, 0444, at91_adc_chanX_show, NULL);
-static DEVICE_ATTR(chan1, 0444, at91_adc_chanX_show, NULL);
-static DEVICE_ATTR(chan2, 0444, at91_adc_chanX_show, NULL);
-static DEVICE_ATTR(chan3, 0444, at91_adc_chanX_show, NULL);
-
-static const struct attribute *at91_adc_dev_attrs[] = {
-       &dev_attr_chan0.attr,
-       &dev_attr_chan1.attr,
-       &dev_attr_chan2.attr,
-       &dev_attr_chan3.attr,
-       NULL,
-};
-
-static const struct attribute_group at91_adc_dev_attr_group = {
-       .attrs = (struct attribute **) at91_adc_dev_attrs,
-};
-
-/* IOCTL interface */
-#ifdef HAVE_UNLOCKED_IOCTL
-static long at91_adc_unlocked_ioctl(
-       struct file *file, unsigned int cmd, unsigned long arg){
-#else
-static int at91_adc_ioctl(
-       struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg){
-#endif
-
-       long retval = 0;
-
-#ifdef HAVE_UNLOCKED_IOCTL
-  lock_kernel();
-#endif
-
-       switch (cmd) {
-               case ADC_REQUEST:
-                       retval = mux_chan ((int)arg, 1);
-                       break;
-
-               case ADC_READ:
-                       retval = at91_adc_read_chan((int)arg);
-                       break;
-
-               case ADC_FREE:
-                       retval = mux_chan ((int)arg, 0);
-                       break;
-
-               default:
-                       retval = -EINVAL;
-       }
-
-#ifdef HAVE_UNLOCKED_IOCTL
-  unlock_kernel();
-#endif
-
-       return retval;
-}
-
-struct file_operations at91_adc_fops = {
-       .owner = THIS_MODULE,
-#ifdef HAVE_UNLOCKED_IOCTL
-       .unlocked_ioctl = at91_adc_unlocked_ioctl,
-#else
-       .ioctl = at91_adc_ioctl,
-#endif
-};
-
-static void at91_adc_cdev_teardown(void){
-       if(at91_adc_class){
-               device_destroy(at91_adc_class, at91_adc_devno);
-               class_destroy(at91_adc_class);
-       }
-
-       if(at91_adc_devno){
-               unregister_chrdev_region(at91_adc_devno,1);
-               if(at91_adc_cdev){ cdev_del(at91_adc_cdev); }
-       }
-
-       at91_adc_devno = 0;
-       at91_adc_cdev   = NULL;
-       at91_adc_class = NULL;
-       return;
-}
-
-static int at91_adc_cdev_setup(void){
-
-       int status;
-       /* alloc a new device number (major: dynamic, minor: 0) */
-       status = alloc_chrdev_region(&at91_adc_devno,0,1,at91_adc_device.name);
-
-       if(status){
-               goto err;
-       }
-
-       /* create a new char device */
-       at91_adc_cdev = cdev_alloc();
-       if(at91_adc_cdev == NULL){ status=-ENOMEM; goto err; }
-       at91_adc_cdev->owner = THIS_MODULE;
-       at91_adc_cdev->ops       = &at91_adc_fops;
-       status = cdev_add(at91_adc_cdev,at91_adc_devno,1);
-       if(status){
-               goto err;
-       }
-       
-       /* register the class */
-       at91_adc_class = class_create(THIS_MODULE, DRV_CLASS);
-       if(IS_ERR(at91_adc_class)){ status=-EFAULT; goto err; }
-       device_create(at91_adc_class, NULL, at91_adc_devno, NULL, at91_adc_device.name);
-       printk(KERN_INFO "Major: %u; minor: %u\n", \
-               MAJOR(at91_adc_devno), MINOR(at91_adc_devno) \
-       );
-
-       return 0;
-
-err:
-       at91_adc_cdev_teardown();
-       return status;
-}
-
-/* Module init/exit */
-static int __init at91_adc_init(void){
-
-       int status;
-
-       at91_adc_clk = clk_get(NULL,"adc_clk");
-       clk_enable(at91_adc_clk);
-
-       at91_adc_base = ioremap(AT91SAM9260_BASE_ADC,SZ_256);
-       if(!at91_adc_base){
-               status=-ENODEV;
-               goto fail_no_iomem_adc;
-       }
-
-       at91_pioc_base = ioremap(AT91_BASE_SYS + AT91_PIOC,SZ_512);
-       if(!at91_pioc_base){
-               status=-ENODEV;
-               goto fail_no_iomem_pioc;
-       }
-
-       status = platform_device_register(&at91_adc_device);
-       if(status){
-               goto fail_no_dev;
-       }
-
-       status = at91_adc_config(AT91_DEFAULT_CONFIG);
-       if(status){
-               goto fail_no_config;
-       }
-
-       status = sysfs_create_group(
-               &(at91_adc_device.dev.kobj), &at91_adc_dev_attr_group
-       );
-
-       if(status){
-               goto fail_no_sysfs;
-       }
-
-       status = at91_adc_cdev_setup();
-       if(status){
-               goto fail_no_cdev;
-       }
-
-       printk(KERN_INFO "Registered device at91_adc.\n");
-       return 0;
-
-fail_no_cdev:
-fail_no_sysfs:
-       // nothing to undo
-fail_no_config:
-       platform_device_unregister(&at91_adc_device);
-fail_no_dev:
-       iounmap(at91_adc_base);
-fail_no_iomem_pioc:
-       iounmap(at91_pioc_base);
-fail_no_iomem_adc:
-       clk_disable(at91_adc_clk);
-       clk_put(at91_adc_clk);
-       return status;
-}
-
-static void __exit at91_adc_exit(void){
-
-       at91_adc_cdev_teardown();
-       platform_device_unregister(&at91_adc_device);
-       iounmap(at91_adc_base);
-       iounmap(at91_pioc_base);
-
-       clk_disable(at91_adc_clk);
-       clk_put(at91_adc_clk);
-
-       printk(KERN_INFO "Unregistered device at91_adc.\n");
-}
-
-module_init(at91_adc_init);
-module_exit(at91_adc_exit);
-
-MODULE_AUTHOR("Paul Kavan");
-MODULE_AUTHOR("Claudio Mignanti");
-MODULE_AUTHOR("Antonio Galea");
-MODULE_AUTHOR("Stefano Barbato");
-MODULE_DESCRIPTION("ADC Driver for the AT91SAM9G20");
-MODULE_LICENSE("GPL");
diff --git a/target/linux/at91/files/drivers/misc/at91_adc.h b/target/linux/at91/files/drivers/misc/at91_adc.h
deleted file mode 100644 (file)
index 2d6f01d..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * include/asm-arm/arch-at91/at91_adc.h
- *
- * Copyright (C) SAN People
- *
- * Analog-to-Digital Converter (ADC) registers.
- * Based on AT91SAM9260 datasheet revision D.
- *
- * 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.
- */
-
-#ifndef AT91_ADC_H
-#define AT91_ADC_H
-
-#define AT91_ADC_CR            0x00            /* Control Register */
-#define                AT91_ADC_SWRST          (1 << 0)        /* Software Reset */
-#define                AT91_ADC_START          (1 << 1)        /* Start Conversion */
-
-#define AT91_ADC_MR            0x04            /* Mode Register */
-#define                AT91_ADC_TRGEN          (1 << 0)        /* Trigger Enable */
-#define                AT91_ADC_TRGSEL         (7 << 1)        /* Trigger Selection */
-#define                        AT91_ADC_TRGSEL_TC0             (0 << 1)
-#define                        AT91_ADC_TRGSEL_TC1             (1 << 1)
-#define                        AT91_ADC_TRGSEL_TC2             (2 << 1)
-#define                        AT91_ADC_TRGSEL_EXTERNAL        (6 << 1)
-#define                AT91_ADC_LOWRES         (1 << 4)        /* Low Resolution */
-#define                AT91_ADC_SLEEP          (1 << 5)        /* Sleep Mode */
-#define                AT91_ADC_PRESCAL        (0x3f << 8)     /* Prescalar Rate Selection */
-#define                        AT91_ADC_PRESCAL_(x)    ((x) << 8)
-#define                AT91_ADC_STARTUP        (0x1f << 16)    /* Startup Up Time */
-#define                        AT91_ADC_STARTUP_(x)    ((x) << 16)
-#define                AT91_ADC_SHTIM          (0xf  << 24)    /* Sample & Hold Time */
-#define                        AT91_ADC_SHTIM_(x)      ((x) << 24)
-
-#define AT91_ADC_CHER          0x10            /* Channel Enable Register */
-#define AT91_ADC_CHDR          0x14            /* Channel Disable Register */
-#define AT91_ADC_CHSR          0x18            /* Channel Status Register */
-#define                AT91_ADC_CH(n)          (1 << (n))      /* Channel Number */
-
-#define AT91_ADC_SR            0x1C            /* Status Register */
-#define                AT91_ADC_EOC(n)         (1 << (n))      /* End of Conversion on Channel N */
-#define                AT91_ADC_OVRE(n)        (1 << ((n) + 8))/* Overrun Error on Channel N */
-#define                AT91_ADC_DRDY           (1 << 16)       /* Data Ready */
-#define                AT91_ADC_GOVRE          (1 << 17)       /* General Overrun Error */
-#define                AT91_ADC_ENDRX          (1 << 18)       /* End of RX Buffer */
-#define                AT91_ADC_RXFUFF         (1 << 19)       /* RX Buffer Full */
-
-#define AT91_ADC_LCDR          0x20            /* Last Converted Data Register */
-#define                AT91_ADC_LDATA          (0x3ff)
-
-#define AT91_ADC_IER           0x24            /* Interrupt Enable Register */
-#define AT91_ADC_IDR           0x28            /* Interrupt Disable Register */
-#define AT91_ADC_IMR           0x2C            /* Interrupt Mask Register */
-
-#define AT91_ADC_CHR(n)                (0x30 + ((n) * 4))      /* Channel Data Register N */
-#define                AT91_ADC_DATA           (0x3ff)
-
-#endif
-
index 97723bb..cf175ab 100644 (file)
@@ -1,5 +1,5 @@
 # 
-# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2006-2013 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -18,20 +18,69 @@ define Build/Compile
 endef
 
 define Image/Prepare
+       cp $(LINUX_DIR)/arch/arm/boot/zImage $(KDIR)/zImage
+endef
+
+define MkuImageDtb
+       cat $(KDIR)/zImage $(LINUX_DIR)/arch/arm/boot/dts/$(2).dtb > $(KDIR)/zImage-$(1)
+       mkimage -A arm -T kernel -C none -a 0x20008000 -e 0x20008000 \
+               -n "OpenWrt ARM $(LINUX_VERSION)" \
+               -d $(KDIR)/zImage-$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1)-uImage
+endef
+
+# Atmel
+Image/Build/Kernel/AT91SAM9263EK=$(call MkuImageDtb,9263ek,at91sam9263ek)
+Image/Build/Kernel/AT91SAM9G15EK=$(call MkuImageDtb,9g15ek,at91sam9g15ek)
+Image/Build/Kernel/AT91SAM9G20EK=$(call MkuImageDtb,9g20ek,at91sam9g20ek)
+Image/Build/Kernel/AT91SAM9G20EK-2MMC=$(call MkuImageDtb,9g20ek_2mmc,at91sam9g20ek_2mmc)
+Image/Build/Kernel/AT91SAM9G25EK=$(call MkuImageDtb,9g25ek,at91sam9g25ek)
+Image/Build/Kernel/AT91SAM9G35EK=$(call MkuImageDtb,9g35ek,at91sam9g35ek)
+Image/Build/Kernel/AT91SAM9M10G45EK=$(call MkuImageDtb,9m10g45ek,at91sam9m10g45ek)
+Image/Build/Kernel/AT91SAM9X25EK=$(call MkuImageDtb,9x25ek,at91sam9x25ek)
+Image/Build/Kernel/AT91SAM9X35EK=$(call MkuImageDtb,9x35ek,at91sam9x35ek)
+# CalAmp
+Image/Build/Kernel/LMU5000=$(call MkuImageDtb,lmu5000,lmu5000)
+# Caloa
+Image/Build/Kernel/TNYA9260=$(call MkuImageDtb,tny_a9260,tny_a9260)
+Image/Build/Kernel/TNYA9263=$(call MkuImageDtb,tny_a9263,tny_a9263)
+Image/Build/Kernel/TNYA9G20=$(call MkuImageDtb,tny_a9g20,tny_a9g20)
+Image/Build/Kernel/USBA9260=$(call MkuImageDtb,usb_a9260,usb_a9260)
+Image/Build/Kernel/USBA9263=$(call MkuImageDtb,usb_a9263,usb_a9263)
+Image/Build/Kernel/USBA9G20=$(call MkuImageDtb,usb_a9g20,usb_a9g20)
+# Ethernut
+Image/Build/Kernel/ETHERNUT5=$(call MkuImageDtb,ethernut5,ethernut5)
+
+define Image/Build/Kernel/Default
+       $(call Image/Build/Kernel/AT91SAM9263EK)
+       $(call Image/Build/Kernel/AT91SAM9G15EK)
+       $(call Image/Build/Kernel/AT91SAM9G20EK)
+       $(call Image/Build/Kernel/AT91SAM9G20EK-2MMC)
+       $(call Image/Build/Kernel/AT91SAM9G25EK)
+       $(call Image/Build/Kernel/AT91SAM9G35EK)
+       $(call Image/Build/Kernel/AT91SAM9M10G45EK)
+       $(call Image/Build/Kernel/AT91SAM9X25EK)
+       $(call Image/Build/Kernel/AT91SAM9X35EK)
+       $(call Image/Build/Kernel/LMU5000)
+       $(call Image/Build/Kernel/TNYA9260)
+       $(call Image/Build/Kernel/TNYA9263)
+       $(call Image/Build/Kernel/TNYA9G20)
+       $(call Image/Build/Kernel/USBA9260)
+       $(call Image/Build/Kernel/USBA9263)
+       $(call Image/Build/Kernel/USBA9G20)
+       $(call Image/Build/Kernel/ETHERNUT5)
 endef
 
 define Image/BuildKernel
-       mkdir -p $(BIN_DIR)
        mkimage -A arm -T kernel -C none -a 0x20008000 -e 0x20008000 -n linux-2.6 \
-               -d $(LINUX_DIR)/arch/arm/boot/Image $(BIN_DIR)/$(IMG_PREFIX)-uImage
+               -d $(LINUX_DIR)/arch/arm/boot/Image $(BIN_DIR)/uImage
        if [ $(CONFIG_FLEXIBITY_ROOT) ]; then \
-               $(INSTALL_BIN) $(BIN_DIR)/$(IMG_PREFIX)-uImage $(TARGET_DIR)/uImage ; \
+               $(INSTALL_BIN) $(BIN_DIR)/uImage $(TARGET_DIR)/uImage ; \
        fi
+       $(call Image/Build/Kernel/$(PROFILE))
 endef
 
 define Image/Build
-       $(call Image/Build/$(1),$(1))
-       mkdir -p $(BIN_DIR)
+       $(call Image/Build/$(1))
        cp $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-root.$(1)
 endef
 
index 3f20bb8..7866e5f 100644 (file)
@@ -40,7 +40,7 @@ define KernelPackage/at91-adc
   TITLE:=ADC on atmel SoC
   DEPENDS:=@TARGET_at91
   KCONFIG:=CONFIG_AT91_ADC
-  FILES:=$(LINUX_DIR)/drivers/misc/at91-adc.ko
+  FILES:=$(LINUX_DIR)/drivers/iio/adc/at91-adc.ko
   AUTOLOAD:=$(call AutoLoad,40,at91-adc)
 endef
 
diff --git a/target/linux/at91/patches/900-AT91-Add-external-RTC-for-Flexibity-board.patch b/target/linux/at91/patches/900-AT91-Add-external-RTC-for-Flexibity-board.patch
deleted file mode 100644 (file)
index 2b67be1..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
---- a/arch/arm/mach-at91/board-flexibity.c
-+++ b/arch/arm/mach-at91/board-flexibity.c
-@@ -1,7 +1,7 @@
- /*
-  * linux/arch/arm/mach-at91/board-flexibity.c
-  *
-- *  Copyright (C) 2010 Flexibity
-+ *  Copyright (C) 2010-2011 Flexibity
-  *  Copyright (C) 2005 SAN People
-  *  Copyright (C) 2006 Atmel
-  *
-@@ -62,6 +62,13 @@ static struct at91_udc_data __initdata f
-       .pullup_pin     = -EINVAL,              /* pull-up driven by UDC */
- };
-+/* I2C devices */
-+static struct i2c_board_info __initdata flexibity_i2c_devices[] = {
-+      {
-+              I2C_BOARD_INFO("ds1307", 0x68),
-+      },
-+};
-+
- /* SPI devices */
- static struct spi_board_info flexibity_spi_devices[] = {
-       {       /* DataFlash chip */
-@@ -141,6 +148,9 @@ static void __init flexibity_board_init(
-       at91_add_device_usbh(&flexibity_usbh_data);
-       /* USB Device */
-       at91_add_device_udc(&flexibity_udc_data);
-+      /* I2C */
-+      at91_add_device_i2c(flexibity_i2c_devices,
-+              ARRAY_SIZE(flexibity_i2c_devices));
-       /* SPI */
-       at91_add_device_spi(flexibity_spi_devices,
-               ARRAY_SIZE(flexibity_spi_devices));
diff --git a/target/linux/at91/profiles/00-default.mk b/target/linux/at91/profiles/00-default.mk
new file mode 100644 (file)
index 0000000..3ff040d
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2013 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Profile/Default
+       NAME:=Default Profile
+endef
+
+define Profile/Default/Description
+       Default package set compatible with most boards.
+endef
+
+$(eval $(call Profile,Default))
diff --git a/target/linux/at91/profiles/atmel.mk b/target/linux/at91/profiles/atmel.mk
new file mode 100644 (file)
index 0000000..4b14f93
--- /dev/null
@@ -0,0 +1,86 @@
+#
+# Copyright (C) 2013 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Profile/AT91SAM9263EK
+       NAME:=Atmel AT91SAM9263-EK
+endef
+define Profile/AT91SAM9263EK/Description
+       Atmel AT91SAM9263-EK eval board
+endef
+$(eval $(call Profile,AT91SAM9263EK))
+
+
+define Profile/AT91SAM9G15EK
+       NAME:=Atmel AT91SAM9G15-EK
+endef
+define Profile/AT91SAM9G15EK/Description
+       Atmel AT91SAM9G15-EK eval board
+endef
+$(eval $(call Profile,AT91SAM9G15EK))
+
+
+define Profile/AT91SAM9G20EK
+       NAME:=Atmel AT91SAM9G20-EK
+endef
+define Profile/AT91SAM9G20EK/Description
+       Atmel AT91SAM9G20-EK eval board
+endef
+$(eval $(call Profile,AT91SAM9G20EK))
+
+
+define Profile/AT91SAM9G20EK-2MMC
+       NAME:=Atmel AT91SAM9G20-EK 2MMC
+endef
+define Profile/AT91SAM9G20EK-2MMC/Description
+       Atmel AT91SAM9G20-EK eval board with 2 MMC
+endef
+$(eval $(call Profile,AT91SAM9G20EK-2MMC))
+
+
+define Profile/AT91SAM9G25EK
+       NAME:=Atmel AT91SAM9G25-EK
+endef
+define Profile/AT91SAM9G25EK/Description
+       Atmel AT91SAM9G25-EK eval board
+endef
+$(eval $(call Profile,AT91SAM9G25EK))
+
+
+define Profile/AT91SAM9G35EK
+       NAME:=Atmel AT91SAM9G35-EK
+endef
+define Profile/AT91SAM9G35EK/Description
+       Atmel AT91SAM9G35-EK eval board
+endef
+$(eval $(call Profile,AT91SAM9G35EK))
+
+
+define Profile/AT91SAM9M10G45EK
+       NAME:=Atmel AT91SAM9M10G45-EK
+endef
+define Profile/AT91SAM9M10G45EK/Description
+       Atmel AT91SAM9M10G45-EK eval board
+endef
+$(eval $(call Profile,AT91SAM9M10G45EK))
+
+
+define Profile/AT91SAM9X25EK
+       NAME:=Atmel AT91SAM9X25-EK
+endef
+define Profile/AT91SAM9X25EK/Description
+       Atmel AT91SAM9X25-EK eval board
+endef
+$(eval $(call Profile,AT91SAM9X25EK))
+
+
+define Profile/AT91SAM9X35EK
+       NAME:=Atmel AT91SAM9X35-EK
+endef
+define Profile/AT91SAM9X35EK/Description
+       Atmel AT91SAM9X35-EK eval board
+endef
+$(eval $(call Profile,AT91SAM9X35EK))
diff --git a/target/linux/at91/profiles/calamp.mk b/target/linux/at91/profiles/calamp.mk
new file mode 100644 (file)
index 0000000..33f78e1
--- /dev/null
@@ -0,0 +1,23 @@
+#
+# Copyright (C) 2013 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Profile/LMU5000
+       NAME:=CalAmp LMU5000
+       PACKAGES:= \
+               kmod-rtc-pcf2123 \
+               kmod-usb-acm \
+               kmod-usb-serial \
+               kmod-usb-serial-option \
+               kmod-usb-serial-sierrawireless \
+               kmod-gpio-mcp23s08
+endef
+
+define Profile/LMU5000/Description
+       CalAmp LMU5000
+endef
+
+$(eval $(call Profile,LMU5000))