Author: kaloz
Date: 2015-12-10 13:11:39 +0100 (Thu, 10 Dec 2015)
New Revision: 47819

Added:
   trunk/target/linux/mvebu/config-4.4
   trunk/target/linux/mvebu/patches-4.4/
   
trunk/target/linux/mvebu/patches-4.4/000-sata_use_ifdef_around_suspend_resume.patch
Removed:
   trunk/target/linux/mvebu/patches-4.4/000-new_linksys_boards.patch
   
trunk/target/linux/mvebu/patches-4.4/022-ARM-mvebu-A385-AP-Enable-the-NAND-controller.patch
   trunk/target/linux/mvebu/patches-4.4/050-leds_tlc59116_document_binding.patch
   trunk/target/linux/mvebu/patches-4.4/051-leds_tlc59116_add_driver.patch
   trunk/target/linux/mvebu/patches-4.4/300-add_missing_labels.patch
Log:
mvebu: add support for 4.4-rc

Signed-off-by: Imre Kaloz <[email protected]>



Copied: trunk/target/linux/mvebu/config-4.4 (from rev 47818, 
trunk/target/linux/mvebu/config-4.1)
===================================================================
--- trunk/target/linux/mvebu/config-4.4                         (rev 0)
+++ trunk/target/linux/mvebu/config-4.4 2015-12-10 12:11:39 UTC (rev 47819)
@@ -0,0 +1,363 @@
+CONFIG_ALIGNMENT_TRAP=y
+CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
+CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+CONFIG_ARCH_HAS_SG_CHAIN=y
+CONFIG_ARCH_HAS_TICK_BROADCAST=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_V6_V7=y
+CONFIG_ARCH_MULTI_V7=y
+CONFIG_ARCH_MVEBU=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_BIG_ENDIAN=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_ARMADA_370_CLK=y
+CONFIG_ARMADA_370_XP_TIMER=y
+CONFIG_ARMADA_38X_CLK=y
+CONFIG_ARMADA_XP_CLK=y
+CONFIG_ARM_APPENDED_DTB=y
+CONFIG_ARM_ATAG_DTB_COMPAT=y
+# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set
+CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y
+CONFIG_ARM_CPU_SUSPEND=y
+CONFIG_ARM_ERRATA_720789=y
+CONFIG_ARM_GIC=y
+CONFIG_ARM_HAS_SG_CHAIN=y
+# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set
+CONFIG_ARM_L1_CACHE_SHIFT=6
+CONFIG_ARM_L1_CACHE_SHIFT_6=y
+# CONFIG_ARM_LPAE is not set
+CONFIG_ARM_MVEBU_V7_CPUIDLE=y
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_ARM_THUMB=y
+# CONFIG_ARM_THUMBEE is not set
+CONFIG_ARM_VIRT_EXT=y
+CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y
+CONFIG_ATAGS=y
+CONFIG_AUTO_ZRELADDR=y
+CONFIG_BOUNCE=y
+# CONFIG_CACHE_FEROCEON_L2 is not set
+CONFIG_CACHE_L2X0=y
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_CLKSRC_MMIO=y
+CONFIG_CLKSRC_OF=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_COMMON_CLK=y
+CONFIG_CPUFREQ_DT=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_32v7=y
+CONFIG_CPU_ABRT_EV7=y
+# CONFIG_CPU_BIG_ENDIAN is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+CONFIG_CPU_CACHE_V7=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+CONFIG_CPU_FREQ=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_GOV_COMMON=y
+# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_STAT=y
+# CONFIG_CPU_FREQ_STAT_DETAILS is not set
+CONFIG_CPU_HAS_ASID=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_PABRT_V7=y
+CONFIG_CPU_PJ4B=y
+CONFIG_CPU_PM=y
+CONFIG_CPU_RMAP=y
+# CONFIG_CPU_THERMAL is not set
+CONFIG_CPU_TLB_V7=y
+CONFIG_CPU_V7=y
+CONFIG_CRC16=y
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_XZ=y
+CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_DEBUG_INFO=y
+CONFIG_DEBUG_LL=y
+CONFIG_DEBUG_LL_INCLUDE="debug/8250.S"
+CONFIG_DEBUG_MVEBU_UART0=y
+# CONFIG_DEBUG_MVEBU_UART0_ALTERNATE is not set
+# CONFIG_DEBUG_MVEBU_UART1_ALTERNATE is not set
+CONFIG_DEBUG_UART_8250=y
+# CONFIG_DEBUG_UART_8250_FLOW_CONTROL is not set
+CONFIG_DEBUG_UART_8250_SHIFT=2
+# CONFIG_DEBUG_UART_8250_WORD is not set
+CONFIG_DEBUG_UART_PHYS=0xd0012000
+CONFIG_DEBUG_UART_VIRT=0xfec12000
+CONFIG_DEBUG_UNCOMPRESS=y
+CONFIG_DEBUG_USER=y
+CONFIG_DMADEVICES=y
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_ENGINE_RAID=y
+CONFIG_DMA_OF=y
+CONFIG_DTC=y
+# CONFIG_DW_DMAC_CORE is not set
+# CONFIG_DW_DMAC_PCI is not set
+CONFIG_EARLY_PRINTK=y
+CONFIG_FIXED_PHY=y
+CONFIG_FRAME_POINTER=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_GENERIC_IO=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_MSI_IRQ=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_GPIO_DEVRES=y
+CONFIG_GPIO_GENERIC=y
+CONFIG_GPIO_MVEBU=y
+CONFIG_GPIO_MVEBU_PWM=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=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_HAVE_ARCH_PFN_VALID=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_ARM_SCU=y
+CONFIG_HAVE_ARM_TWD=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_EFFICIENT_UNALIGNED_ACCESS=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_IDE=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_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_SMP=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_UID16=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HIGHMEM=y
+# CONFIG_HIGHPTE is not set
+CONFIG_HZ_FIXED=0
+CONFIG_HZ_PERIODIC=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_IOMMU_HELPER=y
+CONFIG_IRQCHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_DEBUG=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_IRQ_WORK=y
+# CONFIG_IWMMXT is not set
+CONFIG_LEDS_GPIO=y
+# CONFIG_LEDS_REGULATOR is not set
+CONFIG_LIBFDT=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_LZ4_COMPRESS is not set
+# CONFIG_LZ4_DECOMPRESS is not set
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_MACH_ARMADA_370=y
+# CONFIG_MACH_ARMADA_375 is not set
+CONFIG_MACH_ARMADA_38X=y
+# CONFIG_MACH_ARMADA_39X is not set
+CONFIG_MACH_ARMADA_XP=y
+# CONFIG_MACH_DOVE is not set
+CONFIG_MACH_MVEBU_ANY=y
+CONFIG_MACH_MVEBU_V7=y
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MANGLE_BOOTARGS=y
+CONFIG_MARVELL_PHY=y
+CONFIG_MDIO_BOARDINFO=y
+CONFIG_MEMORY=y
+CONFIG_MIGHT_HAVE_CACHE_L2X0=y
+CONFIG_MIGHT_HAVE_PCI=y
+CONFIG_MODULES_USE_ELF_REL=y
+CONFIG_MTD_CFI_STAA=y
+CONFIG_MTD_M25P80=y
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_ECC=y
+CONFIG_MTD_NAND_PXA3xx=y
+CONFIG_MTD_SPI_NOR=y
+CONFIG_MTD_SPLIT_FIRMWARE=y
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_BEB_LIMIT=20
+CONFIG_MTD_UBI_BLOCK=y
+# CONFIG_MTD_UBI_FASTMAP is not set
+# CONFIG_MTD_UBI_GLUEBI is not set
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UIMAGE_SPLIT=y
+CONFIG_MULTI_IRQ_HANDLER=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_MVEBU_CLK_COMMON=y
+CONFIG_MVEBU_CLK_COREDIV=y
+CONFIG_MVEBU_CLK_CPU=y
+CONFIG_MVEBU_DEVBUS=y
+CONFIG_MVEBU_MBUS=y
+CONFIG_MVMDIO=y
+CONFIG_MVNETA=y
+CONFIG_MVSW61XX_PHY=y
+CONFIG_MV_XOR=y
+CONFIG_NEED_DMA_MAP_STATE=y
+# CONFIG_NEON is not set
+CONFIG_NET_FLOW_LIMIT=y
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_NO_BOOTMEM=y
+CONFIG_NR_CPUS=4
+CONFIG_OF=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_ADDRESS_PCI=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_PCI=y
+CONFIG_OF_PCI_IRQ=y
+CONFIG_OF_RESERVED_MEM=y
+CONFIG_OLD_SIGACTION=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_OUTER_CACHE=y
+CONFIG_OUTER_CACHE_SYNC=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_PCI=y
+# CONFIG_PCI_DOMAINS_GENERIC is not set
+CONFIG_PCI_MSI=y
+CONFIG_PCI_MVEBU=y
+CONFIG_PERF_USE_VMALLOC=y
+CONFIG_PHYLIB=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_ARMADA_370=y
+CONFIG_PINCTRL_ARMADA_38X=y
+CONFIG_PINCTRL_ARMADA_XP=y
+CONFIG_PINCTRL_MVEBU=y
+# CONFIG_PINCTRL_SINGLE is not set
+CONFIG_PJ4B_ERRATA_4742=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_PLAT_ORION=y
+CONFIG_PM_OPP=y
+CONFIG_PWM=y
+# CONFIG_PWM_FSL_FTM is not set
+CONFIG_PWM_SYSFS=y
+CONFIG_RCU_STALL_COMMON=y
+CONFIG_REGMAP=y
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+# CONFIG_REGULATOR_PWM is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+CONFIG_RFS_ACCEL=y
+CONFIG_RPS=y
+CONFIG_RTC_CLASS=y
+# CONFIG_RTC_DRV_MV is not set
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_SCHED_HRTICK=y
+# CONFIG_SCSI_DMA is not set
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SMP=y
+CONFIG_SMP_ON_UP=y
+CONFIG_SOC_BUS=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_ORION=y
+CONFIG_SRCU=y
+CONFIG_STOP_MACHINE=y
+CONFIG_SWCONFIG=y
+CONFIG_SWIOTLB=y
+CONFIG_SWP_EMULATE=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+# CONFIG_THUMB2_KERNEL is not set
+CONFIG_TICK_CPU_ACCOUNTING=y
+CONFIG_TIMER_STATS=y
+CONFIG_TREE_RCU=y
+CONFIG_UBIFS_FS=y
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_XZ=y
+CONFIG_UBIFS_FS_ZLIB=y
+CONFIG_UID16=y
+CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
+CONFIG_USB_PHY=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USE_OF=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_VFP=y
+CONFIG_VFPv3=y
+# CONFIG_XEN is not set
+CONFIG_XPS=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_BCJ=y
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZONE_DMA_FLAG=0

Deleted: trunk/target/linux/mvebu/patches-4.4/000-new_linksys_boards.patch
===================================================================
--- trunk/target/linux/mvebu/patches-4.1/000-new_linksys_boards.patch   
2015-12-10 12:08:13 UTC (rev 47818)
+++ trunk/target/linux/mvebu/patches-4.4/000-new_linksys_boards.patch   
2015-12-10 12:11:39 UTC (rev 47819)
@@ -1,613 +0,0 @@
-From 3abdd583312a2830129dc42e1e3d98368a8fda47 Mon Sep 17 00:00:00 2001
-From: Imre Kaloz <[email protected]>
-Date: Wed, 20 May 2015 23:14:16 +0200
-Subject: ARM: mvebu: add support for the new Armada 385 based Linksys boards
-
-This patch adds support for the Linksys WRT1200AC (Caiman) and
-the Linksys WRT1900AC v2 (Cobra).
-
-Both boards have:
-
-- 2 Marvell 88W8864 radios
-- 1 USB 3.0 port
-- 1 USB 2.0/eSATAp port
-- 2 Ethernet interfaces connected to a 88E6176 switch (1x WAN + 4x LAN)
-- 128MB NAND flash
-- 512MB RAM
-
[email protected]: use serial0:115200n8 in
-stdout-path and remove the bootargs part in the chosen node
-
-Signed-off-by: Imre Kaloz <[email protected]>
-Acked-by: Andrew Lunn <[email protected]>
-Signed-off-by: Gregory CLEMENT <[email protected]>
----
- arch/arm/boot/dts/Makefile                      |   2 +
- arch/arm/boot/dts/armada-385-linksys-caiman.dts | 114 ++++++++
- arch/arm/boot/dts/armada-385-linksys-cobra.dts  | 114 ++++++++
- arch/arm/boot/dts/armada-385-linksys.dtsi       | 332 ++++++++++++++++++++++++
- 4 files changed, 562 insertions(+)
- create mode 100644 arch/arm/boot/dts/armada-385-linksys-caiman.dts
- create mode 100644 arch/arm/boot/dts/armada-385-linksys-cobra.dts
- create mode 100644 arch/arm/boot/dts/armada-385-linksys.dtsi
-
---- a/arch/arm/boot/dts/Makefile
-+++ b/arch/arm/boot/dts/Makefile
-@@ -633,6 +633,8 @@ dtb-$(CONFIG_MACH_ARMADA_375) += \
-       armada-375-db.dtb
- dtb-$(CONFIG_MACH_ARMADA_38X) += \
-       armada-385-db-ap.dtb \
-+      armada-385-linksys-caiman.dtb \
-+      armada-385-linksys-cobra.dtb \
-       armada-388-db.dtb \
-       armada-388-gp.dtb \
-       armada-388-rd.dtb
---- /dev/null
-+++ b/arch/arm/boot/dts/armada-385-linksys-caiman.dts
-@@ -0,0 +1,114 @@
-+/*
-+ * Device Tree include for the Linksys WRT1200AC (Caiman)
-+ *
-+ * Copyright (C) 2015 Imre Kaloz <[email protected]>
-+ *
-+ *
-+ * 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 licensed under the terms of the GNU General Public
-+ *     License version 2.  This program is licensed "as is" without
-+ *     any warranty of any kind, whether express or implied.
-+ *
-+ * 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 "armada-385-linksys.dtsi"
-+
-+/ {
-+      model = "Linksys WRT1200AC";
-+      compatible = "linksys,caiman", "linksys,armada385", "marvell,armada385",
-+                   "marvell,armada380";
-+
-+      soc {
-+              internal-regs{
-+                      i2c@11000 {
-+
-+                              pca9635@68 {
-+                              #address-cells = <1>;
-+                              #size-cells = <0>;
-+
-+                                      wan_amber@0 {
-+                                              label = "caiman:amber:wan";
-+                                              reg = <0x0>;
-+                                      };
-+
-+                                      wan_white@1 {
-+                                              label = "caiman:white:wan";
-+                                              reg = <0x1>;
-+                                      };
-+
-+                                      wlan_2g@2 {
-+                                              label = "caiman:white:wlan_2g";
-+                                              reg = <0x2>;
-+                                      };
-+
-+                                      wlan_5g@3 {
-+                                              label = "caiman:white:wlan_5g";
-+                                              reg = <0x3>;
-+                                      };
-+
-+                                      usb2@5 {
-+                                              label = "caiman:white:usb2";
-+                                              reg = <0x5>;
-+                                      };
-+
-+                                      usb3_1@6 {
-+                                              label = "caiman:white:usb3_1";
-+                                              reg = <0x6>;
-+                                      };
-+
-+                                      usb3_2@7 {
-+                                              label = "caiman:white:usb3_2";
-+                                              reg = <0x7>;
-+                                      };
-+
-+                                      wps_white@8 {
-+                                              label = "caiman:white:wps";
-+                                              reg = <0x8>;
-+                                      };
-+
-+                                      wps_amber@9 {
-+                                              label = "caiman:amber:wps";
-+                                              reg = <0x9>;
-+                                      };
-+                              };
-+                      };
-+              };
-+      };
-+
-+      gpio-leds {
-+              power {
-+                      label = "caiman:white:power";
-+              };
-+
-+              sata {
-+                      label = "caiman:white:sata";
-+              };
-+      };
-+};
---- /dev/null
-+++ b/arch/arm/boot/dts/armada-385-linksys-cobra.dts
-@@ -0,0 +1,114 @@
-+/*
-+ * Device Tree file for the Linksys WRT1900ACv2 (Cobra)
-+ *
-+ * Copyright (C) 2015 Imre Kaloz <[email protected]>
-+ *
-+ *
-+ * 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 licensed under the terms of the GNU General Public
-+ *     License version 2.  This program is licensed "as is" without
-+ *     any warranty of any kind, whether express or implied.
-+ *
-+ * 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 "armada-385-linksys.dtsi"
-+
-+/ {
-+      model = "Linksys WRT1900ACv2";
-+      compatible = "linksys,cobra", "linksys,armada385", "marvell,armada385",
-+                   "marvell,armada380";
-+
-+      soc {
-+              internal-regs{
-+                      i2c@11000 {
-+
-+                              pca9635@68 {
-+                              #address-cells = <1>;
-+                              #size-cells = <0>;
-+
-+                                      wan_amber@0 {
-+                                              label = "cobra:amber:wan";
-+                                              reg = <0x0>;
-+                                      };
-+
-+                                      wan_white@1 {
-+                                              label = "cobra:white:wan";
-+                                              reg = <0x1>;
-+                                      };
-+
-+                                      wlan_2g@2 {
-+                                              label = "cobra:white:wlan_2g";
-+                                              reg = <0x2>;
-+                                      };
-+
-+                                      wlan_5g@3 {
-+                                              label = "cobra:white:wlan_5g";
-+                                              reg = <0x3>;
-+                                      };
-+
-+                                      usb2@5 {
-+                                              label = "cobra:white:usb2";
-+                                              reg = <0x5>;
-+                                      };
-+
-+                                      usb3_1@6 {
-+                                              label = "cobra:white:usb3_1";
-+                                              reg = <0x6>;
-+                                      };
-+
-+                                      usb3_2@7 {
-+                                              label = "cobra:white:usb3_2";
-+                                              reg = <0x7>;
-+                                      };
-+
-+                                      wps_white@8 {
-+                                              label = "cobra:white:wps";
-+                                              reg = <0x8>;
-+                                      };
-+
-+                                      wps_amber@9 {
-+                                              label = "cobra:amber:wps";
-+                                              reg = <0x9>;
-+                                      };
-+                              };
-+                      };
-+              };
-+      };
-+
-+      gpio-leds {
-+              power {
-+                      label = "cobra:white:power";
-+              };
-+
-+              sata {
-+                      label = "cobra:white:sata";
-+              };
-+      };
-+};
---- /dev/null
-+++ b/arch/arm/boot/dts/armada-385-linksys.dtsi
-@@ -0,0 +1,332 @@
-+/*
-+ * Device Tree include file for Armada 385 based Linksys boards
-+ *
-+ * Copyright (C) 2015 Imre Kaloz <[email protected]>
-+ *
-+ *
-+ * 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 licensed under the terms of the GNU General Public
-+ *     License version 2.  This program is licensed "as is" without
-+ *     any warranty of any kind, whether express or implied.
-+ *
-+ * 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 <dt-bindings/gpio/gpio.h>
-+#include <dt-bindings/input/input.h>
-+#include "armada-385.dtsi"
-+
-+/ {
-+      model = "Linksys boards based on Armada 385";
-+      compatible = "linksys,armada385", "marvell,armada385",
-+                   "marvell,armada380";
-+
-+      chosen {
-+              stdout-path = "serial0:115200n8";
-+      };
-+
-+      memory {
-+              device_type = "memory";
-+              reg = <0x00000000 0x20000000>; /* 512 MB */
-+      };
-+
-+      soc {
-+              ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
-+                        MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000>;
-+
-+              internal-regs {
-+
-+                      spi@10600 {
-+                              status = "disabled";
-+                      };
-+
-+                      i2c@11000 {
-+                              pinctrl-names = "default";
-+                              pinctrl-0 = <&i2c0_pins>;
-+                              status = "okay";
-+
-+                              tmp421@4c {
-+                                      compatible = "ti,tmp421";
-+                                      reg = <0x4c>;
-+                              };
-+
-+                              pca9635@68 {
-+                                      #address-cells = <1>;
-+                                      #size-cells = <0>;
-+                                      compatible = "nxp,pca9635";
-+                                      reg = <0x68>;
-+                              };
-+                      };
-+
-+                      /* J10: VCC, NC, RX, NC, TX, GND  */
-+                      serial@12000 {
-+                              status = "okay";
-+                      };
-+
-+                      ethernet@70000 {
-+                              status = "okay";
-+                              phy-mode = "rgmii-id";
-+                              fixed-link {
-+                                      speed = <1000>;
-+                                      full-duplex;
-+                              };
-+                      };
-+
-+                      ethernet@34000 {
-+                              status = "okay";
-+                              phy-mode = "sgmii";
-+                              fixed-link {
-+                                      speed = <1000>;
-+                                      full-duplex;
-+                              };
-+                      };
-+
-+                      mdio {
-+                              status = "okay";
-+                      };
-+
-+                      sata@a8000 {
-+                              status = "okay";
-+                      };
-+
-+                      /* USB part of the eSATA/USB 2.0 port */
-+                      usb@50000 {
-+                              status = "okay";
-+                      };
-+
-+                      usb3@f8000 {
-+                              status = "okay";
-+                              usb-phy = <&usb3_phy>;
-+                      };
-+
-+                      flash@d0000 {
-+                              status = "okay";
-+                              num-cs = <1>;
-+                              marvell,nand-keep-config;
-+                              marvell,nand-enable-arbiter;
-+                              nand-on-flash-bbt;
-+
-+                              partition@0 {
-+                                      label = "u-boot";
-+                                      reg = <0x0000000 0x200000>;  /* 2MB */
-+                                      read-only;
-+                              };
-+
-+                              partition@100000 {
-+                                      label = "u_env";
-+                                      reg = <0x200000 0x40000>;    /* 256KB */
-+                              };
-+
-+                              partition@140000 {
-+                                      label = "s_env";
-+                                      reg = <0x240000 0x40000>;    /* 256KB */
-+                              };
-+
-+                              partition@900000 {
-+                                      label = "devinfo";
-+                                      reg = <0x900000 0x100000>;   /* 1MB */
-+                                      read-only;
-+                              };
-+
-+                              /* kernel1 overlaps with rootfs1 by design */
-+                              partition@a00000 {
-+                                      label = "kernel1";
-+                                      reg = <0xa00000 0x2800000>;  /* 40MB */
-+                              };
-+
-+                              partition@1000000 {
-+                                      label = "rootfs1";
-+                                      reg = <0x1000000 0x2200000>;  /* 34MB */
-+                              };
-+
-+                              /* kernel2 overlaps with rootfs2 by design */
-+                              partition@3200000 {
-+                                      label = "kernel2";
-+                                      reg = <0x3200000 0x2800000>; /* 40MB */
-+                              };
-+
-+                              partition@3800000 {
-+                                      label = "rootfs2";
-+                                      reg = <0x3800000 0x2200000>; /* 34MB */
-+                              };
-+
-+                              /*
-+                               * 38MB, last MB is for the BBT, not writable
-+                               */
-+                              partition@5a00000 {
-+                                      label = "syscfg";
-+                                      reg = <0x5a00000 0x2600000>;
-+                              };
-+
-+                              /*
-+                               * Unused area between "s_env" and "devinfo".
-+                               * Moved here because otherwise the renumbered
-+                               * partitions would break the bootloader
-+                               * supplied bootargs
-+                               */
-+                              partition@180000 {
-+                                      label = "unused_area";
-+                                      reg = <0x280000 0x680000>;   /* 6.5MB */
-+                              };
-+                      };
-+              };
-+
-+              pcie-controller {
-+                      status = "okay";
-+
-+                      pcie@1,0 {
-+                              /* Marvell 88W8864, 5GHz-only */
-+                              status = "okay";
-+                      };
-+
-+                      pcie@2,0 {
-+                              /* Marvell 88W8864, 2GHz-only */
-+                              status = "okay";
-+                      };
-+              };
-+      };
-+
-+      usb3_phy: usb3_phy {
-+              compatible = "usb-nop-xceiv";
-+              vcc-supply = <&reg_xhci0_vbus>;
-+      };
-+
-+      reg_xhci0_vbus: xhci0-vbus {
-+              compatible = "regulator-fixed";
-+              pinctrl-names = "default";
-+              pinctrl-0 = <&xhci0_vbus_pins>;
-+              regulator-name = "xhci0-vbus";
-+              regulator-min-microvolt = <5000000>;
-+              regulator-max-microvolt = <5000000>;
-+              enable-active-high;
-+              gpio = <&gpio1 18 GPIO_ACTIVE_HIGH>;
-+      };
-+
-+      gpio_keys {
-+              compatible = "gpio-keys";
-+              #address-cells = <1>;
-+              #size-cells = <0>;
-+              pinctrl-0 = <&keys_pin>;
-+              pinctrl-names = "default";
-+
-+              button@1 {
-+                      label = "WPS";
-+                      linux,code = <KEY_WPS_BUTTON>;
-+                      gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
-+              };
-+
-+              button@2 {
-+                      label = "Factory Reset Button";
-+                      linux,code = <KEY_RESTART>;
-+                      gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
-+              };
-+      };
-+
-+      gpio-leds {
-+              compatible = "gpio-leds";
-+              pinctrl-0 = <&power_led_pin &sata_led_pin>;
-+              pinctrl-names = "default";
-+
-+              power {
-+                      gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
-+                      default-state = "on";
-+              };
-+
-+              sata {
-+                      gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
-+                      default-state = "off";
-+              };
-+      };
-+
-+      dsa@0 {
-+              compatible = "marvell,dsa";
-+              #address-cells = <2>;
-+              #size-cells = <0>;
-+
-+              dsa,ethernet = <&eth2>;
-+              dsa,mii-bus = <&mdio>;
-+
-+              switch@0 {
-+                      #address-cells = <1>;
-+                      #size-cells = <0>;
-+                      reg = <0x0 0>;  /* MDIO address 0, switch 0 in tree */
-+
-+                      port@0 {
-+                              reg = <0>;
-+                              label = "lan4";
-+                      };
-+
-+                      port@1 {
-+                              reg = <1>;
-+                              label = "lan3";
-+                      };
-+
-+                      port@2 {
-+                              reg = <2>;
-+                              label = "lan2";
-+                      };
-+
-+                      port@3 {
-+                              reg = <3>;
-+                              label = "lan1";
-+                      };
-+
-+                      port@4 {
-+                              reg = <4>;
-+                              label = "wan";
-+                      };
-+
-+                      port@5 {
-+                              reg = <5>;
-+                              label = "cpu";
-+                      };
-+              };
-+      };
-+};
-+
-+&pinctrl {
-+      keys_pin: keys-pin {
-+              marvell,pins = "mpp24", "mpp47";
-+              marvell,function = "gpio";
-+      };
-+
-+      power_led_pin: power-led-pin {
-+              marvell,pins = "mpp55";
-+              marvell,function = "gpio";
-+      };
-+
-+      sata_led_pin: sata-led-pin {
-+              marvell,pins = "mpp54";
-+              marvell,function = "gpio";
-+      };
-+
-+      xhci0_vbus_pins: xhci0-vbus-pins {
-+              marvell,pins = "mpp50";
-+              marvell,function = "gpio";
-+      };
-+};

Added: 
trunk/target/linux/mvebu/patches-4.4/000-sata_use_ifdef_around_suspend_resume.patch
===================================================================
--- 
trunk/target/linux/mvebu/patches-4.4/000-sata_use_ifdef_around_suspend_resume.patch
                         (rev 0)
+++ 
trunk/target/linux/mvebu/patches-4.4/000-sata_use_ifdef_around_suspend_resume.patch
 2015-12-10 12:11:39 UTC (rev 47819)
@@ -0,0 +1,34 @@
+The newly added suspend/resume implementation for ahci_mvebu causes
+a link error when CONFIG_PM_SUSPEND is disabled:
+
+ERROR: "ahci_platform_suspend_host" [drivers/ata/ahci_mvebu.ko] undefined!
+ERROR: "ahci_platform_resume_host" [drivers/ata/ahci_mvebu.ko] undefined!
+
+This adds the same #ifdef here that exists in the ahci_platform driver
+which defines the above functions.
+
+Signed-off-by: Arnd Bergmann <[email protected]>
+Fixes: d6ecf1581488 ("ata: ahci_mvebu: add suspend/resume support")
+Acked-by: Thomas Petazzoni <[email protected]>
+
+--- a/drivers/ata/ahci_mvebu.c
++++ b/drivers/ata/ahci_mvebu.c
+@@ -62,6 +62,7 @@ static void ahci_mvebu_regret_option(str
+       writel(0x80, hpriv->mmio + AHCI_VENDOR_SPECIFIC_0_DATA);
+ }
+ 
++#ifdef CONFIG_PM_SLEEP
+ static int ahci_mvebu_suspend(struct platform_device *pdev, pm_message_t 
state)
+ {
+       return ahci_platform_suspend_host(&pdev->dev);
+@@ -81,6 +82,10 @@ static int ahci_mvebu_resume(struct plat
+ 
+       return ahci_platform_resume_host(&pdev->dev);
+ }
++#else
++#define ahci_mvebu_suspend NULL
++#define ahci_mvebu_resume NULL
++#endif
+ 
+ static const struct ata_port_info ahci_mvebu_port_info = {
+       .flags     = AHCI_FLAG_COMMON,

Deleted: 
trunk/target/linux/mvebu/patches-4.4/022-ARM-mvebu-A385-AP-Enable-the-NAND-controller.patch
===================================================================
--- 
trunk/target/linux/mvebu/patches-4.1/022-ARM-mvebu-A385-AP-Enable-the-NAND-controller.patch
 2015-12-10 12:08:13 UTC (rev 47818)
+++ 
trunk/target/linux/mvebu/patches-4.4/022-ARM-mvebu-A385-AP-Enable-the-NAND-controller.patch
 2015-12-10 12:11:39 UTC (rev 47819)
@@ -1,34 +0,0 @@
-From 7eb1f09ec8e25aa2fc3f6fc5fc9405d9f917d503 Mon Sep 17 00:00:00 2001
-From: Maxime Ripard <[email protected]>
-Date: Thu, 11 Dec 2014 14:14:58 +0100
-Subject: [PATCH 1/2] ARM: mvebu: A385-AP: Enable the NAND controller
-
-The A385 AP has a 1GB NAND chip. Enable it.
-
-Signed-off-by: Maxime Ripard <[email protected]>
----
- arch/arm/boot/dts/armada-385-db-ap.dts | 13 +++++++++++++
- 1 file changed, 13 insertions(+)
-
---- a/arch/arm/boot/dts/armada-385-db-ap.dts
-+++ b/arch/arm/boot/dts/armada-385-db-ap.dts
-@@ -174,6 +174,19 @@
-                               status = "okay";
-                               usb-phy = <&usb3_phy>;
-                       };
-+
-+                      nfc: flash@d0000 {
-+                              status = "okay";
-+                              #address-cells = <1>;
-+                              #size-cells = <1>;
-+
-+                              num-cs = <1>;
-+                              nand-ecc-strength = <4>;
-+                              nand-ecc-step-size = <512>;
-+                              marvell,nand-keep-config;
-+                              marvell,nand-enable-arbiter;
-+                              nand-on-flash-bbt;
-+                      };
-               };
- 
-               pcie-controller {

Deleted: 
trunk/target/linux/mvebu/patches-4.4/050-leds_tlc59116_document_binding.patch
===================================================================
--- 
trunk/target/linux/mvebu/patches-4.1/050-leds_tlc59116_document_binding.patch   
    2015-12-10 12:08:13 UTC (rev 47818)
+++ 
trunk/target/linux/mvebu/patches-4.4/050-leds_tlc59116_document_binding.patch   
    2015-12-10 12:11:39 UTC (rev 47819)
@@ -1,51 +0,0 @@
-Document the binding for the TLC59116 LED driver.
-
-Signed-off-by: Andrew Lunn <[email protected]>
----
- .../devicetree/bindings/leds/leds-tlc59116.txt     | 40 ++++++++++++++++++++++
- 1 file changed, 40 insertions(+)
- create mode 100644 Documentation/devicetree/bindings/leds/leds-tlc59116.txt
-
---- /dev/null
-+++ b/Documentation/devicetree/bindings/leds/leds-tlc59116.txt
-@@ -0,0 +1,40 @@
-+LEDs connected to tcl59116
-+
-+Required properties
-+- compatible: should be "ti,tlc59116"
-+- #address-cells: must be 1
-+- #size-cells: must be 0
-+- reg: typically 0x68
-+
-+Each led is represented as a sub-node of the ti,,tlc59116.
-+See Documentation/devicetree/bindings/leds/common.txt
-+
-+LED sub-node properties:
-+- reg: number of LED line, 0 to 15
-+- label: (optional) name of LED
-+- linux,default-trigger : (optional)
-+
-+Examples:
-+
-+tlc59116@68 {
-+      #address-cells = <1>;
-+      #size-cells = <0>;
-+      compatible = "ti,tlc59116";
-+      reg = <0x68>;
-+
-+      wan@0 {
-+              label = "wrt1900ac:amber:wan";
-+              reg = <0x0>;
-+      };
-+
-+      2g@2 {
-+              label = "wrt1900ac:white:2g";
-+              reg = <0x2>;
-+      };
-+
-+      alive@9 {
-+              label = "wrt1900ac:green:alive";
-+              reg = <0x9>;
-+              linux,default_trigger = "heartbeat";
-+      };
-+};

Deleted: trunk/target/linux/mvebu/patches-4.4/051-leds_tlc59116_add_driver.patch
===================================================================
--- trunk/target/linux/mvebu/patches-4.1/051-leds_tlc59116_add_driver.patch     
2015-12-10 12:08:13 UTC (rev 47818)
+++ trunk/target/linux/mvebu/patches-4.4/051-leds_tlc59116_add_driver.patch     
2015-12-10 12:11:39 UTC (rev 47819)
@@ -1,297 +0,0 @@
-The TLC59116 is an I2C bus controlled 16-channel LED driver.  Each LED
-output has its own 8-bit fixed-frequency PWM controller to control the
-brightness of the LED.
-
-This is based on a driver from Belkin, but has been extensively
-rewritten.
-
-Signed-off-by: Andrew Lunn <[email protected]>
----
- drivers/leds/Kconfig         |   8 ++
- drivers/leds/Makefile        |   1 +
- drivers/leds/leds-tlc59116.c | 252 +++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 261 insertions(+)
- create mode 100644 drivers/leds/leds-tlc59116.c
-
---- a/drivers/leds/Kconfig
-+++ b/drivers/leds/Kconfig
-@@ -467,6 +467,14 @@ config LEDS_TCA6507
-         LED driver chips accessed via the I2C bus.
-         Driver support brightness control and hardware-assisted blinking.
- 
-+config LEDS_TLC59116
-+      tristate "LED driver for TLC59116F controllers"
-+      depends on LEDS_CLASS && I2C
-+      select REGMAP_I2C
-+      help
-+        This option enables support for Texas Instruments TLC59116F
-+        LED controller.
-+
- config LEDS_MAX8997
-       tristate "LED support for MAX8997 PMIC"
-       depends on LEDS_CLASS && MFD_MAX8997
---- a/drivers/leds/Makefile
-+++ b/drivers/leds/Makefile
-@@ -31,6 +31,7 @@ obj-$(CONFIG_LEDS_LP8501)            += leds-lp850
- obj-$(CONFIG_LEDS_LP8788)             += leds-lp8788.o
- obj-$(CONFIG_LEDS_LP8860)             += leds-lp8860.o
- obj-$(CONFIG_LEDS_TCA6507)            += leds-tca6507.o
-+obj-$(CONFIG_LEDS_TLC59116)           += leds-tlc59116.o
- obj-$(CONFIG_LEDS_CLEVO_MAIL)         += leds-clevo-mail.o
- obj-$(CONFIG_LEDS_IPAQ_MICRO)         += leds-ipaq-micro.o
- obj-$(CONFIG_LEDS_HP6XX)              += leds-hp6xx.o
---- /dev/null
-+++ b/drivers/leds/leds-tlc59116.c
-@@ -0,0 +1,252 @@
-+/*
-+ * Copyright 2014 Belkin Inc.
-+ * Copyright 2014 Andrew Lunn <[email protected]>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; version 2 of the License.
-+ */
-+
-+#include <linux/i2c.h>
-+#include <linux/leds.h>
-+#include <linux/module.h>
-+#include <linux/of.h>
-+#include <linux/regmap.h>
-+#include <linux/slab.h>
-+#include <linux/workqueue.h>
-+
-+#define TLC59116_LEDS         16
-+
-+#define TLC59116_REG_MODE1    0x00
-+#define MODE1_RESPON_ADDR_MASK        0xF0
-+#define MODE1_NORMAL_MODE     (0 << 4)
-+#define MODE1_SPEED_MODE      (1 << 4)
-+
-+#define TLC59116_REG_MODE2    0x01
-+#define MODE2_DIM             (0 << 5)
-+#define MODE2_BLINK           (1 << 5)
-+#define MODE2_OCH_STOP                (0 << 3)
-+#define MODE2_OCH_ACK         (1 << 3)
-+
-+#define TLC59116_REG_PWM(x)   (0x02 + (x))
-+
-+#define TLC59116_REG_GRPPWM   0x12
-+#define TLC59116_REG_GRPFREQ  0x13
-+
-+/* LED Driver Output State, determine the source that drives LED outputs */
-+#define TLC59116_REG_LEDOUT(x)        (0x14 + ((x) >> 2))
-+#define TLC59116_LED_OFF      0x0     /* Output LOW */
-+#define TLC59116_LED_ON               0x1     /* Output HI-Z */
-+#define TLC59116_DIM          0x2     /* Dimming */
-+#define TLC59116_BLINK                0x3     /* Blinking */
-+#define LED_MASK              0x3
-+
-+#define ldev_to_led(c)                container_of(c, struct tlc59116_led, 
ldev)
-+#define work_to_led(work)     container_of(work, struct tlc59116_led, work)
-+
-+struct tlc59116_led {
-+      bool active;
-+      struct regmap *regmap;
-+      unsigned int led_no;
-+      struct led_classdev ldev;
-+      struct work_struct work;
-+};
-+
-+struct tlc59116_priv {
-+      struct tlc59116_led leds[TLC59116_LEDS];
-+};
-+
-+static int
-+tlc59116_set_mode(struct regmap *regmap, u8 mode)
-+{
-+      int err;
-+      u8 val;
-+
-+      if ((mode != MODE2_DIM) && (mode != MODE2_BLINK))
-+              mode = MODE2_DIM;
-+
-+      /* Configure MODE1 register */
-+      err = regmap_write(regmap, TLC59116_REG_MODE1, MODE1_NORMAL_MODE);
-+      if (err)
-+              return err;
-+
-+      /* Configure MODE2 Reg */
-+      val = MODE2_OCH_STOP | mode;
-+
-+      return regmap_write(regmap, TLC59116_REG_MODE2, val);
-+}
-+
-+static int
-+tlc59116_set_led(struct tlc59116_led *led, u8 val)
-+{
-+      struct regmap *regmap = led->regmap;
-+      unsigned int i = (led->led_no % 4) * 2;
-+      unsigned int addr = TLC59116_REG_LEDOUT(led->led_no);
-+      unsigned int mask = LED_MASK << i;
-+
-+      val = val << i;
-+
-+      return regmap_update_bits(regmap, addr, mask, val);
-+}
-+
-+static void
-+tlc59116_led_work(struct work_struct *work)
-+{
-+      struct tlc59116_led *led = work_to_led(work);
-+      struct regmap *regmap = led->regmap;
-+      int err;
-+      u8 pwm;
-+
-+      pwm = TLC59116_REG_PWM(led->led_no);
-+      err = regmap_write(regmap, pwm, led->ldev.brightness);
-+      if (err)
-+              dev_err(led->ldev.dev, "Failed setting brightness\n");
-+}
-+
-+static void
-+tlc59116_led_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+      struct tlc59116_led *led = ldev_to_led(led_cdev);
-+
-+      led->ldev.brightness = value;
-+      schedule_work(&led->work);
-+}
-+
-+static void
-+tlc59116_destroy_devices(struct tlc59116_priv *priv, unsigned int i)
-+{
-+      while (--i >= 0) {
-+              if (priv->leds[i].active) {
-+                      led_classdev_unregister(&priv->leds[i].ldev);
-+                      cancel_work_sync(&priv->leds[i].work);
-+              }
-+      }
-+}
-+
-+static int
-+tlc59116_configure(struct device *dev,
-+                 struct tlc59116_priv *priv,
-+                 struct regmap *regmap)
-+{
-+      unsigned int i;
-+      int err = 0;
-+
-+      tlc59116_set_mode(regmap, MODE2_DIM);
-+      for (i = 0; i < TLC59116_LEDS; i++) {
-+              struct tlc59116_led *led = &priv->leds[i];
-+
-+              if (!led->active)
-+                      continue;
-+
-+              led->regmap = regmap;
-+              led->led_no = i;
-+              led->ldev.brightness_set = tlc59116_led_set;
-+              led->ldev.max_brightness = LED_FULL;
-+              INIT_WORK(&led->work, tlc59116_led_work);
-+              err = led_classdev_register(dev, &led->ldev);
-+              if (err < 0) {
-+                      dev_err(dev, "couldn't register LED %s\n",
-+                              led->ldev.name);
-+                      goto exit;
-+              }
-+              tlc59116_set_led(led, TLC59116_DIM);
-+      }
-+
-+      return 0;
-+
-+exit:
-+      tlc59116_destroy_devices(priv, i);
-+      return err;
-+}
-+
-+static const struct regmap_config tlc59116_regmap = {
-+      .reg_bits = 8,
-+      .val_bits = 8,
-+      .max_register = 0x1e,
-+};
-+
-+static int
-+tlc59116_probe(struct i2c_client *client,
-+             const struct i2c_device_id *id)
-+{
-+      struct tlc59116_priv *priv = i2c_get_clientdata(client);
-+      struct device *dev = &client->dev;
-+      struct device_node *np = client->dev.of_node, *child;
-+      struct regmap *regmap;
-+      int err, count, reg;
-+
-+      count = of_get_child_count(np);
-+      if (!count || count > TLC59116_LEDS)
-+              return -EINVAL;
-+
-+      if (!i2c_check_functionality(client->adapter,
-+              I2C_FUNC_SMBUS_BYTE_DATA))
-+              return -EIO;
-+
-+      priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
-+      if (!priv)
-+              return -ENOMEM;
-+
-+      regmap = devm_regmap_init_i2c(client, &tlc59116_regmap);
-+      if (IS_ERR(regmap)) {
-+              err = PTR_ERR(regmap);
-+              dev_err(dev, "Failed to allocate register map: %d\n", err);
-+              return err;
-+      }
-+
-+      i2c_set_clientdata(client, priv);
-+
-+      for_each_child_of_node(np, child) {
-+              err = of_property_read_u32(child, "reg", &reg);
-+              if (err)
-+                      return err;
-+              if (reg < 0 || reg >= TLC59116_LEDS)
-+                      return -EINVAL;
-+              if (priv->leds[reg].active)
-+                      return -EINVAL;
-+              priv->leds[reg].active = true;
-+              priv->leds[reg].ldev.name =
-+                      of_get_property(child, "label", NULL) ? : child->name;
-+              priv->leds[reg].ldev.default_trigger =
-+                      of_get_property(child, "linux,default-trigger", NULL);
-+      }
-+      return tlc59116_configure(dev, priv, regmap);
-+}
-+
-+static int
-+tlc59116_remove(struct i2c_client *client)
-+{
-+      struct tlc59116_priv *priv = i2c_get_clientdata(client);
-+
-+      tlc59116_destroy_devices(priv, TLC59116_LEDS);
-+
-+      return 0;
-+}
-+
-+static const struct of_device_id of_tlc59116_leds_match[] = {
-+      { .compatible = "ti,tlc59116", },
-+      {},
-+};
-+MODULE_DEVICE_TABLE(of, of_tlc59116_leds_match);
-+
-+static const struct i2c_device_id tlc59116_id[] = {
-+      { "tlc59116" },
-+      {},
-+};
-+MODULE_DEVICE_TABLE(i2c, tlc59116_id);
-+
-+static struct i2c_driver tlc59116_driver = {
-+      .driver = {
-+              .name = "tlc59116",
-+              .of_match_table = of_match_ptr(of_tlc59116_leds_match),
-+      },
-+      .probe = tlc59116_probe,
-+      .remove = tlc59116_remove,
-+      .id_table = tlc59116_id,
-+};
-+
-+module_i2c_driver(tlc59116_driver);
-+
-+MODULE_AUTHOR("Andrew Lunn <[email protected]>");
-+MODULE_LICENSE("GPL");
-+MODULE_DESCRIPTION("TLC59116 LED driver");

Deleted: trunk/target/linux/mvebu/patches-4.4/300-add_missing_labels.patch
===================================================================
--- trunk/target/linux/mvebu/patches-4.1/300-add_missing_labels.patch   
2015-12-10 12:08:13 UTC (rev 47818)
+++ trunk/target/linux/mvebu/patches-4.4/300-add_missing_labels.patch   
2015-12-10 12:11:39 UTC (rev 47819)
@@ -1,11 +0,0 @@
---- a/arch/arm/boot/dts/armada-38x.dtsi
-+++ b/arch/arm/boot/dts/armada-38x.dtsi
-@@ -495,7 +495,7 @@
-                               status = "disabled";
-                       };
- 
--                      mdio@72004 {
-+                      mdio: mdio@72004 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "marvell,orion-mdio";
_______________________________________________
openwrt-commits mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits

Reply via email to