]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'arm-soc/for-next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Wed, 4 Nov 2015 23:11:31 +0000 (10:11 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Wed, 4 Nov 2015 23:11:31 +0000 (10:11 +1100)
21 files changed:
1  2 
Documentation/devicetree/bindings/vendor-prefixes.txt
MAINTAINERS
arch/arm/Kconfig
arch/arm/boot/dts/am437x-sk-evm.dts
arch/arm/boot/dts/dra7.dtsi
arch/arm/boot/dts/rk3288-veyron.dtsi
arch/arm/boot/dts/rk3288.dtsi
arch/arm/boot/dts/sama5d2.dtsi
arch/arm/boot/dts/stih407-family.dtsi
arch/arm/configs/exynos_defconfig
arch/arm/configs/lpc18xx_defconfig
arch/arm/mach-exynos/suspend.c
arch/arm/mach-imx/gpc.c
arch/arm/mach-omap2/omap-wakeupgen.c
arch/arm/mm/Kconfig
arch/arm64/boot/dts/apm/apm-storm.dtsi
drivers/clocksource/Kconfig
drivers/clocksource/Makefile
drivers/hwmon/Kconfig
drivers/hwmon/Makefile
include/linux/platform_data/atmel.h

index 3222b2ff475e9cc64425debe6db6e1fc20ae3ba5,8c69cebb24bb9b3bd0d052d00fbe65163f17d1d1..68747d979623173e792ed41ef7864be69011bc73
@@@ -34,6 -34,7 +34,7 @@@ avago Avago Technologie
  avic  Shanghai AVIC Optoelectronics Co., Ltd.
  axis  Axis Communications AB
  bosch Bosch Sensortec GmbH
+ boundary      Boundary Devices Inc.
  brcm  Broadcom Corporation
  buffalo       Buffalo, Inc.
  calxeda       Calxeda
@@@ -82,7 -83,6 +83,7 @@@ everspin      Everspin Technologies, Inc
  excito        Excito
  fcs   Fairchild Semiconductor
  firefly       Firefly
 +focaltech     FocalTech Systems Co.,Ltd
  fsl   Freescale Semiconductor
  GEFanuc       GE Fanuc Intelligent Platforms Embedded Systems, Inc.
  gef   GE Fanuc Intelligent Platforms Embedded Systems, Inc.
@@@ -169,6 -169,7 +170,7 @@@ pericom    Pericom Technology Inc
  phytec        PHYTEC Messtechnik GmbH
  picochip      Picochip Ltd
  plathome      Plat'Home Co., Ltd.
+ plda  PLDA
  pixcir  PIXCIR MICROELECTRONICS Co., Ltd
  powervr       PowerVR (deprecated, use img)
  qca   Qualcomm Atheros, Inc.
@@@ -223,6 -224,7 +225,7 @@@ toradex    Toradex A
  toshiba       Toshiba Corporation
  toumaz        Toumaz
  tplink        TP-LINK Technologies Co., Ltd.
+ tronfy        Tronfy
  truly Truly Semiconductors Limited
  usi   Universal Scientific Industrial Co., Ltd.
  v3    V3 Semiconductor
diff --combined MAINTAINERS
index cadf310dfa6da506a28b9d0c28fbba3e6b857746,9f54331f7f765f0ee6451ec4b0f6228f6ae7dfa2..0a2f09469e0f760c85ca8f5b05fbb1dd46bb604d
@@@ -240,12 -240,6 +240,12 @@@ L:       lm-sensors@lm-sensors.or
  S:    Maintained
  F:    drivers/hwmon/abituguru3.c
  
 +ACCES 104-IDIO-16 GPIO DRIVER
 +M:    "William Breathitt Gray" <vilhelm.gray@gmail.com>
 +L:    linux-gpio@vger.kernel.org
 +S:    Maintained
 +F:    drivers/gpio/gpio-104-idio-16.c
 +
  ACENIC DRIVER
  M:    Jes Sorensen <jes@trained-monkey.org>
  L:    linux-acenic@sunsite.dk
@@@ -660,6 -654,11 +660,6 @@@ F:        drivers/gpu/drm/radeon/radeon_kfd.
  F:    drivers/gpu/drm/radeon/radeon_kfd.h
  F:    include/uapi/linux/kfd_ioctl.h
  
 -AMD MICROCODE UPDATE SUPPORT
 -M:    Borislav Petkov <bp@alien8.de>
 -S:    Maintained
 -F:    arch/x86/kernel/cpu/microcode/amd*
 -
  AMD XGBE DRIVER
  M:    Tom Lendacky <thomas.lendacky@amd.com>
  L:    netdev@vger.kernel.org
@@@ -789,6 -788,11 +789,11 @@@ S:       Maintaine
  F:    drivers/net/appletalk/
  F:    net/appletalk/
  
+ APPLIED MICRO (APM) X-GENE DEVICE TREE SUPPORT
+ M:    Duc Dang <dhdang@apm.com>
+ S:    Supported
+ F:    arch/arm64/boot/dts/apm/
  APPLIED MICRO (APM) X-GENE SOC ETHERNET DRIVER
  M:    Iyappan Subramanian <isubramanian@apm.com>
  M:    Keyur Chudgar <kchudgar@apm.com>
@@@ -919,7 -923,7 +924,7 @@@ M: Tsahee Zidenberg <tsahee@annapurnala
  S:    Maintained
  F:    arch/arm/mach-alpine/
  
- ARM/ATMEL AT91RM9200 AND AT91SAM ARM ARCHITECTURES
+ ARM/ATMEL AT91RM9200, AT91SAM9 AND SAMA5 SOC SUPPORT
  M:    Nicolas Ferre <nicolas.ferre@atmel.com>
  M:    Alexandre Belloni <alexandre.belloni@free-electrons.com>
  M:    Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
@@@ -1232,6 -1236,13 +1237,13 @@@ ARM/LPC18XX ARCHITECTUR
  M:    Joachim Eastwood <manabian@gmail.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
+ F:    arch/arm/boot/dts/lpc43*
+ F:    drivers/clk/nxp/clk-lpc18xx*
+ F:    drivers/clocksource/time-lpc32xx.c
+ F:    drivers/i2c/busses/i2c-lpc2k.c
+ F:    drivers/memory/pl172.c
+ F:    drivers/mtd/spi-nor/nxp-spifi.c
+ F:    drivers/rtc/rtc-lpc24xx.c
  N:    lpc18xx
  
  ARM/MAGICIAN MACHINE SUPPORT
@@@ -1447,6 -1458,10 +1459,10 @@@ F:    drivers/*/*s3c2410
  F:    drivers/*/*/*s3c2410*
  F:    drivers/spi/spi-s3c*
  F:    sound/soc/samsung/*
+ F:    Documentation/arm/Samsung/
+ F:    Documentation/devicetree/bindings/arm/samsung/
+ F:    Documentation/devicetree/bindings/sram/samsung-sram.txt
+ F:    Documentation/devicetree/bindings/power/pd-samsung.txt
  N:    exynos
  
  ARM/SAMSUNG MOBILE MACHINE SUPPORT
@@@ -1493,8 -1508,6 +1509,6 @@@ F:      arch/arm/boot/dts/emev2
  F:    arch/arm/boot/dts/r7s*
  F:    arch/arm/boot/dts/r8a*
  F:    arch/arm/boot/dts/sh*
- F:    arch/arm/configs/bockw_defconfig
- F:    arch/arm/configs/marzen_defconfig
  F:    arch/arm/configs/shmobile_defconfig
  F:    arch/arm/include/debug/renesas-scif.S
  F:    arch/arm/mach-shmobile/
@@@ -1529,7 -1542,6 +1543,7 @@@ W:      http://www.stlinux.co
  S:    Maintained
  F:    arch/arm/mach-sti/
  F:    arch/arm/boot/dts/sti*
 +F:    drivers/char/hw_random/st-rng.c
  F:    drivers/clocksource/arm_global_timer.c
  F:    drivers/clocksource/clksrc_st_lpc.c
  F:    drivers/i2c/busses/i2c-st.c
@@@ -1609,7 -1621,9 +1623,9 @@@ M:      Masahiro Yamada <yamada.masahiro@soc
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/boot/dts/uniphier*
+ F:    arch/arm/include/asm/hardware/cache-uniphier.h
  F:    arch/arm/mach-uniphier/
+ F:    arch/arm/mm/cache-uniphier.c
  F:    drivers/pinctrl/uniphier/
  F:    drivers/tty/serial/8250/8250_uniphier.c
  N:    uniphier
@@@ -1782,14 -1796,6 +1798,14 @@@ S:    Supporte
  F:    Documentation/aoe/
  F:    drivers/block/aoe/
  
 +ATHEROS 71XX/9XXX GPIO DRIVER
 +M:    Alban Bedel <albeu@free.fr>
 +W:    https://github.com/AlbanBedel/linux
 +T:    git git://github.com/AlbanBedel/linux
 +S:    Maintained
 +F:    drivers/gpio/gpio-ath79.c
 +F:    Documentation/devicetree/bindings/gpio/gpio-ath79.txt
 +
  ATHEROS ATH GENERIC UTILITIES
  M:    "Luis R. Rodriguez" <mcgrof@do-not-panic.com>
  L:    linux-wireless@vger.kernel.org
@@@ -2371,19 -2377,27 +2387,27 @@@ L:   linux-scsi@vger.kernel.or
  S:    Supported
  F:    drivers/scsi/bnx2i/
  
- BROADCOM CYGNUS/IPROC ARM ARCHITECTURE
+ BROADCOM IPROC ARM ARCHITECTURE
  M:    Ray Jui <rjui@broadcom.com>
  M:    Scott Branden <sbranden@broadcom.com>
+ M:    Jon Mason <jonmason@broadcom.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    bcm-kernel-feedback-list@broadcom.com
  T:    git git://github.com/broadcom/cygnus-linux.git
  S:    Maintained
  N:    iproc
  N:    cygnus
+ N:    nsp
  N:    bcm9113*
  N:    bcm9583*
- N:    bcm583*
+ N:    bcm9585*
+ N:    bcm9586*
+ N:    bcm988312
  N:    bcm113*
+ N:    bcm583*
+ N:    bcm585*
+ N:    bcm586*
+ N:    bcm88312
  
  BROADCOM BRCMSTB GPIO DRIVER
  M:    Gregory Fong <gregory.0xf0@gmail.com>
@@@ -3378,7 -3392,6 +3402,7 @@@ M:      Support Opensource <support.opensour
  W:    http://www.dialog-semiconductor.com/products
  S:    Supported
  F:    Documentation/hwmon/da90??
 +F:    Documentation/devicetree/bindings/sound/da[79]*.txt
  F:    drivers/gpio/gpio-da90??.c
  F:    drivers/hwmon/da90??-hwmon.c
  F:    drivers/iio/adc/da91??-*.c
@@@ -3603,13 -3616,6 +3627,13 @@@ F:    drivers/gpu/drm/i915
  F:    include/drm/i915*
  F:    include/uapi/drm/i915*
  
 +DRM DRIVERS FOR ATMEL HLCDC
 +M:    Boris Brezillon <boris.brezillon@free-electrons.com>
 +L:    dri-devel@lists.freedesktop.org
 +S:    Supported
 +F:    drivers/gpu/drm/atmel-hlcdc/
 +F:    Documentation/devicetree/bindings/drm/atmel/
 +
  DRM DRIVERS FOR EXYNOS
  M:    Inki Dae <inki.dae@samsung.com>
  M:    Joonyoung Shim <jy0922.shim@samsung.com>
@@@ -3638,14 -3644,6 +3662,14 @@@ S:    Maintaine
  F:    drivers/gpu/drm/imx/
  F:    Documentation/devicetree/bindings/drm/imx/
  
 +DRM DRIVERS FOR GMA500 (Poulsbo, Moorestown and derivative chipsets)
 +M:    Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
 +L:    dri-devel@lists.freedesktop.org
 +T:    git git://github.com/patjak/drm-gma500
 +S:    Maintained
 +F:    drivers/gpu/drm/gma500
 +F:    include/drm/gma500*
 +
  DRM DRIVERS FOR NVIDIA TEGRA
  M:    Thierry Reding <thierry.reding@gmail.com>
  M:    Terje Bergström <tbergstrom@nvidia.com>
@@@ -4439,14 -4437,6 +4463,14 @@@ L:    linuxppc-dev@lists.ozlabs.or
  S:    Maintained
  F:    drivers/net/ethernet/freescale/ucc_geth*
  
 +FREESCALE eTSEC ETHERNET DRIVER (GIANFAR)
 +M:    Claudiu Manoil <claudiu.manoil@freescale.com>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/net/ethernet/freescale/gianfar*
 +X:    drivers/net/ethernet/freescale/gianfar_ptp.c
 +F:    Documentation/devicetree/bindings/net/fsl-tsec-phy.txt
 +
  FREESCALE QUICC ENGINE UCC UART DRIVER
  M:    Timur Tabi <timur@tabi.org>
  L:    linuxppc-dev@lists.ozlabs.org
@@@ -5465,6 -5455,12 +5489,6 @@@ W:     https://01.org/linux-acp
  S:    Supported
  F:    drivers/platform/x86/intel_menlow.c
  
 -INTEL IA32 MICROCODE UPDATE SUPPORT
 -M:    Borislav Petkov <bp@alien8.de>
 -S:    Maintained
 -F:    arch/x86/kernel/cpu/microcode/core*
 -F:    arch/x86/kernel/cpu/microcode/intel*
 -
  INTEL I/OAT DMA DRIVER
  M:    Dave Jiang <dave.jiang@intel.com>
  R:    Dan Williams <dan.j.williams@intel.com>
@@@ -5575,7 -5571,7 +5599,7 @@@ F:      drivers/net/wireless/iwlegacy
  INTEL WIRELESS WIFI LINK (iwlwifi)
  M:    Johannes Berg <johannes.berg@intel.com>
  M:    Emmanuel Grumbach <emmanuel.grumbach@intel.com>
 -M:    Intel Linux Wireless <ilw@linux.intel.com>
 +M:    Intel Linux Wireless <linuxwifi@intel.com>
  L:    linux-wireless@vger.kernel.org
  W:    http://intellinuxwireless.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi.git
@@@ -6122,13 -6118,6 +6146,13 @@@ F:    Documentation/auxdisplay/ks010
  F:    drivers/auxdisplay/ks0108.c
  F:    include/linux/ks0108.h
  
 +L3MDEV
 +M:    David Ahern <dsa@cumulusnetworks.com>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    net/l3mdev
 +F:    include/net/l3mdev.h
 +
  LAPB module
  L:    linux-x25@vger.kernel.org
  S:    Orphan
@@@ -6596,13 -6585,6 +6620,13 @@@ M:    Guenter Roeck <linux@roeck-us.net
  S:    Maintained
  F:    drivers/net/dsa/mv88e6352.c
  
 +MARVELL CRYPTO DRIVER
 +M:    Boris Brezillon <boris.brezillon@free-electrons.com>
 +M:    Arnaud Ebalard <arno@natisbad.org>
 +F:    drivers/crypto/marvell/
 +S:    Maintained
 +L:    linux-crypto@vger.kernel.org
 +
  MARVELL GIGABIT ETHERNET DRIVERS (skge/sky2)
  M:    Mirko Lindner <mlindner@marvell.com>
  M:    Stephen Hemminger <stephen@networkplumber.org>
@@@ -6821,6 -6803,7 +6845,6 @@@ F:      drivers/scsi/megaraid
  
  MELLANOX ETHERNET DRIVER (mlx4_en)
  M:    Amir Vadai <amirv@mellanox.com>
 -M:    Ido Shamay <idos@mellanox.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  W:    http://www.mellanox.com
@@@ -7013,7 -6996,6 +7037,7 @@@ M:      Alan Ott <alan@signal11.us
  L:    linux-wpan@vger.kernel.org
  S:    Maintained
  F:    drivers/net/ieee802154/mrf24j40.c
 +F:    Documentation/devicetree/bindings/net/ieee802154/mrf24j40.txt
  
  MSI LAPTOP SUPPORT
  M:    "Lee, Chun-Yi" <jlee@suse.com>
@@@ -7348,6 -7330,7 +7372,6 @@@ S:      Odd Fixe
  F:    drivers/net/
  F:    include/linux/if_*
  F:    include/linux/netdevice.h
 -F:    include/linux/arcdevice.h
  F:    include/linux/etherdevice.h
  F:    include/linux/fcdevice.h
  F:    include/linux/fddidevice.h
@@@ -8200,13 -8183,6 +8224,13 @@@ L:    linux-arm-kernel@lists.infradead.or
  S:    Maintained
  F:    drivers/pinctrl/pinctrl-at91.*
  
 +PIN CONTROLLER - ATMEL AT91 PIO4
 +M:    Ludovic Desroches <ludovic.desroches@atmel.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +L:    linux-gpio@vger.kernel.org
 +S:    Supported
 +F:    drivers/pinctrl/pinctrl-at91-pio4.*
 +
  PIN CONTROLLER - INTEL
  M:    Mika Westerberg <mika.westerberg@linux.intel.com>
  M:    Heikki Krogerus <heikki.krogerus@linux.intel.com>
@@@ -8568,16 -8544,6 +8592,16 @@@ L:    netdev@vger.kernel.or
  S:    Supported
  F:    drivers/net/ethernet/qlogic/qlge/
  
 +QLOGIC QL4xxx ETHERNET DRIVER
 +M:    Yuval Mintz <Yuval.Mintz@qlogic.com>
 +M:    Ariel Elior <Ariel.Elior@qlogic.com>
 +M:    everest-linux-l2@qlogic.com
 +L:    netdev@vger.kernel.org
 +S:    Supported
 +F:    drivers/net/ethernet/qlogic/qed/
 +F:    include/linux/qed/
 +F:    drivers/net/ethernet/qlogic/qede/
 +
  QNX4 FILESYSTEM
  M:    Anders Larsen <al@alarsen.net>
  W:    http://www.alarsen.net/linux/qnx4fs/
@@@ -8929,13 -8895,6 +8953,13 @@@ S:    Maintaine
  F:    drivers/net/wireless/rtlwifi/
  F:    drivers/net/wireless/rtlwifi/rtl8192ce/
  
 +RTL8XXXU WIRELESS DRIVER (rtl8xxxu)
 +M:    Jes Sorensen <Jes.Sorensen@redhat.com>
 +L:    linux-wireless@vger.kernel.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jes/linux.git rtl8723au-mac80211
 +S:    Maintained
 +F:    drivers/net/wireless/realtek/rtl8xxxu/
 +
  S3 SAVAGE FRAMEBUFFER DRIVER
  M:    Antonino Daplas <adaplas@gmail.com>
  L:    linux-fbdev@vger.kernel.org
@@@ -9167,15 -9126,6 +9191,15 @@@ S: Supporte
  F: Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt
  F: drivers/net/ethernet/synopsys/dwc_eth_qos.c
  
 +SYNOPSYS DESIGNWARE I2C DRIVER
 +M:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
 +M:    Jarkko Nikula <jarkko.nikula@linux.intel.com>
 +M:    Mika Westerberg <mika.westerberg@linux.intel.com>
 +L:    linux-i2c@vger.kernel.org
 +S:    Maintained
 +F:    drivers/i2c/busses/i2c-designware-*
 +F:    include/linux/platform_data/i2c-designware.h
 +
  SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER
  M:    Seungwon Jeon <tgih.jun@samsung.com>
  M:    Jaehoon Chung <jh80.chung@samsung.com>
@@@ -9228,6 -9178,16 +9252,16 @@@ W:    http://www.sunplus.co
  S:    Supported
  F:    arch/score/
  
+ SYSTEM CONTROL & POWER INTERFACE (SCPI) Message Protocol drivers
+ M:    Sudeep Holla <sudeep.holla@arm.com>
+ L:    linux-arm-kernel@lists.infradead.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/arm/arm,scpi.txt
+ F:    drivers/clk/clk-scpi.c
+ F:    drivers/cpufreq/scpi-cpufreq.c
+ F:    drivers/firmware/arm_scpi.c
+ F:    include/linux/scpi_protocol.h
  SCSI CDROM DRIVER
  M:    Jens Axboe <axboe@kernel.dk>
  L:    linux-scsi@vger.kernel.org
@@@ -10143,7 -10103,6 +10177,7 @@@ F:   include/net/switchdev.
  
  SYNOPSYS ARC ARCHITECTURE
  M:    Vineet Gupta <vgupta@synopsys.com>
 +L:    linux-snps-arc@lists.infraded.org
  S:    Supported
  F:    arch/arc/
  F:    Documentation/devicetree/bindings/arc/*
@@@ -11175,12 -11134,6 +11209,12 @@@ S: Maintaine
  F:    drivers/media/v4l2-core/videobuf2-*
  F:    include/media/videobuf2-*
  
 +VIRTUAL SERIO DEVICE DRIVER
 +M:    Stephen Chandler Paul <thatslyude@gmail.com>
 +S:    Maintained
 +F:    drivers/input/serio/userio.c
 +F:    include/uapi/linux/userio.h
 +
  VIRTIO CONSOLE DRIVER
  M:    Amit Shah <amit.shah@redhat.com>
  L:    virtualization@lists.linux-foundation.org
@@@ -11346,6 -11299,7 +11380,6 @@@ M:   Shrijeet Mukherjee <shm@cumulusnetwo
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/vrf.c
 -F:    include/net/vrf.h
  F:    Documentation/networking/vrf.txt
  
  VT1211 HARDWARE MONITOR DRIVER
@@@ -11532,11 -11486,6 +11566,11 @@@ L: linux-edac@vger.kernel.or
  S:    Maintained
  F:    arch/x86/kernel/cpu/mcheck/*
  
 +X86 MICROCODE UPDATE SUPPORT
 +M:    Borislav Petkov <bp@alien8.de>
 +S:    Maintained
 +F:    arch/x86/kernel/cpu/microcode/*
 +
  X86 VDSO
  M:    Andy Lutomirski <luto@amacapital.net>
  L:    linux-kernel@vger.kernel.org
@@@ -11737,7 -11686,6 +11771,7 @@@ F:   drivers/tty/serial/zs.
  ZSMALLOC COMPRESSED SLAB MEMORY ALLOCATOR
  M:    Minchan Kim <minchan@kernel.org>
  M:    Nitin Gupta <ngupta@vflare.org>
 +R:    Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
  L:    linux-mm@kvack.org
  S:    Maintained
  F:    mm/zsmalloc.c
diff --combined arch/arm/Kconfig
index f1ed1109f4889e006e9df4c6110be001841c0f82,471a3670cd3ee74ede9b0a57ef3d9c9679d50538..39d7d4bd4d5aac5002692b0c20a2f6d1cb4a150d
@@@ -621,31 -621,8 +621,9 @@@ config ARCH_PX
        help
          Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
  
- config ARCH_SHMOBILE_LEGACY
-       bool "Renesas ARM SoCs (non-multiplatform)"
-       select ARCH_SHMOBILE
-       select ARM_PATCH_PHYS_VIRT if MMU
-       select CLKDEV_LOOKUP
-       select CPU_V7
-       select GENERIC_CLOCKEVENTS
-       select HAVE_ARM_SCU if SMP
-       select HAVE_ARM_TWD if SMP
-       select HAVE_SMP
-       select MIGHT_HAVE_CACHE_L2X0
-       select MULTI_IRQ_HANDLER
-       select NO_IOPORT_MAP
-       select PINCTRL
-       select PM_GENERIC_DOMAINS if PM
-       select SH_CLK_CPG
-       select SPARSE_IRQ
-       help
-         Support for Renesas ARM SoC platforms using a non-multiplatform
-         kernel. This includes the SH-Mobile, R-Mobile, EMMA-Mobile, R-Car
-         and RZ families.
  config ARCH_RPC
        bool "RiscPC"
 +      depends on MMU
        select ARCH_ACORN
        select ARCH_MAY_HAVE_PC_FDC
        select ARCH_SPARSEMEM_ENABLE
@@@ -820,7 -797,6 +798,7 @@@ config ARCH_VIR
        bool "Dummy Virtual Machine" if ARCH_MULTI_V7
        select ARM_AMBA
        select ARM_GIC
 +      select ARM_GIC_V3
        select ARM_PSCI
        select HAVE_ARM_ARCH_TIMER
  
@@@ -1412,6 -1388,7 +1390,6 @@@ config HAVE_ARM_ARCH_TIME
  
  config HAVE_ARM_TWD
        bool
 -      depends on SMP
        select CLKSRC_OF if OF
        help
          This options enables support for the ARM timer and watchdog unit
@@@ -1471,8 -1448,6 +1449,8 @@@ choic
  
        config VMSPLIT_3G
                bool "3G/1G user/kernel split"
 +      config VMSPLIT_3G_OPT
 +              bool "3G/1G user/kernel split (for full 1G low memory)"
        config VMSPLIT_2G
                bool "2G/2G user/kernel split"
        config VMSPLIT_1G
@@@ -1484,7 -1459,6 +1462,7 @@@ config PAGE_OFFSE
        default PHYS_OFFSET if !MMU
        default 0x40000000 if VMSPLIT_1G
        default 0x80000000 if VMSPLIT_2G
 +      default 0xB0000000 if VMSPLIT_3G_OPT
        default 0xC0000000
  
  config NR_CPUS
@@@ -1538,7 -1512,6 +1516,6 @@@ config HZ_FIXE
        default 200 if ARCH_EBSA110 || ARCH_S3C24XX || \
                ARCH_S5PV210 || ARCH_EXYNOS4
        default 128 if SOC_AT91RM9200
-       default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE_LEGACY
        default 0
  
  choice
@@@ -1699,9 -1672,8 +1676,9 @@@ config HIGHME
          If unsure, say n.
  
  config HIGHPTE
 -      bool "Allocate 2nd-level pagetables from highmem"
 +      bool "Allocate 2nd-level pagetables from highmem" if EXPERT
        depends on HIGHMEM
 +      default y
        help
          The VM uses one page of physical memory for each page table.
          For systems with a lot of processes, this can use a lot of
@@@ -1757,8 -1729,7 +1734,7 @@@ config ARM_MODULE_PLT
  source "mm/Kconfig"
  
  config FORCE_MAX_ZONEORDER
-       int "Maximum zone order" if ARCH_SHMOBILE_LEGACY
-       range 11 64 if ARCH_SHMOBILE_LEGACY
+       int "Maximum zone order"
        default "12" if SOC_AM33XX
        default "9" if SA1111 || ARCH_EFM32
        default "11"
index 0bb36e9af93623e6f3a6e4ee96ae64ce8c215e53,1582fdbeaf76475f97843601687aa1f6fe566156..63de2a1b4315ef56e4329e4825410deb3ccf7c07
  
                reg = <0x38>;
                interrupt-parent = <&gpio0>;
 -              interrupts = <31 0>;
 +              interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
  
                reset-gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
  
  
        vmmc-supply = <&dcdc4>;
        bus-width = <4>;
-       cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
+       cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
  };
  
  &usb2_phy1 {
index 8fedddc35999eef934131943c5696ea3af1a33ed,a635f363d8313ca1eb56048c6891eb43436ebeb5..bc672fb91466a5635a29c0811c202ef5c418aeeb
                                #thermal-sensor-cells = <1>;
                };
  
+               dsp1_system: dsp_system@40d00000 {
+                       compatible = "syscon";
+                       reg = <0x40d00000 0x100>;
+               };
                sdma: dma-controller@4a056000 {
                        compatible = "ti,omap4430-sdma";
                        reg = <0x4a056000 0x1000>;
                        status = "disabled";
                };
  
+               mmu0_dsp1: mmu@40d01000 {
+                       compatible = "ti,dra7-dsp-iommu";
+                       reg = <0x40d01000 0x100>;
+                       interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
+                       ti,hwmods = "mmu0_dsp1";
+                       #iommu-cells = <0>;
+                       ti,syscon-mmuconfig = <&dsp1_system 0x0>;
+                       status = "disabled";
+               };
+               mmu1_dsp1: mmu@40d02000 {
+                       compatible = "ti,dra7-dsp-iommu";
+                       reg = <0x40d02000 0x100>;
+                       interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
+                       ti,hwmods = "mmu1_dsp1";
+                       #iommu-cells = <0>;
+                       ti,syscon-mmuconfig = <&dsp1_system 0x1>;
+                       status = "disabled";
+               };
+               mmu_ipu1: mmu@58882000 {
+                       compatible = "ti,dra7-iommu";
+                       reg = <0x58882000 0x100>;
+                       interrupts = <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>;
+                       ti,hwmods = "mmu_ipu1";
+                       #iommu-cells = <0>;
+                       ti,iommu-bus-err-back;
+                       status = "disabled";
+               };
+               mmu_ipu2: mmu@55082000 {
+                       compatible = "ti,dra7-iommu";
+                       reg = <0x55082000 0x100>;
+                       interrupts = <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>;
+                       ti,hwmods = "mmu_ipu2";
+                       #iommu-cells = <0>;
+                       ti,iommu-bus-err-back;
+                       status = "disabled";
+               };
                abb_mpu: regulator-abb-mpu {
                        compatible = "ti,abb-v3";
                        regulator-name = "abb_mpu";
                        status = "disabled";
                };
  
+               mcasp3: mcasp@48468000 {
+                       compatible = "ti,dra7-mcasp-audio";
+                       ti,hwmods = "mcasp3";
+                       reg = <0x48468000 0x2000>;
+                       reg-names = "mpu";
+                       interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tx", "rx";
+                       dmas = <&sdma_xbar 133>, <&sdma_xbar 132>;
+                       dma-names = "tx", "rx";
+                       clocks = <&mcasp3_ahclkx_mux>;
+                       clock-names = "fck";
+                       status = "disabled";
+               };
                crossbar_mpu: crossbar@4a002a48 {
                        compatible = "ti,irq-crossbar";
                        reg = <0x4a002a48 0x130>;
                                     <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>;
                        ranges;
 +                      syscon = <&scm_conf>;
                        status = "disabled";
  
                        davinci_mdio: mdio@48485000 {
index 860cea0a7613166d64bfc5924a14af5a1dab8aeb,d4263ed7031c9785c6a0e894b8a5c678738811fe..5e61f07724d42a5e6c40e41d8f5f72029feec3de
        broken-cd;
        bus-width = <8>;
        cap-mmc-highspeed;
 +      rockchip,default-sample-phase = <158>;
        disable-wp;
 +      mmc-hs200-1_8v;
        mmc-pwrseq = <&emmc_pwrseq>;
        non-removable;
        num-slots = <1>;
        num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdio0_clk &sdio0_cmd &sdio0_bus4>;
 +      sd-uhs-sdr12;
 +      sd-uhs-sdr25;
 +      sd-uhs-sdr50;
 +      sd-uhs-sdr104;
        vmmc-supply = <&vcc33_sys>;
        vqmmc-supply = <&vcc18_wl>;
  };
                };
        };
  
-       /*
-        * On Marvell-based hardware this is a no-connect.  Make sure we enable
-        * the pullup so that the line doesn't float.  The pullup shouldn't
-        * hurt on Broadcom-based hardware since the other side is actively
-        * driving this signal.  As proof: we've already got a pullup on RX.
-        */
-       uart0 {
-               uart0_cts: uart0-cts {
-                       rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_up>;
-               };
-       };
        write-protect {
                fw_wp_ap: fw-wp-ap {
                        rockchip,pins = <7 6 RK_FUNC_GPIO &pcfg_pull_none>;
index 4e7c6b7392afdb70974078c80154b10a052fb024,12ae3450be54f8b9097ead0d859b6822ba573497..6a79c9c526b8809d9ea201d087d680851653e990
@@@ -44,6 -44,7 +44,7 @@@
  #include <dt-bindings/pinctrl/rockchip.h>
  #include <dt-bindings/clock/rk3288-cru.h>
  #include <dt-bindings/thermal/thermal.h>
+ #include <dt-bindings/power/rk3288-power.h>
  #include "skeleton.dtsi"
  
  / {
        sdmmc: dwmmc@ff0c0000 {
                compatible = "rockchip,rk3288-dw-mshc";
                clock-freq-min-max = <400000 150000000>;
 -              clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>;
 -              clock-names = "biu", "ciu";
 +              clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
 +                       <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
 +              clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
                fifo-depth = <0x100>;
                interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
                reg = <0xff0c0000 0x4000>;
        sdio0: dwmmc@ff0d0000 {
                compatible = "rockchip,rk3288-dw-mshc";
                clock-freq-min-max = <400000 150000000>;
 -              clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>;
 -              clock-names = "biu", "ciu";
 +              clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>,
 +                       <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>;
 +              clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
                fifo-depth = <0x100>;
                interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
                reg = <0xff0d0000 0x4000>;
        sdio1: dwmmc@ff0e0000 {
                compatible = "rockchip,rk3288-dw-mshc";
                clock-freq-min-max = <400000 150000000>;
 -              clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>;
 -              clock-names = "biu", "ciu";
 +              clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>,
 +                       <&cru SCLK_SDIO1_DRV>, <&cru SCLK_SDIO1_SAMPLE>;
 +              clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
                fifo-depth = <0x100>;
                interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
                reg = <0xff0e0000 0x4000>;
        emmc: dwmmc@ff0f0000 {
                compatible = "rockchip,rk3288-dw-mshc";
                clock-freq-min-max = <400000 150000000>;
 -              clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>;
 -              clock-names = "biu", "ciu";
 +              clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
 +                       <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
 +              clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
                fifo-depth = <0x100>;
                interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
                reg = <0xff0f0000 0x4000>;
        };
  
        pmu: power-management@ff730000 {
-               compatible = "rockchip,rk3288-pmu", "syscon";
+               compatible = "rockchip,rk3288-pmu", "syscon", "simple-mfd";
                reg = <0xff730000 0x100>;
+               power: power-controller {
+                       compatible = "rockchip,rk3288-power-controller";
+                       #power-domain-cells = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       /*
+                        * Note: Although SCLK_* are the working clocks
+                        * of device without including on the NOC, needed for
+                        * synchronous reset.
+                        *
+                        * The clocks on the which NOC:
+                        * ACLK_IEP/ACLK_VIP/ACLK_VOP0 are on ACLK_VIO0_NIU.
+                        * ACLK_ISP/ACLK_VOP1 are on ACLK_VIO1_NIU.
+                        * ACLK_RGA is on ACLK_RGA_NIU.
+                        * The others (HCLK_*,PLCK_*) are on HCLK_VIO_NIU.
+                        *
+                        * Which clock are device clocks:
+                        *      clocks          devices
+                        *      *_IEP           IEP:Image Enhancement Processor
+                        *      *_ISP           ISP:Image Signal Processing
+                        *      *_VIP           VIP:Video Input Processor
+                        *      *_VOP*          VOP:Visual Output Processor
+                        *      *_RGA           RGA
+                        *      *_EDP*          EDP
+                        *      *_LVDS_*        LVDS
+                        *      *_HDMI          HDMI
+                        *      *_MIPI_*        MIPI
+                        */
+                       pd_vio {
+                               reg = <RK3288_PD_VIO>;
+                               clocks = <&cru ACLK_IEP>,
+                                        <&cru ACLK_ISP>,
+                                        <&cru ACLK_RGA>,
+                                        <&cru ACLK_VIP>,
+                                        <&cru ACLK_VOP0>,
+                                        <&cru ACLK_VOP1>,
+                                        <&cru DCLK_VOP0>,
+                                        <&cru DCLK_VOP1>,
+                                        <&cru HCLK_IEP>,
+                                        <&cru HCLK_ISP>,
+                                        <&cru HCLK_RGA>,
+                                        <&cru HCLK_VIP>,
+                                        <&cru HCLK_VOP0>,
+                                        <&cru HCLK_VOP1>,
+                                        <&cru PCLK_EDP_CTRL>,
+                                        <&cru PCLK_HDMI_CTRL>,
+                                        <&cru PCLK_LVDS_PHY>,
+                                        <&cru PCLK_MIPI_CSI>,
+                                        <&cru PCLK_MIPI_DSI0>,
+                                        <&cru PCLK_MIPI_DSI1>,
+                                        <&cru SCLK_EDP_24M>,
+                                        <&cru SCLK_EDP>,
+                                        <&cru SCLK_ISP_JPE>,
+                                        <&cru SCLK_ISP>,
+                                        <&cru SCLK_RGA>;
+                       };
+                       /*
+                        * Note: The following 3 are HEVC(H.265) clocks,
+                        * and on the ACLK_HEVC_NIU (NOC).
+                        */
+                       pd_hevc {
+                               reg = <RK3288_PD_HEVC>;
+                               clocks = <&cru ACLK_HEVC>,
+                                        <&cru SCLK_HEVC_CABAC>,
+                                        <&cru SCLK_HEVC_CORE>;
+                       };
+                       /*
+                        * Note: ACLK_VCODEC/HCLK_VCODEC are VCODEC
+                        * (video endecoder & decoder) clocks that on the
+                        * ACLK_VCODEC_NIU and HCLK_VCODEC_NIU (NOC).
+                        */
+                       pd_video {
+                               reg = <RK3288_PD_VIDEO>;
+                               clocks = <&cru ACLK_VCODEC>,
+                                        <&cru HCLK_VCODEC>;
+                       };
+                       /*
+                        * Note: ACLK_GPU is the GPU clock,
+                        * and on the ACLK_GPU_NIU (NOC).
+                        */
+                       pd_gpu {
+                               reg = <RK3288_PD_GPU>;
+                               clocks = <&cru ACLK_GPU>;
+                       };
+               };
        };
  
        sgrf: syscon@ff740000 {
                status = "disabled";
        };
  
+       spdif: sound@ff88b0000 {
+               compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif";
+               reg = <0xff8b0000 0x10000>;
+               #sound-dai-cells = <0>;
+               clock-names = "hclk", "mclk";
+               clocks = <&cru HCLK_SPDIF8CH>, <&cru SCLK_SPDIF8CH>;
+               dmas = <&dmac_bus_s 3>;
+               dma-names = "tx";
+               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&spdif_tx>;
+               rockchip,grf = <&grf>;
+               status = "disabled";
+       };
        i2s: i2s@ff890000 {
                compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
                reg = <0xff890000 0x10000>;
                interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
                clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
+               power-domains = <&power RK3288_PD_VIO>;
                resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>;
                reset-names = "axi", "ahb", "dclk";
                iommus = <&vopb_mmu>;
                reg = <0xff930300 0x100>;
                interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "vopb_mmu";
+               power-domains = <&power RK3288_PD_VIO>;
                #iommu-cells = <0>;
                status = "disabled";
        };
                interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
                clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
+               power-domains = <&power RK3288_PD_VIO>;
                resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
                reset-names = "axi", "ahb", "dclk";
                iommus = <&vopl_mmu>;
                reg = <0xff940300 0x100>;
                interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "vopl_mmu";
+               power-domains = <&power RK3288_PD_VIO>;
                #iommu-cells = <0>;
                status = "disabled";
        };
                interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru  PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
                clock-names = "iahb", "isfr";
+               power-domains = <&power RK3288_PD_VIO>;
                status = "disabled";
  
                ports {
                        #interrupt-cells = <2>;
                };
  
+               hdmi {
+                       hdmi_ddc: hdmi-ddc {
+                               rockchip,pins = <7 19 RK_FUNC_2 &pcfg_pull_none>,
+                                               <7 20 RK_FUNC_2 &pcfg_pull_none>;
+                       };
+               };
                pcfg_pull_up: pcfg-pull-up {
                        bias-pull-up;
                };
                        };
  
                        uart0_cts: uart0-cts {
-                               rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_none>;
+                               rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_up>;
                        };
  
                        uart0_rts: uart0-rts {
                        };
  
                        uart1_cts: uart1-cts {
-                               rockchip,pins = <5 10 RK_FUNC_1 &pcfg_pull_none>;
+                               rockchip,pins = <5 10 RK_FUNC_1 &pcfg_pull_up>;
                        };
  
                        uart1_rts: uart1-rts {
                        };
  
                        uart3_cts: uart3-cts {
-                               rockchip,pins = <7 9 RK_FUNC_1 &pcfg_pull_none>;
+                               rockchip,pins = <7 9 RK_FUNC_1 &pcfg_pull_up>;
                        };
  
                        uart3_rts: uart3-rts {
                        };
  
                        uart4_cts: uart4-cts {
-                               rockchip,pins = <5 14 3 &pcfg_pull_none>;
+                               rockchip,pins = <5 14 3 &pcfg_pull_up>;
                        };
  
                        uart4_rts: uart4-rts {
                                                <4 3 3 &pcfg_pull_none>;
                        };
                };
+               spdif {
+                       spdif_tx: spdif-tx {
+                               rockchip,pins = <RK_GPIO6 11 RK_FUNC_1 &pcfg_pull_none>;
+                       };
+               };
        };
  };
index cc05cde0f9a4145436f5b3807d78e056b140094e,c1f0cba402892086b7aa7df48e49e696c8cc6196..35b89a2d8a73b1112655fcecaa969e9697d6682b
                        cache-level = <2>;
                };
  
+               sdmmc0: sdio-host@a0000000 {
+                       compatible = "atmel,sama5d2-sdhci";
+                       reg = <0xa0000000 0x300>;
+                       interrupts = <31 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&sdmmc0_hclk>, <&sdmmc0_gclk>, <&main>;
+                       clock-names = "hclock", "multclk", "baseclk";
+                       status = "disabled";
+               };
+               sdmmc1: sdio-host@b0000000 {
+                       compatible = "atmel,sama5d2-sdhci";
+                       reg = <0xb0000000 0x300>;
+                       interrupts = <32 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&sdmmc1_hclk>, <&sdmmc1_gclk>, <&main>;
+                       clock-names = "hclock", "multclk", "baseclk";
+                       status = "disabled";
+               };
                apb {
                        compatible = "simple-bus";
                        #address-cells = <1>;
                        };
  
                        pmc: pmc@f0014000 {
-                               compatible = "atmel,sama5d2-pmc";
+                               compatible = "atmel,sama5d2-pmc", "syscon";
                                reg = <0xf0014000 0x160>;
                                interrupts = <74 IRQ_TYPE_LEVEL_HIGH 7>;
                                interrupt-controller;
                                                atmel,clk-output-range = <0 83000000>;
                                        };
  
+                                       i2s0_clk: i2s0_clk {
+                                               #clock-cells = <0>;
+                                               reg = <54>;
+                                               atmel,clk-output-range = <0 83000000>;
+                                       };
+                                       i2s1_clk: i2s1_clk {
+                                               #clock-cells = <0>;
+                                               reg = <55>;
+                                               atmel,clk-output-range = <0 83000000>;
+                                       };
                                        classd_clk: classd_clk {
                                                #clock-cells = <0>;
                                                reg = <59>;
                                                reg = <53>;
                                        };
                                };
+                               gck {
+                                       compatible = "atmel,sama5d2-clk-generated";
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       interrupt-parent = <&pmc>;
+                                       clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>, <&mck>;
+                                       sdmmc0_gclk: sdmmc0_gclk {
+                                               #clock-cells = <0>;
+                                               reg = <31>;
+                                       };
+                                       sdmmc1_gclk: sdmmc1_gclk {
+                                               #clock-cells = <0>;
+                                               reg = <32>;
+                                       };
+                                       tcb0_gclk: tcb0_gclk {
+                                               #clock-cells = <0>;
+                                               reg = <35>;
+                                               atmel,clk-output-range = <0 83000000>;
+                                       };
+                                       tcb1_gclk: tcb1_gclk {
+                                               #clock-cells = <0>;
+                                               reg = <36>;
+                                               atmel,clk-output-range = <0 83000000>;
+                                       };
+                                       pwm_gclk: pwm_gclk {
+                                               #clock-cells = <0>;
+                                               reg = <38>;
+                                               atmel,clk-output-range = <0 83000000>;
+                                       };
+                                       i2s0_gclk: i2s0_gclk {
+                                               #clock-cells = <0>;
+                                               reg = <54>;
+                                       };
+                                       i2s1_gclk: i2s1_gclk {
+                                               #clock-cells = <0>;
+                                               reg = <55>;
+                                       };
+                               };
                        };
  
                        sha@f0028000 {
                                dma-names = "tx";
                                clocks = <&sha_clk>;
                                clock-names = "sha_clk";
-                               status = "disabled";
+                               status = "okay";
                        };
  
                        aes@f002c000 {
                                dma-names = "tx", "rx";
                                clocks = <&aes_clk>;
                                clock-names = "aes_clk";
-                               status = "disabled";
+                               status = "okay";
                        };
  
                        spi0: spi@f8000000 {
                                status = "disabled";
                        };
  
+                       flx0: flexcom@f8034000 {
+                               compatible = "atmel,sama5d2-flexcom";
+                               reg = <0xf8034000 0x200>;
+                               clocks = <&flx0_clk>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges = <0x0 0xf8034000 0x800>;
+                               status = "disabled";
+                       };
+                       flx1: flexcom@f8038000 {
+                               compatible = "atmel,sama5d2-flexcom";
+                               reg = <0xf8038000 0x200>;
+                               clocks = <&flx1_clk>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges = <0x0 0xf8038000 0x800>;
+                               status = "disabled";
+                       };
+                       rstc@f8048000 {
+                               compatible = "atmel,sama5d3-rstc";
+                               reg = <0xf8048000 0x10>;
+                               clocks = <&clk32k>;
+                       };
                        pit: timer@f8048030 {
                                compatible = "atmel,at91sam9260-pit";
                                reg = <0xf8048030 0x10>;
                                status = "disabled";
                        };
  
+                       flx2: flexcom@fc010000 {
+                               compatible = "atmel,sama5d2-flexcom";
+                               reg = <0xfc010000 0x200>;
+                               clocks = <&flx2_clk>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges = <0x0 0xfc010000 0x800>;
+                               status = "disabled";
+                       };
+                       flx3: flexcom@fc014000 {
+                               compatible = "atmel,sama5d2-flexcom";
+                               reg = <0xfc014000 0x200>;
+                               clocks = <&flx3_clk>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges = <0x0 0xfc014000 0x800>;
+                               status = "disabled";
+                       };
+                       flx4: flexcom@fc018000 {
+                               compatible = "atmel,sama5d2-flexcom";
+                               reg = <0xfc018000 0x200>;
+                               clocks = <&flx4_clk>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges = <0x0 0xfc018000 0x800>;
+                               status = "disabled";
+                       };
                        aic: interrupt-controller@fc020000 {
                                #interrupt-cells = <3>;
                                compatible = "atmel,sama5d2-aic";
                                status = "disabled";
                        };
  
+                       tdes@fc044000 {
+                               compatible = "atmel,at91sam9g46-tdes";
+                               reg = <0xfc044000 0x100>;
+                               interrupts = <11 IRQ_TYPE_LEVEL_HIGH 0>;
+                               dmas = <&dma0
+                                       (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
+                                        AT91_XDMAC_DT_PERID(28))>,
+                                      <&dma0
+                                       (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
+                                        AT91_XDMAC_DT_PERID(29))>;
+                               dma-names = "tx", "rx";
+                               clocks = <&tdes_clk>;
+                               clock-names = "tdes_clk";
+                               status = "okay";
+                       };
++
 +                      pioA: pinctrl@fc038000 {
 +                              compatible = "atmel,sama5d2-pinctrl";
 +                              reg = <0xfc038000 0x600>;
 +                              interrupts = <18 IRQ_TYPE_LEVEL_HIGH 7>,
 +                                           <68 IRQ_TYPE_LEVEL_HIGH 7>,
 +                                           <69 IRQ_TYPE_LEVEL_HIGH 7>,
 +                                           <70 IRQ_TYPE_LEVEL_HIGH 7>;
 +                              interrupt-controller;
 +                              #interrupt-cells = <2>;
 +                              gpio-controller;
 +                              #gpio-cells = <2>;
 +                              clocks = <&pioA_clk>;
 +                      };
                };
        };
  };
index 0c24fcb0357703df59ca41588a9061f1da4f4bd0,c944d3a5906d9eb0a3de96327766e3c2829ea9ec..81f81214cdf9580a0cb19ce01d8bfc5e01417252
                                        <ST_IRQ_SYSCFG_DISABLED>;
                };
  
+               /* Display */
+               vtg_main: sti-vtg-main@8d02800 {
+                       compatible = "st,vtg";
+                       reg = <0x8d02800 0x200>;
+                       interrupts = <GIC_SPI 108 IRQ_TYPE_NONE>;
+               };
+               vtg_aux: sti-vtg-aux@8d00200 {
+                       compatible = "st,vtg";
+                       reg = <0x8d00200 0x100>;
+                       interrupts = <GIC_SPI 109 IRQ_TYPE_NONE>;
+               };
                serial@9830000 {
                        compatible = "st,asc";
                        reg = <0x9830000 0x2c>;
                        interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
                        clock-names = "ssc";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_spi1_default>;
  
                        status = "disabled";
                };
                        interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
                        clock-names = "ssc";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_spi2_default>;
  
                        status = "disabled";
                };
                        interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
                        clock-names = "ssc";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_spi3_default>;
  
                        status = "disabled";
                };
                        interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
                        clock-names = "ssc";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_spi4_default>;
  
                        status = "disabled";
                };
                        interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clk_sysin>;
                        clock-names = "ssc";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_spi10_default>;
  
                        status = "disabled";
                };
                        interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clk_sysin>;
                        clock-names = "ssc";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_spi11_default>;
  
                        status = "disabled";
                };
                        interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clk_sysin>;
                        clock-names = "ssc";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_spi12_default>;
  
                        status = "disabled";
                };
                /* COMMS PWM Module */
                pwm0: pwm@9810000 {
                        compatible      = "st,sti-pwm";
-                       status          = "okay";
                        #pwm-cells      = <2>;
                        reg             = <0x9810000 0x68>;
                        pinctrl-names   = "default";
                        clock-names     = "pwm";
                        clocks          = <&clk_sysin>;
                        st,pwm-num-chan = <1>;
+                       status          = "disabled";
                };
  
                /* SBC PWM Module */
                pwm1: pwm@9510000 {
                        compatible      = "st,sti-pwm";
-                       status          = "okay";
                        #pwm-cells      = <2>;
                        reg             = <0x9510000 0x68>;
                        pinctrl-names   = "default";
                        clock-names     = "pwm";
                        clocks          = <&clk_sysin>;
                        st,pwm-num-chan = <4>;
+                       status          = "disabled";
+               };
+               rng10: rng@08a89000 {
+                       compatible      = "st,rng";
+                       reg             = <0x08a89000 0x1000>;
+                       clocks          = <&clk_sysin>;
+                       status          = "okay";
+               };
+               rng11: rng@08a8a000 {
+                       compatible      = "st,rng";
+                       reg             = <0x08a8a000 0x1000>;
+                       clocks          = <&clk_sysin>;
+                       status          = "okay";
+               };
+               ethernet0: dwmac@9630000 {
+                       device_type = "network";
+                       status = "disabled";
+                       compatible = "st,stih407-dwmac", "snps,dwmac", "snps,dwmac-3.710";
+                       reg = <0x9630000 0x8000>, <0x80 0x4>;
+                       reg-names = "stmmaceth", "sti-ethconf";
+                       st,syscon = <&syscfg_sbc_reg 0x80>;
+                       st,gmac_en;
+                       resets = <&softreset STIH407_ETH1_SOFTRESET>;
+                       reset-names = "stmmaceth";
+                       interrupts = <GIC_SPI 98 IRQ_TYPE_NONE>,
+                                    <GIC_SPI 99 IRQ_TYPE_NONE>;
+                       interrupt-names = "macirq", "eth_wake_irq";
+                       /* DMA Bus Mode */
+                       snps,pbl = <8>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_rgmii1>;
+                       clock-names = "stmmaceth", "sti-ethclk";
+                       clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>,
+                                <&clk_s_c0_flexgen CLK_ETH_PHY>;
                };
 +
 +              rng10: rng@08a89000 {
 +                      compatible      = "st,rng";
 +                      reg             = <0x08a89000 0x1000>;
 +                      clocks          = <&clk_sysin>;
 +                      status          = "okay";
 +              };
 +
 +              rng11: rng@08a8a000 {
 +                      compatible      = "st,rng";
 +                      reg             = <0x08a8a000 0x1000>;
 +                      clocks          = <&clk_sysin>;
 +                      status          = "okay";
 +              };
        };
  };
index 13ba48c4b03b0e0095cf5cc1a40bb9d26da77f92,7172e96af22e20fc0d59b8f4cf79da8e3b42008e..f8755bcae55f4e35f4f4b1aea65bae60c110052a
@@@ -61,11 -61,12 +61,12 @@@ CONFIG_BLK_DEV_DM=
  CONFIG_DM_CRYPT=m
  CONFIG_NETDEVICES=y
  CONFIG_SMSC911X=y
+ CONFIG_USB_RTL8152=y
  CONFIG_USB_USBNET=y
  CONFIG_USB_NET_SMSC75XX=y
  CONFIG_USB_NET_SMSC95XX=y
- CONFIG_MWIFIEX=y
- CONFIG_MWIFIEX_SDIO=y
+ CONFIG_MWIFIEX=m
+ CONFIG_MWIFIEX_SDIO=m
  CONFIG_INPUT_EVDEV=y
  CONFIG_KEYBOARD_GPIO=y
  CONFIG_KEYBOARD_CROS_EC=y
@@@ -126,6 -127,10 +127,10 @@@ CONFIG_REGULATOR_S2MPA01=
  CONFIG_REGULATOR_S2MPS11=y
  CONFIG_REGULATOR_S5M8767=y
  CONFIG_REGULATOR_TPS65090=y
+ CONFIG_MEDIA_SUPPORT=m
+ CONFIG_MEDIA_CAMERA_SUPPORT=y
+ CONFIG_MEDIA_USB_SUPPORT=y
+ CONFIG_USB_VIDEO_CLASS=m
  CONFIG_DRM=y
  CONFIG_DRM_NXP_PTN3460=y
  CONFIG_DRM_PARADE_PS8622=y
@@@ -135,7 -140,6 +140,6 @@@ CONFIG_DRM_EXYNOS_DSI=
  CONFIG_DRM_EXYNOS_HDMI=y
  CONFIG_DRM_PANEL_SIMPLE=y
  CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=y
- CONFIG_FB_SIMPLE=y
  CONFIG_EXYNOS_VIDEO=y
  CONFIG_EXYNOS_MIPI_DSI=y
  CONFIG_LCD_CLASS_DEVICE=y
@@@ -158,15 -162,24 +162,23 @@@ CONFIG_USB_OHCI_HCD=
  CONFIG_USB_OHCI_EXYNOS=y
  CONFIG_USB_STORAGE=y
  CONFIG_USB_DWC3=y
+ CONFIG_USB_DWC2=y
  CONFIG_USB_HSIC_USB3503=y
  CONFIG_USB_GADGET=y
+ CONFIG_USB_ETH=y
  CONFIG_MMC=y
  CONFIG_MMC_BLOCK_MINORS=16
  CONFIG_MMC_SDHCI=y
  CONFIG_MMC_SDHCI_S3C=y
  CONFIG_MMC_SDHCI_S3C_DMA=y
  CONFIG_MMC_DW=y
 -CONFIG_MMC_DW_IDMAC=y
  CONFIG_MMC_DW_EXYNOS=y
+ CONFIG_NEW_LEDS=y
+ CONFIG_LEDS_CLASS=y
+ CONFIG_LEDS_GPIO=y
+ CONFIG_LEDS_PWM=y
+ CONFIG_LEDS_TRIGGERS=y
+ CONFIG_LEDS_TRIGGER_HEARTBEAT=y
  CONFIG_RTC_CLASS=y
  CONFIG_RTC_DRV_MAX77686=y
  CONFIG_RTC_DRV_MAX77802=y
index b7e8cdab51f97ab4689a46fee6f8ad82a827bf7d,b758a808d31061be6d3998213466e4a7715124b3..03c155f5b811529abc46c71bc2989ddf00f10f6a
@@@ -52,15 -52,22 +52,22 @@@ CONFIG_DEVTMPFS=
  CONFIG_DEVTMPFS_MOUNT=y
  # CONFIG_FW_LOADER is not set
  CONFIG_MTD=y
+ CONFIG_MTD_BLOCK=y
  CONFIG_MTD_CFI=y
  CONFIG_MTD_CFI_INTELEXT=y
  CONFIG_MTD_CFI_AMDSTD=y
  CONFIG_MTD_CFI_STAA=y
  CONFIG_MTD_PHYSMAP=y
  CONFIG_MTD_PHYSMAP_OF=y
+ CONFIG_MTD_SPI_NOR=y
+ # CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
+ CONFIG_SPI_NXP_SPIFI=y
  CONFIG_BLK_DEV_RAM=y
  CONFIG_SRAM=y
  CONFIG_EEPROM_AT24=y
+ CONFIG_SCSI=y
+ CONFIG_BLK_DEV_SD=y
+ # CONFIG_SCSI_LOWLEVEL is not set
  CONFIG_NETDEVICES=y
  # CONFIG_NET_VENDOR_ARC is not set
  # CONFIG_NET_CADENCE is not set
@@@ -102,14 -109,17 +109,17 @@@ CONFIG_SERIAL_8250_CONSOLE=
  CONFIG_SERIAL_OF_PLATFORM=y
  # CONFIG_HW_RANDOM is not set
  CONFIG_I2C=y
+ CONFIG_I2C_LPC2K=y
  CONFIG_SPI=y
  CONFIG_SPI_PL022=y
+ CONFIG_GPIOLIB=y
  CONFIG_GPIO_SYSFS=y
  CONFIG_GPIO_74XX_MMIO=y
+ CONFIG_GPIO_PCF857X=y
+ CONFIG_SENSORS_JC42=y
  CONFIG_SENSORS_LM75=y
  CONFIG_WATCHDOG=y
- CONFIG_WATCHDOG_CORE=y
- CONFIG_MFD_SYSCON=y
+ CONFIG_LPC18XX_WATCHDOG=y
  CONFIG_REGULATOR=y
  CONFIG_REGULATOR_FIXED_VOLTAGE=y
  CONFIG_FB=y
@@@ -117,8 -127,11 +127,10 @@@ CONFIG_FB_ARMCLCD=
  CONFIG_USB=y
  CONFIG_USB_EHCI_HCD=y
  CONFIG_USB_EHCI_ROOT_HUB_TT=y
+ CONFIG_USB_EHCI_HCD_PLATFORM=y
+ CONFIG_USB_STORAGE=y
  CONFIG_MMC=y
  CONFIG_MMC_DW=y
 -CONFIG_MMC_DW_IDMAC=y
  CONFIG_NEW_LEDS=y
  CONFIG_LEDS_CLASS=y
  CONFIG_LEDS_PCA9532=y
@@@ -127,12 -140,20 +139,20 @@@ CONFIG_LEDS_GPIO=
  CONFIG_LEDS_TRIGGERS=y
  CONFIG_LEDS_TRIGGER_HEARTBEAT=y
  CONFIG_RTC_CLASS=y
+ CONFIG_RTC_DRV_LPC24XX=y
  CONFIG_DMADEVICES=y
  CONFIG_AMBA_PL08X=y
+ CONFIG_LPC18XX_DMAMUX=y
+ CONFIG_MEMORY=y
+ CONFIG_ARM_PL172_MPMC=y
+ CONFIG_PWM=y
+ CONFIG_PWM_LPC18XX_SCT=y
+ CONFIG_PHY_LPC18XX_USB_OTG=y
  CONFIG_EXT2_FS=y
  # CONFIG_FILE_LOCKING is not set
  # CONFIG_DNOTIFY is not set
  # CONFIG_INOTIFY_USER is not set
+ CONFIG_JFFS2_FS=y
  # CONFIG_NETWORK_FILESYSTEMS is not set
  CONFIG_PRINTK_TIME=y
  CONFIG_DEBUG_INFO=y
@@@ -142,8 -163,6 +162,6 @@@ CONFIG_DEBUG_FS=
  CONFIG_MAGIC_SYSRQ=y
  # CONFIG_SCHED_DEBUG is not set
  # CONFIG_DEBUG_BUGVERBOSE is not set
- # CONFIG_RCU_CPU_STALL_INFO is not set
- # CONFIG_FTRACE is not set
  CONFIG_DEBUG_LL=y
  CONFIG_EARLY_PRINTK=y
  CONFIG_CRC_ITU_T=y
index 5a7e47ceec91f7a6486821cc0a4b93e7d51257a9,dfb1fcf4042fe54abb8c1ba904da7913d0cf8a24..c169cc3049aa3bbe270905eea1840d1b603b125c
@@@ -19,6 -19,7 +19,7 @@@
  #include <linux/cpu_pm.h>
  #include <linux/io.h>
  #include <linux/irq.h>
+ #include <linux/irqchip.h>
  #include <linux/irqdomain.h>
  #include <linux/of_address.h>
  #include <linux/err.h>
@@@ -177,57 -178,54 +178,57 @@@ static struct irq_chip exynos_pmu_chip 
  #endif
  };
  
 -static int exynos_pmu_domain_xlate(struct irq_domain *domain,
 -                                 struct device_node *controller,
 -                                 const u32 *intspec,
 -                                 unsigned int intsize,
 -                                 unsigned long *out_hwirq,
 -                                 unsigned int *out_type)
 +static int exynos_pmu_domain_translate(struct irq_domain *d,
 +                                     struct irq_fwspec *fwspec,
 +                                     unsigned long *hwirq,
 +                                     unsigned int *type)
  {
 -      if (domain->of_node != controller)
 -              return -EINVAL; /* Shouldn't happen, really... */
 -      if (intsize != 3)
 -              return -EINVAL; /* Not GIC compliant */
 -      if (intspec[0] != 0)
 -              return -EINVAL; /* No PPI should point to this domain */
 +      if (is_of_node(fwspec->fwnode)) {
 +              if (fwspec->param_count != 3)
 +                      return -EINVAL;
 +
 +              /* No PPI should point to this domain */
 +              if (fwspec->param[0] != 0)
 +                      return -EINVAL;
 +
 +              *hwirq = fwspec->param[1];
 +              *type = fwspec->param[2];
 +              return 0;
 +      }
  
 -      *out_hwirq = intspec[1];
 -      *out_type = intspec[2];
 -      return 0;
 +      return -EINVAL;
  }
  
  static int exynos_pmu_domain_alloc(struct irq_domain *domain,
                                   unsigned int virq,
                                   unsigned int nr_irqs, void *data)
  {
 -      struct of_phandle_args *args = data;
 -      struct of_phandle_args parent_args;
 +      struct irq_fwspec *fwspec = data;
 +      struct irq_fwspec parent_fwspec;
        irq_hw_number_t hwirq;
        int i;
  
 -      if (args->args_count != 3)
 +      if (fwspec->param_count != 3)
                return -EINVAL; /* Not GIC compliant */
 -      if (args->args[0] != 0)
 +      if (fwspec->param[0] != 0)
                return -EINVAL; /* No PPI should point to this domain */
  
 -      hwirq = args->args[1];
 +      hwirq = fwspec->param[1];
  
        for (i = 0; i < nr_irqs; i++)
                irq_domain_set_hwirq_and_chip(domain, virq + i, hwirq + i,
                                              &exynos_pmu_chip, NULL);
  
 -      parent_args = *args;
 -      parent_args.np = domain->parent->of_node;
 -      return irq_domain_alloc_irqs_parent(domain, virq, nr_irqs, &parent_args);
 +      parent_fwspec = *fwspec;
 +      parent_fwspec.fwnode = domain->parent->fwnode;
 +      return irq_domain_alloc_irqs_parent(domain, virq, nr_irqs,
 +                                          &parent_fwspec);
  }
  
  static const struct irq_domain_ops exynos_pmu_domain_ops = {
 -      .xlate  = exynos_pmu_domain_xlate,
 -      .alloc  = exynos_pmu_domain_alloc,
 -      .free   = irq_domain_free_irqs_common,
 +      .translate      = exynos_pmu_domain_translate,
 +      .alloc          = exynos_pmu_domain_alloc,
 +      .free           = irq_domain_free_irqs_common,
  };
  
  static int __init exynos_pmu_irq_init(struct device_node *node,
        return 0;
  }
  
- #define EXYNOS_PMU_IRQ(symbol, name)  OF_DECLARE_2(irqchip, symbol, name, exynos_pmu_irq_init)
+ #define EXYNOS_PMU_IRQ(symbol, name)  IRQCHIP_DECLARE(symbol, name, exynos_pmu_irq_init)
  
  EXYNOS_PMU_IRQ(exynos3250_pmu_irq, "samsung,exynos3250-pmu");
  EXYNOS_PMU_IRQ(exynos4210_pmu_irq, "samsung,exynos4210-pmu");
diff --combined arch/arm/mach-imx/gpc.c
index 10bf7159b27def3adf90403541fed2214b6bac4e,f2783b087d3366c78910eca7ec8073a0d8879dca..8e7976a4c3e723e1b27a08928700bac2b6cb9a09
@@@ -14,6 -14,7 +14,7 @@@
  #include <linux/delay.h>
  #include <linux/io.h>
  #include <linux/irq.h>
+ #include <linux/irqchip.h>
  #include <linux/of.h>
  #include <linux/of_address.h>
  #include <linux/of_irq.h>
@@@ -181,42 -182,40 +182,42 @@@ static struct irq_chip imx_gpc_chip = 
  #endif
  };
  
 -static int imx_gpc_domain_xlate(struct irq_domain *domain,
 -                              struct device_node *controller,
 -                              const u32 *intspec,
 -                              unsigned int intsize,
 -                              unsigned long *out_hwirq,
 -                              unsigned int *out_type)
 +static int imx_gpc_domain_translate(struct irq_domain *d,
 +                                  struct irq_fwspec *fwspec,
 +                                  unsigned long *hwirq,
 +                                  unsigned int *type)
  {
 -      if (domain->of_node != controller)
 -              return -EINVAL; /* Shouldn't happen, really... */
 -      if (intsize != 3)
 -              return -EINVAL; /* Not GIC compliant */
 -      if (intspec[0] != 0)
 -              return -EINVAL; /* No PPI should point to this domain */
 +      if (is_of_node(fwspec->fwnode)) {
 +              if (fwspec->param_count != 3)
 +                      return -EINVAL;
  
 -      *out_hwirq = intspec[1];
 -      *out_type = intspec[2];
 -      return 0;
 +              /* No PPI should point to this domain */
 +              if (fwspec->param[0] != 0)
 +                      return -EINVAL;
 +
 +              *hwirq = fwspec->param[1];
 +              *type = fwspec->param[2];
 +              return 0;
 +      }
 +
 +      return -EINVAL;
  }
  
  static int imx_gpc_domain_alloc(struct irq_domain *domain,
                                  unsigned int irq,
                                  unsigned int nr_irqs, void *data)
  {
 -      struct of_phandle_args *args = data;
 -      struct of_phandle_args parent_args;
 +      struct irq_fwspec *fwspec = data;
 +      struct irq_fwspec parent_fwspec;
        irq_hw_number_t hwirq;
        int i;
  
 -      if (args->args_count != 3)
 +      if (fwspec->param_count != 3)
                return -EINVAL; /* Not GIC compliant */
 -      if (args->args[0] != 0)
 +      if (fwspec->param[0] != 0)
                return -EINVAL; /* No PPI should point to this domain */
  
 -      hwirq = args->args[1];
 +      hwirq = fwspec->param[1];
        if (hwirq >= GPC_MAX_IRQS)
                return -EINVAL; /* Can't deal with this */
  
                irq_domain_set_hwirq_and_chip(domain, irq + i, hwirq + i,
                                              &imx_gpc_chip, NULL);
  
 -      parent_args = *args;
 -      parent_args.np = domain->parent->of_node;
 -      return irq_domain_alloc_irqs_parent(domain, irq, nr_irqs, &parent_args);
 +      parent_fwspec = *fwspec;
 +      parent_fwspec.fwnode = domain->parent->fwnode;
 +      return irq_domain_alloc_irqs_parent(domain, irq, nr_irqs,
 +                                          &parent_fwspec);
  }
  
  static const struct irq_domain_ops imx_gpc_domain_ops = {
 -      .xlate  = imx_gpc_domain_xlate,
 -      .alloc  = imx_gpc_domain_alloc,
 -      .free   = irq_domain_free_irqs_common,
 +      .translate      = imx_gpc_domain_translate,
 +      .alloc          = imx_gpc_domain_alloc,
 +      .free           = irq_domain_free_irqs_common,
  };
  
  static int __init imx_gpc_init(struct device_node *node,
  
        return 0;
  }
- /*
-  * We cannot use the IRQCHIP_DECLARE macro that lives in
-  * drivers/irqchip, so we're forced to roll our own. Not very nice.
-  */
- OF_DECLARE_2(irqchip, imx_gpc, "fsl,imx6q-gpc", imx_gpc_init);
+ IRQCHIP_DECLARE(imx_gpc, "fsl,imx6q-gpc", imx_gpc_init);
  
  void __init imx_gpc_check_dt(void)
  {
index db7e0bab3587cb975ea1ecb5c89e10956fcc7214,68768a1dd8a875c455589145c9fe75632bb0d2bc..f397bd6bd6e30149c525e270853701a916500e96
@@@ -20,6 -20,7 +20,7 @@@
  #include <linux/init.h>
  #include <linux/io.h>
  #include <linux/irq.h>
+ #include <linux/irqchip.h>
  #include <linux/irqdomain.h>
  #include <linux/of_address.h>
  #include <linux/platform_device.h>
@@@ -330,7 -331,7 +331,7 @@@ static int irq_cpu_hotplug_notify(struc
        return NOTIFY_OK;
  }
  
- static struct notifier_block __refdata irq_hotplug_notifier = {
+ static struct notifier_block irq_hotplug_notifier = {
        .notifier_call = irq_cpu_hotplug_notify,
  };
  
@@@ -399,42 -400,40 +400,42 @@@ static struct irq_chip wakeupgen_chip 
  #endif
  };
  
 -static int wakeupgen_domain_xlate(struct irq_domain *domain,
 -                                struct device_node *controller,
 -                                const u32 *intspec,
 -                                unsigned int intsize,
 -                                unsigned long *out_hwirq,
 -                                unsigned int *out_type)
 +static int wakeupgen_domain_translate(struct irq_domain *d,
 +                                    struct irq_fwspec *fwspec,
 +                                    unsigned long *hwirq,
 +                                    unsigned int *type)
  {
 -      if (domain->of_node != controller)
 -              return -EINVAL; /* Shouldn't happen, really... */
 -      if (intsize != 3)
 -              return -EINVAL; /* Not GIC compliant */
 -      if (intspec[0] != 0)
 -              return -EINVAL; /* No PPI should point to this domain */
 +      if (is_of_node(fwspec->fwnode)) {
 +              if (fwspec->param_count != 3)
 +                      return -EINVAL;
  
 -      *out_hwirq = intspec[1];
 -      *out_type = intspec[2];
 -      return 0;
 +              /* No PPI should point to this domain */
 +              if (fwspec->param[0] != 0)
 +                      return -EINVAL;
 +
 +              *hwirq = fwspec->param[1];
 +              *type = fwspec->param[2];
 +              return 0;
 +      }
 +
 +      return -EINVAL;
  }
  
  static int wakeupgen_domain_alloc(struct irq_domain *domain,
                                  unsigned int virq,
                                  unsigned int nr_irqs, void *data)
  {
 -      struct of_phandle_args *args = data;
 -      struct of_phandle_args parent_args;
 +      struct irq_fwspec *fwspec = data;
 +      struct irq_fwspec parent_fwspec;
        irq_hw_number_t hwirq;
        int i;
  
 -      if (args->args_count != 3)
 +      if (fwspec->param_count != 3)
                return -EINVAL; /* Not GIC compliant */
 -      if (args->args[0] != 0)
 +      if (fwspec->param[0] != 0)
                return -EINVAL; /* No PPI should point to this domain */
  
 -      hwirq = args->args[1];
 +      hwirq = fwspec->param[1];
        if (hwirq >= MAX_IRQS)
                return -EINVAL; /* Can't deal with this */
  
                irq_domain_set_hwirq_and_chip(domain, virq + i, hwirq + i,
                                              &wakeupgen_chip, NULL);
  
 -      parent_args = *args;
 -      parent_args.np = domain->parent->of_node;
 -      return irq_domain_alloc_irqs_parent(domain, virq, nr_irqs, &parent_args);
 +      parent_fwspec = *fwspec;
 +      parent_fwspec.fwnode = domain->parent->fwnode;
 +      return irq_domain_alloc_irqs_parent(domain, virq, nr_irqs,
 +                                          &parent_fwspec);
  }
  
  static const struct irq_domain_ops wakeupgen_domain_ops = {
 -      .xlate  = wakeupgen_domain_xlate,
 -      .alloc  = wakeupgen_domain_alloc,
 -      .free   = irq_domain_free_irqs_common,
 +      .translate      = wakeupgen_domain_translate,
 +      .alloc          = wakeupgen_domain_alloc,
 +      .free           = irq_domain_free_irqs_common,
  };
  
  /*
@@@ -540,9 -538,4 +541,4 @@@ static int __init wakeupgen_init(struc
  
        return 0;
  }
- /*
-  * We cannot use the IRQCHIP_DECLARE macro that lives in
-  * drivers/irqchip, so we're forced to roll our own. Not very nice.
-  */
- OF_DECLARE_2(irqchip, ti_wakeupgen, "ti,omap4-wugen-mpu", wakeupgen_init);
+ IRQCHIP_DECLARE(ti_wakeupgen, "ti,omap4-wugen-mpu", wakeupgen_init);
diff --combined arch/arm/mm/Kconfig
index c21941349b3ef761680d4b2c9b58ee7cf4008f96,a2e74b26d9db28cdb68ce495b18c39e8b78863f6..41218867a9a604286b83a14bc83fa7908f115dcc
@@@ -419,24 -419,28 +419,24 @@@ config CPU_THUMBONL
  config CPU_32v3
        bool
        select CPU_USE_DOMAINS if MMU
 -      select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
        select NEED_KUSER_HELPERS
        select TLS_REG_EMUL if SMP || !MMU
  
  config CPU_32v4
        bool
        select CPU_USE_DOMAINS if MMU
 -      select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
        select NEED_KUSER_HELPERS
        select TLS_REG_EMUL if SMP || !MMU
  
  config CPU_32v4T
        bool
        select CPU_USE_DOMAINS if MMU
 -      select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
        select NEED_KUSER_HELPERS
        select TLS_REG_EMUL if SMP || !MMU
  
  config CPU_32v5
        bool
        select CPU_USE_DOMAINS if MMU
 -      select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
        select NEED_KUSER_HELPERS
        select TLS_REG_EMUL if SMP || !MMU
  
@@@ -801,6 -805,14 +801,6 @@@ config TLS_REG_EMU
          a few prototypes like that in existence) and therefore access to
          that required register must be emulated.
  
 -config NEEDS_SYSCALL_FOR_CMPXCHG
 -      bool
 -      select NEED_KUSER_HELPERS
 -      help
 -        SMP on a pre-ARMv6 processor?  Well OK then.
 -        Forget about fast user space cmpxchg support.
 -        It is just not possible.
 -
  config NEED_KUSER_HELPERS
        bool
  
@@@ -974,6 -986,16 +974,16 @@@ config CACHE_TAUROS
          This option enables the Tauros2 L2 cache controller (as
          found on PJ1/PJ4).
  
+ config CACHE_UNIPHIER
+       bool "Enable the UniPhier outer cache controller"
+       depends on ARCH_UNIPHIER
+       default y
+       select OUTER_CACHE
+       select OUTER_CACHE_SYNC
+       help
+         This option enables the UniPhier outer cache (system cache)
+         controller.
  config CACHE_XSC3L2
        bool "Enable the L2 cache on XScale3"
        depends on CPU_XSC3
index d6c9630a5c20a817e840e8f5ed8e00c3a25b3c38,9e65b75d35bcce6e2a6a58c032d4d76987a28856..6c5ed119934f5cec0afeafedda99856d639ba391
                clock-frequency = <50000000>;
        };
  
+       pmu {
+               compatible = "apm,potenza-pmu", "arm,armv8-pmuv3";
+               interrupts = <1 12 0xff04>;
+       };
        soc {
                compatible = "simple-bus";
                #address-cells = <2>;
                                clock-output-names = "xge0clk";
                        };
  
 +                      xge1clk: xge1clk@1f62c000 {
 +                              compatible = "apm,xgene-device-clock";
 +                              status = "disabled";
 +                              #clock-cells = <1>;
 +                              clocks = <&socplldiv2 0>;
 +                              reg = <0x0 0x1f62c000 0x0 0x1000>;
 +                              reg-names = "csr-reg";
 +                              csr-mask = <0x3>;
 +                              clock-output-names = "xge1clk";
 +                      };
 +
                        sataphy1clk: sataphy1clk@1f21c000 {
                                compatible = "apm,xgene-device-clock";
                                #clock-cells = <1>;
                                        0x0 0x1f 0x4>;
                };
  
+               scu: system-clk-controller@17000000 {
+                       compatible = "apm,xgene-scu","syscon";
+                       reg = <0x0 0x17000000 0x0 0x400>;
+               };
+               reboot: reboot@17000014 {
+                       compatible = "syscon-reboot";
+                       regmap = <&scu>;
+                       offset = <0x14>;
+                       mask = <0x1>;
+               };
                csw: csw@7e200000 {
                        compatible = "apm,xgene-csw", "syscon";
                        reg = <0x0 0x7e200000 0x0 0x1000>;
                                reg = <0x0 0x7c600000 0x0 0x200000>;
                                pmd-controller = <3>;
                        };
 +
 +                      edacl3@7e600000 {
 +                              compatible = "apm,xgene-edac-l3";
 +                              reg = <0x0 0x7e600000 0x0 0x1000>;
 +                      };
 +
 +                      edacsoc@7e930000 {
 +                              compatible = "apm,xgene-edac-soc-v1";
 +                              reg = <0x0 0x7e930000 0x0 0x1000>;
 +                      };
                };
  
                pcie0: pcie@1f2b0000 {
                        phy-connection-type = "xgmii";
                };
  
 +              xgenet1: ethernet@1f620000 {
 +                      compatible = "apm,xgene1-xgenet";
 +                      status = "disabled";
 +                      reg = <0x0 0x1f620000 0x0 0xd100>,
 +                            <0x0 0x1f600000 0x0 0Xc300>,
 +                            <0x0 0x18000000 0x0 0X8000>;
 +                      reg-names = "enet_csr", "ring_csr", "ring_cmd";
 +                      interrupts = <0x0 0x6C 0x4>,
 +                                   <0x0 0x6D 0x4>;
 +                      port-id = <1>;
 +                      dma-coherent;
 +                      clocks = <&xge1clk 0>;
 +                      /* mac address will be overwritten by the bootloader */
 +                      local-mac-address = [00 00 00 00 00 00];
 +                      phy-connection-type = "xgmii";
 +              };
 +
                rng: rng@10520000 {
                        compatible = "apm,xgene-rng";
                        reg = <0x0 0x10520000 0x0 0x100>;
index 50b68bc20720297b3ae4cb3e935c771540b9032f,3a1efa3fd88d2d4a0809b9560fb8330953f1e345..8a06b8e7ca43189586a4c4e700f74e2b82c492cb
@@@ -115,6 -115,14 +115,14 @@@ config CLKSRC_PISTACHI
        bool
        select CLKSRC_OF
  
+ config CLKSRC_TI_32K
+       bool "Texas Instruments 32.768 Hz Clocksource" if COMPILE_TEST
+       depends on GENERIC_SCHED_CLOCK
+       select CLKSRC_OF if OF
+       help
+         This option enables support for Texas Instruments 32.768 Hz clocksource
+         available on many OMAP-like platforms.
  config CLKSRC_STM32
        bool "Clocksource for STM32 SoCs" if !ARCH_STM32
        depends on OF && ARM && (ARCH_STM32 || COMPILE_TEST)
@@@ -279,10 -287,6 +287,10 @@@ config CLKSRC_MIPS_GI
        depends on MIPS_GIC
        select CLKSRC_OF
  
 +config CLKSRC_TANGO_XTAL
 +      bool
 +      select CLKSRC_OF
 +
  config CLKSRC_PXA
        def_bool y if ARCH_PXA || ARCH_SA1100
        select CLKSRC_OF if OF
index 67bc996ca90983dc353453b3015808315e1c8c35,749abc3665b31319b03c8faf43479e9ab8d44897..063d78607c993d726639c8cd858029278c62bf5b
@@@ -45,6 -45,7 +45,7 @@@ obj-$(CONFIG_VF_PIT_TIMER)    += vf_pit_ti
  obj-$(CONFIG_CLKSRC_QCOM)     += qcom-timer.o
  obj-$(CONFIG_MTK_TIMER)               += mtk_timer.o
  obj-$(CONFIG_CLKSRC_PISTACHIO)        += time-pistachio.o
+ obj-$(CONFIG_CLKSRC_TI_32K)   += timer-ti-32k.o
  
  obj-$(CONFIG_ARM_ARCH_TIMER)          += arm_arch_timer.o
  obj-$(CONFIG_ARM_GLOBAL_TIMER)                += arm_global_timer.o
@@@ -56,11 -57,9 +57,11 @@@ obj-$(CONFIG_ARCH_KEYSTONE)         += timer-k
  obj-$(CONFIG_ARCH_INTEGRATOR_AP)      += timer-integrator-ap.o
  obj-$(CONFIG_CLKSRC_VERSATILE)                += versatile.o
  obj-$(CONFIG_CLKSRC_MIPS_GIC)         += mips-gic-timer.o
 +obj-$(CONFIG_CLKSRC_TANGO_XTAL)               += tango_xtal.o
  obj-$(CONFIG_CLKSRC_IMX_GPT)          += timer-imx-gpt.o
  obj-$(CONFIG_ASM9260_TIMER)           += asm9260_timer.o
  obj-$(CONFIG_H8300)                   += h8300_timer8.o
  obj-$(CONFIG_H8300_TMR16)             += h8300_timer16.o
  obj-$(CONFIG_H8300_TPU)                       += h8300_tpu.o
  obj-$(CONFIG_CLKSRC_ST_LPC)           += clksrc_st_lpc.o
 +obj-$(CONFIG_X86_NUMACHIP)            += numachip.o
diff --combined drivers/hwmon/Kconfig
index 796569eeaf1d762c9d0283165b132c7a196d0e30,50146bb69833fe99d0b852a57d39e3a7c9e241a7..842b0043ad9477160194a7c7a94b03f7ab06d5a1
@@@ -321,6 -321,14 +321,14 @@@ config SENSORS_APPLESM
          Say Y here if you have an applicable laptop and want to experience
          the awesome power of applesmc.
  
+ config SENSORS_ARM_SCPI
+       tristate "ARM SCPI Sensors"
+       depends on ARM_SCPI_PROTOCOL
+       help
+         This driver provides support for temperature, voltage, current
+         and power sensors available on ARM Ltd's SCP based platforms. The
+         actual number and type of sensors exported depend on the platform.
  config SENSORS_ASB100
        tristate "Asus ASB100 Bach"
        depends on X86 && I2C
@@@ -840,16 -848,6 +848,16 @@@ config SENSORS_MAX669
          This driver can also be built as a module.  If so, the module
          will be called max6697.
  
 +config SENSORS_MAX31790
 +      tristate "Maxim MAX31790 sensor chip"
 +      depends on I2C
 +      help
 +        If you say yes here you get support for 6-Channel PWM-Output
 +        Fan RPM Controller.
 +
 +        This driver can also be built as a module.  If so, the module
 +        will be called max31790.
 +
  config SENSORS_HTU21
        tristate "Measurement Specialties HTU21D humidity/temperature sensors"
        depends on I2C
diff --combined drivers/hwmon/Makefile
index 01855ee641d1d358dd01ed035ce6b20c0cbd080f,66e7a4715da7db42119221c586fa25aec4c505bc..12a32398fdcc6c2e92a5645aebacddc4da0f52f2
@@@ -44,6 -44,7 +44,7 @@@ obj-$(CONFIG_SENSORS_ADT7462) += adt746
  obj-$(CONFIG_SENSORS_ADT7470) += adt7470.o
  obj-$(CONFIG_SENSORS_ADT7475) += adt7475.o
  obj-$(CONFIG_SENSORS_APPLESMC)        += applesmc.o
+ obj-$(CONFIG_SENSORS_ARM_SCPI)        += scpi-hwmon.o
  obj-$(CONFIG_SENSORS_ASC7621) += asc7621.o
  obj-$(CONFIG_SENSORS_ATXP1)   += atxp1.o
  obj-$(CONFIG_SENSORS_CORETEMP)        += coretemp.o
@@@ -115,7 -116,6 +116,7 @@@ obj-$(CONFIG_SENSORS_MAX6639)      += max663
  obj-$(CONFIG_SENSORS_MAX6642) += max6642.o
  obj-$(CONFIG_SENSORS_MAX6650) += max6650.o
  obj-$(CONFIG_SENSORS_MAX6697) += max6697.o
 +obj-$(CONFIG_SENSORS_MAX31790)        += max31790.o
  obj-$(CONFIG_SENSORS_MC13783_ADC)+= mc13783-adc.o
  obj-$(CONFIG_SENSORS_MCP3021) += mcp3021.o
  obj-$(CONFIG_SENSORS_MENF21BMC_HWMON) += menf21bmc_hwmon.o
index c121ddf74f7ff403696ecfe9521b84ab71bb4b0c,4d67a5e82c8311ee39508b817a78c307f22d1567..c841e7e349729adf3a4bab9f0b47aaca8d7b6643
@@@ -9,15 -9,7 +9,7 @@@
  
  #include <linux/mtd/nand.h>
  #include <linux/mtd/partitions.h>
- #include <linux/device.h>
- #include <linux/i2c.h>
- #include <linux/leds.h>
- #include <linux/spi/spi.h>
- #include <linux/usb/atmel_usba_udc.h>
- #include <linux/atmel-mci.h>
- #include <sound/atmel-ac97c.h>
  #include <linux/serial.h>
- #include <linux/platform_data/macb.h>
  
  /*
   * at91: 6 USARTs and one DBGU port (SAM9260)
@@@ -74,6 -66,11 +66,6 @@@ struct atmel_uart_data 
        struct serial_rs485     rs485;          /* rs485 settings */
  };
  
 -/* CAN */
 -struct at91_can_data {
 -      void (*transceiver_switch)(int on);
 -};
 -
  /* FIXME: this needs a better location, but gets stuff building again */
  extern int at91_suspend_entering_slow_clock(void);