diff --git a/target/linux/ar71xx/config-3.3 b/target/linux/ar71xx/config-3.3
index 9194701e7807b9f61d14438880299e80778c7764..db53c2b02448ea30a9de7204161e4e395ec2b2d9 100644
--- a/target/linux/ar71xx/config-3.3
+++ b/target/linux/ar71xx/config-3.3
@@ -15,6 +15,7 @@ CONFIG_ATH79_DEV_ETH=y
 CONFIG_ATH79_DEV_GPIO_BUTTONS=y
 CONFIG_ATH79_DEV_LEDS_GPIO=y
 CONFIG_ATH79_DEV_M25P80=y
+CONFIG_ATH79_DEV_NFC=y
 CONFIG_ATH79_DEV_SPI=y
 CONFIG_ATH79_DEV_USB=y
 CONFIG_ATH79_DEV_WMAC=y
diff --git a/target/linux/ar71xx/patches-3.3/605-MIPS-ath79-db120-fixes.patch b/target/linux/ar71xx/patches-3.3/605-MIPS-ath79-db120-fixes.patch
index 031198fe48ea767cceb9d9832cae7f3fe5a418bb..34e39e375d6cc3d94767706e76e476e2a60f4700 100644
--- a/target/linux/ar71xx/patches-3.3/605-MIPS-ath79-db120-fixes.patch
+++ b/target/linux/ar71xx/patches-3.3/605-MIPS-ath79-db120-fixes.patch
@@ -9,7 +9,7 @@
   *
   * Permission to use, copy, modify, and/or distribute this software for any
   * purpose with or without fee is hereby granted, provided that the above
-@@ -19,16 +19,25 @@
+@@ -19,16 +19,26 @@
   */
  
  #include <linux/pci.h>
@@ -27,6 +27,7 @@
  #include "dev-gpio-buttons.h"
  #include "dev-leds-gpio.h"
 +#include "dev-m25p80.h"
++#include "dev-nfc.h"
  #include "dev-spi.h"
  #include "dev-usb.h"
  #include "dev-wmac.h"
@@ -37,7 +38,7 @@
  #define DB120_GPIO_LED_WLAN_5G		12
  #define DB120_GPIO_LED_WLAN_2G		13
  #define DB120_GPIO_LED_STATUS		14
-@@ -39,8 +48,10 @@
+@@ -39,8 +49,10 @@
  #define DB120_KEYS_POLL_INTERVAL	20	/* msecs */
  #define DB120_KEYS_DEBOUNCE_INTERVAL	(3 * DB120_KEYS_POLL_INTERVAL)
  
@@ -50,7 +51,7 @@
  
  static struct gpio_led db120_leds_gpio[] __initdata = {
  	{
-@@ -63,6 +74,11 @@ static struct gpio_led db120_leds_gpio[]
+@@ -63,6 +75,11 @@ static struct gpio_led db120_leds_gpio[]
  		.gpio		= DB120_GPIO_LED_WLAN_2G,
  		.active_low	= 1,
  	},
@@ -62,7 +63,7 @@
  };
  
  static struct gpio_keys_button db120_gpio_keys[] __initdata = {
-@@ -76,66 +92,99 @@ static struct gpio_keys_button db120_gpi
+@@ -76,66 +93,101 @@ static struct gpio_keys_button db120_gpi
  	},
  };
  
@@ -195,12 +196,14 @@
 +	ath79_eth1_data.duplex = DUPLEX_FULL;
 +
 +	ath79_register_eth(1);
++
++	ath79_register_nfc();
  }
  
  MIPS_MACHINE(ATH79_MACH_DB120, "DB120", "Atheros DB120 reference board",
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -43,9 +43,11 @@ config ATH79_MACH_AP81
+@@ -43,9 +43,12 @@ config ATH79_MACH_AP81
  config ATH79_MACH_DB120
  	bool "Atheros DB120 reference board"
  	select SOC_AR934X
@@ -210,6 +213,7 @@
  	select ATH79_DEV_LEDS_GPIO
 -	select ATH79_DEV_SPI
 +	select ATH79_DEV_M25P80
++	select ATH79_DEV_NFC
  	select ATH79_DEV_USB
  	select ATH79_DEV_WMAC
  	help
diff --git a/target/linux/ar71xx/patches-3.3/606-MIPS-ath79-pb44-fixes.patch b/target/linux/ar71xx/patches-3.3/606-MIPS-ath79-pb44-fixes.patch
index 7b1a1184e4e1c420d543c5505fdfabfda1abb10b..f9ec7753f1aa75c5be2321bd071253217c37f24a 100644
--- a/target/linux/ar71xx/patches-3.3/606-MIPS-ath79-pb44-fixes.patch
+++ b/target/linux/ar71xx/patches-3.3/606-MIPS-ath79-pb44-fixes.patch
@@ -143,7 +143,7 @@
  MIPS_MACHINE(ATH79_MACH_PB44, "PB44", "Atheros PB44 reference board",
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -57,6 +57,7 @@ config ATH79_MACH_DB120
+@@ -58,6 +58,7 @@ config ATH79_MACH_DB120
  config ATH79_MACH_PB44
  	bool "Atheros PB44 reference board"
  	select SOC_AR71XX
diff --git a/target/linux/ar71xx/patches-3.3/607-MIPS-ath79-ubnt-xm-fixes.patch b/target/linux/ar71xx/patches-3.3/607-MIPS-ath79-ubnt-xm-fixes.patch
index 949009c6efef1ae5a932db8cd42aa13f45526f5e..cbbe20b49cd6e70e057fada3121bd5711055d70e 100644
--- a/target/linux/ar71xx/patches-3.3/607-MIPS-ath79-ubnt-xm-fixes.patch
+++ b/target/linux/ar71xx/patches-3.3/607-MIPS-ath79-ubnt-xm-fixes.patch
@@ -1,6 +1,6 @@
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -69,9 +69,10 @@ config ATH79_MACH_PB44
+@@ -70,9 +70,10 @@ config ATH79_MACH_PB44
  config ATH79_MACH_UBNT_XM
  	bool "Ubiquiti Networks XM (rev 1.0) board"
  	select SOC_AR724X
diff --git a/target/linux/ar71xx/patches-3.3/608-MIPS-ath79-ubnt-xm-add-more-boards.patch b/target/linux/ar71xx/patches-3.3/608-MIPS-ath79-ubnt-xm-add-more-boards.patch
index 875914758007ba9649294405abbfa4bcdad0d8ef..bee07b35c882f986c5ece240439c3238da4c99a9 100644
--- a/target/linux/ar71xx/patches-3.3/608-MIPS-ath79-ubnt-xm-add-more-boards.patch
+++ b/target/linux/ar71xx/patches-3.3/608-MIPS-ath79-ubnt-xm-add-more-boards.patch
@@ -172,7 +172,7 @@
 +	     ubnt_unifi_setup);
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -70,9 +70,11 @@ config ATH79_MACH_UBNT_XM
+@@ -71,9 +71,11 @@ config ATH79_MACH_UBNT_XM
  	bool "Ubiquiti Networks XM (rev 1.0) board"
  	select SOC_AR724X
  	select ATH79_DEV_AP9X_PCI if PCI
diff --git a/target/linux/ar71xx/patches-3.3/610-MIPS-ath79-openwrt-machines.patch b/target/linux/ar71xx/patches-3.3/610-MIPS-ath79-openwrt-machines.patch
index 36147f344c736709e0c9c8f99e334fb46f297362..6f6da2d30d4b80456d43b3671464eedd856d4e1f 100644
--- a/target/linux/ar71xx/patches-3.3/610-MIPS-ath79-openwrt-machines.patch
+++ b/target/linux/ar71xx/patches-3.3/610-MIPS-ath79-openwrt-machines.patch
@@ -188,7 +188,7 @@
  config ATH79_MACH_DB120
  	bool "Atheros DB120 reference board"
  	select SOC_AR934X
-@@ -54,6 +127,13 @@ config ATH79_MACH_DB120
+@@ -55,6 +128,13 @@ config ATH79_MACH_DB120
  	  Say 'Y' here if you want your kernel to support the
  	  Atheros DB120 reference board.
  
@@ -202,7 +202,7 @@
  config ATH79_MACH_PB44
  	bool "Atheros PB44 reference board"
  	select SOC_AR71XX
-@@ -66,6 +146,447 @@ config ATH79_MACH_PB44
+@@ -67,6 +147,447 @@ config ATH79_MACH_PB44
  	  Say 'Y' here if you want your kernel to support the
  	  Atheros PB44 reference board.
  
@@ -650,7 +650,7 @@
  config ATH79_MACH_UBNT_XM
  	bool "Ubiquiti Networks XM (rev 1.0) board"
  	select SOC_AR724X
-@@ -79,6 +600,24 @@ config ATH79_MACH_UBNT_XM
+@@ -80,6 +601,24 @@ config ATH79_MACH_UBNT_XM
  	  Say 'Y' here if you want your kernel to support the
  	  Ubiquiti Networks XM (rev 1.0) board.
  
@@ -675,7 +675,7 @@
  endmenu
  
  config SOC_AR71XX
-@@ -114,10 +653,6 @@ config SOC_QCA955X
+@@ -115,10 +654,6 @@ config SOC_QCA955X
  	select PCI_AR724X if PCI
  	def_bool n
  
@@ -686,7 +686,7 @@
  config ATH79_DEV_AP9X_PCI
  	select ATH79_PCI_ATH9K_FIXUP
  	def_bool n
-@@ -128,7 +663,14 @@ config ATH79_DEV_DSA
+@@ -129,7 +664,14 @@ config ATH79_DEV_DSA
  config ATH79_DEV_ETH
  	def_bool n
  
@@ -702,7 +702,7 @@
  	def_bool n
  
  config ATH79_DEV_GPIO_BUTTONS
-@@ -160,4 +702,7 @@ config ATH79_PCI_ATH9K_FIXUP
+@@ -161,4 +703,7 @@ config ATH79_PCI_ATH9K_FIXUP
  config ATH79_ROUTERBOOT
  	def_bool n