diff mbox series

[OpenWrt-Devel,openwrt-devel,2/8] at91: bump kernel 4.9 to 4.14

Message ID 67c93fe43fb4d3d6471e20a7459f3d6fc798c55e.1539384006.git.sandeepsheriker.mallikarjun@microchip.com
State Changes Requested
Delegated to: John Crispin
Headers show
Series [OpenWrt-Devel,openwrt-devel,1/8] at91:renaming subtraget legacy to sam9x | expand

Commit Message

Sandeep Sheriker Oct. 12, 2018, 10:41 p.m. UTC
Refreshed at91 patches and its configs files.

Signed-off-by: Sandeep Sheriker Mallikarjun <sandeepsheriker.mallikarjun@microchip.com>
---
 target/linux/at91/Makefile                         |    2 +-
 target/linux/at91/{config-4.9 => config-4.14}      |  260 +++-
 .../100-ARM-at91-build-dtb-for-LMU5000.patch       |   12 +-
 .../101-ARM-at91-build-dtb-for-q5xr5.patch         |   10 +
 .../102-ARM-at91-build-dtb-for-wb45n.patch         |   10 +-
 .../103-ARM-at91-build-dtb-for-wb50n.patch         |    8 +-
 .../104-ARM-at91-build-dtb-for-sama5d2.patch       | 1576 ++++++++++++++++++++
 .../101-ARM-at91-build-dtb-for-q5xr5.patch         |   10 -
 ...4-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch |  893 -----------
 ...105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch |  435 ------
 target/linux/at91/sam9x/config-default             |   50 +-
 target/linux/at91/sama5d2/config-default           |   88 +-
 target/linux/at91/sama5d3/config-default           |   83 +-
 target/linux/at91/sama5d4/config-default           |   83 +-
 14 files changed, 1960 insertions(+), 1560 deletions(-)
 rename target/linux/at91/{config-4.9 => config-4.14} (70%)
 rename target/linux/at91/{patches-4.9 => patches-4.14}/100-ARM-at91-build-dtb-for-LMU5000.patch (51%)
 create mode 100644 target/linux/at91/patches-4.14/101-ARM-at91-build-dtb-for-q5xr5.patch
 rename target/linux/at91/{patches-4.9 => patches-4.14}/102-ARM-at91-build-dtb-for-wb45n.patch (63%)
 rename target/linux/at91/{patches-4.9 => patches-4.14}/103-ARM-at91-build-dtb-for-wb50n.patch (69%)
 create mode 100644 target/linux/at91/patches-4.14/104-ARM-at91-build-dtb-for-sama5d2.patch
 delete mode 100644 target/linux/at91/patches-4.9/101-ARM-at91-build-dtb-for-q5xr5.patch
 delete mode 100644 target/linux/at91/patches-4.9/104-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch
 delete mode 100644 target/linux/at91/patches-4.9/105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch

Comments

Hauke Mehrtens Oct. 20, 2018, 2:07 p.m. UTC | #1
On 10/13/2018 12:41 AM, Sandeep Sheriker Mallikarjun wrote:
> Refreshed at91 patches and its configs files.
> 
> Signed-off-by: Sandeep Sheriker Mallikarjun <sandeepsheriker.mallikarjun@microchip.com>

Please refresh the patches on top of kernel 4.14 with this command:
	make target/linux/{clean,refresh} V=99

Please update the configuration files for the main target:
	make kernel_oldconfig CONFIG_TARGET=target
and for the subtarget:
	make kernel_oldconfig CONFIG_TARGET=subtarget

You should also clean up your configuration files, the one used for
kernel 4.9 has many options set which are not needed. The target
specific kernel configuration file should only contain options which are
specifically needed for your SoC and nothing general.

You should not deactivate CONFIG_WLAN and CONFIG_VLAN_8021Q for example
and I think you also do not have to compile IEEE1588 support into the
kernel, this should be done as a module. This are just some examples.

Please do not set
CONFIG_DEVKMEM=y
CONFIG_DEVMEM=y
This should be done by the central OpenWrt configuration.

Hauke

> ---
>  target/linux/at91/Makefile                         |    2 +-
>  target/linux/at91/{config-4.9 => config-4.14}      |  260 +++-
>  .../100-ARM-at91-build-dtb-for-LMU5000.patch       |   12 +-
>  .../101-ARM-at91-build-dtb-for-q5xr5.patch         |   10 +
>  .../102-ARM-at91-build-dtb-for-wb45n.patch         |   10 +-
>  .../103-ARM-at91-build-dtb-for-wb50n.patch         |    8 +-
>  .../104-ARM-at91-build-dtb-for-sama5d2.patch       | 1576 ++++++++++++++++++++
>  .../101-ARM-at91-build-dtb-for-q5xr5.patch         |   10 -
>  ...4-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch |  893 -----------
>  ...105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch |  435 ------
>  target/linux/at91/sam9x/config-default             |   50 +-
>  target/linux/at91/sama5d2/config-default           |   88 +-
>  target/linux/at91/sama5d3/config-default           |   83 +-
>  target/linux/at91/sama5d4/config-default           |   83 +-
>  14 files changed, 1960 insertions(+), 1560 deletions(-)
>  rename target/linux/at91/{config-4.9 => config-4.14} (70%)
>  rename target/linux/at91/{patches-4.9 => patches-4.14}/100-ARM-at91-build-dtb-for-LMU5000.patch (51%)
>  create mode 100644 target/linux/at91/patches-4.14/101-ARM-at91-build-dtb-for-q5xr5.patch
>  rename target/linux/at91/{patches-4.9 => patches-4.14}/102-ARM-at91-build-dtb-for-wb45n.patch (63%)
>  rename target/linux/at91/{patches-4.9 => patches-4.14}/103-ARM-at91-build-dtb-for-wb50n.patch (69%)
>  create mode 100644 target/linux/at91/patches-4.14/104-ARM-at91-build-dtb-for-sama5d2.patch
>  delete mode 100644 target/linux/at91/patches-4.9/101-ARM-at91-build-dtb-for-q5xr5.patch
>  delete mode 100644 target/linux/at91/patches-4.9/104-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch
>  delete mode 100644 target/linux/at91/patches-4.9/105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch
>
diff mbox series

Patch

diff --git a/target/linux/at91/Makefile b/target/linux/at91/Makefile
index 054a03c..93dad8e 100644
--- a/target/linux/at91/Makefile
+++ b/target/linux/at91/Makefile
@@ -14,7 +14,7 @@  BOARDNAME:=Microchip (Atmel AT91)
 FEATURES:=ext4 squashfs targz usb usbgadget ubifs
 SUBTARGETS:=sama5d2 sama5d3 sama5d4 sam9x
 
-KERNEL_PATCHVER:=4.9
+KERNEL_PATCHVER:=4.14
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/at91/config-4.9 b/target/linux/at91/config-4.14
similarity index 70%
rename from target/linux/at91/config-4.9
rename to target/linux/at91/config-4.14
index 926681f..62ba196 100644
--- a/target/linux/at91/config-4.9
+++ b/target/linux/at91/config-4.14
@@ -1,15 +1,25 @@ 
 CONFIG_ALIGNMENT_TRAP=y
 CONFIG_ARCH_AT91=y
 CONFIG_ARCH_CLOCKSOURCE_DATA=y
+CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
 CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
 CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+CONFIG_ARCH_HAS_SET_MEMORY=y
 CONFIG_ARCH_HAS_SG_CHAIN=y
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
 CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
 CONFIG_ARCH_HIBERNATION_POSSIBLE=y
 CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
 CONFIG_ARCH_MULTIPLATFORM=y
 # CONFIG_ARCH_MULTI_CPU_AUTO is not set
+# CONFIG_ARCH_MULTI_V4 is not set
+CONFIG_ARCH_MULTI_V4T=y
+CONFIG_ARCH_MULTI_V4_V5=y
+CONFIG_ARCH_MULTI_V5=y
 CONFIG_ARCH_NR_GPIO=0
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
+# CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set
 # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
 # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
 CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
@@ -23,44 +33,41 @@  CONFIG_ARM=y
 CONFIG_ARM_AT91_CPUIDLE=y
 CONFIG_ARM_CPU_SUSPEND=y
 CONFIG_ARM_HAS_SG_CHAIN=y
-CONFIG_ARM_HEAVY_MB=y
-CONFIG_ARM_L1_CACHE_SHIFT=6
-CONFIG_ARM_L1_CACHE_SHIFT_6=y
-# CONFIG_ARM_LPAE is not set
-CONFIG_ARM_PATCH_IDIV=y
+CONFIG_ARM_L1_CACHE_SHIFT=5
 CONFIG_ARM_PATCH_PHYS_VIRT=y
 CONFIG_ARM_THUMB=y
-# CONFIG_ARM_THUMBEE is not set
 CONFIG_ARM_UNWIND=y
-CONFIG_ARM_VIRT_EXT=y
+# CONFIG_AT91RM9200_WATCHDOG is not set
 CONFIG_AT91SAM9X_WATCHDOG=y
 CONFIG_AT91_ADC=y
-CONFIG_ATMEL_AIC5_IRQ=y
+CONFIG_AT91_SOC_ID=y
+CONFIG_ATMEL_AIC_IRQ=y
 CONFIG_ATMEL_EBI=y
 CONFIG_ATMEL_PIT=y
+CONFIG_ATMEL_PM=y
 CONFIG_ATMEL_SDRAMC=y
 CONFIG_ATMEL_SSC=y
+CONFIG_ATMEL_ST=y
 CONFIG_ATMEL_TCB_CLKSRC=y
 CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0
 CONFIG_ATMEL_TCLIB=y
 CONFIG_AT_HDMAC=y
-# CONFIG_AT_XDMAC is not set
+CONFIG_AT_XDMAC=y
 CONFIG_AUTO_ZRELADDR=y
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_BACKLIGHT_PWM=y
-# CONFIG_BLK_CGROUP is not set
+# CONFIG_BATTERY_ACT8945A is not set
 CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
 CONFIG_BLK_DEV_RAM_SIZE=8192
 CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_SCSI_REQUEST=y
 # CONFIG_BPF_SYSCALL is not set
 # CONFIG_BRIDGE is not set
-CONFIG_CACHE_L2X0=y
+# CONFIG_CACHE_L2X0 is not set
 CONFIG_CLKDEV_LOOKUP=y
-CONFIG_CLKSRC_OF=y
-CONFIG_CLKSRC_PROBE=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMA=y
 CONFIG_CMA_AREAS=7
@@ -73,34 +80,49 @@  CONFIG_COMPAT_BRK=y
 CONFIG_CONFIGFS_FS=y
 CONFIG_CONSOLE_TRANSLATIONS=y
 CONFIG_COREDUMP=y
-# CONFIG_CPUSETS is not set
-CONFIG_CPU_32v6K=y
-CONFIG_CPU_32v7=y
-CONFIG_CPU_ABRT_EV7=y
-# CONFIG_CPU_BPREDICT_DISABLE is not set
-CONFIG_CPU_CACHE_V7=y
-CONFIG_CPU_CACHE_VIPT=y
-CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_32v4T=y
+CONFIG_CPU_32v5=y
+CONFIG_CPU_ABRT_EV4T=y
+CONFIG_CPU_ABRT_EV5TJ=y
+CONFIG_CPU_ARM920T=y
+CONFIG_CPU_ARM926T=y
+# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+CONFIG_CPU_CACHE_V4WT=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
 CONFIG_CPU_CP15=y
 CONFIG_CPU_CP15_MMU=y
-CONFIG_CPU_HAS_ASID=y
+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
 # CONFIG_CPU_ICACHE_DISABLE is not set
 CONFIG_CPU_IDLE=y
 CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_PABRT_V7=y
+CONFIG_CPU_NO_EFFICIENT_FFS=y
+CONFIG_CPU_PABRT_LEGACY=y
 CONFIG_CPU_PM=y
-CONFIG_CPU_TLB_V7=y
-CONFIG_CPU_V7=y
+CONFIG_CPU_THUMB_CAPABLE=y
+CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_USE_DOMAINS=y
+CONFIG_CRASH_CORE=y
 CONFIG_CRC16=y
 # CONFIG_CRC32_SARWATE is not set
 CONFIG_CRC32_SLICEBY8=y
+CONFIG_CRC7=y
+CONFIG_CRC_ITU_T=y
 CONFIG_CROSS_MEMORY_ATTACH=y
+CONFIG_CRYPTO_ACOMP2=y
 CONFIG_CRYPTO_AEAD=y
 CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_AKCIPHER2=y
 CONFIG_CRYPTO_CCM=y
 CONFIG_CRYPTO_CRC32C=y
 CONFIG_CRYPTO_CTR=y
 CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_DEV_ATMEL_AES=y
+# CONFIG_CRYPTO_DEV_ATMEL_AUTHENC is not set
+# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
+CONFIG_CRYPTO_DEV_ATMEL_SHA=y
+CONFIG_CRYPTO_DEV_ATMEL_TDES=y
 CONFIG_CRYPTO_DRBG=y
 CONFIG_CRYPTO_DRBG_HMAC=y
 CONFIG_CRYPTO_DRBG_MENU=y
@@ -110,7 +132,9 @@  CONFIG_CRYPTO_GHASH=y
 CONFIG_CRYPTO_HASH=y
 CONFIG_CRYPTO_HASH2=y
 CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_HW=y
 CONFIG_CRYPTO_JITTERENTROPY=y
+CONFIG_CRYPTO_KPP2=y
 CONFIG_CRYPTO_LZO=y
 CONFIG_CRYPTO_MANAGER=y
 CONFIG_CRYPTO_MANAGER2=y
@@ -122,12 +146,14 @@  CONFIG_CRYPTO_RNG_DEFAULT=y
 CONFIG_CRYPTO_SEQIV=y
 CONFIG_CRYPTO_SHA256=y
 CONFIG_CRYPTO_WORKQUEUE=y
-CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_DEBUG_ALIGN_RODATA=y
 CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
 # CONFIG_DEBUG_UART_8250 is not set
 CONFIG_DEBUG_USER=y
 CONFIG_DEFAULT_IOSCHED="noop"
 CONFIG_DEFAULT_NOOP=y
+CONFIG_DEVKMEM=y
+CONFIG_DEVMEM=y
 CONFIG_DEVTMPFS=y
 CONFIG_DEVTMPFS_MOUNT=y
 CONFIG_DMADEVICES=y
@@ -140,13 +166,16 @@  CONFIG_DRM=y
 CONFIG_DRM_ATMEL_HLCDC=y
 CONFIG_DRM_BRIDGE=y
 CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
 CONFIG_DRM_GEM_CMA_HELPER=y
 CONFIG_DRM_KMS_CMA_HELPER=y
 CONFIG_DRM_KMS_FB_HELPER=y
 CONFIG_DRM_KMS_HELPER=y
 CONFIG_DRM_PANEL=y
+CONFIG_DRM_PANEL_BRIDGE=y
+# CONFIG_DRM_PANEL_LVDS is not set
 CONFIG_DRM_PANEL_SIMPLE=y
-CONFIG_DST_CACHE=y
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
 CONFIG_DTC=y
 CONFIG_DUMMY_CONSOLE=y
 CONFIG_EDAC_ATOMIC_SCRUB=y
@@ -154,7 +183,6 @@  CONFIG_EDAC_SUPPORT=y
 CONFIG_EEPROM_AT24=y
 CONFIG_ELF_CORE=y
 CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_EXPORTFS=y
 CONFIG_EXT4_FS=y
 CONFIG_FANOTIFY=y
 CONFIG_FAT_FS=y
@@ -165,6 +193,7 @@  CONFIG_FB_CFB_FILLRECT=y
 CONFIG_FB_CFB_IMAGEBLIT=y
 CONFIG_FB_CMDLINE=y
 CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set
 CONFIG_FB_SYS_COPYAREA=y
 CONFIG_FB_SYS_FILLRECT=y
 CONFIG_FB_SYS_FOPS=y
@@ -179,8 +208,10 @@  CONFIG_FREEZER=y
 CONFIG_FS_MBCACHE=y
 # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
 CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CPU_AUTOPROBE=y
 CONFIG_GENERIC_EARLY_IOREMAP=y
 CONFIG_GENERIC_IDLE_POLL_SETUP=y
 CONFIG_GENERIC_IO=y
@@ -193,10 +224,11 @@  CONFIG_GENERIC_SCHED_CLOCK=y
 CONFIG_GENERIC_SMP_IDLE_THREAD=y
 CONFIG_GENERIC_STRNCPY_FROM_USER=y
 CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GLOB=y
 CONFIG_GPIOLIB=y
 CONFIG_GPIOLIB_IRQCHIP=y
 CONFIG_GPIO_SYSFS=y
-CONFIG_GRACE_PERIOD=y
+# CONFIG_GRO_CELLS is not set
 CONFIG_HANDLE_DOMAIN_IRQ=y
 CONFIG_HARDIRQS_SW_RESEND=y
 CONFIG_HAS_DMA=y
@@ -204,20 +236,16 @@  CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT_MAP=y
 # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
 CONFIG_HAVE_ARCH_AUDITSYSCALL=y
-CONFIG_HAVE_ARCH_BITREVERSE=y
+# CONFIG_HAVE_ARCH_BITREVERSE is not set
 CONFIG_HAVE_ARCH_JUMP_LABEL=y
 CONFIG_HAVE_ARCH_KGDB=y
 CONFIG_HAVE_ARCH_PFN_VALID=y
 CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
 CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_ARM_SMCCC=y
-CONFIG_HAVE_AT91_GENERATED_CLK=y
-CONFIG_HAVE_AT91_H32MX=y
 CONFIG_HAVE_AT91_SMD=y
 CONFIG_HAVE_AT91_USB_CLK=y
 CONFIG_HAVE_AT91_UTMI=y
 # CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
-CONFIG_HAVE_CBPF_JIT=y
 CONFIG_HAVE_CC_STACKPROTECTOR=y
 CONFIG_HAVE_CLK=y
 CONFIG_HAVE_CLK_PREPARE=y
@@ -227,7 +255,8 @@  CONFIG_HAVE_DEBUG_KMEMLEAK=y
 CONFIG_HAVE_DMA_API_DEBUG=y
 CONFIG_HAVE_DMA_CONTIGUOUS=y
 CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_HAVE_EBPF_JIT=y
 CONFIG_HAVE_FB_ATMEL=y
 CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
 CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
@@ -244,7 +273,6 @@  CONFIG_HAVE_PERF_REGS=y
 CONFIG_HAVE_PERF_USER_STACK_DUMP=y
 CONFIG_HAVE_PROC_CPU=y
 CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_SMP=y
 CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
 CONFIG_HAVE_UID16=y
 CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
@@ -254,7 +282,9 @@  CONFIG_HID_GENERIC=y
 CONFIG_HW_CONSOLE=y
 CONFIG_HW_RANDOM=y
 CONFIG_HW_RANDOM_ATMEL=y
-CONFIG_HZ_FIXED=0
+CONFIG_HZ=128
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_FIXED=128
 CONFIG_HZ_PERIODIC=y
 CONFIG_I2C=y
 CONFIG_I2C_ALGOBIT=y
@@ -272,8 +302,10 @@  CONFIG_IIO_TRIGGERED_BUFFER=y
 CONFIG_INITRAMFS_SOURCE=""
 CONFIG_INPUT=y
 CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_JOYDEV=y
 CONFIG_INPUT_KEYBOARD=y
 CONFIG_INPUT_LEDS=y
+CONFIG_INPUT_POLLDEV=y
 CONFIG_INPUT_TOUCHSCREEN=y
 CONFIG_IOMMU_HELPER=y
 # CONFIG_IOSCHED_DEADLINE is not set
@@ -286,6 +318,15 @@  CONFIG_IRQ_DOMAIN=y
 CONFIG_IRQ_DOMAIN_DEBUG=y
 CONFIG_IRQ_FORCED_THREADING=y
 CONFIG_IRQ_WORK=y
+CONFIG_IR_JVC_DECODER=y
+CONFIG_IR_MCE_KBD_DECODER=y
+CONFIG_IR_NEC_DECODER=y
+CONFIG_IR_RC5_DECODER=y
+CONFIG_IR_RC6_DECODER=y
+CONFIG_IR_SANYO_DECODER=y
+CONFIG_IR_SHARP_DECODER=y
+CONFIG_IR_SONY_DECODER=y
+CONFIG_IR_XMP_DECODER=y
 CONFIG_JBD2=y
 # CONFIG_JFFS2_FS is not set
 CONFIG_KERNEL_GZIP=y
@@ -294,6 +335,7 @@  CONFIG_KEXEC=y
 CONFIG_KEXEC_CORE=y
 CONFIG_KEYBOARD_GPIO=y
 CONFIG_KEYBOARD_QT1070=y
+CONFIG_LCD_CLASS_DEVICE=y
 # CONFIG_LCD_PLATFORM is not set
 CONFIG_LEDS_GPIO=y
 CONFIG_LEDS_PWM=y
@@ -304,31 +346,39 @@  CONFIG_LEDS_TRIGGER_HEARTBEAT=y
 CONFIG_LEGACY_PTYS=y
 CONFIG_LEGACY_PTY_COUNT=4
 CONFIG_LIBFDT=y
+# CONFIG_LIRC is not set
 CONFIG_LOCALVERSION_AUTO=y
-CONFIG_LOCKD=y
 CONFIG_LOG_BUF_SHIFT=16
 CONFIG_LZO_COMPRESS=y
 CONFIG_LZO_DECOMPRESS=y
 CONFIG_MACB=y
+CONFIG_MACB_USE_HWSTAMP=y
 CONFIG_MANDATORY_FILE_LOCKING=y
-CONFIG_MDIO_BOARDINFO=y
+CONFIG_MDIO_BUS=y
+CONFIG_MDIO_DEVICE=y
 CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_CONTROLLER=y
 CONFIG_MEDIA_SUPPORT=y
 CONFIG_MEDIA_USB_SUPPORT=y
-# CONFIG_MEMCG is not set
 CONFIG_MEMORY=y
 CONFIG_MEMORY_ISOLATION=y
+CONFIG_MFD_ACT8945A=y
+CONFIG_MFD_AT91_USART=y
+CONFIG_MFD_ATMEL_FLEXCOM=y
 CONFIG_MFD_ATMEL_HLCDC=y
+CONFIG_MFD_ATMEL_SMC=y
 CONFIG_MFD_CORE=y
 CONFIG_MFD_SYSCON=y
 CONFIG_MICREL_PHY=y
-CONFIG_MIGHT_HAVE_CACHE_L2X0=y
 CONFIG_MIGHT_HAVE_PCI=y
 CONFIG_MIGRATION=y
 CONFIG_MMC=y
 CONFIG_MMC_ATMELMCI=y
 CONFIG_MMC_BLOCK=y
-# CONFIG_MMC_BLOCK_BOUNCE is not set
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_OF_AT91=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SPI=y
 CONFIG_MODULES_USE_ELF_REL=y
 # CONFIG_MTD_CFI_AMDSTD is not set
 # CONFIG_MTD_CFI_INTELEXT is not set
@@ -338,6 +388,8 @@  CONFIG_MTD_NAND=y
 CONFIG_MTD_NAND_ATMEL=y
 CONFIG_MTD_NAND_ECC=y
 # CONFIG_MTD_PHYSMAP_OF is not set
+CONFIG_MTD_SPI_NOR=y
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
 CONFIG_MTD_UBI=y
 CONFIG_MTD_UBI_BEB_LIMIT=20
 # CONFIG_MTD_UBI_BLOCK is not set
@@ -346,8 +398,9 @@  CONFIG_MTD_UBI_FASTMAP=y
 CONFIG_MTD_UBI_WL_THRESHOLD=4096
 CONFIG_MULTI_IRQ_HANDLER=y
 CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_KUSER_HELPERS=y
 CONFIG_NEED_PER_CPU_KM=y
-CONFIG_NEON=y
+CONFIG_NET_PTP_CLASSIFY=y
 CONFIG_NLS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_CODEPAGE_850=y
@@ -366,8 +419,6 @@  CONFIG_OF_NET=y
 CONFIG_OF_RESERVED_MEM=y
 CONFIG_OLD_SIGACTION=y
 CONFIG_OLD_SIGSUSPEND3=y
-CONFIG_OUTER_CACHE=y
-CONFIG_OUTER_CACHE_SYNC=y
 CONFIG_PAGE_OFFSET=0xC0000000
 # CONFIG_PANIC_ON_OOPS is not set
 CONFIG_PANIC_ON_OOPS_VALUE=0
@@ -382,10 +433,6 @@  CONFIG_PINCTRL=y
 CONFIG_PINCTRL_AT91=y
 CONFIG_PINCTRL_AT91PIO4=y
 # CONFIG_PINCTRL_SINGLE is not set
-# CONFIG_PL310_ERRATA_588369 is not set
-# CONFIG_PL310_ERRATA_727915 is not set
-# CONFIG_PL310_ERRATA_753970 is not set
-# CONFIG_PL310_ERRATA_769419 is not set
 CONFIG_PM=y
 CONFIG_PM_ADVANCED_DEBUG=y
 CONFIG_PM_CLK=y
@@ -398,8 +445,10 @@  CONFIG_POWER_RESET_AT91_POWEROFF=y
 CONFIG_POWER_RESET_AT91_RESET=y
 # CONFIG_POWER_RESET_AT91_SAMA5D2_SHDWC is not set
 CONFIG_POWER_SUPPLY=y
+CONFIG_PPS=y
 # CONFIG_PREVENT_FIRMWARE_BUILD is not set
 CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_PTP_1588_CLOCK=y
 CONFIG_PWM=y
 CONFIG_PWM_ATMEL=y
 CONFIG_PWM_ATMEL_HLCDC_PWM=y
@@ -407,14 +456,20 @@  CONFIG_PWM_ATMEL_TCB=y
 CONFIG_PWM_SYSFS=y
 CONFIG_RATIONAL=y
 # CONFIG_RCU_EXPERT is not set
+# CONFIG_RCU_NEED_SEGCBLIST is not set
 # CONFIG_RCU_STALL_COMMON is not set
+CONFIG_RC_CORE=y
+CONFIG_RC_DECODERS=y
+# CONFIG_RC_DEVICES is not set
+CONFIG_RC_MAP=y
 CONFIG_REGMAP=y
 CONFIG_REGMAP_I2C=y
 CONFIG_REGMAP_MMIO=y
 CONFIG_REGMAP_SPI=y
 CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_ACT8945A is not set
 CONFIG_REGULATOR_FIXED_VOLTAGE=y
-CONFIG_ROOT_NFS=y
+CONFIG_RFKILL_LEDS=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_DRV_AT91RM9200=y
 # CONFIG_RTC_DRV_AT91SAM9 is not set
@@ -437,16 +492,19 @@  CONFIG_SLAB=y
 CONFIG_SND=y
 CONFIG_SND_ARM=y
 # CONFIG_SND_AT73C213 is not set
-# CONFIG_SND_AT91_SOC_SAM9G20_WM8731 is not set
-# CONFIG_SND_AT91_SOC_SAM9X5_WM8731 is not set
+CONFIG_SND_AT91_SOC_SAM9G20_WM8731=y
+CONFIG_SND_AT91_SOC_SAM9X5_WM8731=y
 CONFIG_SND_ATMEL_SOC=y
-# CONFIG_SND_ATMEL_SOC_CLASSD is not set
+CONFIG_SND_ATMEL_SOC_CLASSD=y
 CONFIG_SND_ATMEL_SOC_DMA=y
-# CONFIG_SND_ATMEL_SOC_PDMIC is not set
+CONFIG_SND_ATMEL_SOC_I2S=y
+CONFIG_SND_ATMEL_SOC_PDC=y
+CONFIG_SND_ATMEL_SOC_PDMIC=y
 CONFIG_SND_ATMEL_SOC_SSC=y
 CONFIG_SND_ATMEL_SOC_SSC_DMA=y
+CONFIG_SND_ATMEL_SOC_SSC_PDC=y
+# CONFIG_SND_ATMEL_SOC_TSE850_PCM5142 is not set
 CONFIG_SND_ATMEL_SOC_WM8904=y
-# CONFIG_SND_COMPRESS_OFFLOAD is not set
 CONFIG_SND_DMAENGINE_PCM=y
 CONFIG_SND_JACK=y
 CONFIG_SND_JACK_INPUT_DEV=y
@@ -455,40 +513,50 @@  CONFIG_SND_PCM_TIMER=y
 CONFIG_SND_SOC=y
 CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
 CONFIG_SND_SOC_I2C_AND_SPI=y
+# CONFIG_SND_SOC_MIKROE_PROTO is not set
+CONFIG_SND_SOC_WM8731=y
 CONFIG_SND_SOC_WM8904=y
 CONFIG_SND_SPI=y
 CONFIG_SND_SUPPORT_OLD_API=y
 CONFIG_SND_TIMER=y
+CONFIG_SOC_AT91RM9200=y
+CONFIG_SOC_AT91SAM9=y
 CONFIG_SOC_BUS=y
-# CONFIG_SOC_SAMA5D2 is not set
-# CONFIG_SOC_SAMA5D3 is not set
-# CONFIG_SOC_SAMA5D4 is not set
+CONFIG_SOC_SAM_V4_V5=y
 CONFIG_SOUND=y
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SOUND_OSS_CORE_PRECLAIM=y
 CONFIG_SPARSE_IRQ=y
 CONFIG_SPI=y
+# CONFIG_SPI_AT91_USART is not set
 CONFIG_SPI_ATMEL=y
+CONFIG_SPI_ATMEL_QUADSPI=y
 CONFIG_SPI_BITBANG=y
 CONFIG_SPI_GPIO=y
 CONFIG_SPI_MASTER=y
+CONFIG_SPLIT_PTLOCK_CPUS=999999
 # CONFIG_SQUASHFS is not set
 CONFIG_SRAM=y
+CONFIG_SRAM_EXEC=y
 CONFIG_SRCU=y
 # CONFIG_STAGING is not set
 # CONFIG_STANDALONE is not set
-CONFIG_SUNRPC=y
 CONFIG_SUSPEND=y
 CONFIG_SUSPEND_FREEZER=y
 # CONFIG_SWAP is not set
 CONFIG_SWIOTLB=y
 CONFIG_SWPHY=y
-# CONFIG_SWP_EMULATE is not set
+CONFIG_SYNC_FILE=y
 # CONFIG_SYN_COOKIES is not set
 CONFIG_SYSFS_SYSCALL=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
 # CONFIG_TCP_CONG_ADVANCED is not set
-# CONFIG_THUMB2_KERNEL is not set
 CONFIG_TICK_CPU_ACCOUNTING=y
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_TINY_SRCU=y
 # CONFIG_TMPFS_XATTR is not set
+# CONFIG_TOUCHSCREEN_ADC is not set
 CONFIG_TOUCHSCREEN_PROPERTIES=y
 CONFIG_UACCESS_WITH_MEMCPY=y
 CONFIG_UBIFS_FS=y
@@ -501,30 +569,12 @@  CONFIG_USB=y
 CONFIG_USB_ACM=y
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 # CONFIG_USB_AT91 is not set
-# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_ATMEL_USBA is not set
 CONFIG_USB_COMMON=y
-CONFIG_USB_CONFIGFS_ACM=y
-# CONFIG_USB_CONFIGFS_ECM is not set
-# CONFIG_USB_CONFIGFS_ECM_SUBSET is not set
-# CONFIG_USB_CONFIGFS_EEM is not set
-# CONFIG_USB_CONFIGFS_F_FS is not set
-# CONFIG_USB_CONFIGFS_F_HID is not set
-# CONFIG_USB_CONFIGFS_F_LB_SS is not set
-# CONFIG_USB_CONFIGFS_F_MIDI is not set
-# CONFIG_USB_CONFIGFS_F_PRINTER is not set
-# CONFIG_USB_CONFIGFS_F_UAC1 is not set
-# CONFIG_USB_CONFIGFS_F_UAC2 is not set
-# CONFIG_USB_CONFIGFS_F_UVC is not set
-CONFIG_USB_CONFIGFS_MASS_STORAGE=y
-# CONFIG_USB_CONFIGFS_NCM is not set
-# CONFIG_USB_CONFIGFS_OBEX is not set
-# CONFIG_USB_CONFIGFS_RNDIS is not set
-# CONFIG_USB_CONFIGFS_SERIAL is not set
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_EHCI_HCD_AT91=y
 # CONFIG_USB_EHCI_HCD_PLATFORM is not set
 # CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-# CONFIG_USB_ETH is not set
 CONFIG_USB_GADGET=y
 CONFIG_USB_HID=y
 CONFIG_USB_OHCI_HCD=y
@@ -538,15 +588,56 @@  CONFIG_USB_SERIAL_PL2303=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_SUPPORT=y
 CONFIG_USE_OF=y
+CONFIG_V4L2_FWNODE=y
 CONFIG_V4L_PLATFORM_DRIVERS=y
 CONFIG_VECTORS_BASE=0xffff0000
 CONFIG_VFAT_FS=y
 CONFIG_VFP=y
-CONFIG_VFPv3=y
+CONFIG_VIDEOBUF2_CORE=y
+CONFIG_VIDEOBUF2_DMA_CONTIG=y
+CONFIG_VIDEOBUF2_MEMOPS=y
 CONFIG_VIDEOMODE_HELPERS=y
+# CONFIG_VIDEO_AD5820 is not set
+# CONFIG_VIDEO_AD9389B is not set
+# CONFIG_VIDEO_ADP1653 is not set
+# CONFIG_VIDEO_ADV748X is not set
+# CONFIG_VIDEO_ADV7511 is not set
+# CONFIG_VIDEO_ADV7604 is not set
+# CONFIG_VIDEO_ADV7842 is not set
+# CONFIG_VIDEO_AS3645A is not set
+CONFIG_VIDEO_ATMEL_ISC=y
+CONFIG_VIDEO_ATMEL_ISI=y
 # CONFIG_VIDEO_CPIA2 is not set
 CONFIG_VIDEO_DEV=y
+# CONFIG_VIDEO_DW9714 is not set
+# CONFIG_VIDEO_ET8EK8 is not set
+# CONFIG_VIDEO_GS1662 is not set
+CONFIG_VIDEO_IR_I2C=y
+# CONFIG_VIDEO_LM3560 is not set
+# CONFIG_VIDEO_LM3646 is not set
+# CONFIG_VIDEO_M5MOLS is not set
+# CONFIG_VIDEO_MT9M032 is not set
+# CONFIG_VIDEO_MT9P031 is not set
+# CONFIG_VIDEO_MT9T001 is not set
+# CONFIG_VIDEO_MT9V032 is not set
+# CONFIG_VIDEO_MUX is not set
+# CONFIG_VIDEO_OV13858 is not set
+# CONFIG_VIDEO_OV5640 is not set
+# CONFIG_VIDEO_OV5645 is not set
+# CONFIG_VIDEO_OV5647 is not set
+# CONFIG_VIDEO_OV5670 is not set
+# CONFIG_VIDEO_OV7740 is not set
+# CONFIG_VIDEO_OV9650 is not set
+# CONFIG_VIDEO_S5C73M3 is not set
+# CONFIG_VIDEO_S5K4ECGX is not set
+# CONFIG_VIDEO_S5K5BAF is not set
+# CONFIG_VIDEO_S5K6A3 is not set
+# CONFIG_VIDEO_S5K6AA is not set
+# CONFIG_VIDEO_SMIAPP is not set
+# CONFIG_VIDEO_TC358743 is not set
 CONFIG_VIDEO_V4L2=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+# CONFIG_VIDEO_XILINX is not set
 # CONFIG_VLAN_8021Q is not set
 CONFIG_VM_EVENT_COUNTERS=y
 CONFIG_VT=y
@@ -556,6 +647,13 @@  CONFIG_VT_CONSOLE_SLEEP=y
 CONFIG_WATCHDOG_CORE=y
 # CONFIG_WLAN is not set
 # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_BCJ=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_X86=y
 CONFIG_ZBOOT_ROM_BSS=0x0
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZLIB_DEFLATE=y
diff --git a/target/linux/at91/patches-4.9/100-ARM-at91-build-dtb-for-LMU5000.patch b/target/linux/at91/patches-4.14/100-ARM-at91-build-dtb-for-LMU5000.patch
similarity index 51%
rename from target/linux/at91/patches-4.9/100-ARM-at91-build-dtb-for-LMU5000.patch
rename to target/linux/at91/patches-4.14/100-ARM-at91-build-dtb-for-LMU5000.patch
index 2a64fb8..80b010f 100644
--- a/target/linux/at91/patches-4.9/100-ARM-at91-build-dtb-for-LMU5000.patch
+++ b/target/linux/at91/patches-4.14/100-ARM-at91-build-dtb-for-LMU5000.patch
@@ -1,10 +1,10 @@ 
 --- a/arch/arm/boot/dts/Makefile
 +++ b/arch/arm/boot/dts/Makefile
 @@ -32,6 +32,7 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \
- 	usb_a9g20.dtb \
- 	usb_a9g20_lpw.dtb \
- 	at91sam9m10g45ek.dtb \
+	usb_a9g20.dtb \
+	usb_a9g20_lpw.dtb \
+	at91sam9m10g45ek.dtb \
 +	lmu5000.dtb \
- 	pm9g45.dtb \
- 	at91sam9n12ek.dtb \
- 	at91sam9rlek.dtb \
+	pm9g45.dtb \
+	at91sam9n12ek.dtb \
+	at91sam9rlek.dtb \
diff --git a/target/linux/at91/patches-4.14/101-ARM-at91-build-dtb-for-q5xr5.patch b/target/linux/at91/patches-4.14/101-ARM-at91-build-dtb-for-q5xr5.patch
new file mode 100644
index 0000000..f780d7d
--- /dev/null
+++ b/target/linux/at91/patches-4.14/101-ARM-at91-build-dtb-for-q5xr5.patch
@@ -0,0 +1,10 @@ 
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -40,6 +40,7 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \
+	at91-ariettag25.dtb \
+	at91-cosino_mega2560.dtb \
+	at91-kizboxmini.dtb \
++	at91-q5xr5.dtb \
+	at91sam9g15ek.dtb \
+	at91sam9g25ek.dtb \
+	at91sam9g35ek.dtb \
diff --git a/target/linux/at91/patches-4.9/102-ARM-at91-build-dtb-for-wb45n.patch b/target/linux/at91/patches-4.14/102-ARM-at91-build-dtb-for-wb45n.patch
similarity index 63%
rename from target/linux/at91/patches-4.9/102-ARM-at91-build-dtb-for-wb45n.patch
rename to target/linux/at91/patches-4.14/102-ARM-at91-build-dtb-for-wb45n.patch
index aeb523a..f51c3b8 100644
--- a/target/linux/at91/patches-4.9/102-ARM-at91-build-dtb-for-wb45n.patch
+++ b/target/linux/at91/patches-4.14/102-ARM-at91-build-dtb-for-wb45n.patch
@@ -1,12 +1,12 @@ 
 --- a/arch/arm/boot/dts/Makefile
 +++ b/arch/arm/boot/dts/Makefile
 @@ -45,7 +45,8 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \
- 	at91sam9g25ek.dtb \
- 	at91sam9g35ek.dtb \
- 	at91sam9x25ek.dtb \
+	at91sam9g25ek.dtb \
+	at91sam9g35ek.dtb \
+	at91sam9x25ek.dtb \
 -	at91sam9x35ek.dtb
 +	at91sam9x35ek.dtb \
 +	wb45n.dtb
  dtb-$(CONFIG_SOC_SAM_V7) += \
- 	at91-kizbox2.dtb \
- 	at91-sama5d2_xplained.dtb \
+	at91-kizbox2.dtb \
+	at91-sama5d2_xplained.dtb \
diff --git a/target/linux/at91/patches-4.9/103-ARM-at91-build-dtb-for-wb50n.patch b/target/linux/at91/patches-4.14/103-ARM-at91-build-dtb-for-wb50n.patch
similarity index 69%
rename from target/linux/at91/patches-4.9/103-ARM-at91-build-dtb-for-wb50n.patch
rename to target/linux/at91/patches-4.14/103-ARM-at91-build-dtb-for-wb50n.patch
index a30a803..a81b087 100644
--- a/target/linux/at91/patches-4.9/103-ARM-at91-build-dtb-for-wb50n.patch
+++ b/target/linux/at91/patches-4.14/103-ARM-at91-build-dtb-for-wb50n.patch
@@ -1,12 +1,12 @@ 
 --- a/arch/arm/boot/dts/Makefile
 +++ b/arch/arm/boot/dts/Makefile
 @@ -59,7 +59,8 @@ dtb-$(CONFIG_SOC_SAM_V7) += \
- 	at91-sama5d4_ma5d4evk.dtb \
- 	at91-sama5d4_xplained.dtb \
- 	at91-sama5d4ek.dtb \
+	at91-sama5d4_ma5d4evk.dtb \
+	at91-sama5d4_xplained.dtb \
+	at91-sama5d4ek.dtb \
 -	at91-vinco.dtb
 +	at91-vinco.dtb \
 +	wb50n.dtb
  dtb-$(CONFIG_ARCH_ATLAS6) += \
- 	atlas6-evb.dtb
+	atlas6-evb.dtb
  dtb-$(CONFIG_ARCH_ATLAS7) += \
diff --git a/target/linux/at91/patches-4.14/104-ARM-at91-build-dtb-for-sama5d2.patch b/target/linux/at91/patches-4.14/104-ARM-at91-build-dtb-for-sama5d2.patch
new file mode 100644
index 0000000..b0f3576
--- /dev/null
+++ b/target/linux/at91/patches-4.14/104-ARM-at91-build-dtb-for-sama5d2.patch
@@ -0,0 +1,1576 @@ 
+--- a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pio4-pinctrl.txt
++++ b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pio4-pinctrl.txt
+@@ -36,6 +36,8 @@ Optional properties:
+ - GENERIC_PINCONFIG: generic pinconfig options to use, bias-disable,
+ bias-pull-down, bias-pull-up, drive-open-drain, input-schmitt-enable,
+ input-debounce, output-low, output-high.
++- atmel,drive-strength: 0 or 1 for low drive, 2 for medium drive and 3 for
++high drive. The default value is low drive.
+
+ Example:
+
+@@ -66,6 +68,7 @@ Example:
+			pinmux = <PIN_PB0>,
+				 <PIN_PB5>;
+			bias-pull-up;
++			atmel,drive-strength = <ATMEL_PIO_DRVSTR_ME>;
+		};
+
+		pinctrl_sdmmc1_default: sdmmc1_default {
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -50,6 +50,7 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \
+	wb45n.dtb
+ dtb-$(CONFIG_SOC_SAM_V7) += \
+	at91-kizbox2.dtb \
++	at91-sama5d2_ptc_ek.dtb \
+	at91-sama5d27_som1_ek.dtb \
+	at91-sama5d2_xplained.dtb \
+	at91-sama5d3_xplained.dtb \
+--- a/arch/arm/boot/dts/at91-sama5d27_som1.dtsi
++++ b/arch/arm/boot/dts/at91-sama5d27_som1.dtsi
+@@ -62,13 +62,52 @@
+
+	ahb {
+		apb {
++			qspi1: spi@f0024000 {
++				pinctrl-names = "default";
++				pinctrl-0 = <&pinctrl_qspi1_default>;
++
++				flash@0 {
++					#address-cells = <1>;
++					#size-cells = <1>;
++					compatible = "jedec,spi-nor";
++					reg = <0>;
++					spi-max-frequency = <80000000>;
++					m25p,fast-read;
++
++					at91bootstrap@00000000 {
++						label = "at91bootstrap";
++						reg = <0x00000000 0x00010000>;
++					};
++
++					bootloader@00010000 {
++						label = "bootloader";
++						reg = <0x00010000 0x000a0000>;
++					};
++
++					bootloaderenv@000b0000 {
++						label = "bootloader env";
++						reg = <0x000b0000 0x00010000>;
++					};
++
++					dtb@000c0000 {
++						label = "device tree";
++						reg = <0x000c0000 0x0020000>;
++					};
++
++					kernel@000e0000 {
++						label = "kernel";
++						reg = <0x000e0000 0x0400000>;
++					};
++				};
++			};
++
+			macb0: ethernet@f8008000 {
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_macb0_default>;
+				phy-mode = "rmii";
+
+-				ethernet-phy@0 {
+-					reg = <0x0>;
++				ethernet-phy@7 {
++					reg = <0x7>;
+					interrupt-parent = <&pioA>;
+					interrupts = <PIN_PD31 IRQ_TYPE_LEVEL_LOW>;
+					pinctrl-names = "default";
+@@ -76,7 +115,41 @@
+				};
+			};
+
++			i2c0: i2c@f8028000 {
++				dmas = <0>, <0>;
++				pinctrl-names = "default";
++				pinctrl-0 = <&pinctrl_i2c0_default>;
++				status = "okay";
++
++				at24@50 {
++					compatible = "24c02";
++					reg = <0x50>;
++					pagesize = <8>;
++				};
++			};
++
+			pinctrl@fc038000 {
++				pinctrl_i2c0_default: i2c0_default {
++					pinmux = <PIN_PD21__TWD0>,
++						 <PIN_PD22__TWCK0>;
++					bias-disable;
++				};
++
++				pinctrl_qspi1_default: qspi1_default {
++					sck_cs {
++						pinmux = <PIN_PB5__QSPI1_SCK>,
++							 <PIN_PB6__QSPI1_CS>;
++						bias-disable;
++					};
++
++					data {
++						pinmux = <PIN_PB7__QSPI1_IO0>,
++							 <PIN_PB8__QSPI1_IO1>,
++							 <PIN_PB9__QSPI1_IO2>,
++							 <PIN_PB10__QSPI1_IO3>;
++						bias-pull-up;
++					};
++				};
+
+				pinctrl_macb0_default: macb0_default {
+					pinmux = <PIN_PD9__GTXCK>,
+--- a/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts
++++ b/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts
+@@ -53,19 +53,27 @@
+	model = "Atmel SAMA5D27 SOM1 EK";
+	compatible = "atmel,sama5d27-som1-ek", "atmel,sama5d27-som1", "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5";
+
++	aliases {
++		serial0 = &uart1;	/* DBGU */
++		serial1 = &uart4;	/* mikro BUS 1 */
++		serial2 = &uart2;	/* mikro BUS 2 */
++		i2c1	= &i2c1;
++		i2c2	= &i2c2;
++	};
++
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	ahb {
+-		usb0: gadget@00300000 {
++		usb0: gadget@300000 {
+			atmel,vbus-gpio = <&pioA PIN_PD20 GPIO_ACTIVE_HIGH>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_usba_vbus>;
+			status = "okay";
+		};
+
+-		usb1: ohci@00400000 {
++		usb1: ohci@400000 {
+			num-ports = <3>;
+			atmel,vbus-gpio = <0 /* &pioA PIN_PD20 GPIO_ACTIVE_HIGH */
+					   &pioA PIN_PA27 GPIO_ACTIVE_HIGH
+@@ -76,7 +84,7 @@
+			status = "okay";
+		};
+
+-		usb2: ehci@00500000 {
++		usb2: ehci@500000 {
+			status = "okay";
+		};
+
+@@ -95,12 +103,35 @@
+		};
+
+		apb {
++			pmc: pmc@f0014000 {
++				pmc_fast_restart {
++					compatible = "atmel,sama5d2-pmc-fast-startup";
++					#address-cells = <1>;
++					#size-cells = <0>;
++
++					atmel,wakeup-rtc-timer;
++
++					wkpin: input@0 {
++						reg = <0>;
++					};
++
++					gmac_wol: input@10 {
++						reg = <10>;
++						atmel,wakeup-active-high;
++					};
++				};
++			};
++
+			isc: isc@f0008000 {
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_isc_base &pinctrl_isc_data_8bit &pinctrl_isc_data_9_10 &pinctrl_isc_data_11_12>;
+				status = "okay";
+			};
+
++			qspi1: spi@f0024000 {
++				status = "okay";
++			};
++
+			spi0: spi@f8000000 {
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_spi0_default>;
+@@ -111,6 +142,18 @@
+				status = "okay";
+			};
+
++			tcb0: timer@f800c000 {
++				timer0: timer@0 {
++					compatible = "atmel,tcb-timer";
++					reg = <0>;
++				};
++
++				timer1: timer@1 {
++					compatible = "atmel,tcb-timer";
++					reg = <1>;
++				};
++			};
++
+			uart1: serial@f8020000 {
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_uart1_default>;
+@@ -128,12 +171,14 @@
+			};
+
+			pwm0: pwm@f802c000 {
+-				status = "okay";
++				pinctrl-names = "default";
++				pinctrl-0 = <&pinctrl_mikrobus1_pwm &pinctrl_mikrobus2_pwm>;
++				status = "disabled"; /* Conflict with leds. */
+			};
+
+			flx1: flexcom@f8038000 {
+				atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
+-				status = "disabled";
++				status = "okay";
+
+				i2c2: i2c@600 {
+					compatible = "atmel,sama5d2-i2c";
+@@ -147,7 +192,7 @@
+					pinctrl-names = "default";
+					pinctrl-0 = <&pinctrl_mikrobus_i2c>;
+					atmel,fifo-size = <16>;
+-					status = "disabled";
++					status = "okay";
+				};
+			};
+
+@@ -165,17 +210,12 @@
+				status = "okay";
+			};
+
+-			can0: can@f8054000 {
+-				pinctrl-names = "default";
+-				pinctrl-0 = <&pinctrl_can0_default>;
+-			};
+-
+			uart3: serial@fc008000 {
+				atmel,use-dma-rx;
+				atmel,use-dma-tx;
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_uart3_default>;
+-				status = "disabled";
++				status = "disabled"; /* Conflict with isc. */
+			};
+
+			uart4: serial@fc00c000 {
+@@ -199,7 +239,7 @@
+					pinctrl-names = "default";
+					pinctrl-0 = <&pinctrl_flx3_default>;
+					atmel,fifo-size = <32>;
+-					status = "disabled";
++					status = "disabled"; /* Conflict with isc. */
+				};
+
+				spi2: spi@400 {
+@@ -211,7 +251,7 @@
+					pinctrl-names = "default";
+					pinctrl-0 = <&pinctrl_flx3_default>;
+					atmel,fifo-size = <16>;
+-					status = "disabled";
++					status = "disabled"; /* Conflict with isc. */
+				};
+			};
+
+@@ -228,7 +268,7 @@
+					pinctrl-names = "default";
+					pinctrl-0 = <&pinctrl_flx4_default>;
+					atmel,fifo-size = <32>;
+-					status = "disabled";
++					status = "disabled"; /* Conflict with spi3 and i2c3. */
+				};
+
+				spi3: spi@400 {
+@@ -240,7 +280,7 @@
+					pinctrl-names = "default";
+					pinctrl-0 = <&pinctrl_mikrobus_spi &pinctrl_mikrobus1_spi_cs &pinctrl_mikrobus2_spi_cs>;
+					atmel,fifo-size = <16>;
+-					status = "okay";
++					status = "okay"; /* Conflict with uart6 and i2c3. */
+				};
+
+				i2c3: i2c@600 {
+@@ -255,7 +295,7 @@
+					pinctrl-names = "default";
+					pinctrl-0 = <&pinctrl_flx4_default>;
+					atmel,fifo-size = <16>;
+-					status = "disabled";
++					status = "disabled"; /* Conflict with uart6 and spi3. */
+				};
+			};
+
+@@ -268,12 +308,6 @@
+
+			pinctrl@fc038000 {
+
+-				pinctrl_can0_default: can0_default {
+-					pinmux = <PIN_PC10__CANTX0>,
+-						 <PIN_PC11__CANRX0>;
+-					bias-disable;
+-				};
+-
+				pinctrl_can1_default: can1_default {
+					pinmux = <PIN_PC26__CANTX1>,
+						 <PIN_PC27__CANRX1>;
+@@ -350,7 +384,7 @@
+							 <PIN_PA7__SDMMC0_DAT5>,
+							 <PIN_PA8__SDMMC0_DAT6>,
+							 <PIN_PA9__SDMMC0_DAT7>;
+-						bias-pull-up;
++						bias-disable;
+					};
+
+					ck_cd_vddsel {
+@@ -368,7 +402,7 @@
+							 <PIN_PA19__SDMMC1_DAT1>,
+							 <PIN_PA20__SDMMC1_DAT2>,
+							 <PIN_PA21__SDMMC1_DAT3>;
+-						bias-pull-up;
++						bias-disable;
+					};
+
+					conf-ck_cd {
+@@ -512,6 +546,7 @@
+			label = "USER";
+			gpios = <&pioA PIN_PA29 GPIO_ACTIVE_LOW>;
+			linux,code = <0x104>;
++			wakeup-source;
+		};
+	};
+
+@@ -519,7 +554,7 @@
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_led_gpio_default>;
+-		status = "okay";
++		status = "okay"; /* Conflict with pwm0. */
+
+		red {
+			label = "red";
+--- /dev/null
++++ b/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts
+@@ -0,0 +1,433 @@
++// SPDX-License-Identifier: (GPL-2.0+ OR X11)
++/*
++ * at91-sama5d2_ptc_ek.dts - Device Tree file for SAMA5D2 PTC EK board
++ *
++ *  Copyright (C) 2017 Microchip/Atmel,
++ *		  2017 Wenyou Yang <wenyou.yang@microchip.com>
++ *		  2017 Ludovic Desroches <ludovic.desroches@microchip.com>
++ */
++/dts-v1/;
++#include "sama5d2.dtsi"
++#include "sama5d2-pinfunc.h"
++#include <dt-bindings/mfd/atmel-flexcom.h>
++#include <dt-bindings/gpio/gpio.h>
++#include <dt-bindings/pinctrl/at91.h>
++
++/ {
++	model = "Atmel SAMA5D2 PTC EK";
++	compatible = "atmel,sama5d2-ptc_ek", "atmel,sama5d2", "atmel,sama5";
++
++	aliases {
++		serial0 = &uart0;
++		i2c0	= &i2c0;
++		i2c1	= &i2c1;
++		i2c2	= &i2c2;
++	};
++
++	chosen {
++		stdout-path = "serial0:115200n8";
++	};
++
++	clocks {
++		slow_xtal {
++			clock-frequency = <32768>;
++		};
++
++		main_xtal {
++			clock-frequency = <24000000>;
++		};
++	};
++
++	ahb {
++		usb0: gadget@300000 {
++			atmel,vbus-gpio = <&pioA PIN_PB11 GPIO_ACTIVE_HIGH>;
++			pinctrl-names = "default";
++			pinctrl-0 = <&pinctrl_usba_vbus>;
++			status = "okay";
++		};
++
++		usb1: ohci@400000 {
++			num-ports = <3>;
++			atmel,vbus-gpio = <0
++					   &pioA PIN_PB12 GPIO_ACTIVE_HIGH
++					   0
++					  >;
++			pinctrl-names = "default";
++			pinctrl-0 = <&pinctrl_usb_default>;
++			status = "okay";
++		};
++
++		usb2: ehci@500000 {
++			status = "okay";
++		};
++
++		ebi: ebi@10000000 {
++			pinctrl-names = "default";
++			pinctrl-0 = <&pinctrl_nand_default>;
++			status = "okay"; /* conflicts with sdmmc1 and qspi0 */
++
++			nand_controller: nand-controller {
++				status = "okay";
++
++				nand@3 {
++					reg = <0x3 0x0 0x2>;
++					atmel,rb = <0>;
++					nand-bus-width = <8>;
++					nand-ecc-mode = "hw";
++					nand-on-flash-bbt;
++					label = "atmel_nand";
++
++					partitions {
++						compatible = "fixed-partitions";
++						#address-cells = <1>;
++						#size-cells = <1>;
++
++						at91bootstrap@0 {
++							label = "bootstrap";
++							reg = <0x0 0x40000>;
++						};
++
++						bootloader@40000 {
++							label = "bootloader";
++							reg = <0x40000 0xc0000>;
++						};
++
++						bootloaderenv@0x100000 {
++							label = "bootloader env";
++							reg = <0x100000 0x40000>;
++						};
++
++						bootloaderenvred@0x140000 {
++							label = "bootloader env redundant";
++							reg = <0x140000 0x40000>;
++						};
++
++						dtb@180000 {
++							label = "device tree";
++							reg = <0x180000 0x80000>;
++						};
++
++						kernel@200000 {
++							label = "kernel";
++							reg = <0x200000 0x600000>;
++						};
++
++						rootfs@800000 {
++							label = "rootfs";
++							reg = <0x800000 0x1f800000>;
++						};
++					};
++				};
++			};
++		};
++
++		sdmmc0: sdio-host@a0000000 {
++			bus-width = <8>;
++			pinctrl-names = "default";
++			pinctrl-0 = <&pinctrl_sdmmc0_default>;
++			status = "okay";
++		};
++
++		apb {
++			pmc: pmc@f0014000 {
++				pmc_fast_restart {
++					compatible = "atmel,sama5d2-pmc-fast-startup";
++					#address-cells = <1>;
++					#size-cells = <0>;
++
++					atmel,wakeup-rtc-timer;
++
++					wkpin: input@0 {
++						reg = <0>;
++					};
++
++					gmac_wol: input@10 {
++						reg = <10>;
++						atmel,wakeup-active-high;
++					};
++				};
++			};
++
++			spi0: spi@f8000000 {
++				pinctrl-names = "default";
++				pinctrl-0 = <&pinctrl_spi0_default>;
++				status = "okay";
++			};
++
++			macb0: ethernet@f8008000 {
++				pinctrl-names = "default";
++				pinctrl-0 = <&pinctrl_macb0_default &pinctrl_macb0_phy_irq>;
++				phy-mode = "rmii";
++				status = "okay";
++
++				ethernet-phy@1 {
++					reg = <0x1>;
++					interrupt-parent = <&pioA>;
++					interrupts = <56 IRQ_TYPE_LEVEL_LOW>;
++				};
++			};
++
++			tcb0: timer@f800c000 {
++				timer0: timer@0 {
++					compatible = "atmel,tcb-timer";
++					reg = <0>;
++				};
++
++				timer1: timer@1 {
++					compatible = "atmel,tcb-timer";
++					reg = <1>;
++				};
++			};
++
++			uart0: serial@f801c000 {
++				pinctrl-names = "default";
++				pinctrl-0 = <&pinctrl_uart0_default>;
++				atmel,use-dma-rx;
++				atmel,use-dma-tx;
++				status = "okay";
++			};
++
++			uart2: serial@f8024000 {
++				pinctrl-names = "default";
++				pinctrl-0 = <&pinctrl_uart2_default>;
++				atmel,use-dma-rx;
++				atmel,use-dma-tx;
++				status = "okay";
++			};
++
++			i2c0: i2c@f8028000 {
++				dmas = <0>, <0>;
++				pinctrl-names = "default";
++				pinctrl-0 = <&pinctrl_i2c0_default>;
++				status = "okay";
++			};
++
++			flx0: flexcom@f8034000 {
++				atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
++				status = "okay";
++
++				i2c2: i2c@600 {
++					compatible = "atmel,sama5d2-i2c";
++					reg = <0x600 0x200>;
++					interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
++					dmas = <0>, <0>;
++					dma-names = "tx", "rx";
++					#address-cells = <1>;
++					#size-cells = <0>;
++					clocks = <&flx0_clk>;
++					pinctrl-names = "default";
++					pinctrl-0 = <&pinctrl_flx0_default>;
++					atmel,fifo-size = <16>;
++					status = "okay";
++				};
++			};
++
++			shdwc@f8048010 {
++				atmel,shdwc-debouncer = <976>;
++
++				input@0 {
++					reg = <0>;
++					atmel,wakeup-type = "low";
++				};
++			};
++
++			watchdog@f8048040 {
++				status = "okay";
++			};
++
++			spi1: spi@fc000000 {
++				pinctrl-names = "default";
++				pinctrl-0 = <&pinctrl_spi1_default>;
++				status = "okay";
++			};
++
++			i2c1: i2c@fc028000 {
++				dmas = <0>, <0>;
++				pinctrl-names = "default";
++				pinctrl-0 = <&pinctrl_i2c1_default>;
++				status = "okay";
++
++				at24@50 {
++					compatible = "24c02";
++					reg = <0x50>;
++					pagesize = <8>;
++				};
++			};
++
++			pinctrl@fc038000 {
++				pinctrl_flx0_default: flx0_default {
++					pinmux = <PIN_PB28__FLEXCOM0_IO0>,
++						 <PIN_PB29__FLEXCOM0_IO1>;
++					bias-disable;
++				};
++
++				pinctrl_i2c0_default: i2c0_default {
++					pinmux = <PIN_PD21__TWD0>,
++						 <PIN_PD22__TWCK0>;
++					bias-disable;
++				};
++
++				pinctrl_i2c1_default: i2c1_default {
++					pinmux = <PIN_PC6__TWD1>,
++						 <PIN_PC7__TWCK1>;
++					bias-disable;
++				};
++
++				pinctrl_key_gpio_default: key_gpio_default {
++					pinmux = <PIN_PA10__GPIO>;
++					bias-pull-up;
++				};
++
++				pinctrl_led_gpio_default: led_gpio_default {
++					pinmux = <PIN_PB6__GPIO>,
++						 <PIN_PB8__GPIO>,
++						 <PIN_PB10__GPIO>;
++					bias-pull-up;
++				};
++
++				pinctrl_macb0_default: macb0_default {
++					pinmux = <PIN_PB14__GTXCK>,
++						 <PIN_PB15__GTXEN>,
++						 <PIN_PB16__GRXDV>,
++						 <PIN_PB17__GRXER>,
++						 <PIN_PB18__GRX0>,
++						 <PIN_PB19__GRX1>,
++						 <PIN_PB20__GTX0>,
++						 <PIN_PB21__GTX1>,
++						 <PIN_PB22__GMDC>,
++						 <PIN_PB23__GMDIO>;
++					bias-disable;
++				};
++
++				pinctrl_macb0_phy_irq: macb0_phy_irq {
++					pinmux = <PIN_PB24__GPIO>;
++					bias-disable;
++				};
++
++				pinctrl_nand_default: nand_default {
++					re_we_data {
++						pinmux = <PIN_PA22__D0>,
++							 <PIN_PA23__D1>,
++							 <PIN_PA24__D2>,
++							 <PIN_PA25__D3>,
++							 <PIN_PA26__D4>,
++							 <PIN_PA27__D5>,
++							 <PIN_PA28__D6>,
++							 <PIN_PA29__D7>,
++							 <PIN_PA30__NWE_NANDWE>,
++							 <PIN_PB2__NRD_NANDOE>;
++						bias-pull-up;
++						atmel,drive-strength = <ATMEL_PIO_DRVSTR_ME>;
++					};
++
++					ale_cle_rdy_cs {
++						pinmux = <PIN_PB0__A21_NANDALE>,
++							 <PIN_PB1__A22_NANDCLE>,
++							 <PIN_PC8__NANDRDY>,
++							 <PIN_PA31__NCS3>;
++						bias-pull-up;
++					};
++				};
++
++				pinctrl_sdmmc0_default: sdmmc0_default {
++					cmd_data {
++						pinmux = <PIN_PA1__SDMMC0_CMD>,
++							 <PIN_PA2__SDMMC0_DAT0>,
++							 <PIN_PA3__SDMMC0_DAT1>,
++							 <PIN_PA4__SDMMC0_DAT2>,
++							 <PIN_PA5__SDMMC0_DAT3>,
++							 <PIN_PA6__SDMMC0_DAT4>,
++							 <PIN_PA7__SDMMC0_DAT5>,
++							 <PIN_PA8__SDMMC0_DAT6>,
++							 <PIN_PA9__SDMMC0_DAT7>;
++						bias-pull-up;
++					};
++
++					ck_cd_vddsel {
++						pinmux = <PIN_PA0__SDMMC0_CK>,
++							 <PIN_PA11__SDMMC0_VDDSEL>,
++							 <PIN_PA13__SDMMC0_CD>;
++						bias-disable;
++					};
++				};
++
++				pinctrl_spi0_default: spi0_default {
++					pinmux = <PIN_PA14__SPI0_SPCK>,
++						 <PIN_PA15__SPI0_MOSI>,
++						 <PIN_PA16__SPI0_MISO>,
++						 <PIN_PA17__SPI0_NPCS0>;
++					bias-disable;
++				};
++
++				pinctrl_spi1_default: spi1_default {
++					pinmux = <PIN_PC1__SPI1_SPCK>,
++						 <PIN_PC2__SPI1_MOSI>,
++						 <PIN_PC3__SPI1_MISO>,
++						 <PIN_PC4__SPI1_NPCS0>;
++					bias-disable;
++				};
++
++				pinctrl_uart0_default: uart0_default {
++					pinmux = <PIN_PB26__URXD0>,
++						 <PIN_PB27__UTXD0>;
++					bias-disable;
++				};
++
++				pinctrl_uart2_default: uart2_default {
++					pinmux = <PIN_PD23__URXD2>,
++						 <PIN_PD24__UTXD2>;
++					bias-disable;
++				};
++
++				pinctrl_usb_default: usb_default {
++					pinmux = <PIN_PB12__GPIO>;
++					bias-disable;
++				};
++
++				pinctrl_usba_vbus: usba_vbus {
++					pinmux = <PIN_PB11__GPIO>;
++					bias-disable;
++				};
++
++			};
++
++		};
++	};
++
++	gpio_keys {
++		compatible = "gpio-keys";
++
++		pinctrl-names = "default";
++		pinctrl-0 = <&pinctrl_key_gpio_default>;
++
++		bp1 {
++			label = "PB_USER";
++			gpios = <&pioA PIN_PA10 GPIO_ACTIVE_LOW>;
++			linux,code = <0x104>;
++			wakeup-source;
++		};
++	};
++
++	leds {
++		compatible = "gpio-leds";
++		pinctrl-names = "default";
++		pinctrl-0 = <&pinctrl_led_gpio_default>;
++		status = "okay";
++
++		red {
++			label = "red";
++			gpios = <&pioA PIN_PB10 GPIO_ACTIVE_HIGH>;
++		};
++
++		green {
++			label = "green";
++			gpios = <&pioA PIN_PB8 GPIO_ACTIVE_HIGH>;
++		};
++
++		blue {
++			label = "blue";
++			gpios = <&pioA PIN_PB6 GPIO_ACTIVE_HIGH>;
++			linux,default-trigger = "heartbeat";
++		};
++	};
++};
+--- a/arch/arm/boot/dts/at91-sama5d2_xplained.dts
++++ b/arch/arm/boot/dts/at91-sama5d2_xplained.dts
+@@ -67,14 +67,14 @@
+	};
+
+	ahb {
+-		usb0: gadget@00300000 {
++		usb0: gadget@300000 {
+			atmel,vbus-gpio = <&pioA PIN_PA31 GPIO_ACTIVE_HIGH>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_usba_vbus>;
+			status = "okay";
+		};
+
+-		usb1: ohci@00400000 {
++		usb1: ohci@400000 {
+			num-ports = <3>;
+			atmel,vbus-gpio = <0 /* &pioA PIN_PB9 GPIO_ACTIVE_HIGH */
+					   &pioA PIN_PB10 GPIO_ACTIVE_HIGH
+@@ -85,7 +85,7 @@
+			status = "okay";
+		};
+
+-		usb2: ehci@00500000 {
++		usb2: ehci@500000 {
+			status = "okay";
+		};
+
+@@ -103,9 +103,75 @@
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_sdmmc1_default>;
+			status = "okay"; /* conflict with qspi0 */
++			vqmmc-supply = <&vdd_3v3_reg>;
++			vmmc-supply = <&vdd_3v3_reg>;
+		};
+
+		apb {
++			pmc: pmc@f0014000 {
++				pmc_fast_restart {
++					compatible = "atmel,sama5d2-pmc-fast-startup";
++					#address-cells = <1>;
++					#size-cells = <0>;
++
++					atmel,wakeup-rtc-timer;
++
++					wkpin: input@0 {
++						reg = <0>;
++					};
++
++					gmac_wol: input@10 {
++						reg = <10>;
++						atmel,wakeup-active-high;
++					};
++				};
++			};
++
++			qspi0: spi@f0020000 {
++				pinctrl-names = "default";
++				pinctrl-0 = <&pinctrl_qspi0_default>;
++				/*status = "okay";*/ /* conflict with sdmmc1 */
++
++				flash@0 {
++					#address-cells = <1>;
++					#size-cells = <1>;
++					compatible = "jedec,spi-nor";
++					reg = <0>;
++					spi-max-frequency = <83000000>;
++					m25p,fast-read;
++
++					at91bootstrap@00000000 {
++						label = "at91bootstrap";
++						reg = <0x00000000 0x00010000>;
++					};
++
++					bootloaderenv@00010000 {
++						label = "bootloader env";
++						reg = <0x00010000 0x00010000>;
++					};
++
++					bootloader@00020000 {
++						label = "bootloader";
++						reg = <0x00020000 0x00050000>;
++					};
++
++					dtb@00070000 {
++						label = "device tree";
++						reg = <0x00070000 0x00010000>;
++					};
++
++					kernel@00080000 {
++						label = "kernel";
++						reg = <0x00080000 0x00380000>;
++					};
++
++					rootfs@00400000 {
++						label = "rootfs";
++						reg = <0x00400000 0x00000000>;
++					};
++				};
++			};
++
+			spi0: spi@f8000000 {
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_spi0_default>;
+@@ -131,6 +197,18 @@
+				};
+			};
+
++			tcb0: timer@f800c000 {
++				timer0: timer@0 {
++					compatible = "atmel,tcb-timer";
++					reg = <0>;
++				};
++
++				timer1: timer@1 {
++					compatible = "atmel,tcb-timer";
++					reg = <1>;
++				};
++			};
++
+			pdmic@f8018000 {
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_pdmic_default>;
+@@ -160,14 +238,6 @@
+					compatible = "active-semi,act8945a";
+					reg = <0x5b>;
+					active-semi,vsel-high;
+-					active-semi,chglev-gpios = <&pioA PIN_PA12 GPIO_ACTIVE_HIGH>;
+-					active-semi,lbo-gpios = <&pioA PIN_PC8 GPIO_ACTIVE_LOW>;
+-					active-semi,irq_gpios = <&pioA PIN_PB13 GPIO_ACTIVE_LOW>;
+-					active-semi,input-voltage-threshold-microvolt = <6600>;
+-					active-semi,precondition-timeout = <40>;
+-					active-semi,total-timeout = <3>;
+-					pinctrl-names = "default";
+-					pinctrl-0 = <&pinctrl_charger_chglev &pinctrl_charger_lbo &pinctrl_charger_irq>;
+					status = "okay";
+
+					regulators {
+@@ -176,6 +246,14 @@
+							regulator-min-microvolt = <1350000>;
+							regulator-max-microvolt = <1350000>;
+							regulator-always-on;
++
++							regulator-state-mem {
++								regulator-on-in-suspend;
++								regulator-suspend-microvolt = <1400000>;
++								/* Power saving mode. */
++								regulator-mode = <0>;
++								regulator-allow-changes-at-runtime;
++							};
+						};
+
+						vdd_1v2_reg: REG_DCDC2 {
+@@ -183,6 +261,10 @@
+							regulator-min-microvolt = <1100000>;
+							regulator-max-microvolt = <1300000>;
+							regulator-always-on;
++
++							regulator-state-mem {
++								regulator-off-in-suspend;
++							};
+						};
+
+						vdd_3v3_reg: REG_DCDC3 {
+@@ -190,6 +272,10 @@
+							regulator-min-microvolt = <3300000>;
+							regulator-max-microvolt = <3300000>;
+							regulator-always-on;
++
++							regulator-state-mem {
++								regulator-off-in-suspend;
++							};
+						};
+
+						vdd_fuse_reg: REG_LDO1 {
+@@ -197,6 +283,10 @@
+							regulator-min-microvolt = <2500000>;
+							regulator-max-microvolt = <2500000>;
+							regulator-always-on;
++
++							regulator-state-mem {
++								regulator-off-in-suspend;
++							};
+						};
+
+						vdd_3v3_lp_reg: REG_LDO2 {
+@@ -204,6 +294,10 @@
+							regulator-min-microvolt = <3300000>;
+							regulator-max-microvolt = <3300000>;
+							regulator-always-on;
++
++							regulator-state-mem {
++								regulator-off-in-suspend;
++							};
+						};
+
+						vdd_led_reg: REG_LDO3 {
+@@ -211,6 +305,10 @@
+							regulator-min-microvolt = <3300000>;
+							regulator-max-microvolt = <3300000>;
+							regulator-always-on;
++
++							regulator-state-mem {
++								regulator-off-in-suspend;
++							};
+						};
+
+						vdd_sdhc_1v8_reg: REG_LDO4 {
+@@ -218,13 +316,34 @@
+							regulator-min-microvolt = <1800000>;
+							regulator-max-microvolt = <1800000>;
+							regulator-always-on;
++
++							regulator-state-mem {
++								regulator-off-in-suspend;
++							};
+						};
+					};
++
++					charger {
++						compatible = "active-semi,act8945a-charger";
++						pinctrl-names = "default";
++						pinctrl-0 = <&pinctrl_charger_chglev &pinctrl_charger_lbo &pinctrl_charger_irq>;
++						interrupt-parent = <&pioA>;
++						interrupts = <PIN_PB13 GPIO_ACTIVE_LOW>;
++
++						active-semi,chglev-gpios = <&pioA PIN_PA12 GPIO_ACTIVE_HIGH>;
++						active-semi,lbo-gpios = <&pioA PIN_PC8 GPIO_ACTIVE_LOW>;
++						active-semi,input-voltage-threshold-microvolt = <6600>;
++						active-semi,precondition-timeout = <40>;
++						active-semi,total-timeout = <3>;
++						status = "disabled";
++					};
+				};
+			};
+
+			pwm0: pwm@f802c000 {
+-				status = "okay";
++				pinctrl-names = "default";
++				pinctrl-0 = <&pinctrl_pwm0_pwm2_default>;
++				status = "disabled"; /* conflict with leds */
+			};
+
+			flx0: flexcom@f8034000 {
+@@ -258,6 +377,12 @@
+				status = "okay";
+			};
+
++			i2s0: i2s@f8050000 {
++				pinctrl-names = "default";
++				pinctrl-0 = <&pinctrl_i2s0_default>;
++				status = "disabled"; /* conflict with can0 */
++			};
++
+			can0: can@f8054000 {
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_can0_default>;
+@@ -401,6 +526,24 @@
+					bias-disable;
+				};
+
++				pinctrl_i2s0_default: i2s0_default {
++					pinmux = <PIN_PC1__I2SC0_CK>,
++						 <PIN_PC2__I2SC0_MCK>,
++						 <PIN_PC3__I2SC0_WS>,
++						 <PIN_PC4__I2SC0_DI0>,
++						 <PIN_PC5__I2SC0_DO0>;
++					bias-disable;
++				};
++
++				pinctrl_i2s1_default: i2s1_default {
++					pinmux = <PIN_PA15__I2SC1_CK>,
++						 <PIN_PA14__I2SC1_MCK>,
++						 <PIN_PA16__I2SC1_WS>,
++						 <PIN_PA17__I2SC1_DI0>,
++						 <PIN_PA18__I2SC1_DO0>;
++					bias-disable;
++				};
++
+				pinctrl_key_gpio_default: key_gpio_default {
+					pinmux = <PIN_PB9__GPIO>;
+					bias-pull-up;
+@@ -438,6 +581,22 @@
+					bias-disable;
+				};
+
++				pinctrl_qspi0_default: qspi0_default {
++					sck_cs {
++						pinmux = <PIN_PA22__QSPI0_SCK>,
++							 <PIN_PA23__QSPI0_CS>;
++						bias-disable;
++					};
++
++					data {
++						pinmux = <PIN_PA24__QSPI0_IO0>,
++							 <PIN_PA25__QSPI0_IO1>,
++							 <PIN_PA26__QSPI0_IO2>,
++							 <PIN_PA27__QSPI0_IO3>;
++						bias-pull-up;
++					};
++				};
++
+				pinctrl_sdmmc0_default: sdmmc0_default {
+					cmd_data {
+						pinmux = <PIN_PA1__SDMMC0_CMD>,
+@@ -449,7 +608,7 @@
+							 <PIN_PA7__SDMMC0_DAT5>,
+							 <PIN_PA8__SDMMC0_DAT6>,
+							 <PIN_PA9__SDMMC0_DAT7>;
+-						bias-pull-up;
++						bias-disable;
+					};
+
+					ck_cd_rstn_vddsel {
+@@ -468,7 +627,7 @@
+							 <PIN_PA19__SDMMC1_DAT1>,
+							 <PIN_PA20__SDMMC1_DAT2>,
+							 <PIN_PA21__SDMMC1_DAT3>;
+-						bias-pull-up;
++						bias-disable;
+					};
+
+					conf-ck_cd {
+@@ -508,6 +667,11 @@
+					bias-disable;
+				};
+
++				pinctrl_pwm0_pwm2_default: pwm0_pwm2_default {
++					pinmux = <PIN_PB5__PWMH2>,
++						 <PIN_PB6__PWML2>;
++					bias-pull-up;
++				};
+			};
+
+			classd: classd@fc048000 {
+@@ -518,6 +682,12 @@
+				status = "okay";
+			};
+
++			i2s1: i2s@fc04c000 {
++				pinctrl-names = "default";
++				pinctrl-0 = <&pinctrl_i2s1_default>;
++				status = "disabled"; /* conflict with spi0, sdmmc1 */
++			};
++
+			can1: can@fc050000 {
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_can1_default>;
+@@ -536,6 +706,7 @@
+			label = "PB_USER";
+			gpios = <&pioA PIN_PB9 GPIO_ACTIVE_LOW>;
+			linux,code = <0x104>;
++			wakeup-source;
+		};
+	};
+
+@@ -543,7 +714,7 @@
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_led_gpio_default>;
+-		status = "okay";
++		status = "okay"; /* conflict with pwm0 */
+
+		red {
+			label = "red";
+--- a/arch/arm/boot/dts/sama5d2.dtsi
++++ b/arch/arm/boot/dts/sama5d2.dtsi
+@@ -47,6 +47,7 @@
+ #include <dt-bindings/dma/at91.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+ #include <dt-bindings/clock/at91.h>
++#include <dt-bindings/iio/adc/at91-sama5d2_adc.h>
+
+ / {
+	model = "Atmel SAMA5D2 family SoC";
+@@ -58,6 +59,8 @@
+		serial1 = &uart3;
+		tcb0 = &tcb0;
+		tcb1 = &tcb1;
++		i2s0 = &i2s0;
++		i2s1 = &i2s1;
+	};
+
+	cpus {
+@@ -124,7 +127,7 @@
+		};
+	};
+
+-	ns_sram: sram@00200000 {
++	ns_sram: sram@200000 {
+		compatible = "mmio-sram";
+		reg = <0x00200000 0x20000>;
+	};
+@@ -135,13 +138,13 @@
+		#size-cells = <1>;
+		ranges;
+
+-		nfc_sram: sram@00100000 {
++		nfc_sram: sram@100000 {
+			compatible = "mmio-sram";
+			no-memory-wc;
+			reg = <0x00100000 0x2400>;
+		};
+
+-		usb0: gadget@00300000 {
++		usb0: gadget@300000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "atmel,sama5d3-udc";
+@@ -271,7 +274,7 @@
+			};
+		};
+
+-		usb1: ohci@00400000 {
++		usb1: ohci@400000 {
+			compatible = "atmel,at91rm9200-ohci", "usb-ohci";
+			reg = <0x00400000 0x100000>;
+			interrupts = <41 IRQ_TYPE_LEVEL_HIGH 2>;
+@@ -280,7 +283,7 @@
+			status = "disabled";
+		};
+
+-		usb2: ehci@00500000 {
++		usb2: ehci@500000 {
+			compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
+			reg = <0x00500000 0x100000>;
+			interrupts = <41 IRQ_TYPE_LEVEL_HIGH 2>;
+@@ -289,7 +292,7 @@
+			status = "disabled";
+		};
+
+-		L2: cache-controller@00a00000 {
++		L2: cache-controller@a00000 {
+			compatible = "arm,pl310-cache";
+			reg = <0x00a00000 0x1000>;
+			interrupts = <63 IRQ_TYPE_LEVEL_HIGH 4>;
+@@ -840,6 +843,12 @@
+						atmel,clk-output-range = <0 83000000>;
+					};
+
++					ptc_clk: ptc_clk {
++						#clock-cells = <0>;
++						reg = <58>;
++						atmel,clk-output-range = <0 83000000>;
++					};
++
+					classd_clk: classd_clk {
+						#clock-cells = <0>;
+						reg = <59>;
+@@ -992,6 +1001,24 @@
+						atmel,clk-output-range = <0 100000000>;
+					};
+				};
++
++				i2s_clkmux {
++					compatible = "atmel,sama5d2-clk-i2s-mux";
++					#address-cells = <1>;
++					#size-cells = <0>;
++
++					i2s0muxck: i2s0_muxclk {
++						clocks = <&i2s0_clk>, <&i2s0_gclk>;
++						#clock-cells = <0>;
++						reg = <0>;
++					};
++
++					i2s1muxck: i2s1_muxclk {
++						clocks = <&i2s1_clk>, <&i2s1_gclk>;
++						#clock-cells = <0>;
++						reg = <1>;
++					};
++				};
+			};
+
+			qspi0: spi@f0020000 {
+@@ -1049,12 +1076,6 @@
+				compatible = "atmel,at91rm9200-spi";
+				reg = <0xf8000000 0x100>;
+				interrupts = <33 IRQ_TYPE_LEVEL_HIGH 7>;
+-				dmas = <&dma0
+-					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
+-					 AT91_XDMAC_DT_PERID(6))>,
+-				       <&dma0
+-					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
+-					 AT91_XDMAC_DT_PERID(7))>;
+				dma-names = "tx", "rx";
+				clocks = <&spi0_clk>;
+				clock-names = "spi_clk";
+@@ -1094,7 +1115,9 @@
+			};
+
+			tcb0: timer@f800c000 {
+-				compatible = "atmel,at91sam9x5-tcb";
++				compatible = "atmel,at91sam9x5-tcb", "simple-mfd", "syscon";
++				#address-cells = <1>;
++				#size-cells = <0>;
+				reg = <0xf800c000 0x100>;
+				interrupts = <35 IRQ_TYPE_LEVEL_HIGH 0>;
+				clocks = <&tcb0_clk>, <&clk32k>;
+@@ -1102,7 +1125,9 @@
+			};
+
+			tcb1: timer@f8010000 {
+-				compatible = "atmel,at91sam9x5-tcb";
++				compatible = "atmel,at91sam9x5-tcb", "simple-mfd", "syscon";
++				#address-cells = <1>;
++				#size-cells = <0>;
+				reg = <0xf8010000 0x100>;
+				interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>;
+				clocks = <&tcb1_clk>, <&clk32k>;
+@@ -1291,6 +1316,24 @@
+				clocks = <&clk32k>;
+			};
+
++			i2s0: i2s@f8050000 {
++				compatible = "atmel,sama5d2-i2s";
++				reg = <0xf8050000 0x100>;
++				interrupts = <54 IRQ_TYPE_LEVEL_HIGH 7>;
++				dmas = <&dma0
++					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
++					 AT91_XDMAC_DT_PERID(31))>,
++				       <&dma0
++					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
++					 AT91_XDMAC_DT_PERID(32))>;
++				dma-names = "tx", "rx";
++				clocks = <&i2s0_clk>, <&i2s0_gclk>;
++				clock-names = "pclk", "gclk";
++				assigned-clocks = <&i2s0muxck>;
++				assigned-clock-parents = <&i2s0_gclk>;
++				status = "disabled";
++			};
++
+			can0: can@f8054000 {
+				compatible = "bosch,m_can";
+				reg = <0xf8054000 0x4000>, <0x210000 0x4000>;
+@@ -1427,10 +1470,23 @@
+				interrupts = <40 IRQ_TYPE_LEVEL_HIGH 7>;
+				clocks = <&adc_clk>;
+				clock-names = "adc_clk";
++				dmas = <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | AT91_XDMAC_DT_PERID(25))>;
++				dma-names = "rx";
+				atmel,min-sample-rate-hz = <200000>;
+				atmel,max-sample-rate-hz = <20000000>;
+				atmel,startup-time-ms = <4>;
+				atmel,trigger-edge-type = <IRQ_TYPE_EDGE_RISING>;
++				#io-channel-cells = <1>;
++				status = "disabled";
++			};
++
++			resistive_touch: resistive-touch {
++				compatible = "resistive-adc-touch";
++				io-channels = <&adc AT91_SAMA5D2_ADC_X_CHANNEL>,
++					      <&adc AT91_SAMA5D2_ADC_Y_CHANNEL>,
++					      <&adc AT91_SAMA5D2_ADC_P_CHANNEL>;
++				io-channel-names = "x", "y", "pressure";
++				touchscreen-min-pressure = <50000>;
+				status = "disabled";
+			};
+
+@@ -1482,6 +1538,24 @@
+				status = "disabled";
+			};
+
++			i2s1: i2s@fc04c000 {
++				compatible = "atmel,sama5d2-i2s";
++				reg = <0xfc04c000 0x100>;
++				interrupts = <55 IRQ_TYPE_LEVEL_HIGH 7>;
++				dmas = <&dma0
++					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
++					 AT91_XDMAC_DT_PERID(33))>,
++				       <&dma0
++					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
++					 AT91_XDMAC_DT_PERID(34))>;
++				dma-names = "tx", "rx";
++				clocks = <&i2s1_clk>, <&i2s1_gclk>;
++				clock-names = "pclk", "gclk";
++				assigned-clocks = <&i2s1muxck>;
++				assigned-parrents = <&i2s1_gclk>;
++				status = "disabled";
++			};
++
+			can1: can@fc050000 {
+				compatible = "bosch,m_can";
+				reg = <0xfc050000 0x4000>, <0x210000 0x4000>;
+@@ -1503,6 +1577,16 @@
+				reg = <0xfc05c000 0x20>;
+			};
+
++			ptc@fc060000 {
++				compatible = "atmel,sama5d2-ptc";
++				reg = <0x00800000 0x10000
++				       0xfc060000 0xcf>;
++				interrupts = <58 IRQ_TYPE_LEVEL_HIGH 7>;
++				clocks = <&ptc_clk>, <&main>, <&clk32k>;
++				clock-names = "ptc_clk", "ptc_int_osc", "slow_clk";
++				status = "disabled";
++			};
++
+			chipid@fc069000 {
+				compatible = "atmel,sama5d2-chipid";
+				reg = <0xfc069000 0x8>;
+--- a/drivers/pinctrl/pinctrl-at91-pio4.c
++++ b/drivers/pinctrl/pinctrl-at91-pio4.c
+@@ -14,6 +14,7 @@
+  * GNU General Public License for more details.
+  */
+
++#include <dt-bindings/pinctrl/at91.h>
+ #include <linux/clk.h>
+ #include <linux/gpio/driver.h>
+ /* FIXME: needed for gpio_to_irq(), get rid of this */
+@@ -49,6 +50,8 @@
+ #define		ATMEL_PIO_IFSCEN_MASK		BIT(13)
+ #define		ATMEL_PIO_OPD_MASK		BIT(14)
+ #define		ATMEL_PIO_SCHMITT_MASK		BIT(15)
++#define		ATMEL_PIO_DRVSTR_MASK		GENMASK(17, 16)
++#define		ATMEL_PIO_DRVSTR_OFFSET		16
+ #define		ATMEL_PIO_CFGR_EVTSEL_MASK	GENMASK(26, 24)
+ #define		ATMEL_PIO_CFGR_EVTSEL_FALLING	(0 << 24)
+ #define		ATMEL_PIO_CFGR_EVTSEL_RISING	(1 << 24)
+@@ -75,6 +78,9 @@
+ #define ATMEL_GET_PIN_FUNC(pinfunc)	((pinfunc >> 16) & 0xf)
+ #define ATMEL_GET_PIN_IOSET(pinfunc)	((pinfunc >> 20) & 0xf)
+
++/* Custom pinconf parameters */
++#define ATMEL_PIN_CONFIG_DRIVE_STRENGTH	(PIN_CONFIG_END + 1)
++
+ struct atmel_pioctrl_data {
+	unsigned nbanks;
+ };
+@@ -139,6 +145,10 @@ static const char * const atmel_functions[] = {
+	"GPIO", "A", "B", "C", "D", "E", "F", "G"
+ };
+
++static const struct pinconf_generic_params atmel_custom_bindings[] = {
++	{"atmel,drive-strength", ATMEL_PIN_CONFIG_DRIVE_STRENGTH, 0},
++};
++
+ /* --- GPIO --- */
+ static unsigned int atmel_gpio_read(struct atmel_pioctrl *atmel_pioctrl,
+				    unsigned int bank, unsigned int reg)
+@@ -358,6 +368,8 @@ static int atmel_gpio_to_irq(struct gpio_chip *chip, unsigned offset)
+ }
+
+ static struct gpio_chip atmel_gpio_chip = {
++	.request		= gpiochip_generic_request,
++	.free			= gpiochip_generic_free,
+	.direction_input        = atmel_gpio_direction_input,
+	.get                    = atmel_gpio_get,
+	.direction_output       = atmel_gpio_direction_output,
+@@ -645,11 +657,27 @@ static int atmel_pmx_set_mux(struct pinctrl_dev *pctldev,
+	return 0;
+ }
+
++static int atmel_pmx_gpio_request_enable(struct pinctrl_dev *pctldev,
++					 struct pinctrl_gpio_range *range,
++					 unsigned offset)
++{
++	u32 conf;
++
++	conf = atmel_pin_config_read(pctldev, offset);
++	conf &= (~ATMEL_PIO_CFGR_FUNC_MASK);
++	atmel_pin_config_write(pctldev, offset, conf);
++
++	dev_dbg(pctldev->dev, "enable pin %u as GPIO\n", offset);
++
++	return 0;
++}
++
+ static const struct pinmux_ops atmel_pmxops = {
+	.get_functions_count	= atmel_pmx_get_functions_count,
+	.get_function_name	= atmel_pmx_get_function_name,
+	.get_function_groups	= atmel_pmx_get_function_groups,
+	.set_mux		= atmel_pmx_set_mux,
++	.gpio_request_enable	= atmel_pmx_gpio_request_enable,
+ };
+
+ static int atmel_conf_pin_config_group_get(struct pinctrl_dev *pctldev,
+@@ -692,6 +720,11 @@ static int atmel_conf_pin_config_group_get(struct pinctrl_dev *pctldev,
+			return -EINVAL;
+		arg = 1;
+		break;
++	case ATMEL_PIN_CONFIG_DRIVE_STRENGTH:
++		if (!(res & ATMEL_PIO_DRVSTR_MASK))
++			return -EINVAL;
++		arg = (res & ATMEL_PIO_DRVSTR_MASK) >> ATMEL_PIO_DRVSTR_OFFSET;
++		break;
+	default:
+		return -ENOTSUPP;
+	}
+@@ -777,6 +810,18 @@ static int atmel_conf_pin_config_group_set(struct pinctrl_dev *pctldev,
+					ATMEL_PIO_SODR);
+			}
+			break;
++		case ATMEL_PIN_CONFIG_DRIVE_STRENGTH:
++			switch (arg) {
++			case ATMEL_PIO_DRVSTR_LO:
++			case ATMEL_PIO_DRVSTR_ME:
++			case ATMEL_PIO_DRVSTR_HI:
++				conf &= (~ATMEL_PIO_DRVSTR_MASK);
++				conf |= arg << ATMEL_PIO_DRVSTR_OFFSET;
++				break;
++			default:
++				dev_warn(pctldev->dev, "drive strength not updated (incorrect value)\n");
++			}
++			break;
+		default:
+			dev_warn(pctldev->dev,
+				 "unsupported configuration parameter: %u\n",
+@@ -816,6 +861,19 @@ static void atmel_conf_pin_config_dbg_show(struct pinctrl_dev *pctldev,
+		seq_printf(s, "%s ", "open-drain");
+	if (conf & ATMEL_PIO_SCHMITT_MASK)
+		seq_printf(s, "%s ", "schmitt");
++	if (conf & ATMEL_PIO_DRVSTR_MASK) {
++		switch ((conf & ATMEL_PIO_DRVSTR_MASK) >> ATMEL_PIO_DRVSTR_OFFSET) {
++		case ATMEL_PIO_DRVSTR_ME:
++			seq_printf(s, "%s ", "medium-drive");
++			break;
++		case ATMEL_PIO_DRVSTR_HI:
++			seq_printf(s, "%s ", "high-drive");
++			break;
++		/* ATMEL_PIO_DRVSTR_LO and 0 which is the default value at reset */
++		default:
++			seq_printf(s, "%s ", "low-drive");
++		}
++	}
+ }
+
+ static const struct pinconf_ops atmel_confops = {
+@@ -883,7 +941,7 @@ static int __maybe_unused atmel_pctrl_resume(struct device *dev)
+ }
+
+ static const struct dev_pm_ops atmel_pctrl_pm_ops = {
+-	SET_SYSTEM_SLEEP_PM_OPS(atmel_pctrl_suspend, atmel_pctrl_resume)
++	SET_LATE_SYSTEM_SLEEP_PM_OPS(atmel_pctrl_suspend, atmel_pctrl_resume)
+ };
+
+ /*
+@@ -956,6 +1014,8 @@ static int atmel_pinctrl_probe(struct platform_device *pdev)
+		return -ENOMEM;
+	atmel_pinctrl_desc.pins = pin_desc;
+	atmel_pinctrl_desc.npins = atmel_pioctrl->npins;
++	atmel_pinctrl_desc.num_custom_params = ARRAY_SIZE(atmel_custom_bindings);
++	atmel_pinctrl_desc.custom_params = atmel_custom_bindings;
+
+	/* One pin is one group since a pin can achieve all functions. */
+	group_names = devm_kzalloc(dev, sizeof(*group_names)
+--- /dev/null
++++ b/include/dt-bindings/iio/adc/at91-sama5d2_adc.h
+@@ -0,0 +1,16 @@
++/* SPDX-License-Identifier: GPL-2.0 */
++/*
++ * This header provides constants for configuring the AT91 SAMA5D2 ADC
++ */
++
++#ifndef _DT_BINDINGS_IIO_ADC_AT91_SAMA5D2_ADC_H
++#define _DT_BINDINGS_IIO_ADC_AT91_SAMA5D2_ADC_H
++
++/* X relative position channel index */
++#define AT91_SAMA5D2_ADC_X_CHANNEL		24
++/* Y relative position channel index */
++#define AT91_SAMA5D2_ADC_Y_CHANNEL		25
++/* pressure channel index */
++#define AT91_SAMA5D2_ADC_P_CHANNEL		26
++
++#endif
+--- a/include/dt-bindings/pinctrl/at91.h
++++ b/include/dt-bindings/pinctrl/at91.h
+@@ -39,4 +39,8 @@
+ #define AT91_PERIPH_C		3
+ #define AT91_PERIPH_D		4
+
++#define ATMEL_PIO_DRVSTR_LO	1
++#define ATMEL_PIO_DRVSTR_ME	2
++#define ATMEL_PIO_DRVSTR_HI	3
++
+ #endif /* __DT_BINDINGS_AT91_PINCTRL_H__ */
+--
+2.7.4
diff --git a/target/linux/at91/patches-4.9/101-ARM-at91-build-dtb-for-q5xr5.patch b/target/linux/at91/patches-4.9/101-ARM-at91-build-dtb-for-q5xr5.patch
deleted file mode 100644
index 1cee558..0000000
--- a/target/linux/at91/patches-4.9/101-ARM-at91-build-dtb-for-q5xr5.patch
+++ /dev/null
@@ -1,10 +0,0 @@ 
---- a/arch/arm/boot/dts/Makefile
-+++ b/arch/arm/boot/dts/Makefile
-@@ -40,6 +40,7 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \
- 	at91-ariettag25.dtb \
- 	at91-cosino_mega2560.dtb \
- 	at91-kizboxmini.dtb \
-+	at91-q5xr5.dtb \
- 	at91sam9g15ek.dtb \
- 	at91sam9g25ek.dtb \
- 	at91sam9g35ek.dtb \
diff --git a/target/linux/at91/patches-4.9/104-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch b/target/linux/at91/patches-4.9/104-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch
deleted file mode 100644
index 20c69f3..0000000
--- a/target/linux/at91/patches-4.9/104-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch
+++ /dev/null
@@ -1,893 +0,0 @@ 
---- a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pio4-pinctrl.txt
-+++ b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pio4-pinctrl.txt
-@@ -35,7 +35,12 @@ right representation of the pin.
- Optional properties:
- - GENERIC_PINCONFIG: generic pinconfig options to use, bias-disable,
- bias-pull-down, bias-pull-up, drive-open-drain, input-schmitt-enable,
--input-debounce, output-low, output-high.
-+input-debounce, output-low, output-high, drive-strength.
-+
-+Concerning the drive-strength property, the values accepted are
-+ATMEL_PIO_DRVSTR_LO, ATMEL_PIO_DRVSTR_ME, ATMEL_PIO_DRVSTR_HI. The current
-+depends on VDDIOP. You can find the details in the DC Characteristics table
-+from the datasheet.
- 
- Example:
- 
---- a/arch/arm/boot/dts/Makefile
-+++ b/arch/arm/boot/dts/Makefile
-@@ -49,6 +49,7 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \
- 	wb45n.dtb
- dtb-$(CONFIG_SOC_SAM_V7) += \
- 	at91-kizbox2.dtb \
-+	at91-sama5d27_som1_ek.dtb \
- 	at91-sama5d2_xplained.dtb \
- 	at91-sama5d3_xplained.dtb \
- 	sama5d31ek.dtb \
---- /dev/null
-+++ b/arch/arm/boot/dts/at91-sama5d27_som1.dtsi
-@@ -0,0 +1,175 @@
-+/*
-+ * at91-sama5d27_som1.dtsi - Device Tree file for SAMA5D27 SoM1 board
-+ *
-+ *  Copyright (c) 2017, Microchip Technology Inc.
-+ *                2017 Cristian Birsan <cristian.birsan@microchip.com>
-+ *                2017 Claudiu Beznea <claudiu.beznea@microchip.com>
-+ *
-+ * This file is dual-licensed: you can use it either under the terms
-+ * of the GPL or the X11 license, at your option. Note that this dual
-+ * licensing only applies to this file, and not this project as a
-+ * whole.
-+ *
-+ *  a) This file is free software; you can redistribute it and/or
-+ *     modify it under the terms of the GNU General Public License as
-+ *     published by the Free Software Foundation; either version 2 of the
-+ *     License, or (at your option) any later version.
-+ *
-+ *     This file is distributed in the hope that it will be useful,
-+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ *     GNU General Public License for more details.
-+ *
-+ * Or, alternatively,
-+ *
-+ *  b) 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.
-+ */
-+#include "sama5d2.dtsi"
-+#include "sama5d2-pinfunc.h"
-+
-+/ {
-+	model = "Atmel SAMA5D27 SoM1";
-+	compatible = "atmel,sama5d27-som1", "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5";
-+
-+	clocks {
-+		slow_xtal {
-+			clock-frequency = <32768>;
-+		};
-+
-+		main_xtal {
-+			clock-frequency = <24000000>;
-+		};
-+	};
-+
-+	ahb {
-+		apb {
-+			qspi1: spi@f0024000 {
-+				pinctrl-names = "default";
-+				pinctrl-0 = <&pinctrl_qspi1_default>;
-+
-+				flash@0 {
-+					#address-cells = <1>;
-+					#size-cells = <1>;
-+					compatible = "jedec,spi-nor";
-+					reg = <0>;
-+					spi-max-frequency = <80000000>;
-+					m25p,fast-read;
-+
-+					at91bootstrap@00000000 {
-+						label = "at91bootstrap";
-+						reg = <0x00000000 0x00010000>;
-+					};
-+
-+					bootloader@00010000 {
-+						label = "bootloader";
-+						reg = <0x00010000 0x000a0000>;
-+					};
-+
-+					bootloaderenv@000b0000 {
-+						label = "bootloader env";
-+						reg = <0x000b0000 0x00010000>;
-+					};
-+
-+					dtb@000c0000 {
-+						label = "device tree";
-+						reg = <0x000c0000 0x0020000>;
-+					};
-+
-+					kernel@000e0000 {
-+						label = "kernel";
-+						reg = <0x000e0000 0x0400000>;
-+					};
-+				};
-+			};
-+
-+			macb0: ethernet@f8008000 {
-+				pinctrl-names = "default";
-+				pinctrl-0 = <&pinctrl_macb0_default>;
-+				phy-mode = "rmii";
-+
-+				ethernet-phy@0 {
-+					reg = <0x0>;
-+					interrupt-parent = <&pioA>;
-+					interrupts = <PIN_PD31 IRQ_TYPE_LEVEL_LOW>;
-+					pinctrl-names = "default";
-+					pinctrl-0 = <&pinctrl_macb0_phy_irq>;
-+				};
-+			};
-+
-+			i2c0: i2c@f8028000 {
-+				dmas = <0>, <0>;
-+				pinctrl-names = "default";
-+				pinctrl-0 = <&pinctrl_i2c0_default>;
-+				status = "okay";
-+
-+				at24@50 {
-+					compatible = "24c02";
-+					reg = <0x50>;
-+					pagesize = <8>;
-+				};
-+			};
-+
-+			pinctrl@fc038000 {
-+				pinctrl_i2c0_default: i2c0_default {
-+					pinmux = <PIN_PD21__TWD0>,
-+						 <PIN_PD22__TWCK0>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_qspi1_default: qspi1_default {
-+					sck_cs {
-+						pinmux = <PIN_PB5__QSPI1_SCK>,
-+							 <PIN_PB6__QSPI1_CS>;
-+						bias-disable;
-+					};
-+
-+					data {
-+						pinmux = <PIN_PB7__QSPI1_IO0>,
-+							 <PIN_PB8__QSPI1_IO1>,
-+							 <PIN_PB9__QSPI1_IO2>,
-+							 <PIN_PB10__QSPI1_IO3>;
-+						bias-pull-up;
-+					};
-+				};
-+
-+				pinctrl_macb0_default: macb0_default {
-+					pinmux = <PIN_PD9__GTXCK>,
-+						 <PIN_PD10__GTXEN>,
-+						 <PIN_PD11__GRXDV>,
-+						 <PIN_PD12__GRXER>,
-+						 <PIN_PD13__GRX0>,
-+						 <PIN_PD14__GRX1>,
-+						 <PIN_PD15__GTX0>,
-+						 <PIN_PD16__GTX1>,
-+						 <PIN_PD17__GMDC>,
-+						 <PIN_PD18__GMDIO>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_macb0_phy_irq: macb0_phy_irq {
-+					pinmux = <PIN_PD31__GPIO>;
-+					bias-disable;
-+				};
-+			};
-+		};
-+	};
-+};
---- /dev/null
-+++ b/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts
-@@ -0,0 +1,53 @@
-+/*
-+ * at91-sama5d27_som1_ek.dts - Device Tree file for SAMA5D27-SOM1-EK board
-+ *
-+ *  Copyright (c) 2017, Microchip Technology Inc.
-+ *                2016 Nicolas Ferre <nicolas.ferre@atmel.com>
-+ *                2017 Cristian Birsan <cristian.birsan@microchip.com>
-+ *                2017 Claudiu Beznea <claudiu.beznea@microchip.com>
-+ *
-+ * This file is dual-licensed: you can use it either under the terms
-+ * of the GPL or the X11 license, at your option. Note that this dual
-+ * licensing only applies to this file, and not this project as a
-+ * whole.
-+ *
-+ *  a) This file is free software; you can redistribute it and/or
-+ *     modify it under the terms of the GNU General Public License as
-+ *     published by the Free Software Foundation; either version 2 of the
-+ *     License, or (at your option) any later version.
-+ *
-+ *     This file is distributed in the hope that it will be useful,
-+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ *     GNU General Public License for more details.
-+ *
-+ * Or, alternatively,
-+ *
-+ *  b) 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.
-+ */
-+/dts-v1/;
-+#include "at91-sama5d27_som1_ek_common.dtsi"
-+
-+/ {
-+	model = "Atmel SAMA5D27 SOM1 EK";
-+	compatible = "atmel,sama5d27-som1-ek", "atmel,sama5d27-som1", "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5";
-+};
---- /dev/null
-+++ b/arch/arm/boot/dts/at91-sama5d27_som1_ek_common.dtsi
-@@ -0,0 +1,619 @@
-+/*
-+ * at91-sama5d27_som1_ek_common.dtsi - Device Tree file for SAMA5D27-SOM1-EK board
-+ *
-+ *  Copyright (c) 2017, Microchip Technology Inc.
-+ *                2016 Nicolas Ferre <nicolas.ferre@atmel.com>
-+ *                2017 Cristian Birsan <cristian.birsan@microchip.com>
-+ *                2017 Claudiu Beznea <claudiu.beznea@microchip.com>
-+ *
-+ * This file is dual-licensed: you can use it either under the terms
-+ * of the GPL or the X11 license, at your option. Note that this dual
-+ * licensing only applies to this file, and not this project as a
-+ * whole.
-+ *
-+ *  a) This file is free software; you can redistribute it and/or
-+ *     modify it under the terms of the GNU General Public License as
-+ *     published by the Free Software Foundation; either version 2 of the
-+ *     License, or (at your option) any later version.
-+ *
-+ *     This file is distributed in the hope that it will be useful,
-+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ *     GNU General Public License for more details.
-+ *
-+ * Or, alternatively,
-+ *
-+ *  b) 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.
-+ */
-+#include "at91-sama5d27_som1.dtsi"
-+#include <dt-bindings/mfd/atmel-flexcom.h>
-+#include <dt-bindings/gpio/gpio.h>
-+#include <dt-bindings/pinctrl/at91.h>
-+
-+/ {
-+	model = "Atmel SAMA5D27 SOM1 EK";
-+	compatible = "atmel,sama5d27-som1-ek", "atmel,sama5d27-som1", "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5";
-+
-+	aliases {
-+		serial0 = &uart1;	/* DBGU */
-+		serial1 = &uart4;	/* mikro BUS 1 */
-+		serial2 = &uart2;	/* mikro BUS 2 */
-+		i2c1	= &i2c1;
-+		i2c2	= &i2c2;
-+	};
-+
-+	chosen {
-+		stdout-path = "serial0:115200n8";
-+	};
-+
-+	ahb {
-+		usb0: gadget@00300000 {
-+			atmel,vbus-gpio = <&pioA PIN_PD20 GPIO_ACTIVE_HIGH>;
-+			pinctrl-names = "default";
-+			pinctrl-0 = <&pinctrl_usba_vbus>;
-+			status = "okay";
-+		};
-+
-+		usb1: ohci@00400000 {
-+			num-ports = <3>;
-+			atmel,vbus-gpio = <0 /* &pioA PIN_PD20 GPIO_ACTIVE_HIGH */
-+					   &pioA PIN_PA27 GPIO_ACTIVE_HIGH
-+					   0
-+					  >;
-+			pinctrl-names = "default";
-+			pinctrl-0 = <&pinctrl_usb_default>;
-+			status = "okay";
-+		};
-+
-+		usb2: ehci@00500000 {
-+			status = "okay";
-+		};
-+
-+		sdmmc0: sdio-host@a0000000 {
-+			bus-width = <8>;
-+			pinctrl-names = "default";
-+			pinctrl-0 = <&pinctrl_sdmmc0_default>;
-+			status = "okay";
-+		};
-+
-+		sdmmc1: sdio-host@b0000000 {
-+			bus-width = <4>;
-+			pinctrl-names = "default";
-+			pinctrl-0 = <&pinctrl_sdmmc1_default>;
-+			status = "okay";
-+		};
-+
-+		apb {
-+			hlcdc: hlcdc@f0000000 {
-+				status = "disabled";
-+
-+				hlcdc-display-controller {
-+					pinctrl-names = "default";
-+					pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb>;
-+				};
-+
-+				hlcdc_pwm: hlcdc-pwm {
-+					pinctrl-names = "default";
-+					pinctrl-0 = <&pinctrl_lcd_pwm>;
-+				};
-+			};
-+
-+			pmc: pmc@f0014000 {
-+				pmc_fast_restart {
-+					compatible = "atmel,sama5d2-pmc-fast-startup";
-+					#address-cells = <1>;
-+					#size-cells = <0>;
-+
-+					atmel,wakeup-rtc-timer;
-+
-+					wkpin: input@0 {
-+						reg = <0>;
-+					};
-+
-+					gmac_wol: input@10 {
-+						reg = <10>;
-+						atmel,wakeup-active-high;
-+					};
-+				};
-+			};
-+
-+			isc: isc@f0008000 {
-+				pinctrl-names = "default";
-+				pinctrl-0 = <&pinctrl_isc_base &pinctrl_isc_data_8bit &pinctrl_isc_data_9_10 &pinctrl_isc_data_11_12>;
-+				status = "okay";
-+			};
-+
-+			qspi1: spi@f0024000 {
-+				status = "okay";
-+			};
-+
-+			spi0: spi@f8000000 {
-+				pinctrl-names = "default";
-+				pinctrl-0 = <&pinctrl_spi0_default>;
-+				status = "okay";
-+			};
-+
-+			macb0: ethernet@f8008000 {
-+				status = "okay";
-+			};
-+
-+			uart1: serial@f8020000 {
-+				pinctrl-names = "default";
-+				pinctrl-0 = <&pinctrl_uart1_default>;
-+				atmel,use-dma-rx;
-+				atmel,use-dma-tx;
-+				status = "okay";
-+			};
-+
-+			uart2: serial@f8024000 {
-+				pinctrl-names = "default";
-+				pinctrl-0 = <&pinctrl_mikrobus2_uart>;
-+				atmel,use-dma-rx;
-+				atmel,use-dma-tx;
-+				status = "okay";
-+			};
-+
-+			pwm0: pwm@f802c000 {
-+				pinctrl-names = "default";
-+				pinctrl-0 = <&pinctrl_mikrobus1_pwm &pinctrl_mikrobus2_pwm>;
-+				status = "disabled"; /* Conflict with leds. */
-+			};
-+
-+			flx1: flexcom@f8038000 {
-+				atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
-+				status = "okay";
-+
-+				i2c2: i2c@600 {
-+					compatible = "atmel,sama5d2-i2c";
-+					reg = <0x600 0x200>;
-+					interrupts = <20 IRQ_TYPE_LEVEL_HIGH 7>;
-+					dmas = <0>, <0>;
-+					dma-names = "tx", "rx";
-+					#address-cells = <1>;
-+					#size-cells = <0>;
-+					clocks = <&flx1_clk>;
-+					pinctrl-names = "default";
-+					pinctrl-0 = <&pinctrl_mikrobus_i2c>;
-+					atmel,fifo-size = <16>;
-+					status = "okay";
-+				};
-+			};
-+
-+			shdwc@f8048010 {
-+				atmel,shdwc-debouncer = <976>;
-+				atmel,wakeup-rtc-timer;
-+
-+				input@0 {
-+					reg = <0>;
-+					atmel,wakeup-type = "low";
-+				};
-+			};
-+
-+			watchdog@f8048040 {
-+				status = "okay";
-+			};
-+
-+			uart3: serial@fc008000 {
-+				atmel,use-dma-rx;
-+				atmel,use-dma-tx;
-+				pinctrl-names = "default";
-+				pinctrl-0 = <&pinctrl_uart3_default>;
-+				status = "disabled"; /* Conflict with isc. */
-+			};
-+
-+			uart4: serial@fc00c000 {
-+				atmel,use-dma-rx;
-+				atmel,use-dma-tx;
-+				pinctrl-names = "default";
-+				pinctrl-0 = <&pinctrl_mikrobus1_uart>;
-+				status = "okay";
-+			};
-+
-+			flx3: flexcom@fc014000 {
-+				atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
-+				status = "disabled";
-+
-+				uart7: serial@200 {
-+					compatible = "atmel,at91sam9260-usart";
-+					reg = <0x200 0x200>;
-+					interrupts = <22 IRQ_TYPE_LEVEL_HIGH 7>;
-+					clocks = <&flx3_clk>;
-+					clock-names = "usart";
-+					pinctrl-names = "default";
-+					pinctrl-0 = <&pinctrl_flx3_default>;
-+					atmel,fifo-size = <32>;
-+					status = "disabled"; /* Conflict with isc. */
-+				};
-+
-+				spi2: spi@400 {
-+					compatible = "atmel,at91rm9200-spi";
-+					reg = <0x400 0x200>;
-+					interrupts = <22 IRQ_TYPE_LEVEL_HIGH 7>;
-+					clocks = <&flx3_clk>;
-+					clock-names = "spi_clk";
-+					pinctrl-names = "default";
-+					pinctrl-0 = <&pinctrl_flx3_default>;
-+					atmel,fifo-size = <16>;
-+					status = "disabled"; /* Conflict with isc. */
-+				};
-+			};
-+
-+			flx4: flexcom@fc018000 {
-+				atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
-+				status = "okay";
-+
-+				uart6: serial@200 {
-+					compatible = "atmel,at91sam9260-usart";
-+					reg = <0x200 0x200>;
-+					interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>;
-+					clocks = <&flx4_clk>;
-+					clock-names = "usart";
-+					pinctrl-names = "default";
-+					pinctrl-0 = <&pinctrl_flx4_default>;
-+					atmel,fifo-size = <32>;
-+					status = "disabled"; /* Conflict with spi3 and i2c3. */
-+				};
-+
-+				spi3: spi@400 {
-+					compatible = "atmel,at91rm9200-spi";
-+					reg = <0x400 0x200>;
-+					interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>;
-+					clocks = <&flx4_clk>;
-+					clock-names = "spi_clk";
-+					pinctrl-names = "default";
-+					pinctrl-0 = <&pinctrl_mikrobus_spi &pinctrl_mikrobus1_spi_cs &pinctrl_mikrobus2_spi_cs>;
-+					atmel,fifo-size = <16>;
-+					status = "okay";
-+				};
-+
-+				i2c3: i2c@600 {
-+					compatible = "atmel,sama5d2-i2c";
-+					reg = <0x600 0x200>;
-+					interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>;
-+					dmas = <0>, <0>;
-+					dma-names = "tx", "rx";
-+					#address-cells = <1>;
-+					#size-cells = <0>;
-+					clocks = <&flx4_clk>;
-+					pinctrl-names = "default";
-+					pinctrl-0 = <&pinctrl_flx4_default>;
-+					atmel,fifo-size = <16>;
-+					status = "disabled"; /* Conflict with uart6 and spi3. */
-+				};
-+			};
-+
-+			i2c1: i2c@fc028000 {
-+				dmas = <0>, <0>;
-+				pinctrl-names = "default";
-+				pinctrl-0 = <&pinctrl_i2c1_default>;
-+				status = "okay";
-+			};
-+
-+			pinctrl@fc038000 {
-+
-+				pinctrl_lcd_base: pinctrl_lcd_base {
-+					pinmux = <PIN_PC5__LCDVSYNC>,
-+						 <PIN_PC6__LCDHSYNC>,
-+						 <PIN_PC8__LCDDEN>,
-+						 <PIN_PC7__LCDPCK>;
-+					bias-disable;
-+					drive-strength = <ATMEL_PIO_DRVSTR_ME>;
-+				};
-+
-+				pinctrl_lcd_rgb: pinctrl_lcd_rgb {
-+					pinmux = <PIN_PB11__LCDDAT0>,
-+						 <PIN_PB12__LCDDAT1>,
-+						 <PIN_PB13__LCDDAT2>,
-+						 <PIN_PB14__LCDDAT3>,
-+						 <PIN_PB15__LCDDAT4>,
-+						 <PIN_PB16__LCDDAT5>,
-+						 <PIN_PB17__LCDDAT6>,
-+						 <PIN_PB18__LCDDAT7>,
-+						 <PIN_PB19__LCDDAT8>,
-+						 <PIN_PB20__LCDDAT9>,
-+						 <PIN_PB21__LCDDAT10>,
-+						 <PIN_PB22__LCDDAT11>,
-+						 <PIN_PB23__LCDDAT12>,
-+						 <PIN_PB24__LCDDAT13>,
-+						 <PIN_PB25__LCDDAT14>,
-+						 <PIN_PB26__LCDDAT15>,
-+						 <PIN_PB27__LCDDAT16>,
-+						 <PIN_PB28__LCDDAT17>,
-+						 <PIN_PB29__LCDDAT18>,
-+						 <PIN_PB30__LCDDAT19>,
-+						 <PIN_PB31__LCDDAT20>,
-+						 <PIN_PC0__LCDDAT21>,
-+						 <PIN_PC1__LCDDAT22>,
-+						 <PIN_PC2__LCDDAT23>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_lcd_pwm: pinctrl_lcd_pwm {
-+					pinmux = <PIN_PC3__LCDPWM>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_can1_default: can1_default {
-+					pinmux = <PIN_PC26__CANTX1>,
-+						 <PIN_PC27__CANRX1>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_flx3_default: flx3_default {
-+					pinmux = <PIN_PC20__FLEXCOM3_IO0>,
-+						 <PIN_PC19__FLEXCOM3_IO1>,
-+						 <PIN_PC18__FLEXCOM3_IO2>,
-+						 <PIN_PC21__FLEXCOM3_IO3>,
-+						 <PIN_PC22__FLEXCOM3_IO4>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_i2c1_default: i2c1_default {
-+					pinmux = <PIN_PD4__TWD1>,
-+						 <PIN_PD5__TWCK1>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_isc_base: isc_base {
-+					pinmux = <PIN_PC21__ISC_PCK>,
-+						 <PIN_PC22__ISC_VSYNC>,
-+						 <PIN_PC23__ISC_HSYNC>,
-+						 <PIN_PC24__ISC_MCK>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_isc_data_8bit: isc_data_8bit {
-+					pinmux = <PIN_PC20__ISC_D11>,
-+						 <PIN_PC19__ISC_D10>,
-+						 <PIN_PC18__ISC_D9>,
-+						 <PIN_PC17__ISC_D8>,
-+						 <PIN_PC16__ISC_D7>,
-+						 <PIN_PC15__ISC_D6>,
-+						 <PIN_PC14__ISC_D5>,
-+						 <PIN_PC13__ISC_D4>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_isc_data_9_10: isc_data_9_10 {
-+					pinmux = <PIN_PC12__ISC_D3>,
-+						 <PIN_PC11__ISC_D2>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_isc_data_11_12: isc_data_11_12 {
-+					pinmux = <PIN_PC10__ISC_D1>,
-+						 <PIN_PC9__ISC_D0>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_key_gpio_default: key_gpio_default {
-+					pinmux = <PIN_PA29__GPIO>;
-+					bias-pull-up;
-+				};
-+
-+				pinctrl_led_gpio_default: led_gpio_default {
-+					pinmux = <PIN_PA10__GPIO>,
-+						 <PIN_PB1__GPIO>,
-+						 <PIN_PA31__GPIO>;
-+					bias-pull-up;
-+				};
-+
-+				pinctrl_sdmmc0_default: sdmmc0_default {
-+					cmd_data {
-+						pinmux = <PIN_PA1__SDMMC0_CMD>,
-+							 <PIN_PA2__SDMMC0_DAT0>,
-+							 <PIN_PA3__SDMMC0_DAT1>,
-+							 <PIN_PA4__SDMMC0_DAT2>,
-+							 <PIN_PA5__SDMMC0_DAT3>,
-+							 <PIN_PA6__SDMMC0_DAT4>,
-+							 <PIN_PA7__SDMMC0_DAT5>,
-+							 <PIN_PA8__SDMMC0_DAT6>,
-+							 <PIN_PA9__SDMMC0_DAT7>;
-+						bias-disable;
-+					};
-+
-+					ck_cd_vddsel {
-+						pinmux = <PIN_PA0__SDMMC0_CK>,
-+							 <PIN_PA11__SDMMC0_VDDSEL>,
-+							 <PIN_PA13__SDMMC0_CD>;
-+						bias-disable;
-+					};
-+				};
-+
-+				pinctrl_sdmmc1_default: sdmmc1_default {
-+					cmd_data {
-+						pinmux = <PIN_PA28__SDMMC1_CMD>,
-+							 <PIN_PA18__SDMMC1_DAT0>,
-+							 <PIN_PA19__SDMMC1_DAT1>,
-+							 <PIN_PA20__SDMMC1_DAT2>,
-+							 <PIN_PA21__SDMMC1_DAT3>;
-+						bias-disable;
-+					};
-+
-+					conf-ck_cd {
-+						pinmux = <PIN_PA22__SDMMC1_CK>,
-+							 <PIN_PA30__SDMMC1_CD>;
-+						bias-disable;
-+					};
-+				};
-+
-+				pinctrl_spi0_default: spi0_default {
-+					pinmux = <PIN_PA14__SPI0_SPCK>,
-+						 <PIN_PA15__SPI0_MOSI>,
-+						 <PIN_PA16__SPI0_MISO>,
-+						 <PIN_PA17__SPI0_NPCS0>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_uart1_default: uart1_default {
-+					pinmux = <PIN_PD2__URXD1>,
-+						 <PIN_PD3__UTXD1>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_uart3_default: uart3_default {
-+					pinmux = <PIN_PC12__URXD3>,
-+						 <PIN_PC13__UTXD3>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_usb_default: usb_default {
-+					pinmux = <PIN_PA27__GPIO>,
-+						 <PIN_PD19__GPIO>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_usba_vbus: usba_vbus {
-+					pinmux = <PIN_PD20__GPIO>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_mikrobus1_an: mikrobus1_an {
-+					pinmux = <PIN_PD25__GPIO>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_mikrobus2_an: mikrobus2_an {
-+					pinmux = <PIN_PD26__GPIO>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_mikrobus1_rst: mikrobus1_rst {
-+					pinmux = <PIN_PB2__GPIO>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_mikrobus2_rst: mikrobus2_rst {
-+					pinmux = <PIN_PA26__GPIO>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_mikrobus1_spi_cs: mikrobus1_spi_cs {
-+					pinmux = <PIN_PD0__FLEXCOM4_IO4>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_mikrobus2_spi_cs: mikrobus2_spi_cs {
-+					pinmux = <PIN_PC31__FLEXCOM4_IO3>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_mikrobus_spi: mikrobus_spi {
-+					pinmux = <PIN_PC28__FLEXCOM4_IO0>,
-+						 <PIN_PC29__FLEXCOM4_IO1>,
-+						 <PIN_PC30__FLEXCOM4_IO2>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_mikrobus1_pwm: mikrobus1_pwm {
-+					pinmux = <PIN_PB1__PWML1>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_mikrobus2_pwm: mikrobus2_pwm {
-+					pinmux = <PIN_PA31__PWML0>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_mikrobus1_int: mikrobus1_int {
-+					pinmux = <PIN_PB0__GPIO>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_mikrobus2_int: mikrobus2_int {
-+					pinmux = <PIN_PA25__GPIO>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_mikrobus1_uart: mikrobus1_uart {
-+					pinmux = <PIN_PB3__URXD4>,
-+						 <PIN_PB4__UTXD4>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_mikrobus2_uart: mikrobus2_uart {
-+					pinmux = <PIN_PD23__URXD2>,
-+						 <PIN_PD24__UTXD2>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_mikrobus_i2c: mikrobus1_i2c {
-+					pinmux = <PIN_PA24__FLEXCOM1_IO0>,
-+						 <PIN_PA23__FLEXCOM1_IO1>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_flx4_default: flx4_uart_default {
-+					pinmux = <PIN_PC28__FLEXCOM4_IO0>,
-+						 <PIN_PC29__FLEXCOM4_IO1>,
-+						 <PIN_PC30__FLEXCOM4_IO2>,
-+						 <PIN_PC31__FLEXCOM4_IO3>,
-+						 <PIN_PD0__FLEXCOM4_IO4>;
-+					bias-disable;
-+				};
-+			};
-+
-+			can1: can@fc050000 {
-+				pinctrl-names = "default";
-+				pinctrl-0 = <&pinctrl_can1_default>;
-+				status = "okay";
-+			};
-+		};
-+	};
-+
-+	gpio_keys {
-+		compatible = "gpio-keys";
-+
-+		pinctrl-names = "default";
-+		pinctrl-0 = <&pinctrl_key_gpio_default>;
-+
-+		pb4 {
-+			label = "USER";
-+			gpios = <&pioA PIN_PA29 GPIO_ACTIVE_LOW>;
-+			linux,code = <0x104>;
-+			wakeup-source;
-+		};
-+	};
-+
-+	leds {
-+		compatible = "gpio-leds";
-+		pinctrl-names = "default";
-+		pinctrl-0 = <&pinctrl_led_gpio_default>;
-+		status = "okay"; /* Conflict with pwm0. */
-+
-+		red {
-+			label = "red";
-+			gpios = <&pioA PIN_PA10 GPIO_ACTIVE_HIGH>;
-+		};
-+
-+		green {
-+			label = "green";
-+			gpios = <&pioA PIN_PB1 GPIO_ACTIVE_HIGH>;
-+		};
-+
-+		blue {
-+			label = "blue";
-+			gpios = <&pioA PIN_PA31 GPIO_ACTIVE_HIGH>;
-+			linux,default-trigger = "heartbeat";
-+		};
-+	};
-+};
---- a/include/dt-bindings/pinctrl/at91.h
-+++ b/include/dt-bindings/pinctrl/at91.h
-@@ -37,4 +37,8 @@
- #define AT91_PERIPH_C		3
- #define AT91_PERIPH_D		4
- 
-+#define ATMEL_PIO_DRVSTR_LO	1
-+#define ATMEL_PIO_DRVSTR_ME	2
-+#define ATMEL_PIO_DRVSTR_HI	3
-+
- #endif /* __DT_BINDINGS_AT91_PINCTRL_H__ */
diff --git a/target/linux/at91/patches-4.9/105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch b/target/linux/at91/patches-4.9/105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch
deleted file mode 100644
index e33840c..0000000
--- a/target/linux/at91/patches-4.9/105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch
+++ /dev/null
@@ -1,435 +0,0 @@ 
---- a/arch/arm/boot/dts/Makefile
-+++ b/arch/arm/boot/dts/Makefile
-@@ -49,6 +49,7 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \
- 	wb45n.dtb
- dtb-$(CONFIG_SOC_SAM_V7) += \
- 	at91-kizbox2.dtb \
-+	at91-sama5d2_ptc_ek.dtb \
- 	at91-sama5d27_som1_ek.dtb \
- 	at91-sama5d2_xplained.dtb \
- 	at91-sama5d3_xplained.dtb \
---- /dev/null
-+++ b/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts
-@@ -0,0 +1,422 @@
-+// SPDX-License-Identifier: (GPL-2.0+ OR X11)
-+/*
-+ * at91-sama5d2_ptc_ek.dts - Device Tree file for SAMA5D2 PTC EK board
-+ *
-+ *  Copyright (C) 2017 Microchip/Atmel,
-+ *		  2017 Wenyou Yang <wenyou.yang@microchip.com>
-+ *		  2017 Ludovic Desroches <ludovic.desroches@microchip.com>
-+ */
-+/dts-v1/;
-+#include "sama5d2.dtsi"
-+#include "sama5d2-pinfunc.h"
-+#include <dt-bindings/mfd/atmel-flexcom.h>
-+#include <dt-bindings/gpio/gpio.h>
-+#include <dt-bindings/pinctrl/at91.h>
-+
-+/ {
-+	model = "Atmel SAMA5D2 PTC EK";
-+	compatible = "atmel,sama5d2-ptc_ek", "atmel,sama5d2", "atmel,sama5";
-+
-+	aliases {
-+		serial0 = &uart0;
-+		i2c0	= &i2c0;
-+		i2c1	= &i2c1;
-+		i2c2	= &i2c2;
-+	};
-+
-+	chosen {
-+		stdout-path = "serial0:115200n8";
-+	};
-+
-+	memory {
-+		reg = <0x20000000 0x80000>;
-+	};
-+
-+	clocks {
-+		slow_xtal {
-+			clock-frequency = <32768>;
-+		};
-+
-+		main_xtal {
-+			clock-frequency = <24000000>;
-+		};
-+	};
-+
-+	ahb {
-+		usb0: gadget@00300000 {
-+			atmel,vbus-gpio = <&pioA PIN_PB11 GPIO_ACTIVE_HIGH>;
-+			pinctrl-names = "default";
-+			pinctrl-0 = <&pinctrl_usba_vbus>;
-+			status = "okay";
-+		};
-+
-+		usb1: ohci@00400000 {
-+			num-ports = <3>;
-+			atmel,vbus-gpio = <0
-+					   &pioA PIN_PB12 GPIO_ACTIVE_HIGH
-+					   0
-+					  >;
-+			pinctrl-names = "default";
-+			pinctrl-0 = <&pinctrl_usb_default>;
-+			status = "okay";
-+		};
-+
-+		usb2: ehci@00500000 {
-+			status = "okay";
-+		};
-+
-+		nand0: nand@80000000 {
-+			nand-bus-width = <8>;
-+			nand-ecc-mode = "hw";
-+			nand-on-flash-bbt;
-+			atmel,has-pmecc;
-+			pinctrl-names = "default";
-+			pinctrl-0 = <&pinctrl_nand_default>;
-+			status = "okay"; /* conflicts with sdmmc1 and qspi0 */
-+
-+			at91bootstrap@0 {
-+				label = "bootstrap";
-+				reg = <0x0 0x40000>;
-+			};
-+
-+			bootloader@40000 {
-+				label = "bootloader";
-+				reg = <0x40000 0xc0000>;
-+			};
-+
-+			bootloaderenv@0x100000 {
-+				label = "bootloader env";
-+				reg = <0x100000 0x40000>;
-+			};
-+
-+			bootloaderenvred@0x140000 {
-+				label = "bootloader env redundant";
-+				reg = <0x140000 0x40000>;
-+			};
-+
-+			dtb@180000 {
-+				label = "device tree";
-+				reg = <0x180000 0x80000>;
-+			};
-+
-+			kernel@200000 {
-+				label = "kernel";
-+				reg = <0x200000 0x600000>;
-+			};
-+
-+			rootfs@800000 {
-+				label = "rootfs";
-+				reg = <0x800000 0x1f800000>;
-+			};
-+		};
-+
-+		sdmmc0: sdio-host@a0000000 {
-+			bus-width = <8>;
-+			pinctrl-names = "default";
-+			pinctrl-0 = <&pinctrl_sdmmc0_default>;
-+			status = "okay";
-+		};
-+
-+		apb {
-+			pmc: pmc@f0014000 {
-+				pmc_fast_restart {
-+					compatible = "atmel,sama5d2-pmc-fast-startup";
-+					#address-cells = <1>;
-+					#size-cells = <0>;
-+
-+					atmel,wakeup-rtc-timer;
-+
-+					wkpin: input@0 {
-+						reg = <0>;
-+					};
-+
-+					gmac_wol: input@10 {
-+						reg = <10>;
-+						atmel,wakeup-active-high;
-+					};
-+				};
-+			};
-+
-+			spi0: spi@f8000000 {
-+				pinctrl-names = "default";
-+				pinctrl-0 = <&pinctrl_spi0_default>;
-+				status = "okay";
-+
-+				/*
-+				m25p80@0 {
-+					compatible = "atmel,at25df321a";
-+					reg = <0>;
-+					spi-max-frequency = <50000000>;
-+				};
-+				*/
-+			};
-+
-+			macb0: ethernet@f8008000 {
-+				pinctrl-names = "default";
-+				pinctrl-0 = <&pinctrl_macb0_default &pinctrl_macb0_phy_irq>;
-+				phy-mode = "rmii";
-+				status = "okay";
-+
-+				ethernet-phy@1 {
-+					reg = <0x1>;
-+					interrupt-parent = <&pioA>;
-+					interrupts = <56 IRQ_TYPE_LEVEL_LOW>;
-+				};
-+			};
-+
-+			uart0: serial@f801c000 {
-+				pinctrl-names = "default";
-+				pinctrl-0 = <&pinctrl_uart0_default>;
-+				atmel,use-dma-rx;
-+				atmel,use-dma-tx;
-+				status = "okay";
-+			};
-+
-+			uart2: serial@f8024000 {
-+				pinctrl-names = "default";
-+				pinctrl-0 = <&pinctrl_uart2_default>;
-+				atmel,use-dma-rx;
-+				atmel,use-dma-tx;
-+				status = "okay";
-+			};
-+
-+			i2c0: i2c@f8028000 {
-+				dmas = <0>, <0>;
-+				pinctrl-names = "default";
-+				pinctrl-0 = <&pinctrl_i2c0_default>;
-+				i2c-sda-hold-time-ns = <350>;
-+				status = "okay";
-+			};
-+
-+			flx0: flexcom@f8034000 {
-+				atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
-+				status = "okay";
-+
-+				i2c2: i2c@600 {
-+					compatible = "atmel,sama5d2-i2c";
-+					reg = <0x600 0x200>;
-+					interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
-+					dmas = <0>, <0>;
-+					dma-names = "tx", "rx";
-+					#address-cells = <1>;
-+					#size-cells = <0>;
-+					clocks = <&flx0_clk>;
-+					pinctrl-names = "default";
-+					pinctrl-0 = <&pinctrl_flx0_default>;
-+					atmel,fifo-size = <16>;
-+					status = "okay";
-+				};
-+			};
-+
-+			shdwc@f8048010 {
-+				atmel,shdwc-debouncer = <976>;
-+
-+				input@0 {
-+					reg = <0>;
-+					atmel,wakeup-type = "low";
-+				};
-+			};
-+
-+			watchdog@f8048040 {
-+				status = "okay";
-+			};
-+
-+			spi1: spi@fc000000 {
-+				pinctrl-names = "default";
-+				pinctrl-0 = <&pinctrl_spi1_default>;
-+				status = "okay";
-+			};
-+
-+			i2c1: i2c@fc028000 {
-+				dmas = <0>, <0>;
-+				pinctrl-names = "default";
-+				pinctrl-0 = <&pinctrl_i2c1_default>;
-+				status = "okay";
-+
-+				at24@50 {
-+					compatible = "24c02";
-+					reg = <0x50>;
-+					pagesize = <8>;
-+				};
-+			};
-+
-+			pinctrl@fc038000 {
-+				pinctrl_flx0_default: flx0_default {
-+					pinmux = <PIN_PB28__FLEXCOM0_IO0>,
-+						 <PIN_PB29__FLEXCOM0_IO1>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_i2c0_default: i2c0_default {
-+					pinmux = <PIN_PD21__TWD0>,
-+						 <PIN_PD22__TWCK0>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_i2c1_default: i2c1_default {
-+					pinmux = <PIN_PC6__TWD1>,
-+						 <PIN_PC7__TWCK1>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_key_gpio_default: key_gpio_default {
-+					pinmux = <PIN_PA10__GPIO>;
-+					bias-pull-up;
-+				};
-+
-+				pinctrl_led_gpio_default: led_gpio_default {
-+					pinmux = <PIN_PB6__GPIO>,
-+						 <PIN_PB8__GPIO>,
-+						 <PIN_PB10__GPIO>;
-+					bias-pull-up;
-+				};
-+
-+				pinctrl_macb0_default: macb0_default {
-+					pinmux = <PIN_PB14__GTXCK>,
-+						 <PIN_PB15__GTXEN>,
-+						 <PIN_PB16__GRXDV>,
-+						 <PIN_PB17__GRXER>,
-+						 <PIN_PB18__GRX0>,
-+						 <PIN_PB19__GRX1>,
-+						 <PIN_PB20__GTX0>,
-+						 <PIN_PB21__GTX1>,
-+						 <PIN_PB22__GMDC>,
-+						 <PIN_PB23__GMDIO>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_macb0_phy_irq: macb0_phy_irq {
-+					pinmux = <PIN_PB24__GPIO>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_nand_default: nand_default {
-+					re_we_data {
-+						pinmux = <PIN_PA22__D0>,
-+							 <PIN_PA23__D1>,
-+							 <PIN_PA24__D2>,
-+							 <PIN_PA25__D3>,
-+							 <PIN_PA26__D4>,
-+							 <PIN_PA27__D5>,
-+							 <PIN_PA28__D6>,
-+							 <PIN_PA29__D7>,
-+							 <PIN_PA30__NWE_NANDWE>,
-+							 <PIN_PB2__NRD_NANDOE>;
-+						bias-pull-up;
-+						drive-strength = <ATMEL_PIO_DRVSTR_ME>;
-+					};
-+
-+					ale_cle_rdy_cs {
-+						pinmux = <PIN_PB0__A21_NANDALE>,
-+							 <PIN_PB1__A22_NANDCLE>,
-+							 <PIN_PC8__NANDRDY>,
-+							 <PIN_PA31__NCS3>;
-+						bias-pull-up;
-+					};
-+				};
-+
-+				pinctrl_sdmmc0_default: sdmmc0_default {
-+					cmd_data {
-+						pinmux = <PIN_PA1__SDMMC0_CMD>,
-+							 <PIN_PA2__SDMMC0_DAT0>,
-+							 <PIN_PA3__SDMMC0_DAT1>,
-+							 <PIN_PA4__SDMMC0_DAT2>,
-+							 <PIN_PA5__SDMMC0_DAT3>,
-+							 <PIN_PA6__SDMMC0_DAT4>,
-+							 <PIN_PA7__SDMMC0_DAT5>,
-+							 <PIN_PA8__SDMMC0_DAT6>,
-+							 <PIN_PA9__SDMMC0_DAT7>;
-+						bias-pull-up;
-+					};
-+
-+					ck_cd_vddsel {
-+						pinmux = <PIN_PA0__SDMMC0_CK>,
-+							 <PIN_PA11__SDMMC0_VDDSEL>,
-+							 <PIN_PA13__SDMMC0_CD>;
-+						bias-disable;
-+					};
-+				};
-+
-+				pinctrl_spi0_default: spi0_default {
-+					pinmux = <PIN_PA14__SPI0_SPCK>,
-+						 <PIN_PA15__SPI0_MOSI>,
-+						 <PIN_PA16__SPI0_MISO>,
-+						 <PIN_PA17__SPI0_NPCS0>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_spi1_default: spi1_default {
-+					pinmux = <PIN_PC1__SPI1_SPCK>,
-+						 <PIN_PC2__SPI1_MOSI>,
-+						 <PIN_PC3__SPI1_MISO>,
-+						 <PIN_PC4__SPI1_NPCS0>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_uart0_default: uart0_default {
-+					pinmux = <PIN_PB26__URXD0>,
-+						 <PIN_PB27__UTXD0>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_uart2_default: uart2_default {
-+					pinmux = <PIN_PD23__URXD2>,
-+						 <PIN_PD24__UTXD2>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_usb_default: usb_default {
-+					pinmux = <PIN_PB12__GPIO>;
-+					bias-disable;
-+				};
-+
-+				pinctrl_usba_vbus: usba_vbus {
-+					pinmux = <PIN_PB11__GPIO>;
-+					bias-disable;
-+				};
-+
-+			};
-+
-+			ptc@fc060000 {
-+				status = "okay";
-+			};
-+		};
-+	};
-+
-+	gpio_keys {
-+		compatible = "gpio-keys";
-+
-+		pinctrl-names = "default";
-+		pinctrl-0 = <&pinctrl_key_gpio_default>;
-+
-+		bp1 {
-+			label = "PB_USER";
-+			gpios = <&pioA PIN_PA10 GPIO_ACTIVE_LOW>;
-+			linux,code = <0x104>;
-+			wakeup-source;
-+		};
-+	};
-+
-+	leds {
-+		compatible = "gpio-leds";
-+		pinctrl-names = "default";
-+		pinctrl-0 = <&pinctrl_led_gpio_default>;
-+		status = "okay";
-+
-+		red {
-+			label = "red";
-+			gpios = <&pioA PIN_PB10 GPIO_ACTIVE_HIGH>;
-+		};
-+
-+		green {
-+			label = "green";
-+			gpios = <&pioA PIN_PB8 GPIO_ACTIVE_HIGH>;
-+		};
-+
-+		blue {
-+			label = "blue";
-+			gpios = <&pioA PIN_PB6 GPIO_ACTIVE_HIGH>;
-+			linux,default-trigger = "heartbeat";
-+		};
-+	};
-+};
diff --git a/target/linux/at91/sam9x/config-default b/target/linux/at91/sam9x/config-default
index f53f24e..8cd7330 100644
--- a/target/linux/at91/sam9x/config-default
+++ b/target/linux/at91/sam9x/config-default
@@ -2,21 +2,12 @@ 
 CONFIG_ARCH_MULTI_V4T=y
 CONFIG_ARCH_MULTI_V4_V5=y
 CONFIG_ARCH_MULTI_V5=y
-# CONFIG_ARM_AT91_CPUIDLE is not set
+# CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set
 CONFIG_ARM_L1_CACHE_SHIFT=5
 # CONFIG_AT91RM9200_WATCHDOG is not set
 CONFIG_ATMEL_AIC_IRQ=y
 CONFIG_ATMEL_ST=y
-CONFIG_AT_XDMAC=y
-CONFIG_BACKLIGHT_ATMEL_LCDC=y
 # CONFIG_CACHE_L2X0 is not set
-CONFIG_CMA_ALIGNMENT=8
-CONFIG_CMA_DEBUGFS=y
-CONFIG_CMA_SIZE_MBYTES=16
-# CONFIG_CMA_SIZE_SEL_MAX is not set
-CONFIG_CMA_SIZE_SEL_MBYTES=y
-# CONFIG_CMA_SIZE_SEL_MIN is not set
-# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
 CONFIG_CPU_32v4T=y
 CONFIG_CPU_32v5=y
 CONFIG_CPU_ABRT_EV4T=y
@@ -33,28 +24,39 @@  CONFIG_CPU_PABRT_LEGACY=y
 CONFIG_CPU_TLB_V4WBI=y
 CONFIG_CPU_USE_DOMAINS=y
 CONFIG_CRC7=y
-CONFIG_CRC_CCITT=y
 CONFIG_CRC_ITU_T=y
-CONFIG_DEBUG_MEMORY_INIT=y
-CONFIG_DMA_CMA=y
-CONFIG_FB_ATMEL=y
-CONFIG_FB_BACKLIGHT=y
-CONFIG_FB_MODE_HELPERS=y
 CONFIG_GENERIC_ATOMIC64=y
 # CONFIG_HAVE_ARCH_BITREVERSE is not set
 CONFIG_HZ=128
+# CONFIG_HZ_100 is not set
 CONFIG_HZ_FIXED=128
-# CONFIG_LCD_CLASS_DEVICE is not set
+CONFIG_INPUT_JOYDEV=y
+CONFIG_INPUT_POLLDEV=y
+CONFIG_IR_JVC_DECODER=y
+CONFIG_IR_MCE_KBD_DECODER=y
+CONFIG_IR_NEC_DECODER=y
+CONFIG_IR_RC5_DECODER=y
+CONFIG_IR_RC6_DECODER=y
+CONFIG_IR_SANYO_DECODER=y
+CONFIG_IR_SHARP_DECODER=y
+CONFIG_IR_SONY_DECODER=y
+CONFIG_IR_XMP_DECODER=y
+# CONFIG_LIRC is not set
 CONFIG_MMC_SPI=y
 CONFIG_NEED_KUSER_HELPERS=y
-CONFIG_RFKILL_REGULATOR=y
-CONFIG_RTC_DRV_AT91SAM9=y
-# CONFIG_SND_ARM is not set
-# CONFIG_SND_DRIVERS is not set
-# CONFIG_SND_SPI is not set
+CONFIG_RC_CORE=y
+CONFIG_RC_DECODERS=y
+# CONFIG_RC_DEVICES is not set
+CONFIG_RC_MAP=y
+# CONFIG_REGULATOR_ACT8945A is not set
+# CONFIG_SAMA5D4_WATCHDOG is not set
+CONFIG_SND_AT91_SOC_SAM9G20_WM8731=y
+CONFIG_SND_AT91_SOC_SAM9X5_WM8731=y
+CONFIG_SND_ATMEL_SOC_PDC=y
+CONFIG_SND_ATMEL_SOC_SSC_PDC=y
+CONFIG_SND_SOC_WM8731=y
 CONFIG_SOC_AT91RM9200=y
 CONFIG_SOC_AT91SAM9=y
 CONFIG_SOC_SAM_V4_V5=y
 CONFIG_SPLIT_PTLOCK_CPUS=999999
-CONFIG_TOUCHSCREEN_ADS7846=y
-# CONFIG_USB_ATMEL_USBA is not set
+CONFIG_VIDEO_IR_I2C=y
diff --git a/target/linux/at91/sama5d2/config-default b/target/linux/at91/sama5d2/config-default
index 43f8d24..29ef738 100644
--- a/target/linux/at91/sama5d2/config-default
+++ b/target/linux/at91/sama5d2/config-default
@@ -1,44 +1,58 @@ 
 CONFIG_ARCH_MULTI_V6_V7=y
 CONFIG_ARCH_MULTI_V7=y
-CONFIG_AT91_SAMA5D2_ADC=y
-CONFIG_AT_XDMAC=y
-CONFIG_BATTERY_ACT8945A=y
-CONFIG_CAN=y
-CONFIG_CMA_ALIGNMENT=8
-CONFIG_CMA_DEBUGFS=y
-CONFIG_CMA_SIZE_MBYTES=16
-# CONFIG_CMA_SIZE_SEL_MAX is not set
-CONFIG_CMA_SIZE_SEL_MBYTES=y
-# CONFIG_CMA_SIZE_SEL_MIN is not set
-# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
-CONFIG_CPU_IDLE_GOV_MENU=y
-CONFIG_DEBUG_MEMORY_INIT=y
-CONFIG_DMA_CMA=y
-# CONFIG_HZ_PERIODIC is not set
-# CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_MEMCG=y
-CONFIG_MFD_ACT8945A=y
-CONFIG_MFD_ATMEL_FLEXCOM=y
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_IO_ACCESSORS=y
-CONFIG_MMC_SDHCI_OF_AT91=y
-CONFIG_MMC_SDHCI_PLTFM=y
-CONFIG_MTD_M25P80=y
-CONFIG_MTD_SPI_NOR=y
-CONFIG_NO_HZ_COMMON=y
-CONFIG_NO_HZ_IDLE=y
-CONFIG_PAGE_COUNTER=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_POSIX_MQUEUE_SYSCTL=y
-CONFIG_POWER_RESET_AT91_SAMA5D2_SHDWC=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
+CONFIG_ARM_HEAVY_MB=y
+CONFIG_ARM_L1_CACHE_SHIFT=6
+CONFIG_ARM_L1_CACHE_SHIFT_6=y
+# CONFIG_ARM_LPAE is not set
+CONFIG_ARM_PATCH_IDIV=y
+# CONFIG_ARM_THUMBEE is not set
+CONFIG_ARM_VIRT_EXT=y
+CONFIG_AT91_VDEC_G1=y
+CONFIG_ATMEL_AIC5_IRQ=y
+CONFIG_CACHE_L2X0=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_32v7=y
+CONFIG_CPU_ABRT_EV7=y
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+CONFIG_CPU_CACHE_V7=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_PABRT_V7=y
+CONFIG_CPU_TLB_V7=y
+CONFIG_CPU_V7=y
+CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_HAVE_ARCH_BITREVERSE=y
+CONFIG_HAVE_ARM_SMCCC=y
+CONFIG_HAVE_AT91_AUDIO_PLL=y
+CONFIG_HAVE_AT91_GENERATED_CLK=y
+CONFIG_HAVE_AT91_H32MX=y
+CONFIG_HAVE_AT91_I2S_MUX_CLK=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_SMP=y
+CONFIG_HZ_FIXED=0
+# CONFIG_INPUT_ATMEL_PTC is not set
+CONFIG_MIGHT_HAVE_CACHE_L2X0=y
+CONFIG_NEON=y
+CONFIG_OUTER_CACHE=y
+CONFIG_OUTER_CACHE_SYNC=y
+# CONFIG_PL310_ERRATA_588369 is not set
+# CONFIG_PL310_ERRATA_727915 is not set
+# CONFIG_PL310_ERRATA_753970 is not set
+# CONFIG_PL310_ERRATA_769419 is not set
 CONFIG_REGULATOR_ACT8865=y
 CONFIG_REGULATOR_ACT8945A=y
-CONFIG_RFKILL_REGULATOR=y
+CONFIG_REGULATOR_VIRTUAL_CONSUMER=y
 CONFIG_SAMA5D4_WATCHDOG=y
-CONFIG_SND_ATMEL_SOC_CLASSD=y
+# CONFIG_SND_AT91_SOC_SAM9G20_WM8731 is not set
+# CONFIG_SND_AT91_SOC_SAM9X5_WM8731 is not set
+CONFIG_SOC_SAMA5=y
 CONFIG_SOC_SAMA5D2=y
+CONFIG_SOC_SAMA5D3=y
+CONFIG_SOC_SAMA5D4=y
+# CONFIG_AT91_VDEC_G1 is not set
 CONFIG_SOC_SAM_V7=y
-CONFIG_SPI_ATMEL_QUADSPI=y
-CONFIG_TOUCHSCREEN_ATMEL_MXT=y
-# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
-# CONFIG_USB_ATMEL_USBA is not set
+# CONFIG_SWP_EMULATE is not set
+# CONFIG_THUMB2_KERNEL is not set
+CONFIG_VFPv3=y
diff --git a/target/linux/at91/sama5d3/config-default b/target/linux/at91/sama5d3/config-default
index 88b4031..29ef738 100644
--- a/target/linux/at91/sama5d3/config-default
+++ b/target/linux/at91/sama5d3/config-default
@@ -1,39 +1,58 @@ 
 CONFIG_ARCH_MULTI_V6_V7=y
 CONFIG_ARCH_MULTI_V7=y
-CONFIG_AT91_SAMA5D2_ADC=y
-CONFIG_AT_XDMAC=y
-CONFIG_BATTERY_ACT8945A=y
-CONFIG_CMA_ALIGNMENT=8
-CONFIG_CMA_DEBUGFS=y
-CONFIG_CMA_SIZE_MBYTES=16
-# CONFIG_CMA_SIZE_SEL_MAX is not set
-CONFIG_CMA_SIZE_SEL_MBYTES=y
-# CONFIG_CMA_SIZE_SEL_MIN is not set
-# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
-CONFIG_CPU_IDLE_GOV_MENU=y
-CONFIG_DEBUG_MEMORY_INIT=y
-CONFIG_DMA_CMA=y
-# CONFIG_HZ_PERIODIC is not set
-# CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_MFD_ACT8945A=y
-CONFIG_MFD_ATMEL_FLEXCOM=y
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_IO_ACCESSORS=y
-CONFIG_MMC_SDHCI_OF_AT91=y
-CONFIG_MMC_SDHCI_PLTFM=y
-CONFIG_MTD_M25P80=y
-CONFIG_MTD_SPI_NOR=y
-CONFIG_NO_HZ_COMMON=y
-CONFIG_NO_HZ_IDLE=y
-CONFIG_POWER_RESET_AT91_SAMA5D2_SHDWC=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
+CONFIG_ARM_HEAVY_MB=y
+CONFIG_ARM_L1_CACHE_SHIFT=6
+CONFIG_ARM_L1_CACHE_SHIFT_6=y
+# CONFIG_ARM_LPAE is not set
+CONFIG_ARM_PATCH_IDIV=y
+# CONFIG_ARM_THUMBEE is not set
+CONFIG_ARM_VIRT_EXT=y
+CONFIG_AT91_VDEC_G1=y
+CONFIG_ATMEL_AIC5_IRQ=y
+CONFIG_CACHE_L2X0=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_32v7=y
+CONFIG_CPU_ABRT_EV7=y
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+CONFIG_CPU_CACHE_V7=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_PABRT_V7=y
+CONFIG_CPU_TLB_V7=y
+CONFIG_CPU_V7=y
+CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_HAVE_ARCH_BITREVERSE=y
+CONFIG_HAVE_ARM_SMCCC=y
+CONFIG_HAVE_AT91_AUDIO_PLL=y
+CONFIG_HAVE_AT91_GENERATED_CLK=y
+CONFIG_HAVE_AT91_H32MX=y
+CONFIG_HAVE_AT91_I2S_MUX_CLK=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_SMP=y
+CONFIG_HZ_FIXED=0
+# CONFIG_INPUT_ATMEL_PTC is not set
+CONFIG_MIGHT_HAVE_CACHE_L2X0=y
+CONFIG_NEON=y
+CONFIG_OUTER_CACHE=y
+CONFIG_OUTER_CACHE_SYNC=y
+# CONFIG_PL310_ERRATA_588369 is not set
+# CONFIG_PL310_ERRATA_727915 is not set
+# CONFIG_PL310_ERRATA_753970 is not set
+# CONFIG_PL310_ERRATA_769419 is not set
 CONFIG_REGULATOR_ACT8865=y
 CONFIG_REGULATOR_ACT8945A=y
-CONFIG_RFKILL_REGULATOR=y
+CONFIG_REGULATOR_VIRTUAL_CONSUMER=y
 CONFIG_SAMA5D4_WATCHDOG=y
-CONFIG_SND_ATMEL_SOC_CLASSD=y
+# CONFIG_SND_AT91_SOC_SAM9G20_WM8731 is not set
+# CONFIG_SND_AT91_SOC_SAM9X5_WM8731 is not set
+CONFIG_SOC_SAMA5=y
+CONFIG_SOC_SAMA5D2=y
 CONFIG_SOC_SAMA5D3=y
+CONFIG_SOC_SAMA5D4=y
+# CONFIG_AT91_VDEC_G1 is not set
 CONFIG_SOC_SAM_V7=y
-CONFIG_SPI_ATMEL_QUADSPI=y
-CONFIG_TOUCHSCREEN_ATMEL_MXT=y
-# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
-# CONFIG_USB_ATMEL_USBA is not set
+# CONFIG_SWP_EMULATE is not set
+# CONFIG_THUMB2_KERNEL is not set
+CONFIG_VFPv3=y
diff --git a/target/linux/at91/sama5d4/config-default b/target/linux/at91/sama5d4/config-default
index baa2d5f..c3cad47 100644
--- a/target/linux/at91/sama5d4/config-default
+++ b/target/linux/at91/sama5d4/config-default
@@ -1,39 +1,58 @@ 
 CONFIG_ARCH_MULTI_V6_V7=y
 CONFIG_ARCH_MULTI_V7=y
-CONFIG_AT91_SAMA5D2_ADC=y
-CONFIG_AT_XDMAC=y
-CONFIG_BATTERY_ACT8945A=y
-CONFIG_CMA_ALIGNMENT=8
-CONFIG_CMA_DEBUGFS=y
-CONFIG_CMA_SIZE_MBYTES=16
-# CONFIG_CMA_SIZE_SEL_MAX is not set
-CONFIG_CMA_SIZE_SEL_MBYTES=y
-# CONFIG_CMA_SIZE_SEL_MIN is not set
-# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
-CONFIG_CPU_IDLE_GOV_MENU=y
-CONFIG_DEBUG_MEMORY_INIT=y
-CONFIG_DMA_CMA=y
-# CONFIG_HZ_PERIODIC is not set
-# CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_MFD_ACT8945A=y
-CONFIG_MFD_ATMEL_FLEXCOM=y
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_IO_ACCESSORS=y
-CONFIG_MMC_SDHCI_OF_AT91=y
-CONFIG_MMC_SDHCI_PLTFM=y
-CONFIG_MTD_M25P80=y
-CONFIG_MTD_SPI_NOR=y
-CONFIG_NO_HZ_COMMON=y
-CONFIG_NO_HZ_IDLE=y
-CONFIG_POWER_RESET_AT91_SAMA5D2_SHDWC=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
+CONFIG_ARM_HEAVY_MB=y
+CONFIG_ARM_L1_CACHE_SHIFT=6
+CONFIG_ARM_L1_CACHE_SHIFT_6=y
+# CONFIG_ARM_LPAE is not set
+CONFIG_ARM_PATCH_IDIV=y
+# CONFIG_ARM_THUMBEE is not set
+CONFIG_ARM_VIRT_EXT=y
+CONFIG_AT91_VDEC_G1=y
+CONFIG_ATMEL_AIC5_IRQ=y
+CONFIG_CACHE_L2X0=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_32v7=y
+CONFIG_CPU_ABRT_EV7=y
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+CONFIG_CPU_CACHE_V7=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_PABRT_V7=y
+CONFIG_CPU_TLB_V7=y
+CONFIG_CPU_V7=y
+CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_HAVE_ARCH_BITREVERSE=y
+CONFIG_HAVE_ARM_SMCCC=y
+CONFIG_HAVE_AT91_AUDIO_PLL=y
+CONFIG_HAVE_AT91_GENERATED_CLK=y
+CONFIG_HAVE_AT91_H32MX=y
+CONFIG_HAVE_AT91_I2S_MUX_CLK=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_SMP=y
+CONFIG_HZ_FIXED=0
+# CONFIG_INPUT_ATMEL_PTC is not set
+CONFIG_MIGHT_HAVE_CACHE_L2X0=y
+CONFIG_NEON=y
+CONFIG_OUTER_CACHE=y
+CONFIG_OUTER_CACHE_SYNC=y
+# CONFIG_PL310_ERRATA_588369 is not set
+# CONFIG_PL310_ERRATA_727915 is not set
+# CONFIG_PL310_ERRATA_753970 is not set
+# CONFIG_PL310_ERRATA_769419 is not set
 CONFIG_REGULATOR_ACT8865=y
 CONFIG_REGULATOR_ACT8945A=y
-CONFIG_RFKILL_REGULATOR=y
+CONFIG_REGULATOR_VIRTUAL_CONSUMER=y
 CONFIG_SAMA5D4_WATCHDOG=y
-CONFIG_SND_ATMEL_SOC_CLASSD=y
+# CONFIG_SND_AT91_SOC_SAM9G20_WM8731 is not set
+# CONFIG_SND_AT91_SOC_SAM9X5_WM8731 is not set
+CONFIG_SOC_SAMA5=y
+CONFIG_SOC_SAMA5D2=y
+CONFIG_SOC_SAMA5D3=y
 CONFIG_SOC_SAMA5D4=y
+CONFIG_AT91_VDEC_G1=y
 CONFIG_SOC_SAM_V7=y
-CONFIG_SPI_ATMEL_QUADSPI=y
-CONFIG_TOUCHSCREEN_ATMEL_MXT=y
-# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
-# CONFIG_USB_ATMEL_USBA is not set
+# CONFIG_SWP_EMULATE is not set
+# CONFIG_THUMB2_KERNEL is not set
+CONFIG_VFPv3=y