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>

SVN-Revision: 36452
v19.07.3_mercusys_ac12_duma
Gabor Juhos 11 years ago
parent c63bb1a18e
commit 988ae9cbf8

@ -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

@ -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

@ -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 &

@ -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

@ -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))

@ -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))

@ -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))

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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))

@ -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

@ -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";
};
};
};

@ -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");

@ -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

@ -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

@ -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

@ -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));

@ -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))

@ -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))

@ -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))
Loading…
Cancel
Save