summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Gilles <jgilles@multitech.com>2014-11-04 11:23:21 -0600
committerJesse Gilles <jgilles@multitech.com>2014-11-04 11:23:21 -0600
commit812befa503067ad2bae5de58962ff38321c369ca (patch)
treeb472b5118f62e97f760a5b23f3a72130e5ce235b
downloadmeta-multitech-atmel-812befa503067ad2bae5de58962ff38321c369ca.tar.gz
meta-multitech-atmel-812befa503067ad2bae5de58962ff38321c369ca.tar.bz2
meta-multitech-atmel-812befa503067ad2bae5de58962ff38321c369ca.zip
initial commit with MTCDT support
-rw-r--r--COPYING.MIT17
-rw-r--r--README8
-rw-r--r--classes/linux-append-dtb.bbclass8
-rw-r--r--conf/layer.conf10
-rw-r--r--conf/machine/mtcdt.conf39
-rw-r--r--contrib/uboot-setenv-mtcdt.minicom60
-rw-r--r--recipes-bsp/at91bootstrap/at91bootstrap-3.5.3/at91bootstrap-3.5.2-add-install.patch20
-rw-r--r--recipes-bsp/at91bootstrap/at91bootstrap-3.5.3/at91bootstrap-3.5.2-onetime-slow-clock-switch.patch91
-rw-r--r--recipes-bsp/at91bootstrap/at91bootstrap-3.5.3/at91bootstrap-3.5.3-mtcdt.patch60
-rw-r--r--recipes-bsp/at91bootstrap/at91bootstrap-3.5.3/at91sam9x5_4bit_pmecc_header.bin1
-rwxr-xr-xrecipes-bsp/at91bootstrap/at91bootstrap-3.5.3/create_4bit_pmecc_header.rb5
-rw-r--r--recipes-bsp/at91bootstrap/at91bootstrap_3.5.3.bb28
-rw-r--r--recipes-bsp/at91bootstrap/at91bootstrap_3.5.inc27
-rw-r--r--recipes-bsp/multitech/mts-id-eeprom.inc15
-rw-r--r--recipes-bsp/multitech/mts-id-eeprom_0.2.4.bb3
-rw-r--r--recipes-bsp/multitech/mts-io.inc76
-rwxr-xr-xrecipes-bsp/multitech/mts-io/led-a_heartbeat_trigger6
-rw-r--r--recipes-bsp/multitech/mts-io/mts-io.init20
-rw-r--r--recipes-bsp/multitech/mts-io_0.9.1.bb3
-rw-r--r--recipes-bsp/multitech/u-boot-linux-utils_0.0.1.bb19
-rw-r--r--recipes-bsp/u-boot/u-boot-2012.10/u-boot-2010.06-macb-autoneg-timeout.patch53
-rw-r--r--recipes-bsp/u-boot/u-boot-2012.10/u-boot-2012.10-mtcdt.patch143
-rw-r--r--recipes-bsp/u-boot/u-boot-2012.10/u-boot-2012.10-sam9x5-eth-mii-fix.patch27
-rw-r--r--recipes-bsp/u-boot/u-boot.inc89
-rw-r--r--recipes-bsp/u-boot/u-boot_2012.10.bb38
-rw-r--r--recipes-devtools/mtd/mtd-utils_git.bbappend5
-rw-r--r--recipes-kernel/linux/linux-3.12.27/linux-3.12-add-num_accessory_ports-config-option.patch22
-rw-r--r--recipes-kernel/linux/linux-3.12.27/linux-3.12-at91-gpio-pullup.patch42
-rw-r--r--recipes-kernel/linux/linux-3.12.27/linux-3.12-at91sam9_wdt-10second-timeout.patch14
-rw-r--r--recipes-kernel/linux/linux-3.12.27/linux-3.12-atmel-mci-force-detect.patch29
-rw-r--r--recipes-kernel/linux/linux-3.12.27/linux-3.12-atmel-pmecc-debug-bitflips.patch22
-rw-r--r--recipes-kernel/linux/linux-3.12.27/linux-3.12-atmel-spi.patch37
-rw-r--r--recipes-kernel/linux/linux-3.12.27/linux-3.12-cdc-acm-ignore-exar-devices.patch35
-rw-r--r--recipes-kernel/linux/linux-3.12.27/linux-3.12-gpio-expose-deglitch.patch165
-rw-r--r--recipes-kernel/linux/linux-3.12.27/linux-3.12-gpio-expose-pullups.patch301
-rw-r--r--recipes-kernel/linux/linux-3.12.27/linux-3.12-release-rfcomm-port-fix.patch78
-rw-r--r--recipes-kernel/linux/linux-3.12.27/linux-3.12.27-option-telit.patch39
-rw-r--r--recipes-kernel/linux/linux-3.12.27/mtcdt/defconfig2876
-rw-r--r--recipes-kernel/linux/linux-3.12.27/mtcdt/linux-3.12-eeprom-setup-mtcdt.patch164
-rw-r--r--recipes-kernel/linux/linux-3.12.27/mtcdt/linux-3.12-mtcdt-device-tree.patch448
-rw-r--r--recipes-kernel/linux/linux_3.12.27.bb40
-rw-r--r--recipes-kernel/vizzini/files/vizzini.init22
-rw-r--r--recipes-kernel/vizzini/kernel-module-vizzini-1.1/vizzini-1.1-enable-cts.patch32
-rw-r--r--recipes-kernel/vizzini/kernel-module-vizzini-1.1/vizzini-1.1-rs485.patch102
-rw-r--r--recipes-kernel/vizzini/kernel-module-vizzini-1.1/xr21v141x-lnx3.10-3.11.tar.gzbin0 -> 16958 bytes
-rw-r--r--recipes-kernel/vizzini/kernel-module-vizzini_1.1.bb10
-rw-r--r--recipes-kernel/vizzini/vizzini.inc48
47 files changed, 5397 insertions, 0 deletions
diff --git a/COPYING.MIT b/COPYING.MIT
new file mode 100644
index 0000000..fb950dc
--- /dev/null
+++ b/COPYING.MIT
@@ -0,0 +1,17 @@
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/README b/README
new file mode 100644
index 0000000..c473bb3
--- /dev/null
+++ b/README
@@ -0,0 +1,8 @@
+MultiTech hardware support OpenEmbedded layer
+
+This layer depends on:
+
+URI: git://git.openembedded.org/openembedded-core
+branch: daisy
+revision: HEAD
+
diff --git a/classes/linux-append-dtb.bbclass b/classes/linux-append-dtb.bbclass
new file mode 100644
index 0000000..6d3e52d
--- /dev/null
+++ b/classes/linux-append-dtb.bbclass
@@ -0,0 +1,8 @@
+# build devicetree blob, append to kernel, and create uImage
+do_compile_append() {
+ if [ -n "${DTB_APPEND}" ]; then
+ oe_runmake ${DTB_APPEND}.dtb
+ cat arch/${ARCH}/boot/zImage arch/${ARCH}/boot/dts/${DTB_APPEND}.dtb > arch/${ARCH}/boot/zImage.dtb
+ uboot-mkimage -A ${UBOOT_ARCH} -O linux -T kernel -C none -a ${UBOOT_LOADADDRESS} -e ${UBOOT_ENTRYPOINT} -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d arch/${ARCH}/boot/zImage.dtb arch/${ARCH}/boot/uImage
+ fi
+}
diff --git a/conf/layer.conf b/conf/layer.conf
new file mode 100644
index 0000000..f33c49f
--- /dev/null
+++ b/conf/layer.conf
@@ -0,0 +1,10 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have a recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "multitech"
+BBFILE_PATTERN_multitech = "^${LAYERDIR}/"
+BBFILE_PRIORITY_multitech = "6"
diff --git a/conf/machine/mtcdt.conf b/conf/machine/mtcdt.conf
new file mode 100644
index 0000000..59aac2b
--- /dev/null
+++ b/conf/machine/mtcdt.conf
@@ -0,0 +1,39 @@
+#@TYPE: Machine
+#@Name: Multi-Tech MTCDT
+#@DESCRIPTION: Machine configuration for the MultiConnect Conduit MTCDT hardware
+
+require conf/machine/include/tune-arm926ejs.inc
+
+MACHINE_FEATURES = "ext2 ext3 usbhost usbgadget ppp"
+PREFERRED_PROVIDER_virtual/kernel = "linux"
+PREFERRED_VERSION_linux = "3.12.27"
+PREFERRED_VERSION_mts-io ?= "0.9.1"
+PREFERRED_VERSION_mts-id-eeprom ?= "0.2.4"
+
+MACHINE_ESSENTIAL_EXTRA_RDEPENDS = "kernel-module-vizzini"
+PREFERRED_VERSION_kernel-module-vizzini ?= "1.1"
+
+DEFAULTTUNE = "arm926ejs"
+
+# used by sysvinit_2
+SERIAL_CONSOLES = "115200;ttyS0"
+#don't try to access tty1
+USE_VT = "0"
+
+UBOOT_MACHINE = "at91sam9x5ek_nandflash_config"
+PREFERRED_VERSION_u-boot = "2012.10"
+
+AT91BOOTSTRAP_BOARD = "at91sam9x5eknf_uboot"
+PREFERRED_VERSION_at91bootstrap = "3.5.3"
+
+KERNEL_IMAGETYPE = "uImage"
+# remove kernel-image from rootfs by overriding kernel-base DEPS
+RDEPENDS_kernel-base = ""
+
+EXTRA_IMAGEDEPENDS += "at91bootstrap u-boot"
+
+IMAGE_FSTYPES =+ "jffs2 tar.gz"
+EXTRA_IMAGECMD_jffs2 = "--little-endian --eraseblock=0x20000 --pagesize=0x800 -n"
+
+UBOOT_ENTRYPOINT = "0x20008000"
+UBOOT_LOADADDRESS = "0x20008000"
diff --git a/contrib/uboot-setenv-mtcdt.minicom b/contrib/uboot-setenv-mtcdt.minicom
new file mode 100644
index 0000000..200a7a4
--- /dev/null
+++ b/contrib/uboot-setenv-mtcdt.minicom
@@ -0,0 +1,60 @@
+print setting U-Boot variables...
+send setenv bootargs \'mem=128M console=ttyS0,115200 root=/dev/mtdblock8 ro rootfstype=jffs2\'
+send setenv bootcmd \'nboot.jffs2 ${loadaddr} 0 ${kernel_addr} && bootm ${loadaddr}\'
+send setenv bootdelay 1
+send setenv serverip 192.168.2.2
+send setenv ipaddr 192.168.2.1
+send setenv netmask 255.255.255.0
+send setenv loadaddr 0x22000000
+send setenv tftpaddr 0x20000000
+send setenv stdin serial
+send setenv stdout serial
+send setenv stderr serial
+send setenv ethact macb0
+send setenv mtdids nand0=nand0
+send setenv mtdparts mtdparts=nand0:256k(bootstrap),512k(u-boot),640k(u-boot-env1),640k(u-boot-env2),6M(kernel),8M(config),8M(oem),-(rootfs)
+send setenv bootstrap_file oe_bootstrap_pmecc_padded.bin
+send setenv uboot_file oe_u-boot.bin
+send setenv uboot_env1_file oe_uboot_env1.bin
+send setenv uboot_env2_file oe_uboot_env2.bin
+send setenv kernel_file oe_uImage.bin
+send setenv config_file oe_config.tar.gz
+send setenv oem_file oe_oem.tar.gz
+send setenv rootfs_file oe_rootfs.jffs2
+send setenv bootstrap_addr 0x00000000
+send setenv uboot_addr 0x00040000
+send setenv uboot_env1_addr 0x000C0000
+send setenv uboot_env2_addr 0x00160000
+send setenv kernel_addr 0x00200000
+send setenv config_addr 0x00800000
+send setenv oem_addr 0x01000000
+send setenv rootfs_addr 0x01800000
+send setenv bootstrap_size 0x00040000
+send setenv uboot_size 0x00080000
+send setenv uboot_env1_size 0x000A0000
+send setenv uboot_env2_size 0x000A0000
+send setenv kernel_size 0x00600000
+send setenv config_size 0x00800000
+send setenv oem_size 0x00800000
+send setenv erase_bootstrap \'nand erase.part bootstrap\'
+send setenv erase_uboot \'nand erase.part u-boot\'
+send setenv erase_uboot_env1 \'nand erase.part u-boot-env1\'
+send setenv erase_uboot_env2 \'nand erase.part u-boot-env2\'
+send setenv erase_kernel \'nand erase.part kernel\'
+send setenv erase_config \'nand erase.part config\'
+send setenv erase_oem \'nand erase.part oem\'
+send setenv erase_rootfs \'nand erase.part rootfs\'
+send setenv tftp_bootstrap \'tftp ${tftpaddr} ${bootstrap_file} && run erase_bootstrap && nand write.jffs2 ${fileaddr} bootstrap ${filesize}\'
+send setenv tftp_uboot \'tftp ${tftpaddr} ${uboot_file} && run erase_uboot && nand write.jffs2 ${fileaddr} u-boot ${filesize}\'
+send setenv tftp_uboot_env1 \'tftp ${tftpaddr} ${uboot_env1_file} && run erase_uboot_env1 && nand write.jffs2 ${fileaddr} u-boot-env1 ${filesize}\'
+send setenv tftp_uboot_env2 \'tftp ${tftpaddr} ${uboot_env2_file} && run erase_uboot_env2 && nand write.jffs2 ${fileaddr} u-boot-env2 ${filesize}\'
+send setenv tftp_kernel \'tftp ${tftpaddr} ${kernel_file} && run erase_kernel && nand write.jffs2 ${fileaddr} kernel ${filesize}\'
+send setenv tftp_config \'tftp ${tftpaddr} ${config_file} && run erase_config && nand write.jffs2 ${fileaddr} config ${filesize}\'
+send setenv tftp_oem \'tftp ${tftpaddr} ${oem_file} && run erase_oem && nand write.jffs2 ${fileaddr} oem ${filesize}\'
+send setenv tftp_rootfs \'tftp ${tftpaddr} ${rootfs_file} && run erase_rootfs && nand write.jffs2 ${fileaddr} rootfs ${filesize}\'
+send setenv krb \'run tftp_kernel && run tftp_rootfs && boot\'
+send setenv rb \'run tftp_rootfs && boot\'
+print saving...
+send saveenv
+send saveenv
+send printenv
diff --git a/recipes-bsp/at91bootstrap/at91bootstrap-3.5.3/at91bootstrap-3.5.2-add-install.patch b/recipes-bsp/at91bootstrap/at91bootstrap-3.5.3/at91bootstrap-3.5.2-add-install.patch
new file mode 100644
index 0000000..6f007b9
--- /dev/null
+++ b/recipes-bsp/at91bootstrap/at91bootstrap-3.5.3/at91bootstrap-3.5.2-add-install.patch
@@ -0,0 +1,20 @@
+Index: at91bootstrap-3.5.2/Makefile
+===================================================================
+--- at91bootstrap-3.5.2.orig/Makefile 2013-02-08 14:38:40.660054339 -0600
++++ at91bootstrap-3.5.2/Makefile 2013-02-08 14:41:30.626272862 -0600
+@@ -359,4 +359,15 @@
+
+ PHONY+=tarball tarballx
+
++install:
++ -install -d $(DESTDIR)
++ install $(AT91BOOTSTRAP) $(DESTDIR)/$(IMAGE)
++ -rm -f $(DESTDIR)/$(SYMLINK)
++ (cd ${DESTDIR} ; \
++ ln -sf ${IMAGE} ${SYMLINK} \
++ )
++
++
++PHONY+=install
++
+ .PHONY: $(PHONY)
diff --git a/recipes-bsp/at91bootstrap/at91bootstrap-3.5.3/at91bootstrap-3.5.2-onetime-slow-clock-switch.patch b/recipes-bsp/at91bootstrap/at91bootstrap-3.5.3/at91bootstrap-3.5.2-onetime-slow-clock-switch.patch
new file mode 100644
index 0000000..98ccd41
--- /dev/null
+++ b/recipes-bsp/at91bootstrap/at91bootstrap-3.5.3/at91bootstrap-3.5.2-onetime-slow-clock-switch.patch
@@ -0,0 +1,91 @@
+Index: at91bootstrap-3.5.2/driver/at91_slowclk.c
+===================================================================
+--- at91bootstrap-3.5.2.orig/driver/at91_slowclk.c 2013-01-30 04:01:20.000000000 -0600
++++ at91bootstrap-3.5.2/driver/at91_slowclk.c 2013-04-24 11:35:44.369827054 -0500
+@@ -33,12 +33,17 @@
+ {
+ unsigned int reg;
+
+- /*
+- * Enable the 32768 Hz oscillator by setting the bit OSC32EN to 1
+- */
++
+ reg = readl(AT91C_BASE_SCKCR);
+- reg |= AT91C_SLCKSEL_OSC32EN;
+- writel(reg, AT91C_BASE_SCKCR);
++
++ /* Only enable 32768 Hz oscillator if needed */
++ if ( !(reg & AT91C_SLCKSEL_OSC32EN) ) {
++ /*
++ * Enable the 32768 Hz oscillator by setting the bit OSC32EN to 1
++ */
++ reg |= AT91C_SLCKSEL_OSC32EN;
++ writel(reg, AT91C_BASE_SCKCR);
++ }
+
+ /* start a internal timer */
+ start_interval_timer();
+@@ -50,32 +55,40 @@
+ {
+ unsigned int reg;
+
+- /*
+- * Wait 32768 Hz Startup Time for clock stabilization (software loop)
+- * wait about 1s (1000ms)
+- */
+- wait_interval_timer(1000);
+-
+- /*
+- * Switching from internal 32kHz RC oscillator to 32768 Hz oscillator
+- * by setting the bit OSCSEL to 1
+- */
+ reg = readl(AT91C_BASE_SCKCR);
+- reg |= AT91C_SLCKSEL_OSCSEL;
+- writel(reg, AT91C_BASE_SCKCR);
+
+- /*
+- * Waiting 5 slow clock cycles for internal resynchronization
+- * 5 slow clock cycles = ~153 us (5 / 32768)
+- */
+- udelay(153);
+-
+- /*
+- * Disable the 32kHz RC oscillator by setting the bit RCEN to 0
+- */
++ /* Only switch clock source if needed */
++ if ( !(reg & AT91C_SLCKSEL_OSCSEL) ) {
++ dbgu_print("Switching slow clock to external oscillator...\n\r");
++ /*
++ * Wait 32768 Hz Startup Time for clock stabilization (software loop)
++ * wait about 1s (1000ms)
++ */
++ wait_interval_timer(1000);
++
++ /*
++ * Switching from internal 32kHz RC oscillator to 32768 Hz oscillator
++ * by setting the bit OSCSEL to 1
++ */
++ reg |= AT91C_SLCKSEL_OSCSEL;
++ writel(reg, AT91C_BASE_SCKCR);
++
++ /*
++ * Waiting 5 slow clock cycles for internal resynchronization
++ * 5 slow clock cycles = ~153 us (5 / 32768)
++ */
++ udelay(153);
++ }
++
++ /* Only disable internal RC oscillator if needed */
+ reg = readl(AT91C_BASE_SCKCR);
+- reg &= ~AT91C_SLCKSEL_RCEN;
+- writel(reg, AT91C_BASE_SCKCR);
++ if (reg | AT91C_SLCKSEL_RCEN) {
++ /*
++ * Disable the 32kHz RC oscillator by setting the bit RCEN to 0
++ */
++ reg &= ~AT91C_SLCKSEL_RCEN;
++ writel(reg, AT91C_BASE_SCKCR);
++ }
+
+ return 0;
+ }
diff --git a/recipes-bsp/at91bootstrap/at91bootstrap-3.5.3/at91bootstrap-3.5.3-mtcdt.patch b/recipes-bsp/at91bootstrap/at91bootstrap-3.5.3/at91bootstrap-3.5.3-mtcdt.patch
new file mode 100644
index 0000000..24c27a0
--- /dev/null
+++ b/recipes-bsp/at91bootstrap/at91bootstrap-3.5.3/at91bootstrap-3.5.3-mtcdt.patch
@@ -0,0 +1,60 @@
+Index: at91bootstrap-3.5.3/board/at91sam9x5ek/at91sam9x5eknf_uboot_defconfig
+===================================================================
+--- at91bootstrap-3.5.3.orig/board/at91sam9x5ek/at91sam9x5eknf_uboot_defconfig 2013-04-11 05:07:35.000000000 -0500
++++ at91bootstrap-3.5.3/board/at91sam9x5ek/at91sam9x5eknf_uboot_defconfig 2013-04-29 15:13:01.390913836 -0500
+@@ -42,7 +42,8 @@
+ ALLOW_PIO3=y
+ CONFIG_HAS_PIO3=y
+ CPU_HAS_PMECC=y
+-CONFIG_LOAD_ONE_WIRE=y
++# MTS: don't load one wire
++# CONFIG_LOAD_ONE_WIRE is not set
+ # CONFIG_MMC_SUPPORT is not set
+
+ #
+@@ -81,8 +82,8 @@
+ #
+ # PMECC Configuration
+ #
+-CONFIG_PMECC_CORRECT_BITS_2=y
+-# CONFIG_PMECC_CORRECT_BITS_4 is not set
++# CONFIG_PMECC_CORRECT_BITS_2 is not set
++CONFIG_PMECC_CORRECT_BITS_4=y
+ # CONFIG_PMECC_CORRECT_BITS_8 is not set
+ # CONFIG_PMECC_CORRECT_BITS_12 is not set
+ # CONFIG_PMECC_CORRECT_BITS_24 is not set
+@@ -116,4 +117,5 @@
+ # CONFIG_USER_HW_INIT is not set
+ CONFIG_THUMB=y
+ CONFIG_SCLK=y
+-CONFIG_DISABLE_WATCHDOG=y
++# MTS: don't disable watchdog
++# CONFIG_DISABLE_WATCHDOG is not set
+Index: at91bootstrap-3.5.3/board/at91sam9x5ek/at91sam9x5ek.c
+===================================================================
+--- at91bootstrap-3.5.3.orig/board/at91sam9x5ek/at91sam9x5ek.c 2013-04-11 05:07:35.000000000 -0500
++++ at91bootstrap-3.5.3/board/at91sam9x5ek/at91sam9x5ek.c 2013-04-29 15:14:44.578915819 -0500
+@@ -312,10 +312,8 @@
+
+ reg = readl(AT91C_BASE_CCFG + CCFG_EBICSA);
+ reg |= AT91C_EBI_CS3A_SM;
+- if (get_cm_rev() == 'A')
+- reg &= ~AT91C_EBI_NFD0_ON_D16;
+- else
+- reg |= (AT91C_EBI_DDR_MP_EN | AT91C_EBI_NFD0_ON_D16);
++ /* MTCDT */
++ reg |= (AT91C_EBI_DDR_MP_EN | AT91C_EBI_NFD0_ON_D16);
+
+ reg &= ~AT91C_EBI_DRV;
+ writel(reg, AT91C_BASE_CCFG + CCFG_EBICSA);
+@@ -345,9 +343,7 @@
+ AT91C_BASE_SMC + SMC_CTRL3);
+
+ /* Configure the PIO controller */
+- if (get_cm_rev() == 'A')
+- pio_configure(nand_pins_lo);
+- else
++ /* MTCDT */
+ pio_configure(nand_pins_hi);
+
+ writel((1 << AT91C_ID_PIOC_D), (PMC_PCER + AT91C_BASE_PMC));
diff --git a/recipes-bsp/at91bootstrap/at91bootstrap-3.5.3/at91sam9x5_4bit_pmecc_header.bin b/recipes-bsp/at91bootstrap/at91bootstrap-3.5.3/at91sam9x5_4bit_pmecc_header.bin
new file mode 100644
index 0000000..f8d6073
--- /dev/null
+++ b/recipes-bsp/at91bootstrap/at91bootstrap-3.5.3/at91sam9x5_4bit_pmecc_header.bin
@@ -0,0 +1 @@
+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ \ No newline at end of file
diff --git a/recipes-bsp/at91bootstrap/at91bootstrap-3.5.3/create_4bit_pmecc_header.rb b/recipes-bsp/at91bootstrap/at91bootstrap-3.5.3/create_4bit_pmecc_header.rb
new file mode 100755
index 0000000..780d728
--- /dev/null
+++ b/recipes-bsp/at91bootstrap/at91bootstrap-3.5.3/create_4bit_pmecc_header.rb
@@ -0,0 +1,5 @@
+#!/usr/bin/env ruby
+
+52.times do
+ print ["052490c0"].pack('H*')
+end
diff --git a/recipes-bsp/at91bootstrap/at91bootstrap_3.5.3.bb b/recipes-bsp/at91bootstrap/at91bootstrap_3.5.3.bb
new file mode 100644
index 0000000..447d77f
--- /dev/null
+++ b/recipes-bsp/at91bootstrap/at91bootstrap_3.5.3.bb
@@ -0,0 +1,28 @@
+require at91bootstrap_3.5.inc
+
+PR = "r1"
+
+LICENSE = "custom-freely-distributable"
+LIC_FILES_CHKSUM = "file://main.c;beginline=6;endline=26;md5=6fca71334c9e8b7d033296123c91437f"
+
+SRCREV = "v${PV}"
+SRC_URI = "git://github.com/linux4sam/at91bootstrap \
+ file://at91bootstrap-3.5.2-add-install.patch \
+ file://at91bootstrap-3.5.2-onetime-slow-clock-switch.patch \
+ file://at91sam9x5_4bit_pmecc_header.bin "
+
+S = "${WORKDIR}/git"
+
+SRC_URI_append_mtcdt = " file://at91bootstrap-3.5.3-mtcdt.patch "
+
+# generate a bootstrap file padded with the header needed for 4-bit PMECC
+# The padded file can be flashed via u-boot without any need to set the PMECC header using SAM-BA
+do_pad_4bit_pmecc() {
+ cp -f ${WORKDIR}/at91sam9x5_4bit_pmecc_header.bin ${DEPLOY_DIR_IMAGE}/at91bootstrap_pmecc_padded.bin
+ cat ${DEPLOY_DIR_IMAGE}/at91bootstrap.bin >> ${DEPLOY_DIR_IMAGE}/at91bootstrap_pmecc_padded.bin
+}
+
+do_install_append() {
+ do_pad_4bit_pmecc
+}
+
diff --git a/recipes-bsp/at91bootstrap/at91bootstrap_3.5.inc b/recipes-bsp/at91bootstrap/at91bootstrap_3.5.inc
new file mode 100644
index 0000000..ac147c0
--- /dev/null
+++ b/recipes-bsp/at91bootstrap/at91bootstrap_3.5.inc
@@ -0,0 +1,27 @@
+DESCRIPTION = "at91bootstrap: loaded into internal SRAM by AT91 BootROM"
+SECTION = "bootloaders"
+
+PARALLEL_MAKE = ""
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX} DESTDIR=${DEPLOY_DIR_IMAGE} REVISION=${PR}"
+
+do_compile () {
+ unset LDFLAGS
+ unset CFLAGS
+ unset CPPFLAGS
+
+ rm -Rf ${S}/binaries
+ for board in ${AT91BOOTSTRAP_BOARD} ; do
+ oe_runmake mrproper
+ filename=`find board -name ${board}_defconfig`
+ if ! [ "x$filename" == "x" ] ; then
+ cp $filename .config
+ oe_runmake
+ oe_runmake install
+ else
+ echo "${board} could not be built"
+ exit 1
+ fi
+ done
+}
diff --git a/recipes-bsp/multitech/mts-id-eeprom.inc b/recipes-bsp/multitech/mts-id-eeprom.inc
new file mode 100644
index 0000000..d0510b4
--- /dev/null
+++ b/recipes-bsp/multitech/mts-id-eeprom.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "ID EEPROM tool for MTCDP"
+HOMEPAGE = "http://www.multitech.net/"
+SECTION = "console/utils"
+PRIORITY = "optional"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+INC_PR = "r0"
+DEPENDS = "mts-io"
+
+SRC_URI = "git://git.multitech.net/mts-id-eeprom.git;protocol=git;tag=${PV}"
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+PARALLEL_MAKE = ""
diff --git a/recipes-bsp/multitech/mts-id-eeprom_0.2.4.bb b/recipes-bsp/multitech/mts-id-eeprom_0.2.4.bb
new file mode 100644
index 0000000..ccf3521
--- /dev/null
+++ b/recipes-bsp/multitech/mts-id-eeprom_0.2.4.bb
@@ -0,0 +1,3 @@
+require mts-id-eeprom.inc
+
+PR = "${INC_PR}.0"
diff --git a/recipes-bsp/multitech/mts-io.inc b/recipes-bsp/multitech/mts-io.inc
new file mode 100644
index 0000000..484124e
--- /dev/null
+++ b/recipes-bsp/multitech/mts-io.inc
@@ -0,0 +1,76 @@
+DESCRIPTION = "mts-io controller and sysfs wrapper"
+HOMEPAGE = "http://www.multitech.net/"
+SECTION = "base"
+PRIORITY = "optional"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://io-module/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://io-tool/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+"
+DEPENDS = "virtual/kernel"
+INC_PR = "r5"
+
+SRCREV = "v${PV}"
+
+SRC_URI = " \
+ file://mts-io.init \
+ git://git.multitech.net/mts-io.git;protocol=git \
+ file://led-a_heartbeat_trigger \
+"
+S = "${WORKDIR}/git"
+
+inherit module-base
+inherit update-rc.d
+
+# add this since we aren't using module.bbclass
+addtask make_scripts after do_patch before do_compile
+do_make_scripts[lockfiles] = "${TMPDIR}/kernel-scripts.lock"
+do_make_scripts[deptask] = "do_populate_sysroot"
+
+EXTRA_OEMAKE = " -C ${STAGING_KERNEL_DIR} \
+ KBUILD_VERBOSE=1 \
+ M=${S}/io-module \
+ modules \
+ "
+
+do_compile () {
+ unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
+ oe_runmake
+}
+
+PACKAGES = "${PN}"
+
+FILES_${PN} = "${base_libdir}/modules/${KERNEL_VERSION}/extra/mts_io.ko"
+FILES_${PN} += "${sysconfdir}/init.d/mts-io"
+FILES_${PN} += "${libdir}/mts-io-sysfs*"
+FILES_${PN} += "${sbindir}/mts-io-sysfs"
+FILES_${PN} += "${sysconfdir}/init.d/led-a_heartbeat_trigger"
+FILES_${PN} += "${sysconfdir}/rc5.d/S99led-a_heartbeat_trigger"
+
+INITSCRIPT_NAME = "mts-io"
+INITSCRIPT_PARAMS = "start 39 S ."
+
+PARALLEL_MAKE = ""
+
+fakeroot do_install () {
+ install -m 0755 -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra
+ # use cp instead of install so the driver doesn't get stripped
+ cp io-module/mts_io.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra
+ cp io-module/mts_io.h ${STAGING_KERNEL_DIR}/include/linux/
+ cp io-module/mts_io.h ${STAGING_INCDIR}/linux/
+ if [ -f io-module/mts_eeprom.h ]; then
+ cp io-module/mts_eeprom.h ${STAGING_KERNEL_DIR}/include/linux/
+ cp io-module/mts_eeprom.h ${STAGING_INCDIR}/linux/
+ fi
+
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/mts-io.init ${D}${sysconfdir}/init.d/mts-io
+
+ install -d ${D}/${sysconfdir}/rc5.d
+ install -m 0755 ${WORKDIR}/led-a_heartbeat_trigger ${D}/${sysconfdir}/init.d/
+ ln -sf ${sysconfdir}/init.d/led-a_heartbeat_trigger ${D}/${sysconfdir}/rc5.d/S99led-a_heartbeat_trigger
+
+ install -m 0755 -d ${D}${sbindir}
+ install -d ${D}${libdir}/mts-io-sysfs
+ install -m 0755 io-tool/mts-io-sysfs-inc.sh ${D}${libdir}/mts-io-sysfs
+ install -m 0755 io-tool/mts-io-sysfs ${D}${sbindir}/mts-io-sysfs
+}
diff --git a/recipes-bsp/multitech/mts-io/led-a_heartbeat_trigger b/recipes-bsp/multitech/mts-io/led-a_heartbeat_trigger
new file mode 100755
index 0000000..9633dcf
--- /dev/null
+++ b/recipes-bsp/multitech/mts-io/led-a_heartbeat_trigger
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+TRIGGER="/sys/class/leds/led-a/trigger"
+
+echo "setting $TRIGGER to heartbeat"
+echo "heartbeat" > $TRIGGER
diff --git a/recipes-bsp/multitech/mts-io/mts-io.init b/recipes-bsp/multitech/mts-io/mts-io.init
new file mode 100644
index 0000000..77dd0e2
--- /dev/null
+++ b/recipes-bsp/multitech/mts-io/mts-io.init
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+case $1 in
+ start)
+ echo "Loading mts-io module"
+ modprobe mts_io
+ ;;
+
+ stop)
+ echo "Unloading mts-io module"
+ modprobe -r mts_io
+ ;;
+
+ *)
+ echo "Usage: $0 {start|stop}"
+ exit 2
+ ;;
+esac
+
+
diff --git a/recipes-bsp/multitech/mts-io_0.9.1.bb b/recipes-bsp/multitech/mts-io_0.9.1.bb
new file mode 100644
index 0000000..6d60671
--- /dev/null
+++ b/recipes-bsp/multitech/mts-io_0.9.1.bb
@@ -0,0 +1,3 @@
+require mts-io.inc
+
+SRCREV_mtcdt = "cdf9e59ab6a793bb158c91c91aa0312a72211ad0"
diff --git a/recipes-bsp/multitech/u-boot-linux-utils_0.0.1.bb b/recipes-bsp/multitech/u-boot-linux-utils_0.0.1.bb
new file mode 100644
index 0000000..36510f8
--- /dev/null
+++ b/recipes-bsp/multitech/u-boot-linux-utils_0.0.1.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "U-Boot Linux Utilities"
+HOMEPAGE = "http://www.multitech.net/"
+SECTION = "console/utils"
+PRIORITY = "optional"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+PR = "r0"
+
+DEPENDS = "mtd-utils"
+
+# tag 0.0.1
+SRCREV = "9c154405c2d01648f41c6a72bcc96f9865c4f07c"
+
+SRC_URI = "git://git.multitech.net/u-boot-linux-utils.git;protocol=git"
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+PARALLEL_MAKE = ""
diff --git a/recipes-bsp/u-boot/u-boot-2012.10/u-boot-2010.06-macb-autoneg-timeout.patch b/recipes-bsp/u-boot/u-boot-2012.10/u-boot-2010.06-macb-autoneg-timeout.patch
new file mode 100644
index 0000000..5294b1a
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-2012.10/u-boot-2010.06-macb-autoneg-timeout.patch
@@ -0,0 +1,53 @@
+Index: u-boot-2010.06/drivers/net/macb.c
+===================================================================
+--- u-boot-2010.06.orig/drivers/net/macb.c 2013-01-04 16:57:21.460051123 -0600
++++ u-boot-2010.06/drivers/net/macb.c 2013-01-04 17:03:28.880052058 -0600
+@@ -57,7 +57,7 @@
+ #define CONFIG_SYS_MACB_RX_RING_SIZE (CONFIG_SYS_MACB_RX_BUFFER_SIZE / 128)
+ #define CONFIG_SYS_MACB_TX_RING_SIZE 16
+ #define CONFIG_SYS_MACB_TX_TIMEOUT 1000
+-#define CONFIG_SYS_MACB_AUTONEG_TIMEOUT 5000000
++#define CONFIG_SYS_MACB_AUTONEG_TIMEOUT 3000000
+
+ struct macb_dma_desc {
+ u32 addr;
+@@ -322,11 +322,12 @@
+ return 0;
+ }
+
+-static void macb_phy_reset(struct macb_device *macb)
++static u16 macb_phy_reset(struct macb_device *macb)
+ {
+ struct eth_device *netdev = &macb->netdev;
+ int i;
+- u16 status, adv;
++ u16 status = 0;
++ u16 adv;
+
+ adv = ADVERTISE_CSMA | ADVERTISE_ALL;
+ macb_mdio_write(macb, MII_ADVERTISE, adv);
+@@ -346,6 +347,8 @@
+ else
+ printf("%s: Autonegotiation timed out (status=0x%04x)\n",
+ netdev->name, status);
++
++ return status;
+ }
+
+ #ifdef CONFIG_MACB_SEARCH_PHY
+@@ -397,14 +400,7 @@
+ status = macb_mdio_read(macb, MII_BMSR);
+ if (!(status & BMSR_LSTATUS)) {
+ /* Try to re-negotiate if we don't have link already. */
+- macb_phy_reset(macb);
+-
+- for (i = 0; i < CONFIG_SYS_MACB_AUTONEG_TIMEOUT / 100; i++) {
+- status = macb_mdio_read(macb, MII_BMSR);
+- if (status & BMSR_LSTATUS)
+- break;
+- udelay(100);
+- }
++ status = macb_phy_reset(macb);
+ }
+
+ if (!(status & BMSR_LSTATUS)) {
diff --git a/recipes-bsp/u-boot/u-boot-2012.10/u-boot-2012.10-mtcdt.patch b/recipes-bsp/u-boot/u-boot-2012.10/u-boot-2012.10-mtcdt.patch
new file mode 100644
index 0000000..fbc9c0f
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-2012.10/u-boot-2012.10-mtcdt.patch
@@ -0,0 +1,143 @@
+Index: git/include/configs/at91sam9x5ek.h
+===================================================================
+--- git.orig/include/configs/at91sam9x5ek.h 2014-10-14 16:14:47.208402129 -0500
++++ git/include/configs/at91sam9x5ek.h 2014-10-21 11:20:03.467770688 -0500
+@@ -54,6 +54,7 @@
+ #define CONFIG_USART_ID ATMEL_ID_SYS
+
+ /* LCD */
++/* MTCDT has no LCD
+ #define CONFIG_LCD
+ #define LCD_BPP LCD_COLOR16
+ #define LCD_OUTPUT_BPP 24
+@@ -65,8 +66,14 @@
+ #define CONFIG_ATMEL_HLCD
+ #define CONFIG_ATMEL_LCD_RGB565
+ #define CONFIG_SYS_CONSOLE_IS_IN_ENV
++*/
+
+-#define CONFIG_BOOTDELAY 3
++/*STATUS LED*/
++#define BOOT_STATUS_LED AT91_PIN_PA24
++
++#define CONFIG_BOOTDELAY 0
++/* check for keypress even if bootdelay is 0 */
++#define CONFIG_ZERO_BOOTDELAY_CHECK
+
+ /*
+ * BOOTP options
+@@ -120,12 +127,14 @@
+ /* our CLE is AD22 */
+ #define CONFIG_SYS_NAND_MASK_CLE (1 << 22)
+ #define CONFIG_SYS_NAND_ENABLE_PIN AT91_PIN_PD4
+-#define CONFIG_SYS_NAND_READY_PIN AT91_PIN_PD5
++/* MTCDT nand ready is PC31 */
++#define CONFIG_SYS_NAND_READY_PIN AT91_PIN_PC31
+
+ /* PMECC & PMERRLOC */
+ #define CONFIG_ATMEL_NAND_HWECC 1
+ #define CONFIG_ATMEL_NAND_HW_PMECC 1
+-#define CONFIG_PMECC_CAP 2
++/* MTCDT: 4-bit PMECC */
++#define CONFIG_PMECC_CAP 4
+ #define CONFIG_PMECC_SECTOR_SIZE 512
+ #define CONFIG_PMECC_INDEX_TABLE_OFFSET 0x8000
+
+@@ -143,6 +152,8 @@
+ #define CONFIG_RMII
+ #define CONFIG_NET_RETRY_COUNT 20
+ #define CONFIG_MACB_SEARCH_PHY
++/* enable MII command */
++#define CONFIG_CMD_MII 1
+
+ #define CONFIG_SYS_LOAD_ADDR 0x22000000 /* load address */
+
+@@ -153,11 +164,10 @@
+ /* bootstrap + u-boot + env + linux in nandflash */
+ #define CONFIG_ENV_IS_IN_NAND
+ #define CONFIG_ENV_OFFSET 0xc0000
+-#define CONFIG_ENV_OFFSET_REDUND 0x100000
++#define CONFIG_ENV_OFFSET_REDUND 0x160000
+ #define CONFIG_ENV_SIZE 0x20000 /* 1 sector = 128 kB */
+-#define CONFIG_BOOTCOMMAND "nand read " \
+- "0x22000000 0x200000 0x300000; " \
+- "bootm 0x22000000"
++/* MTCDT: read from env variables for boot */
++#define CONFIG_BOOTCOMMAND "nboot.jffs2 ${loadaddr} 0 ${kernel_addr}; bootm ${loadaddr}"
+ #else
+ #ifdef CONFIG_SYS_USE_SPIFLASH
+ /* bootstrap + u-boot + env + linux in spi flash */
+@@ -172,11 +182,8 @@
+ #endif
+ #endif
+
+-#define CONFIG_BOOTARGS "mem=128M console=ttyS0,115200 " \
+- "mtdparts=atmel_nand:" \
+- "8M(bootstrap/uboot/kernel)ro,-(rootfs) " \
+- "root=/dev/mtdblock1 rw " \
+- "rootfstype=ubifs ubi.mtd=1 root=ubi0:rootfs"
++/* MTCDT uses jffs2 */
++#define CONFIG_BOOTARGS "mem=128M console=ttyS0,115200 root=/dev/mtdblock8 ro rootfstype=jffs2"
+
+ #define CONFIG_BAUDRATE 115200
+
+@@ -199,4 +206,22 @@
+ #error CONFIG_USE_IRQ not supported
+ #endif
+
++/* MTCDT defaults */
++#define CONFIG_ENV_OVERWRITE 1 /* Allow Overwrite of serial# & ethaddr */
++#define CONFIG_ETHADDR 00:08:00:87:00:02
++#define CONFIG_IPADDR 192.168.2.1
++#define CONFIG_NETMASK 255.255.255.0
++#define CONFIG_SERVERIP 192.168.2.2
++#define CONFIG_HOSTNAME AT91SAM9G25
++#define CONFIG_LOADADDR 0x22000000
++
++/* MTCDT - enable watchdog */
++#define CONFIG_AT91SAM9_WATCHDOG 1
++#define CONFIG_HW_WATCHDOG 1
++
++#define CONFIG_EXTRA_ENV_SETTINGS \
++ "kernel_addr=0x200000\0" \
++ ""
++
++
+ #endif
+Index: git/board/atmel/at91sam9x5ek/at91sam9x5ek.c
+===================================================================
+--- git.orig/board/atmel/at91sam9x5ek/at91sam9x5ek.c 2014-10-14 16:14:46.920406821 -0500
++++ git/board/atmel/at91sam9x5ek/at91sam9x5ek.c 2014-10-14 16:14:47.664394700 -0500
+@@ -61,7 +61,8 @@
+ csa = readl(&matrix->ebicsa);
+ csa |= AT91_MATRIX_EBI_CS3A_SMC_SMARTMEDIA;
+ /* NAND flash on D16 */
+- csa |= AT91_MATRIX_NFD0_ON_D16;
++ /* MTCDT: nand flash is set up by bootstrap, so leave it alone here */
++ /* csa |= AT91_MATRIX_NFD0_ON_D16; */
+
+ /* Configure IO drive */
+ csa &= ~AT91_MATRIX_EBI_EBI_IOSR_NORMAL;
+@@ -266,6 +267,9 @@
+
+ int board_init(void)
+ {
++ /* Set Status LED High */
++ at91_set_gpio_output(BOOT_STATUS_LED, 0);
++
+ /* arch number of AT91SAM9X5EK-Board */
+ gd->bd->bi_arch_number = MACH_TYPE_AT91SAM9X5EK;
+
+@@ -288,6 +292,7 @@
+ #ifdef CONFIG_LCD
+ at91sam9x5ek_lcd_hw_init();
+ #endif
++
+ return 0;
+ }
+
+@@ -297,3 +302,4 @@
+ CONFIG_SYS_SDRAM_SIZE);
+ return 0;
+ }
++
diff --git a/recipes-bsp/u-boot/u-boot-2012.10/u-boot-2012.10-sam9x5-eth-mii-fix.patch b/recipes-bsp/u-boot/u-boot-2012.10/u-boot-2012.10-sam9x5-eth-mii-fix.patch
new file mode 100644
index 0000000..0f41ac4
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-2012.10/u-boot-2012.10-sam9x5-eth-mii-fix.patch
@@ -0,0 +1,27 @@
+Index: git/arch/arm/cpu/arm926ejs/at91/at91sam9x5_devices.c
+===================================================================
+--- git.orig/arch/arm/cpu/arm926ejs/at91/at91sam9x5_devices.c 2013-02-11 10:22:35.000000000 -0600
++++ git/arch/arm/cpu/arm926ejs/at91/at91sam9x5_devices.c 2013-02-11 10:32:59.652182120 -0600
+@@ -206,14 +206,14 @@
+ #ifndef CONFIG_RMII
+ /* Only emac0 support MII */
+ if (has_emac0()) {
+- at91_set_b_periph(AT91_PIO_PORTB, 16, 0); /* ECRS */
+- at91_set_b_periph(AT91_PIO_PORTB, 17, 0); /* ECOL */
+- at91_set_b_periph(AT91_PIO_PORTB, 13, 0); /* ERX2 */
+- at91_set_b_periph(AT91_PIO_PORTB, 14, 0); /* ERX3 */
+- at91_set_b_periph(AT91_PIO_PORTB, 15, 0); /* ERXCK */
+- at91_set_b_periph(AT91_PIO_PORTB, 11, 0); /* ETX2 */
+- at91_set_b_periph(AT91_PIO_PORTB, 12, 0); /* ETX3 */
+- at91_set_b_periph(AT91_PIO_PORTB, 8, 0); /* ETXER */
++ at91_set_a_periph(AT91_PIO_PORTB, 16, 0); /* ECRS */
++ at91_set_a_periph(AT91_PIO_PORTB, 17, 0); /* ECOL */
++ at91_set_a_periph(AT91_PIO_PORTB, 13, 0); /* ERX2 */
++ at91_set_a_periph(AT91_PIO_PORTB, 14, 0); /* ERX3 */
++ at91_set_a_periph(AT91_PIO_PORTB, 15, 0); /* ERXCK */
++ at91_set_a_periph(AT91_PIO_PORTB, 11, 0); /* ETX2 */
++ at91_set_a_periph(AT91_PIO_PORTB, 12, 0); /* ETX3 */
++ at91_set_a_periph(AT91_PIO_PORTB, 8, 0); /* ETXER */
+ }
+ #endif
+ }
diff --git a/recipes-bsp/u-boot/u-boot.inc b/recipes-bsp/u-boot/u-boot.inc
new file mode 100644
index 0000000..38a8a79
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot.inc
@@ -0,0 +1,89 @@
+DESCRIPTION = "U-Boot - the Universal Boot Loader"
+HOMEPAGE = "http://www.denx.de/wiki/U-Boot/WebHome"
+SECTION = "bootloaders"
+PROVIDES = "virtual/bootloader"
+
+inherit uboot-config deploy
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}"'
+
+# Allow setting an additional version string that will be picked up by the
+# u-boot build system and appended to the u-boot version. If the .scmversion
+# file already exists it will not be overwritten.
+UBOOT_LOCALVERSION ?= ""
+
+# Some versions of u-boot use .bin and others use .img. By default use .bin
+# but enable individual recipes to change this value.
+UBOOT_SUFFIX ?= "bin"
+UBOOT_IMAGE ?= "u-boot-${MACHINE}-${PV}-${PR}.${UBOOT_SUFFIX}"
+UBOOT_BINARY ?= "u-boot.${UBOOT_SUFFIX}"
+UBOOT_SYMLINK ?= "u-boot-${MACHINE}.${UBOOT_SUFFIX}"
+UBOOT_MAKE_TARGET ?= "all"
+
+# Some versions of u-boot build an SPL (Second Program Loader) image that
+# should be packaged along with the u-boot binary as well as placed in the
+# deploy directory. For those versions they can set the following variables
+# to allow packaging the SPL.
+SPL_BINARY ?= ""
+SPL_IMAGE ?= "${SPL_BINARY}-${MACHINE}-${PV}-${PR}"
+SPL_SYMLINK ?= "${SPL_BINARY}-${MACHINE}"
+
+do_compile () {
+ if [ "${@base_contains('DISTRO_FEATURES', 'ld-is-gold', 'ld-is-gold', '', d)}" = "ld-is-gold" ] ; then
+ sed -i 's/$(CROSS_COMPILE)ld$/$(CROSS_COMPILE)ld.bfd/g' config.mk
+ fi
+
+ unset LDFLAGS
+ unset CFLAGS
+ unset CPPFLAGS
+
+ if [ ! -e ${B}/.scmversion -a ! -e ${S}/.scmversion ]
+ then
+ echo ${UBOOT_LOCALVERSION} > ${B}/.scmversion
+ echo ${UBOOT_LOCALVERSION} > ${S}/.scmversion
+ fi
+
+ oe_runmake ${UBOOT_MACHINE}
+ oe_runmake ${UBOOT_MAKE_TARGET}
+}
+
+do_install () {
+ install -d ${D}/boot
+ install ${S}/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE}
+ ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_BINARY}
+
+ if [ -e ${WORKDIR}/fw_env.config ] ; then
+ install -d ${D}${sysconfdir}
+ install -m 644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config
+ fi
+
+ if [ "x${SPL_BINARY}" != "x" ]
+ then
+ install ${S}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE}
+ ln -sf ${SPL_IMAGE} ${D}/boot/${SPL_BINARY}
+ fi
+}
+
+FILES_${PN} = "/boot ${sysconfdir}"
+FILESPATH =. "${FILE_DIRNAME}/u-boot-git/${MACHINE}:"
+
+do_deploy () {
+ install -d ${DEPLOYDIR}
+ install ${S}/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE}
+
+ cd ${DEPLOYDIR}
+ rm -f ${UBOOT_BINARY} ${UBOOT_SYMLINK}
+ ln -sf ${UBOOT_IMAGE} ${UBOOT_SYMLINK}
+ ln -sf ${UBOOT_IMAGE} ${UBOOT_BINARY}
+
+ if [ "x${SPL_BINARY}" != "x" ]
+ then
+ install ${S}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE}
+ rm -f ${DEPLOYDIR}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_SYMLINK}
+ ln -sf ${SPL_IMAGE} ${DEPLOYDIR}/${SPL_BINARY}
+ ln -sf ${SPL_IMAGE} ${DEPLOYDIR}/${SPL_SYMLINK}
+ fi
+}
+
+addtask deploy before do_build after do_compile
diff --git a/recipes-bsp/u-boot/u-boot_2012.10.bb b/recipes-bsp/u-boot/u-boot_2012.10.bb
new file mode 100644
index 0000000..9763e0a
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot_2012.10.bb
@@ -0,0 +1,38 @@
+PR = "r4"
+require u-boot.inc
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1707d6db1d42237583f50183a5651ecb"
+
+DEFAULT_PREFERENCE = "-1"
+
+# U-Boot 2012.10 for AT91
+# tag: linux4sam_4.0
+SRCREV="8978bdafbad84c0c9878c9ff331930ca6edf9a76"
+
+SRC_URI = "git://github.com/linux4sam/u-boot-at91.git;branch=u-boot-2012.10-at91 \
+ file://u-boot-2012.10-sam9x5-eth-mii-fix.patch \
+ "
+
+# add patch to speed up boot if ethernet autonegotiation fails
+SRC_URI += "file://u-boot-2010.06-macb-autoneg-timeout.patch"
+
+SRC_URI_append_mtcdt = " file://u-boot-2012.10-mtcdt.patch"
+
+TARGET_LDFLAGS = ""
+
+S = "${WORKDIR}/git"
+
+inherit base
+
+do_configure_prepend() {
+ mv -f tools/setlocalversion tools/setlocalversion.old
+ echo -e "#!/bin/sh\necho '-${MACHINE}-${PR}'" > tools/setlocalversion
+ chmod a+rx tools/setlocalversion
+}
+
+do_compile () {
+ oe_runmake ${UBOOT_MACHINE}
+ oe_runmake all
+}
+
diff --git a/recipes-devtools/mtd/mtd-utils_git.bbappend b/recipes-devtools/mtd/mtd-utils_git.bbappend
new file mode 100644
index 0000000..83fb1a0
--- /dev/null
+++ b/recipes-devtools/mtd/mtd-utils_git.bbappend
@@ -0,0 +1,5 @@
+# install jffs-user.h which was removed from linux-headers
+do_install_append() {
+ install -d ${D}${includedir}/mtd
+ install -m 644 include/mtd/jffs2-user.h ${D}${includedir}/mtd/
+}
diff --git a/recipes-kernel/linux/linux-3.12.27/linux-3.12-add-num_accessory_ports-config-option.patch b/recipes-kernel/linux/linux-3.12.27/linux-3.12-add-num_accessory_ports-config-option.patch
new file mode 100644
index 0000000..d1bd7cd
--- /dev/null
+++ b/recipes-kernel/linux/linux-3.12.27/linux-3.12-add-num_accessory_ports-config-option.patch
@@ -0,0 +1,22 @@
+Index: linux-3.12.13/arch/arm/Kconfig
+===================================================================
+--- linux-3.12.13.orig/arch/arm/Kconfig 2014-02-22 15:32:50.000000000 -0600
++++ linux-3.12.13/arch/arm/Kconfig 2014-09-11 14:57:00.908030666 -0500
+@@ -276,6 +276,17 @@
+
+ source "kernel/Kconfig.freezer"
+
++menu "MTS"
++
++config MTS_NUM_ACCESSORY_PORTS
++ int "Number of accessory ports in the MTS product"
++ default 0
++ help
++ Enter the number of accessory ports on your MTS device.
++ If unsure, say '0'.
++
++endmenu
++
+ menu "System Type"
+
+ config MMU
diff --git a/recipes-kernel/linux/linux-3.12.27/linux-3.12-at91-gpio-pullup.patch b/recipes-kernel/linux/linux-3.12.27/linux-3.12-at91-gpio-pullup.patch
new file mode 100644
index 0000000..583a205
--- /dev/null
+++ b/recipes-kernel/linux/linux-3.12.27/linux-3.12-at91-gpio-pullup.patch
@@ -0,0 +1,42 @@
+Index: linux-3.12.13/arch/arm/mach-at91/gpio.c
+===================================================================
+--- linux-3.12.13.orig/arch/arm/mach-at91/gpio.c 2014-02-22 15:32:50.000000000 -0600
++++ linux-3.12.13/arch/arm/mach-at91/gpio.c 2014-03-07 09:13:09.931501303 -0600
+@@ -294,6 +294,25 @@
+ }
+ EXPORT_SYMBOL(at91_set_gpio_output);
+
++/*
++ * configure pin for output and enable/disable pullup
++ */
++int __init_or_module at91_set_gpio_output_with_pullup(unsigned pin, int value, int use_pullup)
++{
++ void __iomem *pio = pin_to_controller(pin);
++ unsigned mask = pin_to_mask(pin);
++
++ if (!pio)
++ return -EINVAL;
++
++ __raw_writel(mask, pio + PIO_IDR);
++ __raw_writel(mask, pio + (use_pullup ? PIO_PUER : PIO_PUDR));
++ __raw_writel(mask, pio + (value ? PIO_SODR : PIO_CODR));
++ __raw_writel(mask, pio + PIO_OER);
++ __raw_writel(mask, pio + PIO_PER);
++ return 0;
++}
++EXPORT_SYMBOL(at91_set_gpio_output_with_pullup);
+
+ /*
+ * enable/disable the glitch filter; mostly used with IRQ handling.
+Index: linux-3.12.13/arch/arm/mach-at91/include/mach/gpio.h
+===================================================================
+--- linux-3.12.13.orig/arch/arm/mach-at91/include/mach/gpio.h 2014-02-22 15:32:50.000000000 -0600
++++ linux-3.12.13/arch/arm/mach-at91/include/mach/gpio.h 2014-03-07 09:13:39.331501866 -0600
+@@ -195,6 +195,7 @@
+ extern int __init_or_module at91_set_D_periph(unsigned pin, int use_pullup);
+ extern int __init_or_module at91_set_gpio_input(unsigned pin, int use_pullup);
+ extern int __init_or_module at91_set_gpio_output(unsigned pin, int value);
++extern int __init_or_module at91_set_gpio_output_with_pullup(unsigned pin, int value, int use_pullup);
+ extern int __init_or_module at91_set_deglitch(unsigned pin, int is_on);
+ extern int __init_or_module at91_set_debounce(unsigned pin, int is_on, int div);
+ extern int __init_or_module at91_set_multi_drive(unsigned pin, int is_on);
diff --git a/recipes-kernel/linux/linux-3.12.27/linux-3.12-at91sam9_wdt-10second-timeout.patch b/recipes-kernel/linux/linux-3.12.27/linux-3.12-at91sam9_wdt-10second-timeout.patch
new file mode 100644
index 0000000..7f4b38c
--- /dev/null
+++ b/recipes-kernel/linux/linux-3.12.27/linux-3.12-at91sam9_wdt-10second-timeout.patch
@@ -0,0 +1,14 @@
+Index: linux-3.12.13/drivers/watchdog/at91sam9_wdt.c
+===================================================================
+--- linux-3.12.13.orig/drivers/watchdog/at91sam9_wdt.c 2014-02-22 15:32:50.000000000 -0600
++++ linux-3.12.13/drivers/watchdog/at91sam9_wdt.c 2014-04-10 16:50:56.032692627 -0500
+@@ -49,7 +49,8 @@
+ #define ticks_to_ms(t) (((t + 1) * 1000) >> 8)
+
+ /* Hardware timeout in seconds */
+-#define WDT_HW_TIMEOUT 2
++/* MTCDT: use longer timeout */
++#define WDT_HW_TIMEOUT 10
+
+ /* Timer heartbeat (500ms) */
+ #define WDT_TIMEOUT (HZ/2)
diff --git a/recipes-kernel/linux/linux-3.12.27/linux-3.12-atmel-mci-force-detect.patch b/recipes-kernel/linux/linux-3.12.27/linux-3.12-atmel-mci-force-detect.patch
new file mode 100644
index 0000000..2efdf51
--- /dev/null
+++ b/recipes-kernel/linux/linux-3.12.27/linux-3.12-atmel-mci-force-detect.patch
@@ -0,0 +1,29 @@
+Index: linux-3.12.13/drivers/mmc/host/atmel-mci.c
+===================================================================
+--- linux-3.12.13.orig/drivers/mmc/host/atmel-mci.c 2014-04-10 13:32:40.012723945 -0500
++++ linux-3.12.13/drivers/mmc/host/atmel-mci.c 2014-04-10 13:36:46.088723297 -0500
+@@ -1447,6 +1447,9 @@
+ slot->detect_is_active_high);
+ dev_dbg(&mmc->class_dev, "card is %spresent\n",
+ present ? "" : "not ");
++ } else {
++ // jjg - assume card is present if detect pin is unset
++ present = 1;
+ }
+
+ return present;
+@@ -2205,8 +2208,12 @@
+ }
+ }
+
+- if (!gpio_is_valid(slot->detect_pin))
+- mmc->caps |= MMC_CAP_NEEDS_POLL;
++ // jjg - if detect pin isn't set, don't poll -- just assume device
++ // is there and mark it non-removable
++ if (!gpio_is_valid(slot->detect_pin)) {
++ dev_info(&host->pdev->dev,"No detect pin, marking non-removable and assuming device is present\n");
++ mmc->caps |= MMC_CAP_NONREMOVABLE;
++ }
+
+ if (gpio_is_valid(slot->wp_pin)) {
+ if (gpio_request(slot->wp_pin, "mmc_wp")) {
diff --git a/recipes-kernel/linux/linux-3.12.27/linux-3.12-atmel-pmecc-debug-bitflips.patch b/recipes-kernel/linux/linux-3.12.27/linux-3.12-atmel-pmecc-debug-bitflips.patch
new file mode 100644
index 0000000..391cb4c
--- /dev/null
+++ b/recipes-kernel/linux/linux-3.12.27/linux-3.12-atmel-pmecc-debug-bitflips.patch
@@ -0,0 +1,22 @@
+Index: linux-3.12.27/drivers/mtd/nand/atmel_nand.c
+===================================================================
+--- linux-3.12.27.orig/drivers/mtd/nand/atmel_nand.c 2014-10-01 17:01:10.339848160 -0500
++++ linux-3.12.27/drivers/mtd/nand/atmel_nand.c 2014-10-01 17:04:33.872624626 -0500
+@@ -836,7 +836,7 @@
+ *(buf + byte_pos) ^= (1 << bit_pos);
+
+ pos = sector_num * host->pmecc_sector_size + byte_pos;
+- dev_info(host->dev, "Bit flip in data area, byte_pos: %d, bit_pos: %d, 0x%02x -> 0x%02x\n",
++ printk(KERN_DEBUG, "atmel_nand: Bit flip in data area, byte_pos: %d, bit_pos: %d, 0x%02x -> 0x%02x\n",
+ pos, bit_pos, err_byte, *(buf + byte_pos));
+ } else {
+ /* Bit flip in OOB area */
+@@ -846,7 +846,7 @@
+ ecc[tmp] ^= (1 << bit_pos);
+
+ pos = tmp + nand_chip->ecc.layout->eccpos[0];
+- dev_info(host->dev, "Bit flip in OOB, oob_byte_pos: %d, bit_pos: %d, 0x%02x -> 0x%02x\n",
++ printk(KERN_DEBUG, "atmel_nand: Bit flip in OOB, oob_byte_pos: %d, bit_pos: %d, 0x%02x -> 0x%02x\n",
+ pos, bit_pos, err_byte, ecc[tmp]);
+ }
+
diff --git a/recipes-kernel/linux/linux-3.12.27/linux-3.12-atmel-spi.patch b/recipes-kernel/linux/linux-3.12.27/linux-3.12-atmel-spi.patch
new file mode 100644
index 0000000..898bf74
--- /dev/null
+++ b/recipes-kernel/linux/linux-3.12.27/linux-3.12-atmel-spi.patch
@@ -0,0 +1,37 @@
+Index: linux-3.12.13/drivers/spi/spi-atmel.c
+===================================================================
+--- linux-3.12.13.orig/drivers/spi/spi-atmel.c 2014-04-04 15:00:11.677055454 -0500
++++ linux-3.12.13/drivers/spi/spi-atmel.c 2014-04-04 15:36:28.973123089 -0500
+@@ -291,26 +291,15 @@
+ unsigned active = spi->mode & SPI_CS_HIGH;
+ u32 mr;
+
++ mr = spi_readl(as, MR);
+ if (atmel_spi_is_v2(as)) {
+- spi_writel(as, CSR0 + 4 * spi->chip_select, asd->csr);
+- /* For the low SPI version, there is a issue that PDC transfer
+- * on CS1,2,3 needs SPI_CSR0.BITS config as SPI_CSR1,2,3.BITS
++ /* mtcdt: always use CSR0
++ * old 2.6.39 kernel did this and it worked for supporting more than 4 slaves
+ */
+ spi_writel(as, CSR0, asd->csr);
+- if (as->caps.has_wdrbt) {
+- spi_writel(as, MR,
+- SPI_BF(PCS, ~(0x01 << spi->chip_select))
+- | SPI_BIT(WDRBT)
+- | SPI_BIT(MODFDIS)
+- | SPI_BIT(MSTR));
+- } else {
+- spi_writel(as, MR,
+- SPI_BF(PCS, ~(0x01 << spi->chip_select))
+- | SPI_BIT(MODFDIS)
+- | SPI_BIT(MSTR));
+- }
+-
+- mr = spi_readl(as, MR);
++ mr &= (SPI_BIT(MODFDIS) | SPI_BIT(MSTR) | (as->caps.has_wdrbt ? SPI_BIT(WDRBT) : 0));
++ mr |= SPI_BF(PCS, 0x0e);
++ spi_writel(as, MR, mr);
+ gpio_set_value(asd->npcs_pin, active);
+ } else {
+ u32 cpol = (spi->mode & SPI_CPOL) ? SPI_BIT(CPOL) : 0;
diff --git a/recipes-kernel/linux/linux-3.12.27/linux-3.12-cdc-acm-ignore-exar-devices.patch b/recipes-kernel/linux/linux-3.12.27/linux-3.12-cdc-acm-ignore-exar-devices.patch
new file mode 100644
index 0000000..1a90899
--- /dev/null
+++ b/recipes-kernel/linux/linux-3.12.27/linux-3.12-cdc-acm-ignore-exar-devices.patch
@@ -0,0 +1,35 @@
+Index: linux-3.12.13/drivers/usb/class/cdc-acm.c
+===================================================================
+--- linux-3.12.13.orig/drivers/usb/class/cdc-acm.c 2014-02-22 15:32:50.000000000 -0600
++++ linux-3.12.13/drivers/usb/class/cdc-acm.c 2014-04-14 11:30:29.486386713 -0500
+@@ -949,8 +949,10 @@
+ /* normal quirks */
+ quirks = (unsigned long)id->driver_info;
+
+- if (quirks == IGNORE_DEVICE)
++ if (quirks == IGNORE_DEVICE) {
++ dev_dbg(&intf->dev, "Ignoring device\n");
+ return -ENODEV;
++ }
+
+ num_rx_buf = (quirks == SINGLE_RX_URB) ? 1 : ACM_NR;
+
+@@ -1676,6 +1678,18 @@
+ },
+ #endif
+
++ /* Ignore Exar XR21V141X usb serial chips
++ * This elminates conflicting with the Exar vizzini driver */
++ {USB_DEVICE(0x04e2, 0x1410),
++ .driver_info = IGNORE_DEVICE,
++ },
++ {USB_DEVICE(0x04e2, 0x1412),
++ .driver_info = IGNORE_DEVICE,
++ },
++ {USB_DEVICE(0x04e2, 0x1414),
++ .driver_info = IGNORE_DEVICE,
++ },
++
+ /* control interfaces without any protocol set */
+ { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
+ USB_CDC_PROTO_NONE) },
diff --git a/recipes-kernel/linux/linux-3.12.27/linux-3.12-gpio-expose-deglitch.patch b/recipes-kernel/linux/linux-3.12.27/linux-3.12-gpio-expose-deglitch.patch
new file mode 100644
index 0000000..b868a36
--- /dev/null
+++ b/recipes-kernel/linux/linux-3.12.27/linux-3.12-gpio-expose-deglitch.patch
@@ -0,0 +1,165 @@
+Index: linux-3.12.13/drivers/gpio/gpiolib.c
+===================================================================
+--- linux-3.12.13.orig/drivers/gpio/gpiolib.c 2014-04-18 09:55:28.325372866 -0500
++++ linux-3.12.13/drivers/gpio/gpiolib.c 2014-04-18 10:01:46.221371869 -0500
+@@ -90,6 +90,7 @@
+ static int gpiod_direction_input_pullup(struct gpio_desc *desc, bool pullup);
+ static int gpiod_direction_output(struct gpio_desc *desc, int value);
+ static int gpiod_direction_output_pullup(struct gpio_desc *desc, int value, bool pullup);
++static int gpiod_deglitch(struct gpio_desc *desc, bool enable);
+ static int gpiod_get_direction(const struct gpio_desc *desc);
+ static int gpiod_set_debounce(struct gpio_desc *desc, unsigned debounce);
+ static int gpiod_get_value_cansleep(const struct gpio_desc *desc);
+@@ -1539,6 +1540,9 @@
+ (flags & GPIOF_INIT_HIGH) ? 1 : 0);
+ }
+
++ if (flags & GPIOF_DEGLITCH)
++ err = gpiod_deglitch(desc, (flags & GPIOF_DEGLITCH) ? true : false);
++
+ if (err)
+ goto free_gpio;
+
+@@ -1909,6 +1913,67 @@
+ }
+ EXPORT_SYMBOL_GPL(gpio_direction_output);
+
++static int gpiod_deglitch(struct gpio_desc *desc, bool enable)
++{
++ unsigned long flags;
++ struct gpio_chip *chip;
++ int status = -EINVAL;
++ int offset;
++
++ if (!desc || !desc->chip) {
++ pr_warn("%s: invalid GPIO\n", __func__);
++ return -EINVAL;
++ }
++
++ chip = desc->chip;
++ if (!chip->deglitch) {
++ pr_warn("%s: missing deglitch() operation\n",
++ __func__);
++ return -EIO;
++ }
++
++ spin_lock_irqsave(&gpio_lock, flags);
++
++ status = gpio_ensure_requested(desc);
++ if (status < 0)
++ goto fail;
++
++ /* now we know the gpio is valid and chip won't vanish */
++
++ spin_unlock_irqrestore(&gpio_lock, flags);
++
++ might_sleep_if(chip->can_sleep);
++
++ offset = gpio_chip_hwgpio(desc);
++ if (status) {
++ status = chip->request(chip, offset);
++ if (status < 0) {
++ pr_debug("GPIO-%d: chip request fail, %d\n",
++ desc_to_gpio(desc), status);
++ /* and it's not available to anyone else ...
++ * gpio_request() is the fully clean solution.
++ */
++ goto lose;
++ }
++ }
++
++ status = chip->deglitch(chip, offset, enable);
++lose:
++ return status;
++fail:
++ spin_unlock_irqrestore(&gpio_lock, flags);
++ if (status)
++ pr_debug("%s: gpio-%d status %d\n", __func__,
++ desc_to_gpio(desc), status);
++ return status;
++}
++
++int gpio_deglitch(unsigned gpio, bool enable)
++{
++ return gpiod_deglitch(gpio_to_desc(gpio), enable);
++}
++EXPORT_SYMBOL_GPL(gpio_deglitch);
++
+ /**
+ * gpio_set_debounce - sets @debounce time for a @gpio
+ * @gpio: the gpio to set debounce time
+Index: linux-3.12.13/drivers/pinctrl/pinctrl-at91.c
+===================================================================
+--- linux-3.12.13.orig/drivers/pinctrl/pinctrl-at91.c 2014-04-18 09:55:28.325372866 -0500
++++ linux-3.12.13/drivers/pinctrl/pinctrl-at91.c 2014-04-18 10:02:45.041371714 -0500
+@@ -1171,6 +1171,17 @@
+ return 0;
+ }
+
++static int at91_gpio_set_deglitch(struct gpio_chip *chip, unsigned offset, bool enable)
++{
++ struct at91_gpio_chip *at91_gpio = to_at91_gpio_chip(chip);
++ void __iomem *pio = at91_gpio->regbase;
++ unsigned mask = 1 << offset;
++
++ at91_mux_pio3_set_deglitch(pio, mask, enable);
++
++ return 0;
++}
++
+ static int at91_gpio_to_irq(struct gpio_chip *chip, unsigned offset)
+ {
+ struct at91_gpio_chip *at91_gpio = to_at91_gpio_chip(chip);
+@@ -1542,6 +1553,7 @@
+ .get = at91_gpio_get,
+ .direction_output = at91_gpio_direction_output,
+ .direction_output_pullup = at91_gpio_direction_output_pullup,
++ .deglitch = at91_gpio_set_deglitch,
+ .set = at91_gpio_set,
+ .to_irq = at91_gpio_to_irq,
+ .dbg_show = at91_gpio_dbg_show,
+Index: linux-3.12.13/include/asm-generic/gpio.h
+===================================================================
+--- linux-3.12.13.orig/include/asm-generic/gpio.h 2014-04-18 09:55:28.325372866 -0500
++++ linux-3.12.13/include/asm-generic/gpio.h 2014-04-18 09:58:13.081372430 -0500
+@@ -67,6 +67,7 @@
+ * returns either the value actually sensed, or zero
+ * @direction_output: configures signal "offset" as output, or returns error
+ * @direction_output_pullup: configures signal "offset" as output with pullup enabled, or returns error
++ * @deglitch: enables deglitch on signal "offset"
+ * @set_debounce: optional hook for setting debounce time for specified gpio in
+ * interrupt triggered gpio chips
+ * @set: assigns output value for signal "offset"
+@@ -121,6 +122,8 @@
+ unsigned offset, int value);
+ int (*direction_output_pullup)(struct gpio_chip *chip,
+ unsigned offset, int value, bool pullup);
++ int (*deglitch)(struct gpio_chip *chip,
++ unsigned offset, bool enable);
+ int (*set_debounce)(struct gpio_chip *chip,
+ unsigned offset, unsigned debounce);
+
+@@ -182,6 +185,7 @@
+ extern int gpio_direction_input_pullup(unsigned gpio, bool pullup);
+ extern int gpio_direction_output(unsigned gpio, int value);
+ extern int gpio_direction_output_pullup(unsigned gpio, int value, bool pullup);
++extern int gpio_deglitch(unsigned gpio, bool enable);
+
+ extern int gpio_set_debounce(unsigned gpio, unsigned debounce);
+
+Index: linux-3.12.13/include/linux/gpio.h
+===================================================================
+--- linux-3.12.13.orig/include/linux/gpio.h 2014-04-18 09:55:28.325372866 -0500
++++ linux-3.12.13/include/linux/gpio.h 2014-04-18 09:57:56.305372474 -0500
+@@ -13,9 +13,11 @@
+ #define GPIOF_INIT_HIGH (1 << 1)
+
+ #define GPIOF_PULLUP (2 << 0)
++#define GPIOF_DEGLITCH (2 << 1)
+
+ #define GPIOF_IN (GPIOF_DIR_IN)
+ #define GPIOF_IN_PULLUP (GPIOF_DIR_IN | GPIOF_PULLUP)
++#define GPIOF_IN_DEGLITCH (GPIOF_DIR_IN | GPIOF_DEGLITCH)
+ #define GPIOF_OUT_INIT_LOW (GPIOF_DIR_OUT | GPIOF_INIT_LOW)
+ #define GPIOF_OUT_INIT_HIGH (GPIOF_DIR_OUT | GPIOF_INIT_HIGH)
+
diff --git a/recipes-kernel/linux/linux-3.12.27/linux-3.12-gpio-expose-pullups.patch b/recipes-kernel/linux/linux-3.12.27/linux-3.12-gpio-expose-pullups.patch
new file mode 100644
index 0000000..4e1d482
--- /dev/null
+++ b/recipes-kernel/linux/linux-3.12.27/linux-3.12-gpio-expose-pullups.patch
@@ -0,0 +1,301 @@
+Index: linux-3.12.13/drivers/gpio/gpiolib.c
+===================================================================
+--- linux-3.12.13.orig/drivers/gpio/gpiolib.c 2014-02-22 15:32:50.000000000 -0600
++++ linux-3.12.13/drivers/gpio/gpiolib.c 2014-04-18 09:25:31.977377592 -0500
+@@ -87,7 +87,9 @@
+ static int gpiod_request(struct gpio_desc *desc, const char *label);
+ static void gpiod_free(struct gpio_desc *desc);
+ static int gpiod_direction_input(struct gpio_desc *desc);
++static int gpiod_direction_input_pullup(struct gpio_desc *desc, bool pullup);
+ static int gpiod_direction_output(struct gpio_desc *desc, int value);
++static int gpiod_direction_output_pullup(struct gpio_desc *desc, int value, bool pullup);
+ static int gpiod_get_direction(const struct gpio_desc *desc);
+ static int gpiod_set_debounce(struct gpio_desc *desc, unsigned debounce);
+ static int gpiod_get_value_cansleep(const struct gpio_desc *desc);
+@@ -1523,11 +1525,19 @@
+ if (flags & GPIOF_OPEN_SOURCE)
+ set_bit(FLAG_OPEN_SOURCE, &desc->flags);
+
+- if (flags & GPIOF_DIR_IN)
+- err = gpiod_direction_input(desc);
+- else
+- err = gpiod_direction_output(desc,
+- (flags & GPIOF_INIT_HIGH) ? 1 : 0);
++ if (flags & GPIOF_DIR_IN) {
++ if (flags & GPIOF_PULLUP)
++ err = gpiod_direction_input_pullup(desc, (flags & GPIOF_PULLUP) ? true : false);
++ else
++ err = gpiod_direction_input(desc);
++ } else {
++ if (flags & GPIOF_PULLUP)
++ err = gpiod_direction_output_pullup(desc,
++ (flags & GPIOF_INIT_HIGH) ? 1 : 0, (flags & GPIOF_PULLUP) ? true : false);
++ else
++ err = gpiod_direction_output(desc,
++ (flags & GPIOF_INIT_HIGH) ? 1 : 0);
++ }
+
+ if (err)
+ goto free_gpio;
+@@ -1613,6 +1623,71 @@
+ }
+ EXPORT_SYMBOL_GPL(gpiochip_is_requested);
+
++static int gpiod_direction_input_pullup(struct gpio_desc *desc, bool pullup)
++{
++ unsigned long flags;
++ struct gpio_chip *chip;
++ int status = -EINVAL;
++ int offset;
++
++ if (!desc || !desc->chip) {
++ pr_warn("%s: invalid GPIO\n", __func__);
++ return -EINVAL;
++ }
++
++ chip = desc->chip;
++ if (!chip->get || !chip->direction_input_pullup) {
++ pr_warn("%s: missing get() or direction_input_pullup() operations\n",
++ __func__);
++ return -EIO;
++ }
++
++ spin_lock_irqsave(&gpio_lock, flags);
++
++ status = gpio_ensure_requested(desc);
++ if (status < 0)
++ goto fail;
++
++ /* now we know the gpio is valid and chip won't vanish */
++
++ spin_unlock_irqrestore(&gpio_lock, flags);
++
++ might_sleep_if(chip->can_sleep);
++
++ offset = gpio_chip_hwgpio(desc);
++ if (status) {
++ status = chip->request(chip, offset);
++ if (status < 0) {
++ pr_debug("GPIO-%d: chip request fail, %d\n",
++ desc_to_gpio(desc), status);
++ /* and it's not available to anyone else ...
++ * gpio_request() is the fully clean solution.
++ */
++ goto lose;
++ }
++ }
++
++ status = chip->direction_input_pullup(chip, offset, pullup);
++ if (status == 0)
++ clear_bit(FLAG_IS_OUT, &desc->flags);
++
++ trace_gpio_direction(desc_to_gpio(desc), 1, status);
++lose:
++ return status;
++fail:
++ spin_unlock_irqrestore(&gpio_lock, flags);
++ if (status)
++ pr_debug("%s: gpio-%d status %d\n", __func__,
++ desc_to_gpio(desc), status);
++ return status;
++}
++
++int gpio_direction_input_pullup(unsigned gpio, bool pullup)
++{
++ return gpiod_direction_input_pullup(gpio_to_desc(gpio), pullup);
++}
++EXPORT_SYMBOL_GPL(gpio_direction_input_pullup);
++
+
+ /* Drivers MUST set GPIO direction before making get/set calls. In
+ * some cases this is done in early boot, before IRQs are enabled.
+@@ -1688,6 +1763,79 @@
+ }
+ EXPORT_SYMBOL_GPL(gpio_direction_input);
+
++static int gpiod_direction_output_pullup(struct gpio_desc *desc, int value, bool pullup)
++{
++ unsigned long flags;
++ struct gpio_chip *chip;
++ int status = -EINVAL;
++ int offset;
++
++ if (!desc || !desc->chip) {
++ pr_warn("%s: invalid GPIO\n", __func__);
++ return -EINVAL;
++ }
++
++ /* Open drain pin should not be driven to 1 */
++ if (value && test_bit(FLAG_OPEN_DRAIN, &desc->flags))
++ return gpiod_direction_input(desc);
++
++ /* Open source pin should not be driven to 0 */
++ if (!value && test_bit(FLAG_OPEN_SOURCE, &desc->flags))
++ return gpiod_direction_input(desc);
++
++ chip = desc->chip;
++ if (!chip->set || !chip->direction_output_pullup) {
++ pr_warn("%s: missing set() or direction_output_pullup() operations\n",
++ __func__);
++ return -EIO;
++ }
++
++ spin_lock_irqsave(&gpio_lock, flags);
++
++ status = gpio_ensure_requested(desc);
++ if (status < 0)
++ goto fail;
++
++ /* now we know the gpio is valid and chip won't vanish */
++
++ spin_unlock_irqrestore(&gpio_lock, flags);
++
++ might_sleep_if(chip->can_sleep);
++
++ offset = gpio_chip_hwgpio(desc);
++ if (status) {
++ status = chip->request(chip, offset);
++ if (status < 0) {
++ pr_debug("GPIO-%d: chip request fail, %d\n",
++ desc_to_gpio(desc), status);
++ /* and it's not available to anyone else ...
++ * gpio_request() is the fully clean solution.
++ */
++ goto lose;
++ }
++ }
++
++ status = chip->direction_output_pullup(chip, offset, value, pullup);
++ if (status == 0)
++ set_bit(FLAG_IS_OUT, &desc->flags);
++ trace_gpio_value(desc_to_gpio(desc), 0, value);
++ trace_gpio_direction(desc_to_gpio(desc), 0, status);
++lose:
++ return status;
++fail:
++ spin_unlock_irqrestore(&gpio_lock, flags);
++ if (status)
++ pr_debug("%s: gpio-%d status %d\n", __func__,
++ desc_to_gpio(desc), status);
++ return status;
++}
++
++int gpio_direction_output_pullup(unsigned gpio, int value, bool pullup)
++{
++ return gpiod_direction_output_pullup(gpio_to_desc(gpio), value, pullup);
++}
++EXPORT_SYMBOL_GPL(gpio_direction_output_pullup);
++
+ static int gpiod_direction_output(struct gpio_desc *desc, int value)
+ {
+ unsigned long flags;
+Index: linux-3.12.13/drivers/pinctrl/pinctrl-at91.c
+===================================================================
+--- linux-3.12.13.orig/drivers/pinctrl/pinctrl-at91.c 2014-02-22 15:32:50.000000000 -0600
++++ linux-3.12.13/drivers/pinctrl/pinctrl-at91.c 2014-04-18 09:25:31.985377595 -0500
+@@ -1112,6 +1112,17 @@
+ return 0;
+ }
+
++static int at91_gpio_direction_input_pullup(struct gpio_chip *chip, unsigned offset, bool pullup)
++{
++ struct at91_gpio_chip *at91_gpio = to_at91_gpio_chip(chip);
++ void __iomem *pio = at91_gpio->regbase;
++ unsigned mask = 1 << offset;
++
++ writel_relaxed(mask, pio + PIO_ODR);
++ at91_mux_set_pullup(pio, mask, pullup);
++ return 0;
++}
++
+ static int at91_gpio_get(struct gpio_chip *chip, unsigned offset)
+ {
+ struct at91_gpio_chip *at91_gpio = to_at91_gpio_chip(chip);
+@@ -1146,6 +1157,20 @@
+ return 0;
+ }
+
++static int at91_gpio_direction_output_pullup(struct gpio_chip *chip, unsigned offset,
++ int val, bool pullup)
++{
++ struct at91_gpio_chip *at91_gpio = to_at91_gpio_chip(chip);
++ void __iomem *pio = at91_gpio->regbase;
++ unsigned mask = 1 << offset;
++
++ writel_relaxed(mask, pio + (val ? PIO_SODR : PIO_CODR));
++ writel_relaxed(mask, pio + PIO_OER);
++ at91_mux_set_pullup(pio, mask, pullup);
++
++ return 0;
++}
++
+ static int at91_gpio_to_irq(struct gpio_chip *chip, unsigned offset)
+ {
+ struct at91_gpio_chip *at91_gpio = to_at91_gpio_chip(chip);
+@@ -1513,8 +1538,10 @@
+ .request = at91_gpio_request,
+ .free = at91_gpio_free,
+ .direction_input = at91_gpio_direction_input,
++ .direction_input_pullup = at91_gpio_direction_input_pullup,
+ .get = at91_gpio_get,
+ .direction_output = at91_gpio_direction_output,
++ .direction_output_pullup = at91_gpio_direction_output_pullup,
+ .set = at91_gpio_set,
+ .to_irq = at91_gpio_to_irq,
+ .dbg_show = at91_gpio_dbg_show,
+Index: linux-3.12.13/include/linux/gpio.h
+===================================================================
+--- linux-3.12.13.orig/include/linux/gpio.h 2014-02-22 15:32:50.000000000 -0600
++++ linux-3.12.13/include/linux/gpio.h 2014-04-18 09:25:31.957377594 -0500
+@@ -12,7 +12,10 @@
+ #define GPIOF_INIT_LOW (0 << 1)
+ #define GPIOF_INIT_HIGH (1 << 1)
+
++#define GPIOF_PULLUP (2 << 0)
++
+ #define GPIOF_IN (GPIOF_DIR_IN)
++#define GPIOF_IN_PULLUP (GPIOF_DIR_IN | GPIOF_PULLUP)
+ #define GPIOF_OUT_INIT_LOW (GPIOF_DIR_OUT | GPIOF_INIT_LOW)
+ #define GPIOF_OUT_INIT_HIGH (GPIOF_DIR_OUT | GPIOF_INIT_HIGH)
+
+Index: linux-3.12.13/include/asm-generic/gpio.h
+===================================================================
+--- linux-3.12.13.orig/include/asm-generic/gpio.h 2014-02-22 15:32:50.000000000 -0600
++++ linux-3.12.13/include/asm-generic/gpio.h 2014-04-18 09:26:42.669377408 -0500
+@@ -62,9 +62,11 @@
+ * @get_direction: returns direction for signal "offset", 0=out, 1=in,
+ * (same as GPIOF_DIR_XXX), or negative error
+ * @direction_input: configures signal "offset" as input, or returns error
++ * @direction_input_pullup: configures signal "offset" as input with pullup enabled, or returns error
+ * @get: returns value for signal "offset"; for output signals this
+ * returns either the value actually sensed, or zero
+ * @direction_output: configures signal "offset" as output, or returns error
++ * @direction_output_pullup: configures signal "offset" as output with pullup enabled, or returns error
+ * @set_debounce: optional hook for setting debounce time for specified gpio in
+ * interrupt triggered gpio chips
+ * @set: assigns output value for signal "offset"
+@@ -111,10 +113,14 @@
+ unsigned offset);
+ int (*direction_input)(struct gpio_chip *chip,
+ unsigned offset);
++ int (*direction_input_pullup)(struct gpio_chip *chip,
++ unsigned offset, bool pullup);
+ int (*get)(struct gpio_chip *chip,
+ unsigned offset);
+ int (*direction_output)(struct gpio_chip *chip,
+ unsigned offset, int value);
++ int (*direction_output_pullup)(struct gpio_chip *chip,
++ unsigned offset, int value, bool pullup);
+ int (*set_debounce)(struct gpio_chip *chip,
+ unsigned offset, unsigned debounce);
+
+@@ -173,7 +179,9 @@
+ extern void gpio_free(unsigned gpio);
+
+ extern int gpio_direction_input(unsigned gpio);
++extern int gpio_direction_input_pullup(unsigned gpio, bool pullup);
+ extern int gpio_direction_output(unsigned gpio, int value);
++extern int gpio_direction_output_pullup(unsigned gpio, int value, bool pullup);
+
+ extern int gpio_set_debounce(unsigned gpio, unsigned debounce);
+
diff --git a/recipes-kernel/linux/linux-3.12.27/linux-3.12-release-rfcomm-port-fix.patch b/recipes-kernel/linux/linux-3.12.27/linux-3.12-release-rfcomm-port-fix.patch
new file mode 100644
index 0000000..70c41d2
--- /dev/null
+++ b/recipes-kernel/linux/linux-3.12.27/linux-3.12-release-rfcomm-port-fix.patch
@@ -0,0 +1,78 @@
+commit 5b899241874dcc1a2b932a668731c80a3a869575
+Author: Gianluca Anzolin <gianluca@sottospazio.it>
+Date: Mon Jan 6 21:23:50 2014 +0100
+
+ Bluetooth: Release RFCOMM port when the last user closes the TTY
+
+ This patch fixes a userspace regression introduced by the commit
+ 29cd718b.
+
+ If the rfcomm device was created with the flag RFCOMM_RELEASE_ONHUP the
+ user space expects that the tty_port is released as soon as the last
+ process closes the tty.
+
+ The current code attempts to release the port in the function
+ rfcomm_dev_state_change(). However it won't get a reference to the
+ relevant tty to send a HUP: at that point the tty is already destroyed
+ and therefore NULL.
+
+ This patch fixes the regression by taking over the tty refcount in the
+ tty install method(). This way the tty_port is automatically released as
+ soon as the tty is destroyed.
+
+ As a consequence the check for RFCOMM_RELEASE_ONHUP flag in the hangup()
+ method is now redundant. Instead we have to be careful with the reference
+ counting in the rfcomm_release_dev() function.
+
+ Signed-off-by: Gianluca Anzolin <gianluca@sottospazio.it>
+ Reported-by: Alexander Holler <holler@ahsoftware.de>
+ Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
+
+diff --git a/net/bluetooth/rfcomm/tty.c b/net/bluetooth/rfcomm/tty.c
+index 84fcf9f..a535ef1 100644
+--- a/net/bluetooth/rfcomm/tty.c
++++ b/net/bluetooth/rfcomm/tty.c
+@@ -437,7 +437,8 @@ static int rfcomm_release_dev(void __user *arg)
+ tty_kref_put(tty);
+ }
+
+- if (!test_and_set_bit(RFCOMM_TTY_RELEASED, &dev->flags))
++ if (!test_bit(RFCOMM_RELEASE_ONHUP, &dev->flags) &&
++ !test_and_set_bit(RFCOMM_TTY_RELEASED, &dev->flags))
+ tty_port_put(&dev->port);
+
+ tty_port_put(&dev->port);
+@@ -670,10 +671,20 @@ static int rfcomm_tty_install(struct tty_driver *driver, struct tty_struct *tty)
+
+ /* install the tty_port */
+ err = tty_port_install(&dev->port, driver, tty);
+- if (err)
++ if (err) {
+ rfcomm_tty_cleanup(tty);
++ return err;
++ }
+
+- return err;
++ /* take over the tty_port reference if the port was created with the
++ * flag RFCOMM_RELEASE_ONHUP. This will force the release of the port
++ * when the last process closes the tty. The behaviour is expected by
++ * userspace.
++ */
++ if (test_bit(RFCOMM_RELEASE_ONHUP, &dev->flags))
++ tty_port_put(&dev->port);
++
++ return 0;
+ }
+
+ static int rfcomm_tty_open(struct tty_struct *tty, struct file *filp)
+@@ -1010,10 +1021,6 @@ static void rfcomm_tty_hangup(struct tty_struct *tty)
+ BT_DBG("tty %p dev %p", tty, dev);
+
+ tty_port_hangup(&dev->port);
+-
+- if (test_bit(RFCOMM_RELEASE_ONHUP, &dev->flags) &&
+- !test_and_set_bit(RFCOMM_TTY_RELEASED, &dev->flags))
+- tty_port_put(&dev->port);
+ }
+
+ static int rfcomm_tty_tiocmget(struct tty_struct *tty)
diff --git a/recipes-kernel/linux/linux-3.12.27/linux-3.12.27-option-telit.patch b/recipes-kernel/linux/linux-3.12.27/linux-3.12.27-option-telit.patch
new file mode 100644
index 0000000..9826a33
--- /dev/null
+++ b/recipes-kernel/linux/linux-3.12.27/linux-3.12.27-option-telit.patch
@@ -0,0 +1,39 @@
+Index: linux-3.12.27/drivers/usb/serial/option.c
+===================================================================
+--- linux-3.12.27.orig/drivers/usb/serial/option.c 2014-08-26 07:12:26.000000000 -0500
++++ linux-3.12.27/drivers/usb/serial/option.c 2014-09-04 17:11:17.462024077 -0500
+@@ -267,7 +267,9 @@
+ #define TELIT_PRODUCT_CC864_DUAL 0x1005
+ #define TELIT_PRODUCT_CC864_SINGLE 0x1006
+ #define TELIT_PRODUCT_DE910_DUAL 0x1010
++#define TELIT_PRODUCT_CE910_DUAL 0x1011
+ #define TELIT_PRODUCT_UE910_V2 0x1012
++#define TELIT_PRODUCT_LE910 0x1201
+ #define TELIT_PRODUCT_LE920 0x1200
+
+ /* ZTE PRODUCTS */
+@@ -574,7 +576,12 @@
+
+ static const struct option_blacklist_info telit_le920_blacklist = {
+ .sendsetup = BIT(0),
+- .reserved = BIT(1) | BIT(5),
++ .reserved = BIT(1) | BIT(7),
++};
++
++static const struct option_blacklist_info telit_le910_blacklist = {
++ .sendsetup = BIT(0),
++ .reserved = BIT(1) | BIT(7),
+ };
+
+ static const struct usb_device_id option_ids[] = {
+@@ -1119,7 +1126,10 @@
+ { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_DUAL) },
+ { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_SINGLE) },
+ { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_DE910_DUAL) },
++ { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CE910_DUAL) },
+ { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UE910_V2) },
++ { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE910),
++ .driver_info = (kernel_ulong_t)&telit_le910_blacklist },
+ { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920),
+ .driver_info = (kernel_ulong_t)&telit_le920_blacklist },
+ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */
diff --git a/recipes-kernel/linux/linux-3.12.27/mtcdt/defconfig b/recipes-kernel/linux/linux-3.12.27/mtcdt/defconfig
new file mode 100644
index 0000000..467c04b
--- /dev/null
+++ b/recipes-kernel/linux/linux-3.12.27/mtcdt/defconfig
@@ -0,0 +1,2876 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/arm 3.12.27 Kernel Configuration
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_HAVE_PROC_CPU=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_NEED_MACH_GPIO_H=y
+CONFIG_GENERIC_BUG=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_IRQ_WORK=y
+CONFIG_BUILDTIME_EXTABLE_SORT=y
+
+#
+# General setup
+#
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+# CONFIG_COMPILE_TEST is not set
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_HAVE_KERNEL_LZ4=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_XZ is not set
+# CONFIG_KERNEL_LZO is not set
+# CONFIG_KERNEL_LZ4 is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+# CONFIG_FHANDLE is not set
+# CONFIG_AUDIT is not set
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+
+#
+# Timers subsystem
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_HZ_PERIODIC=y
+# CONFIG_NO_HZ_IDLE is not set
+# CONFIG_NO_HZ is not set
+CONFIG_HIGH_RES_TIMERS=y
+
+#
+# CPU/Task time and stats accounting
+#
+CONFIG_TICK_CPU_ACCOUNTING=y
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TINY_RCU=y
+# CONFIG_PREEMPT_RCU is not set
+# CONFIG_RCU_STALL_COMMON is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_GENERIC_SCHED_CLOCK=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+# CONFIG_CGROUP_FREEZER is not set
+# CONFIG_CGROUP_DEVICE is not set
+# CONFIG_CPUSETS is not set
+# CONFIG_CGROUP_CPUACCT is not set
+# CONFIG_RESOURCE_COUNTERS is not set
+# CONFIG_CGROUP_SCHED is not set
+CONFIG_BLK_CGROUP=y
+# CONFIG_DEBUG_BLK_CGROUP is not set
+# CONFIG_CHECKPOINT_RESTORE is not set
+CONFIG_NAMESPACES=y
+# CONFIG_UTS_NS is not set
+# CONFIG_IPC_NS is not set
+# CONFIG_USER_NS is not set
+# CONFIG_PID_NS is not set
+# CONFIG_NET_NS is not set
+# CONFIG_UIDGID_STRICT_TYPE_CHECKS is not set
+# CONFIG_SCHED_AUTOGROUP is not set
+# CONFIG_SYSFS_DEPRECATED is not set
+# CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+# CONFIG_RD_LZ4 is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_HAVE_UID16=y
+CONFIG_EXPERT=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_EMBEDDED=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_PERF_USE_VMALLOC=y
+
+#
+# Kernel Performance Events And Counters
+#
+# CONFIG_PERF_EVENTS is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_COMPAT_BRK=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+# CONFIG_JUMP_LABEL is not set
+# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_MODULES_USE_ELF_REL=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_OLD_SIGACTION=y
+
+#
+# GCOV-based kernel profiling
+#
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+# CONFIG_MODULE_SIG is not set
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+CONFIG_BLK_DEV_BSG=y
+# CONFIG_BLK_DEV_BSGLIB is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+# CONFIG_BLK_DEV_THROTTLING is not set
+# CONFIG_BLK_CMDLINE_PARSER is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_EFI_PARTITION=y
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_CFQ_GROUP_IOSCHED is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+CONFIG_DEFAULT_NOOP=y
+CONFIG_DEFAULT_IOSCHED="noop"
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_INLINE_READ_UNLOCK=y
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_FREEZER=y
+
+#
+# MTS
+#
+CONFIG_MTS_NUM_ACCESSORY_PORTS=2
+
+#
+# System Type
+#
+CONFIG_MMU=y
+# CONFIG_ARCH_MULTIPLATFORM is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+CONFIG_ARCH_AT91=y
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_DOVE is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_MMP is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_LPC32XX is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_SHMOBILE is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C24XX is not set
+# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5P64X0 is not set
+# CONFIG_ARCH_S5PC100 is not set
+# CONFIG_ARCH_S5PV210 is not set
+# CONFIG_ARCH_EXYNOS is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP1 is not set
+CONFIG_HAVE_AT91_DBGU0=y
+CONFIG_AT91_PMC_UNIT=y
+CONFIG_AT91_SAM9_ALT_RESET=y
+CONFIG_AT91_SAM9G45_RESET=y
+CONFIG_AT91_SAM9_TIME=y
+CONFIG_SOC_AT91SAM9=y
+
+#
+# Atmel AT91 System-on-Chip
+#
+CONFIG_SOC_SAM_V4_V5=y
+# CONFIG_SOC_SAM_V7 is not set
+
+#
+# Atmel AT91 Processor
+#
+# CONFIG_SOC_AT91RM9200 is not set
+# CONFIG_SOC_AT91SAM9260 is not set
+# CONFIG_SOC_AT91SAM9261 is not set
+# CONFIG_SOC_AT91SAM9263 is not set
+# CONFIG_SOC_AT91SAM9RL is not set
+# CONFIG_SOC_AT91SAM9G45 is not set
+CONFIG_SOC_AT91SAM9X5=y
+# CONFIG_SOC_AT91SAM9N12 is not set
+
+#
+# Atmel Non-DT world
+#
+CONFIG_ARCH_AT91_NONE=y
+# CONFIG_ARCH_AT91RM9200 is not set
+# CONFIG_ARCH_AT91SAM9260 is not set
+# CONFIG_ARCH_AT91SAM9261 is not set
+# CONFIG_ARCH_AT91SAM9263 is not set
+# CONFIG_ARCH_AT91SAM9RL is not set
+# CONFIG_ARCH_AT91SAM9G45 is not set
+
+#
+# AT91 Board Options
+#
+
+#
+# Generic Board Type
+#
+CONFIG_MACH_AT91SAM9_DT=y
+
+#
+# AT91 Feature Selections
+#
+CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
+CONFIG_AT91_SLOW_CLOCK=y
+CONFIG_AT91_TIMER_HZ=100
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_PLAT_SPEAR is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_ARM926T=y
+CONFIG_CPU_32v5=y
+CONFIG_CPU_ABRT_EV5TJ=y
+CONFIG_CPU_PABRT_LEGACY=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
+CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+CONFIG_CPU_USE_DOMAINS=y
+
+#
+# Processor Features
+#
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
+# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+CONFIG_NEED_KUSER_HELPERS=y
+CONFIG_KUSER_HELPERS=y
+# CONFIG_CACHE_L2X0 is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
+CONFIG_ARM_NR_BANKS=8
+CONFIG_MULTI_IRQ_HANDLER=y
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_ARCH_NR_GPIO=0
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+CONFIG_HZ_FIXED=100
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_200 is not set
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_500 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=100
+CONFIG_SCHED_HRTICK=y
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+CONFIG_HAVE_ARCH_PFN_VALID=y
+# CONFIG_HIGHMEM is not set
+CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_HAVE_MEMBLOCK=y
+# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=999999
+# CONFIG_COMPACTION is not set
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=0
+# CONFIG_KSM is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_CROSS_MEMORY_ATTACH=y
+CONFIG_NEED_PER_CPU_KM=y
+# CONFIG_CLEANCACHE is not set
+# CONFIG_CMA is not set
+# CONFIG_ZBUD is not set
+CONFIG_FORCE_MAX_ZONEORDER=11
+CONFIG_ALIGNMENT_TRAP=y
+CONFIG_UACCESS_WITH_MEMCPY=y
+# CONFIG_SECCOMP is not set
+# CONFIG_CC_STACKPROTECTOR is not set
+
+#
+# Boot options
+#
+CONFIG_USE_OF=y
+CONFIG_ATAGS=y
+# CONFIG_DEPRECATED_PARAM_STRUCT is not set
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_ARM_APPENDED_DTB=y
+CONFIG_ARM_ATAG_DTB_COMPAT=y
+CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y
+# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set
+CONFIG_CMDLINE=" quiet "
+CONFIG_CMDLINE_FROM_BOOTLOADER=y
+# CONFIG_CMDLINE_EXTEND is not set
+# CONFIG_CMDLINE_FORCE is not set
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+CONFIG_AUTO_ZRELADDR=y
+
+#
+# CPU Power Management
+#
+
+#
+# CPU Idle
+#
+# CONFIG_CPU_IDLE is not set
+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+# CONFIG_VFP is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_BINFMT_SCRIPT=y
+# CONFIG_HAVE_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+CONFIG_COREDUMP=y
+
+#
+# Power management options
+#
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_PM_SLEEP=y
+# CONFIG_PM_AUTOSLEEP is not set
+# CONFIG_PM_WAKELOCKS is not set
+# CONFIG_PM_RUNTIME is not set
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+# CONFIG_APM_EMULATION is not set
+CONFIG_PM_CLK=y
+# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
+CONFIG_CPU_PM=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARM_CPU_SUSPEND=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_DIAG is not set
+CONFIG_UNIX=y
+# CONFIG_UNIX_DIAG is not set
+CONFIG_XFRM=y
+CONFIG_XFRM_ALGO=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+# CONFIG_IP_FIB_TRIE_STATS is not set
+CONFIG_IP_MULTIPLE_TABLES=y
+# CONFIG_IP_ROUTE_MULTIPATH is not set
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=y
+CONFIG_NET_IPGRE_DEMUX=y
+CONFIG_NET_IP_TUNNEL=y
+CONFIG_NET_IPGRE=y
+# CONFIG_NET_IPGRE_BROADCAST is not set
+# CONFIG_IP_MROUTE is not set
+CONFIG_SYN_COOKIES=y
+# CONFIG_NET_IPVTI is not set
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=y
+CONFIG_INET_XFRM_TUNNEL=y
+CONFIG_INET_TUNNEL=y
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+# CONFIG_INET_LRO is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_INET_UDP_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+# CONFIG_DEFAULT_CUBIC is not set
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=y
+# CONFIG_NETFILTER_NETLINK_ACCT is not set
+CONFIG_NETFILTER_NETLINK_QUEUE=y
+CONFIG_NETFILTER_NETLINK_LOG=y
+CONFIG_NF_CONNTRACK=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_PROCFS=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+# CONFIG_NF_CONNTRACK_TIMEOUT is not set
+# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
+# CONFIG_NF_CT_PROTO_DCCP is not set
+CONFIG_NF_CT_PROTO_GRE=m
+# CONFIG_NF_CT_PROTO_SCTP is not set
+# CONFIG_NF_CT_PROTO_UDPLITE is not set
+# CONFIG_NF_CONNTRACK_AMANDA is not set
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+# CONFIG_NF_CONNTRACK_IRC is not set
+CONFIG_NF_CONNTRACK_BROADCAST=m
+# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+# CONFIG_NF_CONNTRACK_SANE is not set
+CONFIG_NF_CONNTRACK_SIP=m
+# CONFIG_NF_CONNTRACK_TFTP is not set
+# CONFIG_NF_CT_NETLINK is not set
+# CONFIG_NF_CT_NETLINK_TIMEOUT is not set
+# CONFIG_NETFILTER_NETLINK_QUEUE_CT is not set
+CONFIG_NF_NAT=y
+CONFIG_NF_NAT_NEEDED=y
+# CONFIG_NF_NAT_AMANDA is not set
+CONFIG_NF_NAT_FTP=m
+# CONFIG_NF_NAT_IRC is not set
+CONFIG_NF_NAT_SIP=m
+# CONFIG_NF_NAT_TFTP is not set
+CONFIG_NETFILTER_SYNPROXY=m
+CONFIG_NETFILTER_XTABLES=y
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=y
+CONFIG_NETFILTER_XT_CONNMARK=y
+
+#
+# Xtables targets
+#
+# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
+# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_CT is not set
+# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
+CONFIG_NETFILTER_XT_TARGET_HL=m
+# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
+# CONFIG_NETFILTER_XT_TARGET_LED is not set
+# CONFIG_NETFILTER_XT_TARGET_LOG is not set
+CONFIG_NETFILTER_XT_TARGET_MARK=y
+CONFIG_NETFILTER_XT_TARGET_NETMAP=y
+# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
+# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
+CONFIG_NETFILTER_XT_TARGET_REDIRECT=y
+# CONFIG_NETFILTER_XT_TARGET_TEE is not set
+# CONFIG_NETFILTER_XT_TARGET_TPROXY is not set
+# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
+
+#
+# Xtables matches
+#
+# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
+# CONFIG_NETFILTER_XT_MATCH_BPF is not set
+# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
+# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=y
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
+# CONFIG_NETFILTER_XT_MATCH_CPU is not set
+# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
+# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
+# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
+CONFIG_NETFILTER_XT_MATCH_ECN=y
+# CONFIG_NETFILTER_XT_MATCH_ESP is not set
+# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
+CONFIG_NETFILTER_XT_MATCH_HL=y
+# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
+# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
+CONFIG_NETFILTER_XT_MATCH_LIMIT=y
+CONFIG_NETFILTER_XT_MATCH_MAC=y
+# CONFIG_NETFILTER_XT_MATCH_MARK is not set
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y
+# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
+# CONFIG_NETFILTER_XT_MATCH_OSF is not set
+# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
+# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
+# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
+# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
+# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
+# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
+# CONFIG_NETFILTER_XT_MATCH_REALM is not set
+CONFIG_NETFILTER_XT_MATCH_RECENT=y
+# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
+# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set
+CONFIG_NETFILTER_XT_MATCH_STATE=y
+# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
+# CONFIG_NETFILTER_XT_MATCH_STRING is not set
+# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
+# CONFIG_NETFILTER_XT_MATCH_TIME is not set
+# CONFIG_NETFILTER_XT_MATCH_U32 is not set
+# CONFIG_IP_SET is not set
+# CONFIG_IP_VS is not set
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=y
+CONFIG_NF_CONNTRACK_IPV4=y
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_IPTABLES=y
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=y
+CONFIG_IP_NF_MATCH_RPFILTER=m
+CONFIG_IP_NF_MATCH_TTL=y
+CONFIG_IP_NF_FILTER=y
+CONFIG_IP_NF_TARGET_REJECT=y
+CONFIG_IP_NF_TARGET_SYNPROXY=m
+# CONFIG_IP_NF_TARGET_ULOG is not set
+CONFIG_NF_NAT_IPV4=y
+CONFIG_IP_NF_TARGET_MASQUERADE=y
+CONFIG_IP_NF_TARGET_NETMAP=y
+CONFIG_IP_NF_TARGET_REDIRECT=y
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_IP_NF_MANGLE=y
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+# CONFIG_BRIDGE_NF_EBTABLES is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+CONFIG_L2TP=y
+# CONFIG_L2TP_V3 is not set
+CONFIG_STP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_HAVE_NET_DSA=y
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_PHONET is not set
+# CONFIG_IEEE802154 is not set
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+# CONFIG_NET_SCH_CBQ is not set
+# CONFIG_NET_SCH_HTB is not set
+# CONFIG_NET_SCH_HFSC is not set
+# CONFIG_NET_SCH_PRIO is not set
+# CONFIG_NET_SCH_MULTIQ is not set
+# CONFIG_NET_SCH_RED is not set
+# CONFIG_NET_SCH_SFB is not set
+# CONFIG_NET_SCH_SFQ is not set
+# CONFIG_NET_SCH_TEQL is not set
+# CONFIG_NET_SCH_TBF is not set
+# CONFIG_NET_SCH_GRED is not set
+# CONFIG_NET_SCH_DSMARK is not set
+# CONFIG_NET_SCH_NETEM is not set
+# CONFIG_NET_SCH_DRR is not set
+# CONFIG_NET_SCH_MQPRIO is not set
+# CONFIG_NET_SCH_CHOKE is not set
+# CONFIG_NET_SCH_QFQ is not set
+# CONFIG_NET_SCH_CODEL is not set
+# CONFIG_NET_SCH_FQ_CODEL is not set
+# CONFIG_NET_SCH_FQ is not set
+# CONFIG_NET_SCH_PLUG is not set
+
+#
+# Classification
+#
+# CONFIG_NET_CLS_BASIC is not set
+# CONFIG_NET_CLS_TCINDEX is not set
+# CONFIG_NET_CLS_ROUTE4 is not set
+# CONFIG_NET_CLS_FW is not set
+# CONFIG_NET_CLS_U32 is not set
+# CONFIG_NET_CLS_RSVP is not set
+# CONFIG_NET_CLS_RSVP6 is not set
+# CONFIG_NET_CLS_FLOW is not set
+# CONFIG_NET_CLS_CGROUP is not set
+# CONFIG_NET_EMATCH is not set
+# CONFIG_NET_CLS_ACT is not set
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+# CONFIG_BATMAN_ADV is not set
+# CONFIG_OPENVSWITCH is not set
+# CONFIG_VSOCKETS is not set
+# CONFIG_NETLINK_MMAP is not set
+# CONFIG_NETLINK_DIAG is not set
+# CONFIG_NET_MPLS_GSO is not set
+# CONFIG_NETPRIO_CGROUP is not set
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_BQL=y
+# CONFIG_BPF_JIT is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=m
+# CONFIG_BT_HCIBTSDIO is not set
+CONFIG_BT_HCIUART=m
+# CONFIG_BT_HCIUART_H4 is not set
+# CONFIG_BT_HCIUART_BCSP is not set
+# CONFIG_BT_HCIUART_ATH3K is not set
+CONFIG_BT_HCIUART_LL=y
+# CONFIG_BT_HCIUART_3WIRE is not set
+# CONFIG_BT_HCIBCM203X is not set
+# CONFIG_BT_HCIBPA10X is not set
+# CONFIG_BT_HCIBFUSB is not set
+# CONFIG_BT_HCIVHCI is not set
+# CONFIG_BT_MRVL is not set
+# CONFIG_BT_ATH3K is not set
+# CONFIG_AF_RXRPC is not set
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+CONFIG_NL80211_TESTMODE=y
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+# CONFIG_LIB80211 is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+# CONFIG_MAC80211_RC_PID is not set
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+# CONFIG_MAC80211_MESH is not set
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+# CONFIG_WIMAX is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+# CONFIG_CEPH_LIB is not set
+# CONFIG_NFC is not set
+CONFIG_HAVE_BPF_JIT=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+CONFIG_FW_LOADER_USER_HELPER=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_GENERIC_CPU_DEVICES is not set
+# CONFIG_DMA_SHARED_BUFFER is not set
+
+#
+# Bus devices
+#
+# CONFIG_ARM_CCI is not set
+# CONFIG_CONNECTOR is not set
+CONFIG_MTD=y
+# CONFIG_MTD_TESTS is not set
+# CONFIG_MTD_REDBOOT_PARTS is not set
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_AFS_PARTS is not set
+CONFIG_MTD_OF_PARTS=y
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_SM_FTL is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOCG3 is not set
+CONFIG_MTD_NAND_ECC=y
+# CONFIG_MTD_NAND_ECC_SMC is not set
+CONFIG_MTD_NAND=y
+# CONFIG_MTD_NAND_ECC_BCH is not set
+# CONFIG_MTD_SM_COMMON is not set
+# CONFIG_MTD_NAND_DENALI is not set
+# CONFIG_MTD_NAND_GPIO is not set
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_DOCG4 is not set
+CONFIG_MTD_NAND_ATMEL=y
+# CONFIG_MTD_NAND_NANDSIM is not set
+# CONFIG_MTD_NAND_PLATFORM is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_LIMIT=20
+# CONFIG_MTD_UBI_FASTMAP is not set
+# CONFIG_MTD_UBI_GLUEBI is not set
+CONFIG_DTC=y
+CONFIG_OF=y
+
+#
+# Device Tree and Open Firmware support
+#
+CONFIG_PROC_DEVICETREE=y
+# CONFIG_OF_SELFTEST is not set
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_NET=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_MTD=y
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_DRBD is not set
+# CONFIG_BLK_DEV_NBD is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=32768
+# CONFIG_BLK_DEV_XIP is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_MG_DISK is not set
+# CONFIG_BLK_DEV_RBD is not set
+
+#
+# Misc devices
+#
+# CONFIG_SENSORS_LIS3LV02D is not set
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_ATMEL_PWM is not set
+CONFIG_ATMEL_TCLIB=y
+CONFIG_ATMEL_TCB_CLKSRC=y
+CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0
+# CONFIG_DUMMY_IRQ is not set
+# CONFIG_ICS932S401 is not set
+CONFIG_ATMEL_SSC=y
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_APDS9802ALS is not set
+# CONFIG_ISL29003 is not set
+# CONFIG_ISL29020 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_SENSORS_BH1780 is not set
+# CONFIG_SENSORS_BH1770 is not set
+# CONFIG_SENSORS_APDS990X is not set
+# CONFIG_HMC6352 is not set
+# CONFIG_DS1682 is not set
+# CONFIG_TI_DAC7512 is not set
+# CONFIG_BMP085_I2C is not set
+# CONFIG_BMP085_SPI is not set
+# CONFIG_USB_SWITCH_FSA9480 is not set
+# CONFIG_LATTICE_ECP3_CONFIG is not set
+# CONFIG_SRAM is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=y
+CONFIG_EEPROM_AT25=y
+# CONFIG_EEPROM_LEGACY is not set
+# CONFIG_EEPROM_MAX6875 is not set
+CONFIG_EEPROM_93CX6=m
+# CONFIG_EEPROM_93XX46 is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+# CONFIG_TI_ST is not set
+# CONFIG_SENSORS_LIS3_SPI is not set
+# CONFIG_SENSORS_LIS3_I2C is not set
+
+#
+# Altera FPGA firmware download module
+#
+# CONFIG_ALTERA_STAPL is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+# CONFIG_SCSI_SRP_ATTRS is not set
+CONFIG_SCSI_LOWLEVEL=y
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_ISCSI_BOOT_SYSFS is not set
+# CONFIG_SCSI_UFSHCD is not set
+# CONFIG_LIBFC is not set
+# CONFIG_LIBFCOE is not set
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_SCSI_DH is not set
+# CONFIG_SCSI_OSD_INITIATOR is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+# CONFIG_TARGET_CORE is not set
+CONFIG_NETDEVICES=y
+CONFIG_MII=m
+CONFIG_NET_CORE=y
+# CONFIG_BONDING is not set
+CONFIG_DUMMY=m
+# CONFIG_EQUALIZER is not set
+# CONFIG_NET_TEAM is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_VXLAN is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+CONFIG_TUN=m
+# CONFIG_VETH is not set
+# CONFIG_NLMON is not set
+
+#
+# CAIF transport drivers
+#
+
+#
+# Distributed Switch Architecture drivers
+#
+# CONFIG_NET_DSA_MV88E6XXX is not set
+# CONFIG_NET_DSA_MV88E6060 is not set
+# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set
+# CONFIG_NET_DSA_MV88E6131 is not set
+# CONFIG_NET_DSA_MV88E6123_61_65 is not set
+CONFIG_ETHERNET=y
+CONFIG_NET_VENDOR_ARC=y
+# CONFIG_ARC_EMAC is not set
+CONFIG_NET_CADENCE=y
+# CONFIG_ARM_AT91_ETHER is not set
+CONFIG_MACB=y
+CONFIG_NET_VENDOR_BROADCOM=y
+# CONFIG_B44 is not set
+# CONFIG_NET_CALXEDA_XGMAC is not set
+CONFIG_NET_VENDOR_CIRRUS=y
+# CONFIG_CS89x0 is not set
+# CONFIG_DM9000 is not set
+# CONFIG_DNET is not set
+CONFIG_NET_VENDOR_FARADAY=y
+# CONFIG_FTMAC100 is not set
+# CONFIG_FTGMAC100 is not set
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_NET_VENDOR_MARVELL=y
+# CONFIG_MVMDIO is not set
+CONFIG_NET_VENDOR_MICREL=y
+# CONFIG_KS8842 is not set
+# CONFIG_KS8851 is not set
+# CONFIG_KS8851_MLL is not set
+CONFIG_NET_VENDOR_MICROCHIP=y
+# CONFIG_ENC28J60 is not set
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NET_VENDOR_8390=y
+# CONFIG_AX88796 is not set
+# CONFIG_ETHOC is not set
+# CONFIG_SH_ETH is not set
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_NET_VENDOR_SMSC=y
+# CONFIG_SMC91X is not set
+# CONFIG_SMC911X is not set
+# CONFIG_SMSC911X is not set
+CONFIG_NET_VENDOR_STMICRO=y
+# CONFIG_STMMAC_ETH is not set
+CONFIG_NET_VENDOR_VIA=y
+# CONFIG_VIA_VELOCITY is not set
+CONFIG_NET_VENDOR_WIZNET=y
+# CONFIG_WIZNET_W5100 is not set
+# CONFIG_WIZNET_W5300 is not set
+# CONFIG_WIZNET_BUS_DIRECT is not set
+# CONFIG_WIZNET_BUS_INDIRECT is not set
+# CONFIG_WIZNET_BUS_ANY is not set
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+# CONFIG_AT803X_PHY is not set
+# CONFIG_AMD_PHY is not set
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_BCM87XX_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_REALTEK_PHY is not set
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_STE10XP is not set
+# CONFIG_LSI_ET1011C_PHY is not set
+CONFIG_MICREL_PHY=m
+# CONFIG_FIXED_PHY is not set
+# CONFIG_MDIO_BITBANG is not set
+# CONFIG_MDIO_BUS_MUX_GPIO is not set
+# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
+# CONFIG_MICREL_KS8995MA is not set
+CONFIG_PPP=y
+CONFIG_PPP_BSDCOMP=y
+CONFIG_PPP_DEFLATE=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+# CONFIG_PPP_MULTILINK is not set
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=y
+# CONFIG_PPP_SYNC_TTY is not set
+# CONFIG_SLIP is not set
+CONFIG_SLHC=y
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+# CONFIG_USB_RTL8152 is not set
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_AX88179_178A=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+# CONFIG_USB_NET_CDC_MBIM is not set
+CONFIG_USB_NET_DM9601=m
+# CONFIG_USB_NET_SR9700 is not set
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+# CONFIG_USB_EPSON2888 is not set
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+# CONFIG_USB_NET_KALMIA is not set
+CONFIG_USB_NET_QMI_WWAN=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_WLAN=y
+# CONFIG_LIBERTAS_THINFIRM is not set
+CONFIG_AT76C50X_USB=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_ATH_CARDS is not set
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+# CONFIG_B43LEGACY_DMA_AND_PIO_MODE is not set
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+# CONFIG_BRCMFMAC is not set
+# CONFIG_HOSTAP is not set
+# CONFIG_LIBERTAS is not set
+# CONFIG_P54_COMMON is not set
+CONFIG_RT2X00=m
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT35XX=y
+# CONFIG_RT2800USB_RT3573 is not set
+# CONFIG_RT2800USB_RT53XX is not set
+# CONFIG_RT2800USB_RT55XX is not set
+# CONFIG_RT2800USB_UNKNOWN is not set
+CONFIG_RT2800_LIB=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_RTL_CARDS=m
+CONFIG_RTL8192CU=m
+CONFIG_RTLWIFI=m
+CONFIG_RTLWIFI_USB=m
+CONFIG_RTLWIFI_DEBUG=y
+CONFIG_RTL8192C_COMMON=m
+CONFIG_WL_TI=y
+# CONFIG_WL1251 is not set
+CONFIG_WL12XX=m
+# CONFIG_WL18XX is not set
+CONFIG_WLCORE=m
+# CONFIG_WLCORE_SPI is not set
+CONFIG_WLCORE_SDIO=m
+CONFIG_WILINK_PLATFORM_DATA=y
+# CONFIG_ZD1211RW is not set
+# CONFIG_MWIFIEX is not set
+# CONFIG_CW1200 is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+# CONFIG_WAN is not set
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+# CONFIG_INPUT_SPARSEKMAP is not set
+# CONFIG_INPUT_MATRIXKMAP is not set
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_TTY=y
+# CONFIG_VT is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=16
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_N_GSM is not set
+# CONFIG_TRACE_SINK is not set
+CONFIG_DEVKMEM=y
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_ATMEL=y
+CONFIG_SERIAL_ATMEL_CONSOLE=y
+CONFIG_SERIAL_ATMEL_PDC=y
+# CONFIG_SERIAL_ATMEL_TTYAT is not set
+# CONFIG_SERIAL_MAX3100 is not set
+# CONFIG_SERIAL_MAX310X is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_SCCNXP is not set
+# CONFIG_SERIAL_TIMBERDALE is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+# CONFIG_SERIAL_IFX6X60 is not set
+# CONFIG_SERIAL_XILINX_PS_UART is not set
+# CONFIG_SERIAL_ARC is not set
+# CONFIG_SERIAL_FSL_LPUART is not set
+# CONFIG_SERIAL_ST_ASC is not set
+# CONFIG_TTY_PRINTK is not set
+# CONFIG_HVC_DCC is not set
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+CONFIG_HW_RANDOM_ATMEL=y
+# CONFIG_HW_RANDOM_EXYNOS is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=y
+# CONFIG_I2C_MUX is not set
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_ALGOBIT=y
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_AT91 is not set
+# CONFIG_I2C_CBUS_GPIO is not set
+# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
+CONFIG_I2C_GPIO=y
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_PXA_PCI is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_XILINX is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_DIOLAN_U2C is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_TINY_USB is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_ALTERA is not set
+CONFIG_SPI_ATMEL=y
+# CONFIG_SPI_BITBANG is not set
+# CONFIG_SPI_GPIO is not set
+# CONFIG_SPI_FSL_SPI is not set
+# CONFIG_SPI_FSL_DSPI is not set
+# CONFIG_SPI_OC_TINY is not set
+# CONFIG_SPI_PXA2XX_PCI is not set
+# CONFIG_SPI_SC18IS602 is not set
+# CONFIG_SPI_XCOMM is not set
+# CONFIG_SPI_XILINX is not set
+# CONFIG_SPI_DESIGNWARE is not set
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=m
+# CONFIG_SPI_TLE62X0 is not set
+# CONFIG_HSI is not set
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+CONFIG_NTP_PPS=y
+
+#
+# PPS clients support
+#
+CONFIG_PPS_CLIENT_KTIMER=m
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_GPIO=m
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+
+#
+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
+#
+CONFIG_PINCTRL=y
+
+#
+# Pin controllers
+#
+CONFIG_PINMUX=y
+CONFIG_PINCONF=y
+# CONFIG_DEBUG_PINCTRL is not set
+CONFIG_PINCTRL_AT91=y
+# CONFIG_PINCTRL_SINGLE is not set
+CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_GPIO_DEVRES=y
+CONFIG_GPIOLIB=y
+CONFIG_OF_GPIO=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+
+#
+# Memory mapped GPIO drivers:
+#
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
+# CONFIG_GPIO_EM is not set
+# CONFIG_GPIO_RCAR is not set
+# CONFIG_GPIO_TS5500 is not set
+# CONFIG_GPIO_GRGPIO is not set
+
+#
+# I2C GPIO expanders:
+#
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_SX150X is not set
+# CONFIG_GPIO_ADP5588 is not set
+# CONFIG_GPIO_ADNP is not set
+
+#
+# PCI GPIO expanders:
+#
+
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+# CONFIG_GPIO_74X164 is not set
+
+#
+# AC97 GPIO expanders:
+#
+
+#
+# LPC GPIO expanders:
+#
+
+#
+# MODULbus GPIO expanders:
+#
+
+#
+# USB GPIO expanders:
+#
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+# CONFIG_POWER_AVS is not set
+CONFIG_HWMON=y
+# CONFIG_HWMON_VID is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+# CONFIG_SENSORS_AD7314 is not set
+# CONFIG_SENSORS_AD7414 is not set
+# CONFIG_SENSORS_AD7418 is not set
+# CONFIG_SENSORS_ADCXX is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ADT7310 is not set
+# CONFIG_SENSORS_ADT7410 is not set
+# CONFIG_SENSORS_ADT7411 is not set
+# CONFIG_SENSORS_ADT7462 is not set
+# CONFIG_SENSORS_ADT7470 is not set
+# CONFIG_SENSORS_ADT7475 is not set
+# CONFIG_SENSORS_ASC7621 is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_DS620 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_F75375S is not set
+# CONFIG_SENSORS_G760A is not set
+# CONFIG_SENSORS_G762 is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_GPIO_FAN is not set
+# CONFIG_SENSORS_HIH6130 is not set
+# CONFIG_SENSORS_HTU21 is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_JC42 is not set
+# CONFIG_SENSORS_LINEAGE is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM70 is not set
+# CONFIG_SENSORS_LM73 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_LM93 is not set
+# CONFIG_SENSORS_LTC4151 is not set
+# CONFIG_SENSORS_LTC4215 is not set
+# CONFIG_SENSORS_LTC4245 is not set
+# CONFIG_SENSORS_LTC4261 is not set
+# CONFIG_SENSORS_LM95234 is not set
+# CONFIG_SENSORS_LM95241 is not set
+# CONFIG_SENSORS_LM95245 is not set
+# CONFIG_SENSORS_MAX1111 is not set
+# CONFIG_SENSORS_MAX16065 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_MAX1668 is not set
+# CONFIG_SENSORS_MAX197 is not set
+# CONFIG_SENSORS_MAX6639 is not set
+# CONFIG_SENSORS_MAX6642 is not set
+# CONFIG_SENSORS_MAX6650 is not set
+# CONFIG_SENSORS_MAX6697 is not set
+# CONFIG_SENSORS_MCP3021 is not set
+# CONFIG_SENSORS_NCT6775 is not set
+# CONFIG_SENSORS_NTC_THERMISTOR is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_PMBUS is not set
+# CONFIG_SENSORS_SHT15 is not set
+# CONFIG_SENSORS_SHT21 is not set
+# CONFIG_SENSORS_SMM665 is not set
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_EMC1403 is not set
+# CONFIG_SENSORS_EMC2103 is not set
+# CONFIG_SENSORS_EMC6W201 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47M192 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_SCH56XX_COMMON is not set
+# CONFIG_SENSORS_SCH5627 is not set
+# CONFIG_SENSORS_SCH5636 is not set
+# CONFIG_SENSORS_ADS1015 is not set
+# CONFIG_SENSORS_ADS7828 is not set
+# CONFIG_SENSORS_ADS7871 is not set
+# CONFIG_SENSORS_AMC6821 is not set
+# CONFIG_SENSORS_INA209 is not set
+# CONFIG_SENSORS_INA2XX is not set
+# CONFIG_SENSORS_THMC50 is not set
+CONFIG_SENSORS_TMP102=m
+# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83791D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83793 is not set
+# CONFIG_SENSORS_W83795 is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83L786NG is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+# CONFIG_THERMAL is not set
+# CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+CONFIG_AT91SAM9X_WATCHDOG=y
+# CONFIG_DW_WATCHDOG is not set
+# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MEN_A21_WDT is not set
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+# CONFIG_SSB is not set
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+# CONFIG_BCMA is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_AS3711 is not set
+# CONFIG_PMIC_ADP5520 is not set
+# CONFIG_MFD_AAT2870_CORE is not set
+# CONFIG_MFD_CROS_EC is not set
+# CONFIG_MFD_ASIC3 is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_MFD_DA9052_SPI is not set
+# CONFIG_MFD_DA9052_I2C is not set
+# CONFIG_MFD_DA9055 is not set
+# CONFIG_MFD_DA9063 is not set
+# CONFIG_MFD_MC13XXX_SPI is not set
+# CONFIG_MFD_MC13XXX_I2C is not set
+# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_HTC_I2CPLD is not set
+# CONFIG_MFD_KEMPLD is not set
+# CONFIG_MFD_88PM800 is not set
+# CONFIG_MFD_88PM805 is not set
+# CONFIG_MFD_88PM860X is not set
+# CONFIG_MFD_MAX77686 is not set
+# CONFIG_MFD_MAX77693 is not set
+# CONFIG_MFD_MAX8907 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_MFD_VIPERBOARD is not set
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_RC5T583 is not set
+# CONFIG_MFD_SEC_CORE is not set
+# CONFIG_MFD_SI476X_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_SMSC is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_MFD_STMPE is not set
+# CONFIG_MFD_SYSCON is not set
+# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_LP8788 is not set
+# CONFIG_MFD_PALMAS is not set
+# CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS65090 is not set
+# CONFIG_MFD_TPS65217 is not set
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_MFD_TPS65910 is not set
+# CONFIG_MFD_TPS65912 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+# CONFIG_MFD_TPS65912_SPI is not set
+# CONFIG_MFD_TPS80031 is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_TWL6040_CORE is not set
+# CONFIG_MFD_WL1273_CORE is not set
+# CONFIG_MFD_LM3533 is not set
+# CONFIG_MFD_TC3589X is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_MFD_T7L66XB is not set
+# CONFIG_MFD_TC6387XB is not set
+# CONFIG_MFD_TC6393XB is not set
+# CONFIG_MFD_ARIZONA_I2C is not set
+# CONFIG_MFD_ARIZONA_SPI is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM831X_SPI is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_WM8994 is not set
+# CONFIG_VEXPRESS_CONFIG is not set
+# CONFIG_REGULATOR is not set
+CONFIG_MEDIA_SUPPORT=m
+
+#
+# Multimedia core support
+#
+# CONFIG_MEDIA_CAMERA_SUPPORT is not set
+# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set
+# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set
+# CONFIG_MEDIA_RADIO_SUPPORT is not set
+# CONFIG_MEDIA_RC_SUPPORT is not set
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_TTPCI_EEPROM is not set
+
+#
+# Media drivers
+#
+# CONFIG_MEDIA_USB_SUPPORT is not set
+
+#
+# Supported MMC/SDIO adapters
+#
+# CONFIG_CYPRESS_FIRMWARE is not set
+
+#
+# Media ancillary drivers (tuners, sensors, i2c, frontends)
+#
+
+#
+# Customise DVB Frontends
+#
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_TUNER_DIB0090=m
+
+#
+# Tools to develop new frontends
+#
+# CONFIG_DVB_DUMMY_FE is not set
+
+#
+# Graphics support
+#
+CONFIG_HAVE_FB_ATMEL=y
+# CONFIG_DRM is not set
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+# CONFIG_FB is not set
+# CONFIG_EXYNOS_VIDEO is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+# CONFIG_SOUND is not set
+
+#
+# HID support
+#
+CONFIG_HID=y
+# CONFIG_HIDRAW is not set
+# CONFIG_UHID is not set
+CONFIG_HID_GENERIC=y
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_A4TECH is not set
+# CONFIG_HID_ACRUX is not set
+# CONFIG_HID_APPLE is not set
+# CONFIG_HID_AUREAL is not set
+# CONFIG_HID_BELKIN is not set
+# CONFIG_HID_CHERRY is not set
+# CONFIG_HID_CHICONY is not set
+# CONFIG_HID_CYPRESS is not set
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+# CONFIG_HID_ELECOM is not set
+# CONFIG_HID_EZKEY is not set
+# CONFIG_HID_KEYTOUCH is not set
+# CONFIG_HID_KYE is not set
+# CONFIG_HID_UCLOGIC is not set
+# CONFIG_HID_WALTOP is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_ICADE is not set
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LCPOWER is not set
+# CONFIG_HID_LOGITECH is not set
+# CONFIG_HID_MAGICMOUSE is not set
+# CONFIG_HID_MICROSOFT is not set
+# CONFIG_HID_MONTEREY is not set
+# CONFIG_HID_MULTITOUCH is not set
+# CONFIG_HID_ORTEK is not set
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PETALYNX is not set
+# CONFIG_HID_PICOLCD is not set
+# CONFIG_HID_PRIMAX is not set
+# CONFIG_HID_SAITEK is not set
+# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SPEEDLINK is not set
+# CONFIG_HID_STEELSERIES is not set
+# CONFIG_HID_SUNPLUS is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TIVO is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_THINGM is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_WACOM is not set
+# CONFIG_HID_WIIMOTE is not set
+# CONFIG_HID_XINMO is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+# CONFIG_HID_SENSOR_HUB is not set
+
+#
+# USB HID support
+#
+# CONFIG_USB_HID is not set
+# CONFIG_HID_PID is not set
+
+#
+# USB HID Boot Protocol drivers
+#
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+
+#
+# I2C HID support
+#
+# CONFIG_I2C_HID is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEFAULT_PERSIST=y
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+CONFIG_USB_MON=y
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+# CONFIG_USB_XHCI_HCD is not set
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHCI_HCD_AT91=y
+# CONFIG_USB_EHCI_HCD_PLATFORM is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
+# CONFIG_USB_FUSBH200_HCD is not set
+# CONFIG_USB_FOTG210_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_HCD_PLATFORM is not set
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_HCD_TEST_MODE is not set
+# CONFIG_USB_MUSB_HDRC is not set
+# CONFIG_USB_MUSB_HOST is not set
+# CONFIG_USB_MUSB_GADGET is not set
+# CONFIG_USB_MUSB_DUAL_ROLE is not set
+# CONFIG_USB_MUSB_TUSB6010 is not set
+# CONFIG_USB_MUSB_DSPS is not set
+# CONFIG_USB_MUSB_UX500 is not set
+# CONFIG_MUSB_PIO_ONLY is not set
+# CONFIG_USB_RENESAS_USBHS is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_REALTEK is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
+# CONFIG_USB_STORAGE_ENE_UB6250 is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+# CONFIG_USB_DWC3 is not set
+# CONFIG_USB_DWC3_HOST is not set
+# CONFIG_USB_DWC3_GADGET is not set
+# CONFIG_USB_DWC3_DUAL_ROLE is not set
+# CONFIG_USB_CHIPIDEA is not set
+
+#
+# USB port drivers
+#
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+# CONFIG_USB_SERIAL_SIMPLE is not set
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+# CONFIG_USB_SERIAL_F81232 is not set
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+# CONFIG_USB_SERIAL_METRO is not set
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+# CONFIG_USB_SERIAL_SAFE is not set
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+# CONFIG_USB_SERIAL_XSENS_MT is not set
+# CONFIG_USB_SERIAL_WISHBONE is not set
+# CONFIG_USB_SERIAL_ZTE is not set
+CONFIG_USB_SERIAL_SSU100=m
+# CONFIG_USB_SERIAL_QT2 is not set
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+CONFIG_USB_SEVSEG=m
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+CONFIG_USB_CYTHERM=m
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_SISUSBVGA is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+# CONFIG_USB_EHSET_TEST_FIXTURE is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_YUREX is not set
+CONFIG_USB_EZUSB_FX2=m
+# CONFIG_USB_HSIC_USB3503 is not set
+
+#
+# USB Physical Layer drivers
+#
+# CONFIG_USB_PHY is not set
+# CONFIG_NOP_USB_XCEIV is not set
+# CONFIG_AM335X_PHY_USB is not set
+# CONFIG_SAMSUNG_USB2PHY is not set
+# CONFIG_SAMSUNG_USB3PHY is not set
+# CONFIG_USB_GPIO_VBUS is not set
+# CONFIG_USB_ISP1301 is not set
+# CONFIG_USB_RCAR_PHY is not set
+# CONFIG_USB_ULPI is not set
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+
+#
+# USB Peripheral Controller
+#
+# CONFIG_USB_AT91 is not set
+CONFIG_USB_ATMEL_USBA=m
+# CONFIG_USB_FUSB300 is not set
+# CONFIG_USB_FOTG210_UDC is not set
+# CONFIG_USB_R8A66597 is not set
+# CONFIG_USB_PXA27X is not set
+# CONFIG_USB_MV_UDC is not set
+# CONFIG_USB_MV_U3D is not set
+# CONFIG_USB_M66592 is not set
+# CONFIG_USB_NET2272 is not set
+# CONFIG_USB_DUMMY_HCD is not set
+CONFIG_USB_LIBCOMPOSITE=m
+CONFIG_USB_F_ACM=m
+CONFIG_USB_F_SS_LB=m
+CONFIG_USB_U_SERIAL=m
+CONFIG_USB_U_ETHER=m
+CONFIG_USB_U_RNDIS=m
+CONFIG_USB_F_SERIAL=m
+CONFIG_USB_F_OBEX=m
+CONFIG_USB_F_ECM=m
+CONFIG_USB_F_SUBSET=m
+CONFIG_USB_F_RNDIS=m
+# CONFIG_USB_CONFIGFS is not set
+CONFIG_USB_ZERO=m
+# CONFIG_USB_AUDIO is not set
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
+# CONFIG_USB_G_NCM is not set
+CONFIG_USB_GADGETFS=m
+# CONFIG_USB_FUNCTIONFS is not set
+CONFIG_USB_MASS_STORAGE=m
+# CONFIG_USB_GADGET_TARGET is not set
+CONFIG_USB_G_SERIAL=m
+# CONFIG_USB_MIDI_GADGET is not set
+# CONFIG_USB_G_PRINTER is not set
+CONFIG_USB_CDC_COMPOSITE=m
+# CONFIG_USB_G_NOKIA is not set
+CONFIG_USB_G_ACM_MS=m
+# CONFIG_USB_G_MULTI is not set
+# CONFIG_USB_G_HID is not set
+# CONFIG_USB_G_DBGP is not set
+# CONFIG_USB_G_DBGP_PRINTK is not set
+# CONFIG_USB_G_DBGP_SERIAL is not set
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+# CONFIG_MMC_CLKGATE is not set
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_BLOCK_BOUNCE=y
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+# CONFIG_MMC_SDHCI is not set
+# CONFIG_MMC_SDHCI_PXAV3 is not set
+# CONFIG_MMC_SDHCI_PXAV2 is not set
+CONFIG_MMC_ATMELMCI=m
+# CONFIG_MMC_SPI is not set
+# CONFIG_MMC_DW is not set
+# CONFIG_MMC_VUB300 is not set
+# CONFIG_MMC_USHC is not set
+# CONFIG_MEMSTICK is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_LM3530 is not set
+# CONFIG_LEDS_LM3642 is not set
+# CONFIG_LEDS_PCA9532 is not set
+CONFIG_LEDS_GPIO=y
+# CONFIG_LEDS_LP3944 is not set
+# CONFIG_LEDS_LP5521 is not set
+# CONFIG_LEDS_LP5523 is not set
+# CONFIG_LEDS_LP5562 is not set
+# CONFIG_LEDS_LP8501 is not set
+# CONFIG_LEDS_PCA955X is not set
+# CONFIG_LEDS_PCA963X is not set
+# CONFIG_LEDS_DAC124S085 is not set
+# CONFIG_LEDS_BD2802 is not set
+# CONFIG_LEDS_LT3593 is not set
+# CONFIG_LEDS_TCA6507 is not set
+# CONFIG_LEDS_LM355x is not set
+# CONFIG_LEDS_OT200 is not set
+# CONFIG_LEDS_BLINKM is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+# CONFIG_LEDS_TRIGGER_ONESHOT is not set
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
+# CONFIG_LEDS_TRIGGER_CPU is not set
+# CONFIG_LEDS_TRIGGER_GPIO is not set
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
+# CONFIG_LEDS_TRIGGER_CAMERA is not set
+# CONFIG_ACCESSIBILITY is not set
+# CONFIG_EDAC is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_DS3232 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_ISL12022 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF2127 is not set
+# CONFIG_RTC_DRV_PCF8523 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_BQ32K is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+# CONFIG_RTC_DRV_EM3027 is not set
+# CONFIG_RTC_DRV_RV3029C2 is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T93 is not set
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_DS3234 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
+# CONFIG_RTC_DRV_RX4581 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+# CONFIG_RTC_DRV_DS2404 is not set
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_AT91RM9200=y
+# CONFIG_RTC_DRV_AT91SAM9 is not set
+# CONFIG_RTC_DRV_SNVS is not set
+# CONFIG_RTC_DRV_MOXART is not set
+
+#
+# HID Sensor RTC drivers
+#
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+# CONFIG_DW_DMAC_CORE is not set
+# CONFIG_DW_DMAC is not set
+CONFIG_AT_HDMAC=y
+# CONFIG_TIMB_DMA is not set
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_OF=y
+
+#
+# DMA Clients
+#
+# CONFIG_ASYNC_TX_DMA is not set
+# CONFIG_DMATEST is not set
+# CONFIG_AUXDISPLAY is not set
+CONFIG_UIO=m
+CONFIG_UIO_PDRV_GENIRQ=m
+# CONFIG_UIO_DMEM_GENIRQ is not set
+# CONFIG_VIRT_DRIVERS is not set
+
+#
+# Virtio drivers
+#
+# CONFIG_VIRTIO_MMIO is not set
+
+#
+# Microsoft Hyper-V guest support
+#
+# CONFIG_STAGING is not set
+# CONFIG_WIMAX_GDM72XX_USB is not set
+# CONFIG_WIMAX_GDM72XX_SDIO is not set
+CONFIG_CLKDEV_LOOKUP=y
+
+#
+# Hardware Spinlock drivers
+#
+# CONFIG_MAILBOX is not set
+CONFIG_IOMMU_SUPPORT=y
+CONFIG_OF_IOMMU=y
+
+#
+# Remoteproc drivers
+#
+# CONFIG_STE_MODEM_RPROC is not set
+
+#
+# Rpmsg drivers
+#
+# CONFIG_PM_DEVFREQ is not set
+# CONFIG_EXTCON is not set
+# CONFIG_MEMORY is not set
+# CONFIG_IIO is not set
+# CONFIG_PWM is not set
+CONFIG_IRQCHIP=y
+# CONFIG_IPACK_BUS is not set
+# CONFIG_RESET_CONTROLLER is not set
+# CONFIG_FMC is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+CONFIG_EXT4_FS=y
+# CONFIG_EXT4_FS_POSIX_ACL is not set
+# CONFIG_EXT4_FS_SECURITY is not set
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=y
+CONFIG_JBD2=y
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_FANOTIFY is not set
+# CONFIG_QUOTA is not set
+# CONFIG_QUOTACTL is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+CONFIG_GENERIC_ACL=y
+
+#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_CONFIGFS_FS=m
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_ECRYPT_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+CONFIG_JFFS2_FS_WBUF_VERIFY=y
+CONFIG_JFFS2_SUMMARY=y
+CONFIG_JFFS2_FS_XATTR=y
+CONFIG_JFFS2_FS_POSIX_ACL=y
+CONFIG_JFFS2_FS_SECURITY=y
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_LZO=y
+CONFIG_JFFS2_RTIME=y
+CONFIG_JFFS2_RUBIN=y
+# CONFIG_JFFS2_CMODE_NONE is not set
+CONFIG_JFFS2_CMODE_PRIORITY=y
+# CONFIG_JFFS2_CMODE_SIZE is not set
+# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
+CONFIG_UBIFS_FS=y
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+# CONFIG_LOGFS is not set
+CONFIG_CRAMFS=y
+# CONFIG_SQUASHFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX6FS_FS is not set
+CONFIG_ROMFS_FS=y
+CONFIG_ROMFS_BACKED_BY_BLOCK=y
+# CONFIG_ROMFS_BACKED_BY_MTD is not set
+# CONFIG_ROMFS_BACKED_BY_BOTH is not set
+CONFIG_ROMFS_ON_BLOCK=y
+# CONFIG_PSTORE is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_F2FS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V2=y
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+CONFIG_NFS_V4=y
+# CONFIG_NFS_SWAP is not set
+# CONFIG_NFS_V4_1 is not set
+CONFIG_ROOT_NFS=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFSD is not set
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+# CONFIG_SUNRPC_DEBUG is not set
+# CONFIG_CEPH_FS is not set
+CONFIG_CIFS=y
+# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_WEAK_PW_HASH is not set
+# CONFIG_CIFS_UPCALL is not set
+# CONFIG_CIFS_XATTR is not set
+CONFIG_CIFS_DEBUG=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DFS_UPCALL is not set
+# CONFIG_CIFS_SMB2 is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+CONFIG_NLS_CODEPAGE_850=y
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_MAC_ROMAN is not set
+# CONFIG_NLS_MAC_CELTIC is not set
+# CONFIG_NLS_MAC_CENTEURO is not set
+# CONFIG_NLS_MAC_CROATIAN is not set
+# CONFIG_NLS_MAC_CYRILLIC is not set
+# CONFIG_NLS_MAC_GAELIC is not set
+# CONFIG_NLS_MAC_GREEK is not set
+# CONFIG_NLS_MAC_ICELAND is not set
+# CONFIG_NLS_MAC_INUIT is not set
+# CONFIG_NLS_MAC_ROMANIAN is not set
+# CONFIG_NLS_MAC_TURKISH is not set
+# CONFIG_NLS_UTF8 is not set
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+
+#
+# printk and dmesg options
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=7
+# CONFIG_BOOT_PRINTK_DELAY is not set
+
+#
+# Compile-time checks and compiler options
+#
+# CONFIG_DEBUG_INFO is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_READABLE_ASM is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_MAGIC_SYSRQ is not set
+CONFIG_DEBUG_KERNEL=y
+
+#
+# Memory Debugging
+#
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_SLAB is not set
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_VM is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_SHIRQ is not set
+
+#
+# Debug Lockups and Hangs
+#
+# CONFIG_LOCKUP_DETECTOR is not set
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_TIMER_STATS is not set
+
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_WRITECOUNT is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+
+#
+# RCU Debugging
+#
+# CONFIG_SPARSE_RCU_POINTER is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_TRACE is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_NOTIFIER_ERROR_INJECTION is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+# CONFIG_FUNCTION_TRACER is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_ENABLE_DEFAULT_TRACERS is not set
+# CONFIG_FTRACE_SYSCALLS is not set
+# CONFIG_TRACER_SNAPSHOT is not set
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_STACK_TRACER is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_PROBE_EVENTS is not set
+
+#
+# Runtime Testing
+#
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_RBTREE_TEST is not set
+# CONFIG_INTERVAL_TREE_TEST is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_TEST_STRING_HELPERS is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+# CONFIG_STRICT_DEVMEM is not set
+CONFIG_ARM_UNWIND=y
+CONFIG_DEBUG_USER=y
+CONFIG_DEBUG_LL=y
+CONFIG_AT91_DEBUG_LL_DBGU0=y
+# CONFIG_DEBUG_LL_UART_NONE is not set
+# CONFIG_DEBUG_ICEDCC is not set
+# CONFIG_DEBUG_SEMIHOSTING is not set
+# CONFIG_DEBUG_LL_UART_8250 is not set
+# CONFIG_DEBUG_LL_UART_PL01X is not set
+CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
+# CONFIG_DEBUG_UART_PL01X is not set
+# CONFIG_DEBUG_UART_8250 is not set
+CONFIG_UNCOMPRESS_INCLUDE="mach/uncompress.h"
+# CONFIG_EARLY_PRINTK is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_ENCRYPTED_KEYS is not set
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
+# CONFIG_DEFAULT_SECURITY_SMACK is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
+# CONFIG_DEFAULT_SECURITY_YAMA is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+# CONFIG_CRYPTO_USER is not set
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+# CONFIG_CRYPTO_GF128MUL is not set
+# CONFIG_CRYPTO_NULL is not set
+CONFIG_CRYPTO_WORKQUEUE=y
+# CONFIG_CRYPTO_CRYPTD is not set
+CONFIG_CRYPTO_AUTHENC=y
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+# CONFIG_CRYPTO_CCM is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_SEQIV is not set
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=y
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+CONFIG_CRYPTO_ECB=y
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_PCBC is not set
+# CONFIG_CRYPTO_XTS is not set
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_CMAC=y
+CONFIG_CRYPTO_HMAC=y
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=y
+# CONFIG_CRYPTO_CRC32 is not set
+# CONFIG_CRYPTO_CRCT10DIF is not set
+# CONFIG_CRYPTO_GHASH is not set
+CONFIG_CRYPTO_MD4=y
+CONFIG_CRYPTO_MD5=y
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_SHA1_ARM is not set
+CONFIG_CRYPTO_SHA256=y
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=y
+# CONFIG_CRYPTO_AES_ARM is not set
+CONFIG_CRYPTO_ANUBIS=y
+CONFIG_CRYPTO_ARC4=y
+CONFIG_CRYPTO_BLOWFISH=y
+CONFIG_CRYPTO_BLOWFISH_COMMON=y
+# CONFIG_CRYPTO_CAMELLIA is not set
+CONFIG_CRYPTO_CAST_COMMON=y
+CONFIG_CRYPTO_CAST5=y
+CONFIG_CRYPTO_CAST6=y
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_FCRYPT=y
+CONFIG_CRYPTO_KHAZAD=y
+CONFIG_CRYPTO_SALSA20=y
+CONFIG_CRYPTO_SEED=y
+CONFIG_CRYPTO_SERPENT=y
+CONFIG_CRYPTO_TEA=y
+CONFIG_CRYPTO_TWOFISH=y
+CONFIG_CRYPTO_TWOFISH_COMMON=y
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_ZLIB is not set
+CONFIG_CRYPTO_LZO=y
+# CONFIG_CRYPTO_LZ4 is not set
+# CONFIG_CRYPTO_LZ4HC is not set
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+# CONFIG_CRYPTO_USER_API_HASH is not set
+# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
+CONFIG_CRYPTO_HW=y
+# CONFIG_CRYPTO_DEV_ATMEL_AES is not set
+# CONFIG_CRYPTO_DEV_ATMEL_TDES is not set
+# CONFIG_CRYPTO_DEV_ATMEL_SHA is not set
+# CONFIG_ASYMMETRIC_KEY_TYPE is not set
+# CONFIG_BINARY_PRINTF is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_NET_UTILS=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_IO=y
+CONFIG_CRC_CCITT=y
+CONFIG_CRC16=y
+# CONFIG_CRC_T10DIF is not set
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+# CONFIG_CRC32_SELFTEST is not set
+CONFIG_CRC32_SLICEBY8=y
+# CONFIG_CRC32_SLICEBY4 is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_BIT is not set
+CONFIG_CRC7=m
+# CONFIG_LIBCRC32C is not set
+# CONFIG_CRC8 is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_DQL=y
+CONFIG_NLATTR=y
+CONFIG_GENERIC_ATOMIC64=y
+CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
+CONFIG_AVERAGE=y
+# CONFIG_CORDIC is not set
+# CONFIG_DDR is not set
+CONFIG_OID_REGISTRY=y
+# CONFIG_VIRTUALIZATION is not set
diff --git a/recipes-kernel/linux/linux-3.12.27/mtcdt/linux-3.12-eeprom-setup-mtcdt.patch b/recipes-kernel/linux/linux-3.12.27/mtcdt/linux-3.12-eeprom-setup-mtcdt.patch
new file mode 100644
index 0000000..4075005
--- /dev/null
+++ b/recipes-kernel/linux/linux-3.12.27/mtcdt/linux-3.12-eeprom-setup-mtcdt.patch
@@ -0,0 +1,164 @@
+Index: linux-3.12.27/arch/arm/mach-at91/board-dt-sam9.c
+===================================================================
+--- linux-3.12.27.orig/arch/arm/mach-at91/board-dt-sam9.c 2014-08-26 07:12:26.000000000 -0500
++++ linux-3.12.27/arch/arm/mach-at91/board-dt-sam9.c 2014-09-24 09:56:17.283867487 -0500
+@@ -25,6 +25,86 @@
+ #include "board.h"
+ #include "generic.h"
+
++#include <linux/mts_at24.h>
++
++uint8_t mts_id_eeprom[512];
++
++EXPORT_SYMBOL(mts_id_eeprom);
++
++static void mts_id_eeprom_load(struct memory_accessor *macc, void *context)
++{
++ int tmp;
++
++ memset(mts_id_eeprom, 0, sizeof(mts_id_eeprom));
++
++ tmp = macc->read(macc, mts_id_eeprom, 0, sizeof(mts_id_eeprom));
++ if (tmp != sizeof(mts_id_eeprom)) {
++ printk(KERN_ERR "sam9x5: id eeprom read failed: %d\n", tmp);
++ } else {
++ printk(KERN_INFO "sam9x5: read %d bytes from id eeprom\n", tmp);
++ }
++}
++
++struct mts_eeprom_callback id_eeprom_callback = {
++ .address = 0x56,
++ .index = -1,
++ .setup = mts_id_eeprom_load,
++};
++
++#ifdef CONFIG_MTS_NUM_ACCESSORY_PORTS
++#define NUM_AP CONFIG_MTS_NUM_ACCESSORY_PORTS
++#else
++#define NUM_AP 0
++#endif
++
++#if NUM_AP > 0
++
++uint8_t mts_ap_eeprom[NUM_AP][512];
++
++EXPORT_SYMBOL(mts_ap_eeprom);
++
++static void mts_ap_eeprom_load(struct memory_accessor *macc, void *context)
++{
++ int tmp;
++ int* index = (int*)context;
++
++ memset(mts_ap_eeprom[*index], 0, sizeof(mts_ap_eeprom[*index]));
++
++ tmp = macc->read(macc, mts_ap_eeprom[*index], 0, sizeof(mts_ap_eeprom[*index]));
++ if (tmp != sizeof(mts_ap_eeprom[*index])) {
++ printk(KERN_INFO "sam9x5: ap%d eeprom read failed: %d\n", *index + 1, tmp);
++ } else {
++ printk(KERN_INFO "sam9x5: read %d bytes from ap%d eeprom\n", tmp, *index + 1);
++ }
++}
++
++struct mts_eeprom_callback ap1_eeprom_callback = {
++ .address = 0x50,
++ .index = 0,
++ .setup = mts_ap_eeprom_load,
++};
++
++struct mts_eeprom_callback ap2_eeprom_callback = {
++ .address = 0x52,
++ .index = 1,
++ .setup = mts_ap_eeprom_load,
++};
++
++struct mts_eeprom_callback* mts_eeprom_callback_lookup[] = {
++ &id_eeprom_callback,
++ &ap1_eeprom_callback,
++ &ap2_eeprom_callback,
++ NULL
++};
++
++#else
++
++struct mts_eeprom_callback* mts_eeprom_callback_lookup[] = {
++ &id_eeprom_callback,
++ NULL
++};
++
++#endif
+
+ static const struct of_device_id irq_of_match[] __initconst = {
+
+Index: linux-3.12.27/drivers/misc/eeprom/at24.c
+===================================================================
+--- linux-3.12.27.orig/drivers/misc/eeprom/at24.c 2014-08-26 07:12:26.000000000 -0500
++++ linux-3.12.27/drivers/misc/eeprom/at24.c 2014-09-23 11:41:52.470331651 -0500
+@@ -24,6 +24,8 @@
+ #include <linux/i2c.h>
+ #include <linux/i2c/at24.h>
+
++#include <linux/mts_at24.h>
++
+ /*
+ * I2C EEPROMs from most vendors are inexpensive and mostly interchangeable.
+ * Differences between different vendor product lines (like Atmel AT24C or
+@@ -473,6 +475,23 @@
+ chip->page_size = be32_to_cpup(val);
+ }
+ }
++
++static void at24_get_setup(struct i2c_client *client,
++ struct at24_platform_data *chip)
++{
++ int i;
++
++ for (i = 0; mts_eeprom_callback_lookup[i] != NULL; i++) {
++ if (mts_eeprom_callback_lookup[i]->address == client->addr) {
++ printk(KERN_INFO "%s: found a match for eeprom at %X\n", __func__, client->addr);
++ chip->setup = mts_eeprom_callback_lookup[i]->setup;
++ if (mts_eeprom_callback_lookup[i]->index > -1) {
++ chip->context = (void*)&mts_eeprom_callback_lookup[i]->index;
++ }
++ break;
++ }
++ }
++}
+ #else
+ static void at24_get_ofdata(struct i2c_client *client,
+ struct at24_platform_data *chip)
+@@ -505,12 +524,14 @@
+ * is recommended anyhow.
+ */
+ chip.page_size = 1;
++ chip.setup = NULL;
++ chip.context = NULL;
+
+ /* update chipdata if OF is present */
+ at24_get_ofdata(client, &chip);
+
+- chip.setup = NULL;
+- chip.context = NULL;
++ /* see if we have a setup callback */
++ at24_get_setup(client, &chip);
+ }
+
+ if (!is_power_of_2(chip.byte_len))
+Index: linux-3.12.27/include/linux/mts_at24.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.12.27/include/linux/mts_at24.h 2014-09-23 11:41:52.470331651 -0500
+@@ -0,0 +1,14 @@
++#ifndef _LINUX_MTSAT24_H
++#define _LINUX_MTSAT24_H
++
++#include <linux/memory.h>
++
++struct mts_eeprom_callback {
++ unsigned short address;
++ int index;
++ void (*setup)(struct memory_accessor *, void *context);
++};
++
++extern struct mts_eeprom_callback* mts_eeprom_callback_lookup[];
++
++#endif /* _LINUX_MTSAT24_H */
diff --git a/recipes-kernel/linux/linux-3.12.27/mtcdt/linux-3.12-mtcdt-device-tree.patch b/recipes-kernel/linux/linux-3.12.27/mtcdt/linux-3.12-mtcdt-device-tree.patch
new file mode 100644
index 0000000..cd067db
--- /dev/null
+++ b/recipes-kernel/linux/linux-3.12.27/mtcdt/linux-3.12-mtcdt-device-tree.patch
@@ -0,0 +1,448 @@
+Index: linux-3.12.27/arch/arm/boot/dts/mtcdt.dts
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.12.27/arch/arm/boot/dts/mtcdt.dts 2014-09-12 12:27:15.136391567 -0500
+@@ -0,0 +1,262 @@
++/*
++ * DTS file for Multi-Tech Systems MTCDT Hardware
++ */
++
++/dts-v1/;
++#include "at91sam9g25.dtsi"
++#include "at91sam9x5ek.dtsi"
++
++/ {
++ model = "Multi-Tech Systems MTCDT";
++ compatible = "atmel,at91sam9g25ek", "atmel,at91sam9x5ek", "atmel,at91sam9x5", "atmel,at91sam9";
++
++ ahb {
++ apb {
++ macb0: ethernet@f802c000 {
++ phy-mode = "rmii";
++ status = "okay";
++ };
++
++ pinctrl@fffff400 {
++ nand {
++ pinctrl_nand: nand-0 {
++ atmel,pins =
++ <AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD0 periph A Read Enable */
++ AT91_PIOD 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD1 periph A Write Enable */
++ AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD2 periph A Address Latch Enable */
++ AT91_PIOD 3 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD3 periph A Command Latch Enable */
++ AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP /* PD4 gpio Chip Enable pin pull_up */
++ AT91_PIOC 31 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP /* PC31 gpio RDY/BUSY pin pull_up */
++ AT91_PIOD 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD6 periph A Data bit 0 */
++ AT91_PIOD 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD7 periph A Data bit 1 */
++ AT91_PIOD 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD8 periph A Data bit 2 */
++ AT91_PIOD 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD9 periph A Data bit 3 */
++ AT91_PIOD 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD10 periph A Data bit 4 */
++ AT91_PIOD 11 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD11 periph A Data bit 5 */
++ AT91_PIOD 12 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD12 periph A Data bit 6 */
++ AT91_PIOD 13 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PD13 periph A Data bit 7 */
++ };
++
++ pinctrl_nand_16bits: nand_16bits-0 {
++ atmel,pins =
++ <AT91_PIOD 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD14 periph A Data bit 8 */
++ AT91_PIOD 15 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD15 periph A Data bit 9 */
++ AT91_PIOD 16 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD16 periph A Data bit 10 */
++ AT91_PIOD 17 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD17 periph A Data bit 11 */
++ AT91_PIOD 18 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD18 periph A Data bit 12 */
++ AT91_PIOD 19 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD19 periph A Data bit 13 */
++ AT91_PIOD 20 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD20 periph A Data bit 14 */
++ AT91_PIOD 21 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PD21 periph A Data bit 15 */
++ };
++ };
++
++ mmc1 {
++ pinctrl_mmc1_slot0_clk_cmd_dat0: mmc1_slot0_clk_cmd_dat0-0 {
++ atmel,pins =
++ <AT91_PIOA 13 AT91_PERIPH_B AT91_PINCTRL_NONE /* PA13 periph B */
++ AT91_PIOA 12 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* PA12 periph B with pullup */
++ AT91_PIOA 11 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>; /* PA11 periph B with pullup */
++ };
++
++ pinctrl_mmc1_slot0_dat1_3: mmc1_slot0_dat1_3-0 {
++ atmel,pins =
++ <AT91_PIOA 2 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* PA2 periph B with pullup */
++ AT91_PIOA 3 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* PA3 periph B with pullup */
++ AT91_PIOA 4 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>; /* PA4 periph B with pullup */
++ };
++ };
++ };
++
++ rtc@fffffeb0 {
++ status = "okay";
++ };
++
++ i2c0: i2c@f8010000 {
++ compatible = "i2c-gpio";
++ status = "okay";
++
++ id_eeprom@56 {
++ compatible = "atmel,24c04";
++ reg = <0x56>;
++ pagesize = <16>;
++ };
++ board_temp@48 {
++ compatible = "ti,tmp102";
++ reg = <0x48>;
++ /* tempsensor_alert line running to pin PC19 on processor
++ set up an interrupt for this? */
++ };
++ };
++
++ i2c1: i2c@f8014000 {
++ compatible = "i2c-gpio";
++ status = "okay";
++
++ ap1_eeprom@50 {
++ compatible = "atmel,24c04";
++ reg = <0x50>;
++ pagesize = <16>;
++ };
++ ap2_eeprom@52 {
++ compatible = "atmel,24c04";
++ reg = <0x52>;
++ pagesize = <16>;
++ };
++ };
++
++ /* runs to Accessory Port 1 */
++ spi0: spi@f0000000 {
++ status = "okay";
++ cs-gpios = <&pioA 4 0>, <&pioA 2 0>, <&pioA 5 0>, <0>;
++
++ ap1-adc@0 {
++ compatible = "mts-io-ap1-adc";
++ spi-max-frequency = <20000000>;
++ reg = <0>;
++ };
++ ap1-dout@1 {
++ compatible = "mts-io-ap1-dout";
++ spi-max-frequency = <1000000>;
++ reg = <1>;
++ };
++ ap1-din@2 {
++ compatible = "mts-io-ap1-din";
++ spi-max-frequency = <1000000>;
++ reg = <2>;
++ };
++ };
++
++ /* runs to Accessory Port 2 */
++ spi1: spi@f0004000 {
++ status = "okay";
++
++ cs-gpios = <&pioC 15 0>, <&pioC 16 0>, <&pioC 18 0>, <0>;
++
++ ap2-adc@0 {
++ compatible = "mts-io-ap2-adc";
++ spi-max-frequency = <20000000>;
++ reg = <0>;
++ };
++ ap2-dout@1 {
++ compatible = "mts-io-ap2-dout";
++ spi-max-frequency = <1000000>;
++ reg = <1>;
++ };
++ ap2-din@2 {
++ compatible = "mts-io-ap2-din";
++ spi-max-frequency = <1000000>;
++ reg = <2>;
++ };
++ };
++ };
++
++ nand0: nand@40000000 {
++ reg = < 0x40000000 0x10000000
++ 0xffffe000 0x600 /* PMECC Registers */
++ 0xffffe600 0x200 /* PMECC Error Location Registers */
++ 0x00100000 0x100000 /* PMECC looup table in ROM code */
++ >;
++ atmel,pmecc-lookup-table-offset = <0x8000 0x10000>;
++ gpios = < &pioC 31 GPIO_ACTIVE_HIGH
++ &pioD 4 GPIO_ACTIVE_HIGH
++ 0
++ >;
++ atmel,pmecc-cap = <4>;
++ atmel,nand-has-dma;
++
++ nand@0 {
++ label = "NANDFlash";
++ reg = <0x0 0x10000000>;
++ };
++ at91bootstrap@0 {
++ label = "at91bootstrap";
++ reg = <0x0 0x40000>;
++ };
++ uboot@40000 {
++ label = "u-Boot";
++ reg = <0x40000 0x80000>;
++ };
++ ubootconfig0@c0000 {
++ label = "u-Boot Config";
++ reg = <0xc0000 0xa0000>;
++ };
++ ubootconfig1@160000 {
++ label = "u-Boot Redundant Config";
++ reg = <0x160000 0xa0000>;
++ };
++ uImage@200000 {
++ label = "uImage";
++ reg = <0x200000 0x600000>;
++ };
++ config0@800000 {
++ label = "Config";
++ reg = <0x800000 0x800000>;
++ };
++ config1@1000000 {
++ label = "OEM Config";
++ reg = <0x1000000 0x800000>;
++ };
++ rootfs@1800000 {
++ label = "Rootfs";
++ reg = <0x1800000 0xe800000>;
++ };
++ };
++ };
++
++ leds {
++ compatible = "gpio-leds";
++
++ pa24 {
++ label = "led-a";
++ gpios = <&pioA 24 GPIO_ACTIVE_LOW>;
++ linux,default-trigger = "default-on";
++ };
++ pa25 {
++ label = "led-b";
++ gpios = <&pioA 25 GPIO_ACTIVE_LOW>;
++ };
++ pa26 {
++ label = "led-c";
++ gpios = <&pioA 26 GPIO_ACTIVE_LOW>;
++ };
++ pa27 {
++ label = "led-d";
++ gpios = <&pioA 27 GPIO_ACTIVE_LOW>;
++ };
++ pa28 {
++ label = "led-e";
++ gpios = <&pioA 28 GPIO_ACTIVE_LOW>;
++ };
++ };
++
++
++ i2c@0 {
++ status = "okay";
++
++ id_eeprom@56 {
++ compatible = "atmel,24c04";
++ reg = <0x56>;
++ pagesize = <16>;
++ };
++ board_temp@48 {
++ compatible = "ti,tmp102";
++ reg = <0x48>;
++ /* tempsensor_alert line running to pin PC19 on processor
++ set up an interrupt for this? */
++ };
++ };
++ i2c@1 {
++ status = "okay";
++
++ ap1_eeprom@50 {
++ compatible = "atmel,24c04";
++ reg = <0x50>;
++ pagesize = <16>;
++ };
++ ap2_eeprom@52 {
++ compatible = "atmel,24c04";
++ reg = <0x52>;
++ pagesize = <16>;
++ };
++ };
++};
+Index: linux-3.12.27/arch/arm/boot/dts/at91sam9x5cm.dtsi
+===================================================================
+--- linux-3.12.27.orig/arch/arm/boot/dts/at91sam9x5cm.dtsi 2014-09-11 14:14:58.336267894 -0500
++++ linux-3.12.27/arch/arm/boot/dts/at91sam9x5cm.dtsi 2014-09-12 12:26:01.169574209 -0500
+@@ -40,48 +40,8 @@
+ atmel,has-pmecc; /* Enable PMECC */
+ atmel,pmecc-cap = <2>;
+ atmel,pmecc-sector-size = <512>;
+- nand-on-flash-bbt;
++ /* nand-on-flash-bbt; */
+ status = "okay";
+-
+- at91bootstrap@0 {
+- label = "at91bootstrap";
+- reg = <0x0 0x40000>;
+- };
+-
+- uboot@40000 {
+- label = "u-boot";
+- reg = <0x40000 0x80000>;
+- };
+-
+- ubootenv@c0000 {
+- label = "U-Boot Env";
+- reg = <0xc0000 0x140000>;
+- };
+-
+- kernel@200000 {
+- label = "kernel";
+- reg = <0x200000 0x600000>;
+- };
+-
+- rootfs@800000 {
+- label = "rootfs";
+- reg = <0x800000 0x1f800000>;
+- };
+- };
+- };
+-
+- leds {
+- compatible = "gpio-leds";
+-
+- pb18 {
+- label = "pb18";
+- gpios = <&pioB 18 GPIO_ACTIVE_LOW>;
+- linux,default-trigger = "heartbeat";
+- };
+-
+- pd21 {
+- label = "pd21";
+- gpios = <&pioD 21 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+@@ -93,5 +53,4 @@
+ pinctrl-0 = <&pinctrl_1wire_cm>;
+ status = "okay";
+ };
+-
+ };
+Index: linux-3.12.27/arch/arm/boot/dts/at91sam9x5ek.dtsi
+===================================================================
+--- linux-3.12.27.orig/arch/arm/boot/dts/at91sam9x5ek.dtsi 2014-09-11 14:14:58.336267894 -0500
++++ linux-3.12.27/arch/arm/boot/dts/at91sam9x5ek.dtsi 2014-09-11 14:14:59.480249875 -0500
+@@ -24,23 +24,11 @@
+ &pinctrl_mmc0_slot0_clk_cmd_dat0
+ &pinctrl_mmc0_slot0_dat1_3>;
+ status = "okay";
++ /* external micro SD slot */
+ slot@0 {
+ reg = <0>;
+ bus-width = <4>;
+- cd-gpios = <&pioD 15 GPIO_ACTIVE_HIGH>;
+- };
+- };
+-
+- mmc1: mmc@f000c000 {
+- pinctrl-0 = <
+- &pinctrl_board_mmc1
+- &pinctrl_mmc1_slot0_clk_cmd_dat0
+- &pinctrl_mmc1_slot0_dat1_3>;
+- status = "okay";
+- slot@0 {
+- reg = <0>;
+- bus-width = <4>;
+- cd-gpios = <&pioD 14 GPIO_ACTIVE_HIGH>;
++ cd-gpios = <&pioA 1 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+@@ -48,24 +36,15 @@
+ status = "okay";
+ };
+
+- usart0: serial@f801c000 {
++ uart0: serial@f8040000 {
+ status = "okay";
+ };
+
+ usb2: gadget@f803c000 {
+- atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>;
++ /* atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>; mtcdt: no vbus-gpio */
+ status = "okay";
+ };
+
+- i2c0: i2c@f8010000 {
+- status = "okay";
+-
+- wm8731: wm8731@1a {
+- compatible = "wm8731";
+- reg = <0x1a>;
+- };
+- };
+-
+ pinctrl@fffff400 {
+ mmc0 {
+ pinctrl_board_mmc0: mmc0-board {
+@@ -82,16 +61,6 @@
+ };
+ };
+
+- spi0: spi@f0000000 {
+- status = "okay";
+- cs-gpios = <&pioA 14 0>, <0>, <0>, <0>;
+- m25p80@0 {
+- compatible = "atmel,at25df321a";
+- spi-max-frequency = <50000000>;
+- reg = <0>;
+- };
+- };
+-
+ watchdog@fffffe40 {
+ status = "okay";
+ };
+@@ -104,29 +73,15 @@
+ usb0: ohci@00600000 {
+ status = "okay";
+ num-ports = <3>;
+- atmel,vbus-gpio = <0 /* &pioD 18 GPIO_ACTIVE_LOW *//* Activate to have access to port A */
+- &pioD 19 GPIO_ACTIVE_LOW
+- &pioD 20 GPIO_ACTIVE_LOW
+- >;
++ //mtcdt: no vbus-gpio
++ //atmel,vbus-gpio = <0 /* &pioD 18 GPIO_ACTIVE_LOW *//* Activate to have access to port A */
++ // &pioD 19 GPIO_ACTIVE_LOW
++ // &pioD 20 GPIO_ACTIVE_LOW
++ // >;
+ };
+
+ usb1: ehci@00700000 {
+ status = "okay";
+ };
+ };
+-
+- sound {
+- compatible = "atmel,sam9x5-wm8731-audio";
+-
+- atmel,model = "wm8731 @ AT91SAM9X5EK";
+-
+- atmel,audio-routing =
+- "Headphone Jack", "RHPOUT",
+- "Headphone Jack", "LHPOUT",
+- "LLINEIN", "Line In Jack",
+- "RLINEIN", "Line In Jack";
+-
+- atmel,ssc-controller = <&ssc0>;
+- atmel,audio-codec = <&wm8731>;
+- };
+ };
+Index: linux-3.12.27/arch/arm/boot/dts/Makefile
+===================================================================
+--- linux-3.12.27.orig/arch/arm/boot/dts/Makefile 2014-09-11 14:14:58.336267894 -0500
++++ linux-3.12.27/arch/arm/boot/dts/Makefile 2014-09-11 14:14:59.492249686 -0500
+@@ -35,6 +35,7 @@
+ dtb-$(CONFIG_ARCH_AT91) += at91sam9g35ek.dtb
+ dtb-$(CONFIG_ARCH_AT91) += at91sam9x25ek.dtb
+ dtb-$(CONFIG_ARCH_AT91) += at91sam9x35ek.dtb
++dtb-$(CONFIG_ARCH_AT91) += mtcdt.dtb
+ # sama5d3
+ dtb-$(CONFIG_ARCH_AT91) += sama5d31ek.dtb
+ dtb-$(CONFIG_ARCH_AT91) += sama5d33ek.dtb
diff --git a/recipes-kernel/linux/linux_3.12.27.bb b/recipes-kernel/linux/linux_3.12.27.bb
new file mode 100644
index 0000000..b99ae5b
--- /dev/null
+++ b/recipes-kernel/linux/linux_3.12.27.bb
@@ -0,0 +1,40 @@
+inherit kernel
+# mts class to build dtb and append to kernel image
+inherit linux-append-dtb
+
+PR = "r6"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
+
+DEPENDS += "xz-native bc-native"
+
+SRC_URI = "https://www.kernel.org/pub/linux/kernel/v3.x/linux-${PV}.tar.gz"
+
+S = "${WORKDIR}/${PN}-${PV}"
+
+COMMON_PATCHES = " \
+ file://linux-3.12-gpio-expose-pullups.patch \
+ file://linux-3.12-gpio-expose-deglitch.patch \
+ file://linux-3.12-atmel-spi.patch \
+ file://linux-3.12-atmel-mci-force-detect.patch \
+ file://linux-3.12-atmel-pmecc-debug-bitflips.patch \
+ file://linux-3.12-at91sam9_wdt-10second-timeout.patch \
+ file://linux-3.12.27-option-telit.patch \
+ file://linux-3.12-cdc-acm-ignore-exar-devices.patch \
+ file://linux-3.12-release-rfcomm-port-fix.patch \
+ "
+
+SRC_URI_append_mtcdt = "\
+ ${COMMON_PATCHES} \
+ file://defconfig \
+ file://linux-3.12-eeprom-setup-mtcdt.patch \
+ file://linux-3.12-mtcdt-device-tree.patch \
+ file://linux-3.12-add-num_accessory_ports-config-option.patch \
+ "
+
+SRC_URI[md5sum] = "2f05332bfca89ae1348ae454af2f5ffb"
+SRC_URI[sha256sum] = "2014c55257dda311779359d6b42931079a687c154777cc528c44e25f262194cd"
+
+COMPATIBLE_MACHINE = "(mtcdt)"
+DTB_APPEND_mtcdt = "mtcdt"
diff --git a/recipes-kernel/vizzini/files/vizzini.init b/recipes-kernel/vizzini/files/vizzini.init
new file mode 100644
index 0000000..b49473f
--- /dev/null
+++ b/recipes-kernel/vizzini/files/vizzini.init
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+exit
+
+case $1 in
+ start)
+ echo "Loading vizzini module"
+ modprobe vizzini
+ ;;
+
+ stop)
+ echo "Unloading vizzini module"
+ modprobe -r vizzini
+ ;;
+
+ *)
+ echo "Usage: $0 {start|stop}"
+ exit 2
+ ;;
+esac
+
+
diff --git a/recipes-kernel/vizzini/kernel-module-vizzini-1.1/vizzini-1.1-enable-cts.patch b/recipes-kernel/vizzini/kernel-module-vizzini-1.1/vizzini-1.1-enable-cts.patch
new file mode 100644
index 0000000..12e6d04
--- /dev/null
+++ b/recipes-kernel/vizzini/kernel-module-vizzini-1.1/vizzini-1.1-enable-cts.patch
@@ -0,0 +1,32 @@
+Index: xr21v141x-lnx3.10-3.11/vizzini.c
+===================================================================
+--- xr21v141x-lnx3.10-3.11.orig/vizzini.c 2014-04-04 19:58:55.000000000 -0500
++++ xr21v141x-lnx3.10-3.11/vizzini.c 2014-04-16 15:05:16.470621233 -0500
+@@ -61,6 +61,9 @@
+ #define DRIVER_AUTHOR "Ravi Reddy"
+ #define DRIVER_DESC "Exar USB UART Driver for XR21V141x "
+
++#define UART_PIN_RTS 0x020
++#define UART_GPIO_DIR 0x01b
++
+ static struct usb_driver xr21v141x_driver;
+ static struct tty_driver *xr21v141x_tty_driver;
+ static struct xr21v141x *xr21v141x_table[XR21V141X_TTY_MINORS];
+@@ -1172,6 +1175,17 @@
+ vizzini_set_reg(xr21v141x, block, UART_FLOW, flow);
+ vizzini_set_reg(xr21v141x, block, UART_GPIO_MODE, gpio_mode);
+
++ /* if flow control hasn't been turned on, enable RTS for modem-like functionality */
++ if (flow == UART_FLOW_MODE_NONE) {
++ char value;
++ vizzini_get_reg(xr21v141x, block, UART_GPIO_DIR, &value);
++ value |= UART_PIN_RTS;
++ vizzini_set_reg(xr21v141x, block, UART_GPIO_DIR, value);
++ vizzini_get_reg(xr21v141x, block, UART_GPIO_CLR, &value);
++ value |= UART_PIN_RTS;
++ vizzini_set_reg(xr21v141x, block, UART_GPIO_CLR, value);
++ }
++
+ if (xr21v141x->trans9) {
+ /* Turn on wide mode if we're 9-bit transparent. */
+ vizzini_set_reg(xr21v141x, EPLOCALS_REG_BLOCK, (block * MEM_EP_LOCALS_SIZE) + EP_WIDE_MODE, 1);
diff --git a/recipes-kernel/vizzini/kernel-module-vizzini-1.1/vizzini-1.1-rs485.patch b/recipes-kernel/vizzini/kernel-module-vizzini-1.1/vizzini-1.1-rs485.patch
new file mode 100644
index 0000000..6833e5b
--- /dev/null
+++ b/recipes-kernel/vizzini/kernel-module-vizzini-1.1/vizzini-1.1-rs485.patch
@@ -0,0 +1,102 @@
+Index: xr21v141x-lnx3.10-3.11/vizzini.c
+===================================================================
+--- xr21v141x-lnx3.10-3.11.orig/vizzini.c 2014-05-02 12:20:07.972225646 -0500
++++ xr21v141x-lnx3.10-3.11/vizzini.c 2014-05-07 13:53:08.125405483 -0500
+@@ -892,6 +892,35 @@
+ dev_dbg(&xr21v141x->control->dev, "vz_test_mode: selector=0x%02x\n", selector);
+ return retval < 0 ? retval : 0;
+ }
++static int xr21v141x_set_rs485(struct xr21v141x *xr21v141x, struct serial_rs485 *rs485conf) {
++ int block = xr21v141x->block;
++ int result = 0;
++ unsigned int gpio_mode, flow = 0;
++
++ xr21v141x->rs485 = *rs485conf;
++
++ if (xr21v141x->rs485.flags & SER_RS485_ENABLED) {
++ dev_info(&xr21v141x->control->dev, "Enabling RS485");
++
++ /* enable auto tranceiver enable on transmit, TX active high */
++ gpio_mode = UART_GPIO_MODE_SEL_XCVR_EN_ACT | UART_GPIO_MODE_XCVR_EN_POL;
++ result = vizzini_set_reg(xr21v141x, block, UART_GPIO_MODE, gpio_mode);
++ if (result < 0)
++ dev_err(&xr21v141x->control->dev, "Error setting auto trans enable");
++
++ /* half duplex rs485 */
++ flow = UART_FLOW_HALF_DUPLEX;
++ result = vizzini_set_reg(xr21v141x, block, UART_FLOW, flow);
++ if (result < 0)
++ dev_err(&xr21v141x->control->dev, "Error setting half duplex");
++ } else {
++ dev_info(&xr21v141x->control->dev, "Disabling RS485 - flow control off");
++ vizzini_set_reg(xr21v141x, block, UART_GPIO_MODE, UART_GPIO_MODE_SEL_GPIO);
++ vizzini_set_reg(xr21v141x, block, UART_FLOW, UART_FLOW_MODE_NONE);
++ }
++
++ return 0;
++}
+
+ static int xr21v141x_tty_ioctl(struct tty_struct *tty,
+ unsigned int cmd, unsigned long arg)
+@@ -902,6 +931,8 @@
+ unsigned int block, reg, val, match, preciseflags, unicast, broadcast, flow, selector;
+ char *data;
+
++ struct serial_rs485 rs485conf;
++
+ switch (cmd) {
+ case TIOCGSERIAL: /* gets serial port data */
+ rv = get_serial_info(xr21v141x, (struct serial_struct __user *) arg);
+@@ -910,6 +941,39 @@
+ rv = set_serial_info(xr21v141x, (struct serial_struct __user *) arg);
+ break;
+
++ case TIOCGRS485:
++ if (! arg) {
++ dev_err(&xr21v141x->control->dev, "%s - TIOCGRS485 arg invalid\n", __func__);
++ rv = -EFAULT;
++ break;
++ }
++
++ if (copy_to_user((struct serial_rs485 *) arg, &(xr21v141x->rs485), sizeof(struct serial_rs485))) {
++ dev_err(&xr21v141x->control->dev, "%s - TIOCGRS485 copy_to_user fail\n", __func__);
++ rv = -EFAULT;
++ break;
++ }
++ rv = 0;
++ break;
++
++ case TIOCSRS485:
++ if (! arg) {
++ dev_err(&xr21v141x->control->dev, "%s - TIOCSRS485 arg invalid\n", __func__);
++ rv = -EFAULT;
++ break;
++ }
++
++ if (copy_from_user(&rs485conf, (struct serial_rs485 *) arg, sizeof(rs485conf))) {
++ dev_err(&xr21v141x->control->dev, "%s - TIOCSRS485 copy_from_user failed\n", __func__);
++ rv = -EFAULT;
++ break;
++ }
++
++ vizzini_disable(xr21v141x);
++ rv = xr21v141x_set_rs485(xr21v141x, &rs485conf);
++ vizzini_enable(xr21v141x);
++ break;
++
+ case VZIOC_GET_REG:
+ if (get_user(block, (int __user *)arg))
+ return -EFAULT;
+Index: xr21v141x-lnx3.10-3.11/vizzini.h
+===================================================================
+--- xr21v141x-lnx3.10-3.11.orig/vizzini.h 2014-04-04 19:59:33.000000000 -0500
++++ xr21v141x-lnx3.10-3.11/vizzini.h 2014-05-02 12:20:08.028225647 -0500
+@@ -282,7 +282,7 @@
+ #ifdef VIZZINI_IWA
+ int iwa;
+ #endif
+-
++ struct serial_rs485 rs485;
+ };
+
+ #define CDC_DATA_INTERFACE_TYPE 0x0a
diff --git a/recipes-kernel/vizzini/kernel-module-vizzini-1.1/xr21v141x-lnx3.10-3.11.tar.gz b/recipes-kernel/vizzini/kernel-module-vizzini-1.1/xr21v141x-lnx3.10-3.11.tar.gz
new file mode 100644
index 0000000..2bc7355
--- /dev/null
+++ b/recipes-kernel/vizzini/kernel-module-vizzini-1.1/xr21v141x-lnx3.10-3.11.tar.gz
Binary files differ
diff --git a/recipes-kernel/vizzini/kernel-module-vizzini_1.1.bb b/recipes-kernel/vizzini/kernel-module-vizzini_1.1.bb
new file mode 100644
index 0000000..beab42f
--- /dev/null
+++ b/recipes-kernel/vizzini/kernel-module-vizzini_1.1.bb
@@ -0,0 +1,10 @@
+require vizzini.inc
+
+PR = "${INC_PR}.1"
+
+SRC_URI += "file://xr21v141x-lnx3.10-3.11.tar.gz \
+ file://vizzini-1.1-enable-cts.patch \
+ file://vizzini-1.1-rs485.patch \
+ "
+S = "${WORKDIR}/xr21v141x-lnx3.10-3.11"
+
diff --git a/recipes-kernel/vizzini/vizzini.inc b/recipes-kernel/vizzini/vizzini.inc
new file mode 100644
index 0000000..def3f1b
--- /dev/null
+++ b/recipes-kernel/vizzini/vizzini.inc
@@ -0,0 +1,48 @@
+DESCRIPTION = "USB Driver for Exar USB UARTs"
+HOMEPAGE = "http://www.exar.com/connectivity/uart-and-bridging-solutions/usb-uarts/xr21v1414"
+SECTION = "base"
+PRIORITY = "optional"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
+
+INC_PR = "r1"
+
+SRC_URI = " \
+ file://vizzini.init \
+"
+
+inherit module
+inherit update-rc.d
+
+EXTRA_OEMAKE = " -C ${STAGING_KERNEL_DIR} \
+ M=${S} \
+ modules \
+ "
+
+do_compile () {
+ unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
+ oe_runmake
+}
+
+PACKAGES = "${PN}"
+
+FILES_${PN} = "${base_libdir}/modules/${KERNEL_VERSION}/extra/vizzini.ko"
+FILES_${PN} += "${sysconfdir}/init.d/vizzini"
+
+INITSCRIPT_NAME = "vizzini"
+INITSCRIPT_PARAMS = "start 90 S ."
+
+PARALLEL_MAKE = ""
+
+do_install() {
+ install -m 0755 -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra
+ # use cp instead of install so the driver doesn't get stripped
+ cp ${S}/vizzini.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra
+ cp ${S}/vizzini.h ${STAGING_KERNEL_DIR}/include/linux/
+ cp ${S}/vizzini.h ${STAGING_INCDIR}/linux/
+ cp ${S}/vzioctl.h ${STAGING_KERNEL_DIR}/include/linux/
+ cp ${S}/vzioctl.h ${STAGING_INCDIR}/linux/
+
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/vizzini.init ${D}${sysconfdir}/init.d/vizzini
+}