summaryrefslogtreecommitdiffstats
path: root/target/linux/at91
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/at91')
-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-default12
-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-default143
-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/Config.in12
-rw-r--r--target/linux/at91/image/Makefile61
-rw-r--r--target/linux/at91/modules.mk2
-rw-r--r--target/linux/at91/patches/100-ARM-at91-build-dtb-for-LMU5000.patch10
-rw-r--r--target/linux/at91/patches/700-tqma9263-support.patch4
-rw-r--r--target/linux/at91/patches/805-free_some_portc_pins.patch2
-rw-r--r--target/linux/at91/patches/900-AT91-Add-external-RTC-for-Flexibity-board.patch35
-rw-r--r--target/linux/at91/patches/901-AT91-flexibity-default-leds-to-heartbeat.patch2
-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
28 files changed, 415 insertions, 732 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 b15515792..000000000
--- a/target/linux/at91/9260/config-default
+++ /dev/null
@@ -1,12 +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 5e2c95e80..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 wireless-tools 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 gpioctl 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 8904140f1..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 wireless-tools 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 gpioctl 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 15ec97c87..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_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
-CONFIG_AT91_EARLY_DBGU1=y
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 c2967762d..000000000
--- a/target/linux/at91/9g20/config-default
+++ /dev/null
@@ -1,7 +0,0 @@
-CONFIG_ARCH_AT91SAM9G20=y
-CONFIG_MACH_AT91SAM9G20EK=y
-# CONFIG_MACH_AT91SAM9G20EK_2MMC is not set
-CONFIG_MACH_ACMENETUSFOXG20=y
-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..7a412c2e4 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.12
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 c30edb458..5d33472f1 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,18 @@ CONFIG_CPU_PABRT_LEGACY=y
CONFIG_CPU_TLB_V4WBI=y
CONFIG_CPU_USE_DOMAINS=y
CONFIG_CRC16=y
+CONFIG_CRYPTO_CRC32C=y
+# CONFIG_CRYPTO_DEV_ATMEL_AES is not set
+# CONFIG_CRYPTO_DEV_ATMEL_SHA is not set
+# CONFIG_CRYPTO_DEV_ATMEL_TDES is not set
+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,10 +77,13 @@ 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_DEVICE=y
CONFIG_GPIO_SYSFS=y
# CONFIG_HAMRADIO is not set
CONFIG_HARDIRQS_SW_RESEND=y
@@ -81,16 +91,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
@@ -103,50 +119,67 @@ 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
@@ -155,6 +188,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
@@ -162,38 +205,24 @@ 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
CONFIG_ZBOOT_ROM_TEXT=0
CONFIG_ZONE_DMA_FLAG=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/Config.in b/target/linux/at91/image/Config.in
index 917398f26..54a501dcb 100644
--- a/target/linux/at91/image/Config.in
+++ b/target/linux/at91/image/Config.in
@@ -1,16 +1,16 @@
config AT91_DFBOOT
bool "Build dataflashboot loader"
- depends TARGET_at91
+ depends on TARGET_at91
default n
config AT91_UBOOT
bool "Build U-Boot bootloader"
- depends TARGET_at91
+ depends on TARGET_at91
default n
config UBOOT_TARGET
string "U-Boot target board"
- depends AT91_UBOOT
+ depends on AT91_UBOOT
default "netusg20"
help
For all supported boards there are ready-to-use default
@@ -18,20 +18,20 @@ config UBOOT_TARGET
config UBOOT_IPADDR
string "IP Address for U-Boot"
- depends AT91_UBOOT
+ depends on AT91_UBOOT
default "192.168.0.178"
help
IP address of device to be used in U-Boot
config UBOOT_SERVERIP
string "IP Address of TFTP server"
- depends AT91_UBOOT
+ depends on AT91_UBOOT
default "192.168.0.232"
help
IP address of TFTP server for U-Boot
config FLEXIBITY_ROOT
bool "Build Flexibity RootFS (with embedded kernel)"
- depends TARGET_at91_flexibity
+ depends on TARGET_at91_flexibity
default n
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/100-ARM-at91-build-dtb-for-LMU5000.patch b/target/linux/at91/patches/100-ARM-at91-build-dtb-for-LMU5000.patch
new file mode 100644
index 000000000..e6c4c7231
--- /dev/null
+++ b/target/linux/at91/patches/100-ARM-at91-build-dtb-for-LMU5000.patch
@@ -0,0 +1,10 @@
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -22,6 +22,7 @@ dtb-$(CONFIG_ARCH_AT91) += tny_a9g20.dtb
+ dtb-$(CONFIG_ARCH_AT91) += usb_a9g20.dtb
+ # sam9g45
+ dtb-$(CONFIG_ARCH_AT91) += at91sam9m10g45ek.dtb
++dtb-$(CONFIG_ARCH_AT91) += lmu5000.dtb
+ dtb-$(CONFIG_ARCH_AT91) += pm9g45.dtb
+ # sam9n12
+ dtb-$(CONFIG_ARCH_AT91) += at91sam9n12ek.dtb
diff --git a/target/linux/at91/patches/700-tqma9263-support.patch b/target/linux/at91/patches/700-tqma9263-support.patch
index 321fe59a4..4db1ff89a 100644
--- a/target/linux/at91/patches/700-tqma9263-support.patch
+++ b/target/linux/at91/patches/700-tqma9263-support.patch
@@ -1,6 +1,6 @@
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
-@@ -335,6 +335,12 @@ config MACH_NEOCORE926
+@@ -358,6 +358,12 @@ config MACH_NEOCORE926
help
Select this if you are using the Adeneo Neocore 926 board.
@@ -15,7 +15,7 @@
# ----------------------------------------------------------
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
-@@ -58,6 +58,7 @@ obj-$(CONFIG_MACH_AT91SAM9G10EK) += boar
+@@ -67,6 +67,7 @@ obj-$(CONFIG_MACH_AT91SAM9G10EK) += boar
obj-$(CONFIG_MACH_AT91SAM9263EK) += board-sam9263ek.o
obj-$(CONFIG_MACH_USB_A9263) += board-usb-a926x.o
obj-$(CONFIG_MACH_NEOCORE926) += board-neocore926.o
diff --git a/target/linux/at91/patches/805-free_some_portc_pins.patch b/target/linux/at91/patches/805-free_some_portc_pins.patch
index df8e50a03..a9694d1f0 100644
--- a/target/linux/at91/patches/805-free_some_portc_pins.patch
+++ b/target/linux/at91/patches/805-free_some_portc_pins.patch
@@ -1,6 +1,6 @@
--- a/arch/arm/mach-at91/at91sam9260_devices.c
+++ b/arch/arm/mach-at91/at91sam9260_devices.c
-@@ -579,7 +579,7 @@ static struct platform_device at91sam926
+@@ -507,7 +507,7 @@ static struct platform_device at91sam926
.num_resources = ARRAY_SIZE(spi1_resources),
};
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/patches/901-AT91-flexibity-default-leds-to-heartbeat.patch b/target/linux/at91/patches/901-AT91-flexibity-default-leds-to-heartbeat.patch
index 59f9bb30e..a97850ac9 100644
--- a/target/linux/at91/patches/901-AT91-flexibity-default-leds-to-heartbeat.patch
+++ b/target/linux/at91/patches/901-AT91-flexibity-default-leds-to-heartbeat.patch
@@ -1,6 +1,6 @@
--- a/arch/arm/mach-at91/board-flexibity.c
+++ b/arch/arm/mach-at91/board-flexibity.c
-@@ -94,49 +94,49 @@ static struct gpio_led flexibity_leds[]
+@@ -89,49 +89,49 @@ static struct gpio_led flexibity_leds[]
.name = "usb1:green",
.gpio = AT91_PIN_PA12,
.active_low = 1,
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))