summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-04-26 16:55:40 +0000
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-04-26 16:55:40 +0000
commitf6f0e822cb9bf4670d319371c9bdfa33a928b6c9 (patch)
treece5f52cf76d23ea9617d1b0630fcb709864ddbc9
parentd76bff875a0905a3e4d7f5e2808f7fad82feeda9 (diff)
at91: upgrade to kernel 3.8.7 and use devicetree
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
-rw-r--r--target/linux/at91/9260/base-files/etc/config/network20
-rw-r--r--target/linux/at91/9260/base-files/etc/config/system9
-rw-r--r--target/linux/at91/9260/base-files/etc/init.d/custom-user-startup22
-rw-r--r--target/linux/at91/9260/config-default11
-rw-r--r--target/linux/at91/9260/profiles/000-flexibity-minimal.mk18
-rw-r--r--target/linux/at91/9260/profiles/001-flexibity-xwrt.mk26
-rw-r--r--target/linux/at91/9260/profiles/002-flexibity-luci.mk26
-rw-r--r--target/linux/at91/9260/target.mk16
-rw-r--r--target/linux/at91/9263/config-default21
-rw-r--r--target/linux/at91/9263/target.mk11
-rw-r--r--target/linux/at91/9g20/config-default7
-rw-r--r--target/linux/at91/9g20/target.mk12
-rw-r--r--target/linux/at91/Makefile9
-rw-r--r--target/linux/at91/config-default138
-rw-r--r--target/linux/at91/files/arch/arm/boot/dts/lmu5000.dts125
-rw-r--r--target/linux/at91/files/drivers/misc/at91-adc.c355
-rw-r--r--target/linux/at91/files/drivers/misc/at91_adc.h62
-rw-r--r--target/linux/at91/image/Makefile61
-rw-r--r--target/linux/at91/modules.mk2
-rw-r--r--target/linux/at91/patches/900-AT91-Add-external-RTC-for-Flexibity-board.patch35
-rw-r--r--target/linux/at91/profiles/00-default.mk16
-rw-r--r--target/linux/at91/profiles/atmel.mk86
-rw-r--r--target/linux/at91/profiles/calamp.mk23
23 files changed, 390 insertions, 721 deletions
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
index 5800a0bff..000000000
--- a/target/linux/at91/9260/base-files/etc/config/network
+++ /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
index ba7e87c62..000000000
--- a/target/linux/at91/9260/base-files/etc/config/system
+++ /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
index dc9f77c98..000000000
--- a/target/linux/at91/9260/base-files/etc/init.d/custom-user-startup
+++ /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
index 5d19d063c..000000000
--- a/target/linux/at91/9260/config-default
+++ /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
index f8e7a6514..000000000
--- a/target/linux/at91/9260/profiles/000-flexibity-minimal.mk
+++ /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
index fcd06999f..000000000
--- a/target/linux/at91/9260/profiles/001-flexibity-xwrt.mk
+++ /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
index 798599001..000000000
--- a/target/linux/at91/9260/profiles/002-flexibity-luci.mk
+++ /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
index 91a1d7504..000000000
--- a/target/linux/at91/9260/target.mk
+++ /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
index edba732d8..000000000
--- a/target/linux/at91/9263/config-default
+++ /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
index fba20877e..000000000
--- a/target/linux/at91/9263/target.mk
+++ /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
index b777628a2..000000000
--- a/target/linux/at91/9g20/config-default
+++ /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
index 626436e6a..000000000
--- a/target/linux/at91/9g20/target.mk
+++ /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
diff --git a/target/linux/at91/Makefile b/target/linux/at91/Makefile
index 3c7d85bda..10b91cc14 100644
--- a/target/linux/at91/Makefile
+++ b/target/linux/at91/Makefile
@@ -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))
diff --git a/target/linux/at91/config-default b/target/linux/at91/config-default
index 5b1534d2d..6d4d346fb 100644
--- a/target/linux/at91/config-default
+++ b/target/linux/at91/config-default
@@ -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
index 000000000..671f45241
--- /dev/null
+++ b/target/linux/at91/files/arch/arm/boot/dts/lmu5000.dts
@@ -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
index 90ea8181b..000000000
--- a/target/linux/at91/files/drivers/misc/at91-adc.c
+++ /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
index 2d6f01d84..000000000
--- a/target/linux/at91/files/drivers/misc/at91_adc.h
+++ /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
-
diff --git a/target/linux/at91/image/Makefile b/target/linux/at91/image/Makefile
index 97723bb82..cf175ab2e 100644
--- a/target/linux/at91/image/Makefile
+++ b/target/linux/at91/image/Makefile
@@ -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
diff --git a/target/linux/at91/modules.mk b/target/linux/at91/modules.mk
index 3f20bb8a4..7866e5fd8 100644
--- a/target/linux/at91/modules.mk
+++ b/target/linux/at91/modules.mk
@@ -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
index 2b67be1e4..000000000
--- a/target/linux/at91/patches/900-AT91-Add-external-RTC-for-Flexibity-board.patch
+++ /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
index 000000000..3ff040d2e
--- /dev/null
+++ b/target/linux/at91/profiles/00-default.mk
@@ -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
index 000000000..4b14f939e
--- /dev/null
+++ b/target/linux/at91/profiles/atmel.mk
@@ -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
index 000000000..33f78e17a
--- /dev/null
+++ b/target/linux/at91/profiles/calamp.mk
@@ -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))