[OpenWrt-Devel] [PATCH 1/5] at91: add 4.1 support

Ben Whitten ben.whitten at gmail.com
Sat Jan 16 12:01:00 EST 2016


This puts the existing patches and config in a 3.18 folder and introduces
a 4.1 config and patches.
The USB clock fix patch is no longer necessary, and the patches applying
to non DT boards has been dropped as the platform has been converted.
4.1 config was generated by copying 3.18 and running make kernel_menuconfig,
scripts/kconfig.pl filled in the gaps.

Signed-off-by: Ben Whitten <ben.whitten at gmail.com>
---
 target/linux/at91/config-3.18                      | 230 ++++++++++++++++++
 target/linux/at91/config-4.1                       | 268 +++++++++++++++++++++
 target/linux/at91/config-default                   | 230 ------------------
 .../100-ARM-at91-build-dtb-for-LMU5000.patch       |  10 +
 .../101-ARM-at91-build-dtb-for-q5xr5.patch         |  10 +
 .../200-ARM-at91-udc-clockfix-backport.patch       |  82 +++++++
 .../201-ARM-at91-usb-determine_rate-backport.patch |  20 ++
 .../patches-3.18/805-free_some_portc_pins.patch    |  11 +
 ...-AT91-flexibity-default-leds-to-heartbeat.patch |  60 +++++
 .../100-ARM-at91-build-dtb-for-LMU5000.patch       |  10 +
 .../101-ARM-at91-build-dtb-for-q5xr5.patch         |  10 +
 .../100-ARM-at91-build-dtb-for-LMU5000.patch       |  10 -
 .../patches/101-ARM-at91-build-dtb-for-q5xr5.patch |  10 -
 .../200-ARM-at91-udc-clockfix-backport.patch       |  82 -------
 .../201-ARM-at91-usb-determine_rate-backport.patch |  20 --
 .../at91/patches/805-free_some_portc_pins.patch    |  11 -
 ...-AT91-flexibity-default-leds-to-heartbeat.patch |  60 -----
 17 files changed, 711 insertions(+), 423 deletions(-)
 create mode 100644 target/linux/at91/config-3.18
 create mode 100644 target/linux/at91/config-4.1
 delete mode 100644 target/linux/at91/config-default
 create mode 100644 target/linux/at91/patches-3.18/100-ARM-at91-build-dtb-for-LMU5000.patch
 create mode 100644 target/linux/at91/patches-3.18/101-ARM-at91-build-dtb-for-q5xr5.patch
 create mode 100644 target/linux/at91/patches-3.18/200-ARM-at91-udc-clockfix-backport.patch
 create mode 100644 target/linux/at91/patches-3.18/201-ARM-at91-usb-determine_rate-backport.patch
 create mode 100644 target/linux/at91/patches-3.18/805-free_some_portc_pins.patch
 create mode 100644 target/linux/at91/patches-3.18/901-AT91-flexibity-default-leds-to-heartbeat.patch
 create mode 100644 target/linux/at91/patches-4.1/100-ARM-at91-build-dtb-for-LMU5000.patch
 create mode 100644 target/linux/at91/patches-4.1/101-ARM-at91-build-dtb-for-q5xr5.patch
 delete mode 100644 target/linux/at91/patches/100-ARM-at91-build-dtb-for-LMU5000.patch
 delete mode 100644 target/linux/at91/patches/101-ARM-at91-build-dtb-for-q5xr5.patch
 delete mode 100644 target/linux/at91/patches/200-ARM-at91-udc-clockfix-backport.patch
 delete mode 100644 target/linux/at91/patches/201-ARM-at91-usb-determine_rate-backport.patch
 delete mode 100644 target/linux/at91/patches/805-free_some_portc_pins.patch
 delete mode 100644 target/linux/at91/patches/901-AT91-flexibity-default-leds-to-heartbeat.patch

diff --git a/target/linux/at91/config-3.18 b/target/linux/at91/config-3.18
new file mode 100644
index 0000000..8faced7
--- /dev/null
+++ b/target/linux/at91/config-3.18
@@ -0,0 +1,230 @@
+CONFIG_ALIGNMENT_TRAP=y
+CONFIG_ARCH_AT91=y
+CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
+CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
+CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
+CONFIG_ARCH_NR_GPIO=0
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
+CONFIG_ARM=y
+CONFIG_ARM_APPENDED_DTB=y
+# CONFIG_ARM_ATAG_DTB_COMPAT is not set
+# CONFIG_ARM_CPU_SUSPEND is not set
+CONFIG_ARM_NR_BANKS=8
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_ARM_THUMB=y
+CONFIG_AT91SAM9X_WATCHDOG=y
+CONFIG_AT91_PMC_UNIT=y
+CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
+CONFIG_AT91_SAM9G45_RESET=y
+CONFIG_AT91_SAM9_ALT_RESET=y
+CONFIG_AT91_SAM9_TIME=y
+CONFIG_AT91_TIMER_HZ=100
+CONFIG_ATAGS=y
+# CONFIG_ATMEL_TCLIB is not set
+# CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_CACHE_L2X0 is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_CONFIGFS_FS=y
+CONFIG_CPU_USE_DOMAINS=y
+CONFIG_CRC16=y
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_LZO=y
+CONFIG_DEBUG_BUGVERBOSE=y
+CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
+# CONFIG_DEBUG_PINCTRL is not set
+# CONFIG_DEBUG_USER is not set
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+CONFIG_DTC=y
+CONFIG_EXT4_FS=y
+CONFIG_FRAME_POINTER=y
+CONFIG_FS_MBCACHE=y
+CONFIG_GENERIC_ATOMIC64=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_GENERIC_IO=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_DEVRES=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_HAS_DMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+# CONFIG_HAVE_64BIT_ALIGNED_ACCESS 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_AT91_DBGU0=y
+CONFIG_HAVE_AT91_DBGU1=y
+# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
+CONFIG_HAVE_BPF_JIT=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FB_ATMEL=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_NET_DSA=y
+CONFIG_HAVE_OPROFILE=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_HAVE_PROC_CPU=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_UID16=y
+CONFIG_HZ_PERIODIC=y
+CONFIG_IRQCHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_WORK=y
+# CONFIG_ISDN is not set
+CONFIG_JBD2=y
+CONFIG_JFFS2_ZLIB=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_M25PXX_PREFER_SMALL_SECTOR_ERASE=y
+CONFIG_M25PXX_USE_FAST_READ=y
+CONFIG_MACB=y
+CONFIG_MACH_AT91SAM9_DT=y
+CONFIG_MDIO_BOARDINFO=y
+# CONFIG_MII is not set
+CONFIG_MICREL_PHY=y
+CONFIG_MMC=y
+CONFIG_MMC_ATMELMCI=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MODULES_USE_ELF_REL=y
+CONFIG_MTD_DATAFLASH=y
+# CONFIG_MTD_DATAFLASH_OTP is not set
+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
+CONFIG_MTD_M25P80=y
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_ATMEL=y
+CONFIG_MTD_NAND_ECC=y
+CONFIG_MTD_OF_PARTS=y
+CONFIG_MTD_PHYSMAP=y
+CONFIG_MTD_PHYSMAP_OF=y
+# CONFIG_MTD_SM_COMMON is not set
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_BEB_LIMIT=20
+# CONFIG_MTD_UBI_BLOCK is not set
+# CONFIG_MTD_UBI_FASTMAP is not set
+# CONFIG_MTD_UBI_GLUEBI is not set
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MULTI_IRQ_HANDLER=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_KUSER_HELPERS=y
+CONFIG_NEED_MACH_GPIO_H=y
+CONFIG_NEED_PER_CPU_KM=y
+CONFIG_NLS=y
+CONFIG_OF=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_DEVICE=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_MTD=y
+CONFIG_OF_NET=y
+CONFIG_OLD_SIGACTION=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PCI_SYSCALL is not set
+CONFIG_PERF_USE_VMALLOC=y
+CONFIG_PHYLIB=y
+CONFIG_PINCONF=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_AT91=y
+# CONFIG_PINCTRL_SINGLE is not set
+CONFIG_PINMUX=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_AT91_POWEROFF=y
+CONFIG_POWER_RESET_AT91_RESET=y
+# CONFIG_POWER_RESET_GPIO is not set
+# CONFIG_POWER_RESET_GPIO_RESTART is not set
+# CONFIG_POWER_RESET_LTC2952 is not set
+# CONFIG_POWER_RESET_SYSCON 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_PREEMPT_RCU is not set
+CONFIG_PROC_DEVICETREE=y
+# CONFIG_RCU_STALL_COMMON is not set
+CONFIG_RTC_CLASS=y
+# CONFIG_RTC_DRV_AT91RM9200 is not set
+# CONFIG_RTC_DRV_AT91SAM9 is not set
+# CONFIG_RTC_DRV_CMOS is not set
+CONFIG_SCHED_HRTICK=y
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SERIAL_8250 is not set
+CONFIG_SERIAL_ATMEL=y
+CONFIG_SERIAL_ATMEL_CONSOLE=y
+CONFIG_SERIAL_ATMEL_PDC=y
+# CONFIG_SERIAL_ATMEL_TTYAT is not set
+CONFIG_SPARSE_IRQ=y
+CONFIG_SPI=y
+CONFIG_SPI_ATMEL=y
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_SPIDEV=y
+CONFIG_SPLIT_PTLOCK_CPUS=999999
+# CONFIG_STAGING is not set
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_TICK_CPU_ACCOUNTING=y
+CONFIG_UBIFS_FS=y
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
+CONFIG_UBIFS_FS_LZO=y
+# CONFIG_UBIFS_FS_XZ is not set
+CONFIG_UBIFS_FS_ZLIB=y
+CONFIG_UID16=y
+CONFIG_UIDGID_CONVERTED=y
+CONFIG_UNCOMPRESS_INCLUDE="mach/uncompress.h"
+# CONFIG_USB_ARCH_HAS_XHCI is not set
+# CONFIG_USB_ATMEL_USBA is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USE_OF=y
+CONFIG_VECTORS_BASE=0xffff0000
+# CONFIG_VFP is not set
+CONFIG_WATCHDOG_CORE=y
+# CONFIG_WLAN is not set
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_BCJ=y
+CONFIG_ZBOOT_ROM_BSS=0
+CONFIG_ZBOOT_ROM_TEXT=0
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZONE_DMA_FLAG=0
diff --git a/target/linux/at91/config-4.1 b/target/linux/at91/config-4.1
new file mode 100644
index 0000000..dc81ba5
--- /dev/null
+++ b/target/linux/at91/config-4.1
@@ -0,0 +1,268 @@
+CONFIG_ALIGNMENT_TRAP=y
+CONFIG_ARCH_AT91=y
+CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+CONFIG_ARCH_HAS_SG_CHAIN=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=y
+# CONFIG_ARCH_MULTI_V4 is not set
+# CONFIG_ARCH_MULTI_V4T is not set
+CONFIG_ARCH_MULTI_V4_V5=y
+CONFIG_ARCH_MULTI_V5=y
+CONFIG_ARCH_NR_GPIO=0
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARCH_USE_BUILTIN_BSWAP=y
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
+CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_ARM=y
+CONFIG_ARM_APPENDED_DTB=y
+# CONFIG_ARM_ATAG_DTB_COMPAT is not set
+# CONFIG_ARM_CPU_SUSPEND is not set
+CONFIG_ARM_HAS_SG_CHAIN=y
+CONFIG_ARM_L1_CACHE_SHIFT=5
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_ARM_THUMB=y
+CONFIG_AT91SAM9X_WATCHDOG=y
+CONFIG_ATAGS=y
+CONFIG_ATMEL_AIC_IRQ=y
+CONFIG_ATMEL_PIT=y
+CONFIG_ATMEL_SDRAMC=y
+# CONFIG_ATMEL_TCLIB is not set
+CONFIG_AUTO_ZRELADDR=y
+# CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_CACHE_L2X0 is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_CLKSRC_OF=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_COMMON_CLK=y
+CONFIG_COMMON_CLK_AT91=y
+CONFIG_CONFIGFS_FS=y
+CONFIG_CPU_32v5=y
+CONFIG_CPU_ABRT_EV5TJ=y
+CONFIG_CPU_ARM926T=y
+# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
+# CONFIG_CPU_ICACHE_DISABLE is not set
+CONFIG_CPU_PABRT_LEGACY=y
+CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_USE_DOMAINS=y
+CONFIG_CRC16=y
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_DEBUG_BUGVERBOSE=y
+CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
+# CONFIG_DEBUG_UART_8250 is not set
+# CONFIG_DEBUG_USER is not set
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+CONFIG_DTC=y
+CONFIG_EXT4_FS=y
+CONFIG_FRAME_POINTER=y
+CONFIG_FS_MBCACHE=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_GENERIC_ATOMIC64=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_GENERIC_IO=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_SCHED_CLOCK=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_IRQCHIP=y
+CONFIG_GPIO_DEVRES=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_HANDLE_DOMAIN_IRQ=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_HAS_DMA=y
+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 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_AT91_SMD=y
+CONFIG_HAVE_AT91_USB_CLK=y
+CONFIG_HAVE_AT91_UTMI=y
+# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
+CONFIG_HAVE_BPF_JIT=y
+CONFIG_HAVE_CC_STACKPROTECTOR=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FB_ATMEL=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZ4=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_NET_DSA=y
+CONFIG_HAVE_OPROFILE=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_PERF_EVENTS=y
+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_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_UID16=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HZ_FIXED=0
+CONFIG_HZ_PERIODIC=y
+CONFIG_IOMMU_HELPER=y
+CONFIG_IRQCHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_IRQ_WORK=y
+# CONFIG_ISDN is not set
+CONFIG_JBD2=y
+CONFIG_JFFS2_ZLIB=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LIBFDT=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_MACB=y
+CONFIG_MDIO_BOARDINFO=y
+CONFIG_MEMORY=y
+CONFIG_MICREL_PHY=y
+CONFIG_MIGHT_HAVE_PCI=y
+CONFIG_MMC=y
+CONFIG_MMC_ATMELMCI=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MODULES_USE_ELF_REL=y
+CONFIG_MTD_DATAFLASH=y
+# CONFIG_MTD_DATAFLASH_OTP is not set
+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_ATMEL=y
+CONFIG_MTD_NAND_ECC=y
+CONFIG_MTD_PHYSMAP=y
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_BEB_LIMIT=20
+# CONFIG_MTD_UBI_BLOCK is not set
+# CONFIG_MTD_UBI_FASTMAP is not set
+# CONFIG_MTD_UBI_GLUEBI is not set
+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_NLS=y
+CONFIG_NO_BOOTMEM=y
+CONFIG_OF=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_MTD=y
+CONFIG_OF_NET=y
+CONFIG_OF_RESERVED_MEM=y
+CONFIG_OLD_SIGACTION=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PCI is not set
+# CONFIG_PCI_DOMAINS_GENERIC is not set
+# CONFIG_PCI_SYSCALL is not set
+CONFIG_PERF_USE_VMALLOC=y
+CONFIG_PGTABLE_LEVELS=2
+CONFIG_PHYLIB=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_AT91=y
+# CONFIG_PINCTRL_SINGLE is not set
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_AT91_POWEROFF=y
+CONFIG_POWER_RESET_AT91_RESET=y
+CONFIG_POWER_SUPPLY=y
+# CONFIG_RCU_STALL_COMMON is not set
+CONFIG_RTC_CLASS=y
+# CONFIG_RTC_DRV_AT91RM9200 is not set
+# CONFIG_RTC_DRV_AT91SAM9 is not set
+# CONFIG_RTC_DRV_CMOS is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_SCHED_HRTICK=y
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SERIAL_8250 is not set
+CONFIG_SERIAL_ATMEL=y
+CONFIG_SERIAL_ATMEL_CONSOLE=y
+CONFIG_SERIAL_ATMEL_PDC=y
+# CONFIG_SERIAL_ATMEL_TTYAT is not set
+CONFIG_SERIAL_MCTRL_GPIO=y
+CONFIG_SOC_AT91SAM9=y
+CONFIG_SOC_BUS=y
+CONFIG_SOC_SAM_V4_V5=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_SPI=y
+CONFIG_SPI_ATMEL=y
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_SPIDEV=y
+CONFIG_SPLIT_PTLOCK_CPUS=999999
+CONFIG_SRCU=y
+# CONFIG_STAGING is not set
+CONFIG_SWIOTLB=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_TICK_CPU_ACCOUNTING=y
+CONFIG_UBIFS_FS=y
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
+CONFIG_UBIFS_FS_LZO=y
+# CONFIG_UBIFS_FS_XZ is not set
+CONFIG_UBIFS_FS_ZLIB=y
+CONFIG_UID16=y
+CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
+CONFIG_USB_SUPPORT=y
+CONFIG_USE_OF=y
+CONFIG_VECTORS_BASE=0xffff0000
+# CONFIG_VFP is not set
+CONFIG_WATCHDOG_CORE=y
+# CONFIG_WLAN is not set
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_BCJ=y
+CONFIG_ZBOOT_ROM_BSS=0
+CONFIG_ZBOOT_ROM_TEXT=0
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZONE_DMA_FLAG=0
diff --git a/target/linux/at91/config-default b/target/linux/at91/config-default
deleted file mode 100644
index 8faced7..0000000
--- a/target/linux/at91/config-default
+++ /dev/null
@@ -1,230 +0,0 @@
-CONFIG_ALIGNMENT_TRAP=y
-CONFIG_ARCH_AT91=y
-CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
-CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
-CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
-CONFIG_ARCH_NR_GPIO=0
-CONFIG_ARCH_REQUIRE_GPIOLIB=y
-# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
-CONFIG_ARM=y
-CONFIG_ARM_APPENDED_DTB=y
-# CONFIG_ARM_ATAG_DTB_COMPAT is not set
-# CONFIG_ARM_CPU_SUSPEND is not set
-CONFIG_ARM_NR_BANKS=8
-CONFIG_ARM_PATCH_PHYS_VIRT=y
-CONFIG_ARM_THUMB=y
-CONFIG_AT91SAM9X_WATCHDOG=y
-CONFIG_AT91_PMC_UNIT=y
-CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
-CONFIG_AT91_SAM9G45_RESET=y
-CONFIG_AT91_SAM9_ALT_RESET=y
-CONFIG_AT91_SAM9_TIME=y
-CONFIG_AT91_TIMER_HZ=100
-CONFIG_ATAGS=y
-# CONFIG_ATMEL_TCLIB is not set
-# CONFIG_BLK_DEV_INITRD is not set
-# CONFIG_CACHE_L2X0 is not set
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_CLKDEV_LOOKUP=y
-CONFIG_CLONE_BACKWARDS=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_CPU_USE_DOMAINS=y
-CONFIG_CRC16=y
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_DEFLATE=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_LZO=y
-CONFIG_DEBUG_BUGVERBOSE=y
-CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
-# CONFIG_DEBUG_PINCTRL is not set
-# CONFIG_DEBUG_USER is not set
-CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
-CONFIG_DTC=y
-CONFIG_EXT4_FS=y
-CONFIG_FRAME_POINTER=y
-CONFIG_FS_MBCACHE=y
-CONFIG_GENERIC_ATOMIC64=y
-CONFIG_GENERIC_BUG=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_GENERIC_IDLE_POLL_SETUP=y
-CONFIG_GENERIC_IO=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_PCI_IOMAP=y
-CONFIG_GENERIC_SMP_IDLE_THREAD=y
-CONFIG_GENERIC_STRNCPY_FROM_USER=y
-CONFIG_GENERIC_STRNLEN_USER=y
-CONFIG_GPIOLIB=y
-CONFIG_GPIO_DEVRES=y
-CONFIG_GPIO_SYSFS=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_HAS_DMA=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-# CONFIG_HAVE_64BIT_ALIGNED_ACCESS 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_AT91_DBGU0=y
-CONFIG_HAVE_AT91_DBGU1=y
-# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
-CONFIG_HAVE_BPF_JIT=y
-CONFIG_HAVE_CLK=y
-CONFIG_HAVE_CONTEXT_TRACKING=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_HAVE_DEBUG_KMEMLEAK=y
-CONFIG_HAVE_DMA_API_DEBUG=y
-CONFIG_HAVE_DMA_ATTRS=y
-CONFIG_HAVE_DMA_CONTIGUOUS=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_FB_ATMEL=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-CONFIG_HAVE_GENERIC_HARDIRQS=y
-CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_LZO=y
-CONFIG_HAVE_KERNEL_XZ=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-CONFIG_HAVE_MEMBLOCK=y
-CONFIG_HAVE_NET_DSA=y
-CONFIG_HAVE_OPROFILE=y
-CONFIG_HAVE_PERF_EVENTS=y
-CONFIG_HAVE_PROC_CPU=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-CONFIG_HAVE_UID16=y
-CONFIG_HZ_PERIODIC=y
-CONFIG_IRQCHIP=y
-CONFIG_IRQ_DOMAIN=y
-CONFIG_IRQ_WORK=y
-# CONFIG_ISDN is not set
-CONFIG_JBD2=y
-CONFIG_JFFS2_ZLIB=y
-CONFIG_KTIME_SCALAR=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_M25PXX_PREFER_SMALL_SECTOR_ERASE=y
-CONFIG_M25PXX_USE_FAST_READ=y
-CONFIG_MACB=y
-CONFIG_MACH_AT91SAM9_DT=y
-CONFIG_MDIO_BOARDINFO=y
-# CONFIG_MII is not set
-CONFIG_MICREL_PHY=y
-CONFIG_MMC=y
-CONFIG_MMC_ATMELMCI=y
-CONFIG_MMC_BLOCK=y
-CONFIG_MODULES_USE_ELF_REL=y
-CONFIG_MTD_DATAFLASH=y
-# CONFIG_MTD_DATAFLASH_OTP is not set
-# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-CONFIG_MTD_M25P80=y
-CONFIG_MTD_NAND=y
-CONFIG_MTD_NAND_ATMEL=y
-CONFIG_MTD_NAND_ECC=y
-CONFIG_MTD_OF_PARTS=y
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_PHYSMAP_OF=y
-# CONFIG_MTD_SM_COMMON is not set
-CONFIG_MTD_UBI=y
-CONFIG_MTD_UBI_BEB_LIMIT=20
-# CONFIG_MTD_UBI_BLOCK is not set
-# CONFIG_MTD_UBI_FASTMAP is not set
-# CONFIG_MTD_UBI_GLUEBI is not set
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MULTI_IRQ_HANDLER=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_NEED_KUSER_HELPERS=y
-CONFIG_NEED_MACH_GPIO_H=y
-CONFIG_NEED_PER_CPU_KM=y
-CONFIG_NLS=y
-CONFIG_OF=y
-CONFIG_OF_ADDRESS=y
-CONFIG_OF_DEVICE=y
-CONFIG_OF_EARLY_FLATTREE=y
-CONFIG_OF_FLATTREE=y
-CONFIG_OF_GPIO=y
-CONFIG_OF_IRQ=y
-CONFIG_OF_MDIO=y
-CONFIG_OF_MTD=y
-CONFIG_OF_NET=y
-CONFIG_OLD_SIGACTION=y
-CONFIG_OLD_SIGSUSPEND3=y
-CONFIG_PAGEFLAGS_EXTENDED=y
-CONFIG_PAGE_OFFSET=0xC0000000
-# CONFIG_PCI_SYSCALL is not set
-CONFIG_PERF_USE_VMALLOC=y
-CONFIG_PHYLIB=y
-CONFIG_PINCONF=y
-CONFIG_PINCTRL=y
-CONFIG_PINCTRL_AT91=y
-# CONFIG_PINCTRL_SINGLE is not set
-CONFIG_PINMUX=y
-CONFIG_POWER_SUPPLY=y
-CONFIG_POWER_RESET=y
-CONFIG_POWER_RESET_AT91_POWEROFF=y
-CONFIG_POWER_RESET_AT91_RESET=y
-# CONFIG_POWER_RESET_GPIO is not set
-# CONFIG_POWER_RESET_GPIO_RESTART is not set
-# CONFIG_POWER_RESET_LTC2952 is not set
-# CONFIG_POWER_RESET_SYSCON 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_PREEMPT_RCU is not set
-CONFIG_PROC_DEVICETREE=y
-# CONFIG_RCU_STALL_COMMON is not set
-CONFIG_RTC_CLASS=y
-# CONFIG_RTC_DRV_AT91RM9200 is not set
-# CONFIG_RTC_DRV_AT91SAM9 is not set
-# CONFIG_RTC_DRV_CMOS is not set
-CONFIG_SCHED_HRTICK=y
-# CONFIG_SCSI_DMA is not set
-# CONFIG_SERIAL_8250 is not set
-CONFIG_SERIAL_ATMEL=y
-CONFIG_SERIAL_ATMEL_CONSOLE=y
-CONFIG_SERIAL_ATMEL_PDC=y
-# CONFIG_SERIAL_ATMEL_TTYAT is not set
-CONFIG_SPARSE_IRQ=y
-CONFIG_SPI=y
-CONFIG_SPI_ATMEL=y
-CONFIG_SPI_MASTER=y
-CONFIG_SPI_SPIDEV=y
-CONFIG_SPLIT_PTLOCK_CPUS=999999
-# CONFIG_STAGING is not set
-CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_TICK_CPU_ACCOUNTING=y
-CONFIG_UBIFS_FS=y
-CONFIG_UBIFS_FS_ADVANCED_COMPR=y
-CONFIG_UBIFS_FS_LZO=y
-# CONFIG_UBIFS_FS_XZ is not set
-CONFIG_UBIFS_FS_ZLIB=y
-CONFIG_UID16=y
-CONFIG_UIDGID_CONVERTED=y
-CONFIG_UNCOMPRESS_INCLUDE="mach/uncompress.h"
-# CONFIG_USB_ARCH_HAS_XHCI is not set
-# CONFIG_USB_ATMEL_USBA is not set
-CONFIG_USB_SUPPORT=y
-CONFIG_USE_OF=y
-CONFIG_VECTORS_BASE=0xffff0000
-# CONFIG_VFP is not set
-CONFIG_WATCHDOG_CORE=y
-# CONFIG_WLAN is not set
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_BCJ=y
-CONFIG_ZBOOT_ROM_BSS=0
-CONFIG_ZBOOT_ROM_TEXT=0
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZONE_DMA_FLAG=0
diff --git a/target/linux/at91/patches-3.18/100-ARM-at91-build-dtb-for-LMU5000.patch b/target/linux/at91/patches-3.18/100-ARM-at91-build-dtb-for-LMU5000.patch
new file mode 100644
index 0000000..8852b6a
--- /dev/null
+++ b/target/linux/at91/patches-3.18/100-ARM-at91-build-dtb-for-LMU5000.patch
@@ -0,0 +1,10 @@
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -28,6 +28,7 @@ dtb-$(CONFIG_ARCH_AT91) += usb_a9g20.dtb
+ dtb-$(CONFIG_ARCH_AT91) += usb_a9g20_lpw.dtb
+ # sam9g45
+ dtb-$(CONFIG_ARCH_AT91) += at91sam9m10g45ek.dtb
++dtb-$(CONFIG_ARCH_AT91) += lmu5000.dtb
+ dtb-$(CONFIG_ARCH_AT91) += pm9g45.dtb
+ # sam9n12
+ dtb-$(CONFIG_ARCH_AT91) += at91sam9n12ek.dtb
diff --git a/target/linux/at91/patches-3.18/101-ARM-at91-build-dtb-for-q5xr5.patch b/target/linux/at91/patches-3.18/101-ARM-at91-build-dtb-for-q5xr5.patch
new file mode 100644
index 0000000..b5a9b68
--- /dev/null
+++ b/target/linux/at91/patches-3.18/101-ARM-at91-build-dtb-for-q5xr5.patch
@@ -0,0 +1,10 @@
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -20,6 +20,7 @@ dtb-$(CONFIG_ARCH_AT91) += tny_a9263.dtb
+ dtb-$(CONFIG_ARCH_AT91) += usb_a9263.dtb
+ # sam9g20
+ dtb-$(CONFIG_ARCH_AT91) += at91-foxg20.dtb
++dtb-$(CONFIG_ARCH_AT91) += at91-q5xr5.dtb
+ dtb-$(CONFIG_ARCH_AT91) += at91sam9g20ek.dtb
+ dtb-$(CONFIG_ARCH_AT91) += at91sam9g20ek_2mmc.dtb
+ dtb-$(CONFIG_ARCH_AT91) += kizbox.dtb
diff --git a/target/linux/at91/patches-3.18/200-ARM-at91-udc-clockfix-backport.patch b/target/linux/at91/patches-3.18/200-ARM-at91-udc-clockfix-backport.patch
new file mode 100644
index 0000000..32e1ac5
--- /dev/null
+++ b/target/linux/at91/patches-3.18/200-ARM-at91-udc-clockfix-backport.patch
@@ -0,0 +1,82 @@
+--- a/drivers/usb/gadget/udc/at91_udc.c
++++ b/drivers/usb/gadget/udc/at91_udc.c
+@@ -870,8 +870,6 @@ static void clk_on(struct at91_udc *udc)
+ 		return;
+ 	udc->clocked = 1;
+ 
+-	if (IS_ENABLED(CONFIG_COMMON_CLK))
+-		clk_enable(udc->uclk);
+ 	clk_enable(udc->iclk);
+ 	clk_enable(udc->fclk);
+ }
+@@ -884,8 +882,6 @@ static void clk_off(struct at91_udc *udc
+ 	udc->gadget.speed = USB_SPEED_UNKNOWN;
+ 	clk_disable(udc->fclk);
+ 	clk_disable(udc->iclk);
+-	if (IS_ENABLED(CONFIG_COMMON_CLK))
+-		clk_disable(udc->uclk);
+ }
+ 
+ /*
+@@ -1766,27 +1762,18 @@ static int at91udc_probe(struct platform
+ 	udc_reinit(udc);
+ 
+ 	/* get interface and function clocks */
+-	udc->iclk = clk_get(dev, "udc_clk");
+-	udc->fclk = clk_get(dev, "udpck");
+-	if (IS_ENABLED(CONFIG_COMMON_CLK))
+-		udc->uclk = clk_get(dev, "usb_clk");
+-	if (IS_ERR(udc->iclk) || IS_ERR(udc->fclk) ||
+-	    (IS_ENABLED(CONFIG_COMMON_CLK) && IS_ERR(udc->uclk))) {
++	udc->iclk = clk_get(dev, "pclk");
++	udc->fclk = clk_get(dev, "hclk");
++	if (IS_ERR(udc->iclk) || IS_ERR(udc->fclk)) {
+ 		DBG("clocks missing\n");
+ 		retval = -ENODEV;
+ 		goto fail1;
+ 	}
+ 
+-	/* don't do anything until we have both gadget driver and VBUS */
+-	if (IS_ENABLED(CONFIG_COMMON_CLK)) {
+-		clk_set_rate(udc->uclk, 48000000);
+-		retval = clk_prepare(udc->uclk);
+-		if (retval)
+-			goto fail1;
+-	}
++	clk_set_rate(udc->fclk, 48000000);
+ 	retval = clk_prepare(udc->fclk);
+ 	if (retval)
+-		goto fail1a;
++		goto fail1;
+ 
+ 	retval = clk_prepare_enable(udc->iclk);
+ 	if (retval)
+@@ -1860,12 +1847,7 @@ fail1c:
+ 	clk_unprepare(udc->iclk);
+ fail1b:
+ 	clk_unprepare(udc->fclk);
+-fail1a:
+-	if (IS_ENABLED(CONFIG_COMMON_CLK))
+-		clk_unprepare(udc->uclk);
+ fail1:
+-	if (IS_ENABLED(CONFIG_COMMON_CLK) && !IS_ERR(udc->uclk))
+-		clk_put(udc->uclk);
+ 	if (!IS_ERR(udc->fclk))
+ 		clk_put(udc->fclk);
+ 	if (!IS_ERR(udc->iclk))
+@@ -1911,15 +1893,11 @@ static int __exit at91udc_remove(struct
+ 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ 	release_mem_region(res->start, resource_size(res));
+ 
+-	if (IS_ENABLED(CONFIG_COMMON_CLK))
+-		clk_unprepare(udc->uclk);
+ 	clk_unprepare(udc->fclk);
+ 	clk_unprepare(udc->iclk);
+ 
+ 	clk_put(udc->iclk);
+ 	clk_put(udc->fclk);
+-	if (IS_ENABLED(CONFIG_COMMON_CLK))
+-		clk_put(udc->uclk);
+ 
+ 	return 0;
+ }
diff --git a/target/linux/at91/patches-3.18/201-ARM-at91-usb-determine_rate-backport.patch b/target/linux/at91/patches-3.18/201-ARM-at91-usb-determine_rate-backport.patch
new file mode 100644
index 0000000..d083628
--- /dev/null
+++ b/target/linux/at91/patches-3.18/201-ARM-at91-usb-determine_rate-backport.patch
@@ -0,0 +1,20 @@
+--- a/drivers/clk/at91/clk-usb.c
++++ b/drivers/clk/at91/clk-usb.c
+@@ -59,7 +59,7 @@ static unsigned long at91sam9x5_clk_usb_
+ static long at91sam9x5_clk_usb_determine_rate(struct clk_hw *hw,
+ 					      unsigned long rate,
+ 					      unsigned long *best_parent_rate,
+-					      struct clk_hw **best_parent_hw)
++					      struct clk **best_parent_clk)
+ {
+ 	struct clk *parent = NULL;
+ 	long best_rate = -EINVAL;
+@@ -91,7 +91,7 @@ static long at91sam9x5_clk_usb_determine
+ 				best_rate = tmp_rate;
+ 				best_diff = tmp_diff;
+ 				*best_parent_rate = tmp_parent_rate;
+-				*best_parent_hw = __clk_get_hw(parent);
++				*best_parent_clk = parent;
+ 			}
+ 
+ 			if (!best_diff || tmp_rate < rate)
diff --git a/target/linux/at91/patches-3.18/805-free_some_portc_pins.patch b/target/linux/at91/patches-3.18/805-free_some_portc_pins.patch
new file mode 100644
index 0000000..a9694d1
--- /dev/null
+++ b/target/linux/at91/patches-3.18/805-free_some_portc_pins.patch
@@ -0,0 +1,11 @@
+--- a/arch/arm/mach-at91/at91sam9260_devices.c
++++ b/arch/arm/mach-at91/at91sam9260_devices.c
+@@ -507,7 +507,7 @@ static struct platform_device at91sam926
+ 	.num_resources	= ARRAY_SIZE(spi1_resources),
+ };
+ 
+-static const unsigned spi1_standard_cs[4] = { AT91_PIN_PB3, AT91_PIN_PC5, AT91_PIN_PC4, AT91_PIN_PC3 };
++static const unsigned spi1_standard_cs[2] = { AT91_PIN_PB3, AT91_PIN_PC5 };
+ 
+ void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices)
+ {
diff --git a/target/linux/at91/patches-3.18/901-AT91-flexibity-default-leds-to-heartbeat.patch b/target/linux/at91/patches-3.18/901-AT91-flexibity-default-leds-to-heartbeat.patch
new file mode 100644
index 0000000..1da2e4d
--- /dev/null
+++ b/target/linux/at91/patches-3.18/901-AT91-flexibity-default-leds-to-heartbeat.patch
@@ -0,0 +1,60 @@
+--- a/arch/arm/mach-at91/board-flexibity.c
++++ b/arch/arm/mach-at91/board-flexibity.c
+@@ -90,49 +90,49 @@ static struct gpio_led flexibity_leds[]
+ 		.name			= "usb1:green",
+ 		.gpio			= AT91_PIN_PA12,
+ 		.active_low		= 1,
+-		.default_trigger	= "default-on",
++		.default_trigger	= "heartbeat",
+ 	},
+ 	{
+ 		.name			= "usb1:red",
+ 		.gpio			= AT91_PIN_PA13,
+ 		.active_low		= 1,
+-		.default_trigger	= "default-on",
++		.default_trigger	= "heartbeat",
+ 	},
+ 	{
+ 		.name			= "usb2:green",
+ 		.gpio			= AT91_PIN_PB26,
+ 		.active_low		= 1,
+-		.default_trigger	= "default-on",
++		.default_trigger	= "heartbeat",
+ 	},
+ 	{
+ 		.name			= "usb2:red",
+ 		.gpio			= AT91_PIN_PB27,
+ 		.active_low		= 1,
+-		.default_trigger	= "default-on",
++		.default_trigger	= "heartbeat",
+ 	},
+ 	{
+ 		.name			= "usb3:green",
+ 		.gpio			= AT91_PIN_PC8,
+ 		.active_low		= 1,
+-		.default_trigger	= "default-on",
++		.default_trigger	= "heartbeat",
+ 	},
+ 	{
+ 		.name			= "usb3:red",
+ 		.gpio			= AT91_PIN_PC6,
+ 		.active_low		= 1,
+-		.default_trigger	= "default-on",
++		.default_trigger	= "heartbeat",
+ 	},
+ 	{
+ 		.name			= "usb4:green",
+ 		.gpio			= AT91_PIN_PB4,
+ 		.active_low		= 1,
+-		.default_trigger	= "default-on",
++		.default_trigger	= "heartbeat",
+ 	},
+ 	{
+ 		.name			= "usb4:red",
+ 		.gpio			= AT91_PIN_PB5,
+ 		.active_low		= 1,
+-		.default_trigger	= "default-on",
++		.default_trigger	= "heartbeat",
+ 	}
+ };
+ 
diff --git a/target/linux/at91/patches-4.1/100-ARM-at91-build-dtb-for-LMU5000.patch b/target/linux/at91/patches-4.1/100-ARM-at91-build-dtb-for-LMU5000.patch
new file mode 100644
index 0000000..aac5b3d
--- /dev/null
+++ b/target/linux/at91/patches-4.1/100-ARM-at91-build-dtb-for-LMU5000.patch
@@ -0,0 +1,10 @@
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -27,6 +27,7 @@ dtb-$(CONFIG_SOC_SAM_V4_V5) += \
+ 	usb_a9g20.dtb \
+ 	usb_a9g20_lpw.dtb \
+ 	at91sam9m10g45ek.dtb \
++	lmu5000.dtb \
+ 	pm9g45.dtb \
+ 	at91sam9n12ek.dtb \
+ 	at91sam9rlek.dtb \
diff --git a/target/linux/at91/patches-4.1/101-ARM-at91-build-dtb-for-q5xr5.patch b/target/linux/at91/patches-4.1/101-ARM-at91-build-dtb-for-q5xr5.patch
new file mode 100644
index 0000000..2db68c7
--- /dev/null
+++ b/target/linux/at91/patches-4.1/101-ARM-at91-build-dtb-for-q5xr5.patch
@@ -0,0 +1,10 @@
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -20,6 +20,7 @@ dtb-$(CONFIG_SOC_SAM_V4_V5) += \
+ 	tny_a9263.dtb \
+ 	usb_a9263.dtb \
+ 	at91-foxg20.dtb \
++	at91-q5xr5.dtb \
+ 	at91sam9g20ek.dtb \
+ 	at91sam9g20ek_2mmc.dtb \
+ 	kizbox.dtb \
diff --git a/target/linux/at91/patches/100-ARM-at91-build-dtb-for-LMU5000.patch b/target/linux/at91/patches/100-ARM-at91-build-dtb-for-LMU5000.patch
deleted file mode 100644
index 8852b6a..0000000
--- a/target/linux/at91/patches/100-ARM-at91-build-dtb-for-LMU5000.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/arch/arm/boot/dts/Makefile
-+++ b/arch/arm/boot/dts/Makefile
-@@ -28,6 +28,7 @@ dtb-$(CONFIG_ARCH_AT91) += usb_a9g20.dtb
- dtb-$(CONFIG_ARCH_AT91) += usb_a9g20_lpw.dtb
- # sam9g45
- dtb-$(CONFIG_ARCH_AT91) += at91sam9m10g45ek.dtb
-+dtb-$(CONFIG_ARCH_AT91) += lmu5000.dtb
- dtb-$(CONFIG_ARCH_AT91) += pm9g45.dtb
- # sam9n12
- dtb-$(CONFIG_ARCH_AT91) += at91sam9n12ek.dtb
diff --git a/target/linux/at91/patches/101-ARM-at91-build-dtb-for-q5xr5.patch b/target/linux/at91/patches/101-ARM-at91-build-dtb-for-q5xr5.patch
deleted file mode 100644
index b5a9b68..0000000
--- a/target/linux/at91/patches/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
-@@ -20,6 +20,7 @@ dtb-$(CONFIG_ARCH_AT91) += tny_a9263.dtb
- dtb-$(CONFIG_ARCH_AT91) += usb_a9263.dtb
- # sam9g20
- dtb-$(CONFIG_ARCH_AT91) += at91-foxg20.dtb
-+dtb-$(CONFIG_ARCH_AT91) += at91-q5xr5.dtb
- dtb-$(CONFIG_ARCH_AT91) += at91sam9g20ek.dtb
- dtb-$(CONFIG_ARCH_AT91) += at91sam9g20ek_2mmc.dtb
- dtb-$(CONFIG_ARCH_AT91) += kizbox.dtb
diff --git a/target/linux/at91/patches/200-ARM-at91-udc-clockfix-backport.patch b/target/linux/at91/patches/200-ARM-at91-udc-clockfix-backport.patch
deleted file mode 100644
index 32e1ac5..0000000
--- a/target/linux/at91/patches/200-ARM-at91-udc-clockfix-backport.patch
+++ /dev/null
@@ -1,82 +0,0 @@
---- a/drivers/usb/gadget/udc/at91_udc.c
-+++ b/drivers/usb/gadget/udc/at91_udc.c
-@@ -870,8 +870,6 @@ static void clk_on(struct at91_udc *udc)
- 		return;
- 	udc->clocked = 1;
- 
--	if (IS_ENABLED(CONFIG_COMMON_CLK))
--		clk_enable(udc->uclk);
- 	clk_enable(udc->iclk);
- 	clk_enable(udc->fclk);
- }
-@@ -884,8 +882,6 @@ static void clk_off(struct at91_udc *udc
- 	udc->gadget.speed = USB_SPEED_UNKNOWN;
- 	clk_disable(udc->fclk);
- 	clk_disable(udc->iclk);
--	if (IS_ENABLED(CONFIG_COMMON_CLK))
--		clk_disable(udc->uclk);
- }
- 
- /*
-@@ -1766,27 +1762,18 @@ static int at91udc_probe(struct platform
- 	udc_reinit(udc);
- 
- 	/* get interface and function clocks */
--	udc->iclk = clk_get(dev, "udc_clk");
--	udc->fclk = clk_get(dev, "udpck");
--	if (IS_ENABLED(CONFIG_COMMON_CLK))
--		udc->uclk = clk_get(dev, "usb_clk");
--	if (IS_ERR(udc->iclk) || IS_ERR(udc->fclk) ||
--	    (IS_ENABLED(CONFIG_COMMON_CLK) && IS_ERR(udc->uclk))) {
-+	udc->iclk = clk_get(dev, "pclk");
-+	udc->fclk = clk_get(dev, "hclk");
-+	if (IS_ERR(udc->iclk) || IS_ERR(udc->fclk)) {
- 		DBG("clocks missing\n");
- 		retval = -ENODEV;
- 		goto fail1;
- 	}
- 
--	/* don't do anything until we have both gadget driver and VBUS */
--	if (IS_ENABLED(CONFIG_COMMON_CLK)) {
--		clk_set_rate(udc->uclk, 48000000);
--		retval = clk_prepare(udc->uclk);
--		if (retval)
--			goto fail1;
--	}
-+	clk_set_rate(udc->fclk, 48000000);
- 	retval = clk_prepare(udc->fclk);
- 	if (retval)
--		goto fail1a;
-+		goto fail1;
- 
- 	retval = clk_prepare_enable(udc->iclk);
- 	if (retval)
-@@ -1860,12 +1847,7 @@ fail1c:
- 	clk_unprepare(udc->iclk);
- fail1b:
- 	clk_unprepare(udc->fclk);
--fail1a:
--	if (IS_ENABLED(CONFIG_COMMON_CLK))
--		clk_unprepare(udc->uclk);
- fail1:
--	if (IS_ENABLED(CONFIG_COMMON_CLK) && !IS_ERR(udc->uclk))
--		clk_put(udc->uclk);
- 	if (!IS_ERR(udc->fclk))
- 		clk_put(udc->fclk);
- 	if (!IS_ERR(udc->iclk))
-@@ -1911,15 +1893,11 @@ static int __exit at91udc_remove(struct
- 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- 	release_mem_region(res->start, resource_size(res));
- 
--	if (IS_ENABLED(CONFIG_COMMON_CLK))
--		clk_unprepare(udc->uclk);
- 	clk_unprepare(udc->fclk);
- 	clk_unprepare(udc->iclk);
- 
- 	clk_put(udc->iclk);
- 	clk_put(udc->fclk);
--	if (IS_ENABLED(CONFIG_COMMON_CLK))
--		clk_put(udc->uclk);
- 
- 	return 0;
- }
diff --git a/target/linux/at91/patches/201-ARM-at91-usb-determine_rate-backport.patch b/target/linux/at91/patches/201-ARM-at91-usb-determine_rate-backport.patch
deleted file mode 100644
index d083628..0000000
--- a/target/linux/at91/patches/201-ARM-at91-usb-determine_rate-backport.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/drivers/clk/at91/clk-usb.c
-+++ b/drivers/clk/at91/clk-usb.c
-@@ -59,7 +59,7 @@ static unsigned long at91sam9x5_clk_usb_
- static long at91sam9x5_clk_usb_determine_rate(struct clk_hw *hw,
- 					      unsigned long rate,
- 					      unsigned long *best_parent_rate,
--					      struct clk_hw **best_parent_hw)
-+					      struct clk **best_parent_clk)
- {
- 	struct clk *parent = NULL;
- 	long best_rate = -EINVAL;
-@@ -91,7 +91,7 @@ static long at91sam9x5_clk_usb_determine
- 				best_rate = tmp_rate;
- 				best_diff = tmp_diff;
- 				*best_parent_rate = tmp_parent_rate;
--				*best_parent_hw = __clk_get_hw(parent);
-+				*best_parent_clk = parent;
- 			}
- 
- 			if (!best_diff || tmp_rate < rate)
diff --git a/target/linux/at91/patches/805-free_some_portc_pins.patch b/target/linux/at91/patches/805-free_some_portc_pins.patch
deleted file mode 100644
index a9694d1..0000000
--- a/target/linux/at91/patches/805-free_some_portc_pins.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/arch/arm/mach-at91/at91sam9260_devices.c
-+++ b/arch/arm/mach-at91/at91sam9260_devices.c
-@@ -507,7 +507,7 @@ static struct platform_device at91sam926
- 	.num_resources	= ARRAY_SIZE(spi1_resources),
- };
- 
--static const unsigned spi1_standard_cs[4] = { AT91_PIN_PB3, AT91_PIN_PC5, AT91_PIN_PC4, AT91_PIN_PC3 };
-+static const unsigned spi1_standard_cs[2] = { AT91_PIN_PB3, AT91_PIN_PC5 };
- 
- void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices)
- {
diff --git a/target/linux/at91/patches/901-AT91-flexibity-default-leds-to-heartbeat.patch b/target/linux/at91/patches/901-AT91-flexibity-default-leds-to-heartbeat.patch
deleted file mode 100644
index 1da2e4d..0000000
--- a/target/linux/at91/patches/901-AT91-flexibity-default-leds-to-heartbeat.patch
+++ /dev/null
@@ -1,60 +0,0 @@
---- a/arch/arm/mach-at91/board-flexibity.c
-+++ b/arch/arm/mach-at91/board-flexibity.c
-@@ -90,49 +90,49 @@ static struct gpio_led flexibity_leds[]
- 		.name			= "usb1:green",
- 		.gpio			= AT91_PIN_PA12,
- 		.active_low		= 1,
--		.default_trigger	= "default-on",
-+		.default_trigger	= "heartbeat",
- 	},
- 	{
- 		.name			= "usb1:red",
- 		.gpio			= AT91_PIN_PA13,
- 		.active_low		= 1,
--		.default_trigger	= "default-on",
-+		.default_trigger	= "heartbeat",
- 	},
- 	{
- 		.name			= "usb2:green",
- 		.gpio			= AT91_PIN_PB26,
- 		.active_low		= 1,
--		.default_trigger	= "default-on",
-+		.default_trigger	= "heartbeat",
- 	},
- 	{
- 		.name			= "usb2:red",
- 		.gpio			= AT91_PIN_PB27,
- 		.active_low		= 1,
--		.default_trigger	= "default-on",
-+		.default_trigger	= "heartbeat",
- 	},
- 	{
- 		.name			= "usb3:green",
- 		.gpio			= AT91_PIN_PC8,
- 		.active_low		= 1,
--		.default_trigger	= "default-on",
-+		.default_trigger	= "heartbeat",
- 	},
- 	{
- 		.name			= "usb3:red",
- 		.gpio			= AT91_PIN_PC6,
- 		.active_low		= 1,
--		.default_trigger	= "default-on",
-+		.default_trigger	= "heartbeat",
- 	},
- 	{
- 		.name			= "usb4:green",
- 		.gpio			= AT91_PIN_PB4,
- 		.active_low		= 1,
--		.default_trigger	= "default-on",
-+		.default_trigger	= "heartbeat",
- 	},
- 	{
- 		.name			= "usb4:red",
- 		.gpio			= AT91_PIN_PB5,
- 		.active_low		= 1,
--		.default_trigger	= "default-on",
-+		.default_trigger	= "heartbeat",
- 	}
- };
- 
-- 
1.9.1
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list