Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL 11/12] ARM: soc: documentation updates
From: Olof Johansson @ 2012-10-01 23:57 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1349135827-24790-1-git-send-email-olof@lixom.net>

Documentation update for Marvell SoCs, the secret decoder ring to all
their crazy product names and numbers.

Conflicts: none.

----------------------------------------------------------------

The following changes since commit 7b27fa258c8f2670a8c09bbc6c4b2c874d155da2:

  Merge branch 'next/dt2' into HEAD

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc.git tags/docs

for you to fetch changes up to c1faefbb5ba24957e0e5b519adf0e128380f49de:

  Merge branch 'marvell-doc' of git://github.com/MISL-EBU-System-SW/mainline-public into next/docs

----------------------------------------------------------------

Arnd Bergmann (1):
      Merge branch 'marvell-doc' of git://github.com/MISL-EBU-System-SW/mainline-public into next/docs

Thomas Petazzoni (1):
      arm: add documentation describing Marvell families of SoC


 Documentation/arm/Marvell/README | 232 ++++++++++++++++++++++++++++++++++
 1 file changed, 232 insertions(+)
 create mode 100644 Documentation/arm/Marvell/README

^ permalink raw reply

* [GIT PULL 12/12] ARM: soc: multiplatform enablement
From: Olof Johansson @ 2012-10-01 23:57 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1349135827-24790-1-git-send-email-olof@lixom.net>

This is a pretty significant branch. It's the introduction of the
first multiplatform support on ARM, and with this (and the later
branch) merged, it is now possible to build one kernel that contains
support for highbank, vexpress, mvebu, socfpga, and picoxcell. More
platforms will be convered over in the next few releases.

Two critical last things had to be done for this to be practical and
possible:
* Today each platform has its own include directory under
mach-<mach>/include/mach/*, and traditionally that is where a lot of
driver/platform shared definitions have gone, such as platform data
structures. They now need to move out to a common location instead,
and this branch moves a large number of those out to
include/linux/platform_data.
* Each platform used to list the device trees to compile for its
boards in mach-<mach>/Makefile.boot.

Both of the above changes will mean that there are some merge
conflicts to come (and some to resolve here). It's a one-time move and
once it settles in, we should be good for quite a while. Sorry for the
overhead.


Conflicts: Plenty. :(
* arch/arm/Kconfig: ARCH_HIGHBANK was moved, just delete the version in HEAD.
* arch/arm/Makefile: Conflict due to change from := to +=
  combined with add/removes so no auto-resolve. The version from this
  branch is safe to pull in as-is.
* arch/arm/mach-exynos/Makefile.boot conflict due to add/move
  of all *dtb targets. The exynos4210-trats.dtb has to be moved to
  arch/arm/boot/dts/Makefile next to the other exynos4 targets.
* arch/arm/mach-tegra/board-dt-tegra20.c: conflicts at the top of the
  file. Keep "common.h" include and the USB data structures. "devices.h"
  has been removed, so don't keep that include.
* arch/arm/plat-samsung/devs.c has change/add conflict due to the include
  file moves. Keep the plat/hdmi.h config, we will come around and
  cleanup this added include separately if needed.
* arch/arm/mach-vt8500/devices.c: Remove file.

----------------------------------------------------------------

The following changes since commit 9192d4ca1c4a4d43e6c4f1f9fd3ae48dc3017d07:

  Merge branch 'next/docs' into HEAD

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc.git tags/multiplatform

for you to fetch changes up to a55eb3ec0e38e2db17207b204c050fbcdf750abb:

  drivers: bus: omap_l3: fixup merge conflict resolution

----------------------------------------------------------------

Arnd Bergmann (18):
      ARM: SoC: convert spear13xx to SMP operations
      ARM: at91: move platform_data definitions
      ARM: davinci: move platform_data definitions
      ARM: ep93xx: move platform_data definitions
      ARM: imx: move platform_data definitions
      ARM: msm: move platform_data definitions
      ARM: netx: move platform_data definitions
      ARM: pxa: move platform_data definitions
      ARM: sa1100: move platform_data definitions
      ARM: tegra: move sdhci platform_data definition
      ARM: vt8500: move platform_data definitions
      ARM: w90x900: move platform_data definitions
      ARM: nomadik: move platform_data definitions
      ARM: vexpress: remove dependency on mach/* headers
      ARM: orion: move platform_data definitions
      ARM: samsung: move platform_data definitions
      ARM: spear: move platform_data definitions
      Merge branch 'bcmring/removal' into next/multiplatform

David Brown (1):
      ARM: msm: Move core.h contents into common.h

Marc Zyngier (12):
      ARM: SoC: add per-platform SMP operations
      ARM: SoC: convert VExpress/RealView to SMP operations
      ARM: SoC: convert OMAP4 to SMP operations
      ARM: SoC: convert Tegra to SMP operations
      ARM: SoC: convert Exynos4 to SMP operations
      ARM: SoC: convert MSM to SMP operations
      ARM: SoC: convert ux500 to SMP operations
      ARM: SoC: convert shmobile SMP to SMP operations
      ARM: SoC: convert highbank to SMP operations
      ARM: SoC: convert imx6q to SMP operations
      ARM: smp: Make SMP operations mandatory
      ARM: consolidate pen_release instead of having per platform definitions

Olof Johansson (8):
      Merge branch 'next/cleanup' into next/multiplatform
      Merge branch 'next/dt' into next/multiplatform
      Merge branch 'next/soc' into next/multiplatform
      Merge tag 'multi-platform-for-3.7' of git://sources.calxeda.com/kernel/linux into next/multiplatform
      ARM: dtb: move all dtb targets to common Makefile
      Merge branch 'multiplatform/smp_ops' into next/multiplatform
      Merge branch 'multiplatform/platform-data' into next/multiplatform
      drivers: bus: omap_l3: fixup merge conflict resolution

Rob Herring (20):
      staging: ste_rmi4: remove gpio.h include
      usb: pxa27x_udc: remove IRQ_USB define
      net: pxaficp_ir: add irq resources
      ARM: pxa: use gpio_to_irq for sharppm_sl
      ARM: shmobile: move custom gpio functions to sh-gpio.h
      ARM: orion: move custom gpio functions to orion-gpio.h
      ARM: make mach/gpio.h headers optional
      ARM: move debug macros to common location
      ARM: highbank: move debug macros to include/debug
      ARM: vexpress: move debug macros to include/debug
      ARM: mvebu: move debug macros to include/debug
      ARM: socfpga: move debug macros to include/debug
      ARM: picoxcell: move debug macros to include/debug
      ARM: move all dtb targets out of Makefile.boot
      ARM: picoxcell: remove dependency on mach/* headers
      ARM: mvebu: move armada-370-xp.h in mach dir
      ARM: initial multiplatform support
      ARM: vexpress: convert to multi-platform
      ARM: highbank: call highbank_pm_init from .init_machine
      ARM: add v7 multi-platform defconfig


 Documentation/spi/ep93xx_spi                    |   2 +-
 arch/arm/Kconfig                                | 165 +++++++++----------
 arch/arm/Kconfig.debug                          |  33 ++++
 arch/arm/Makefile                               | 148 ++++++++---------
 arch/arm/boot/Makefile                          |   2 +
 arch/arm/boot/compressed/misc.c                 |   6 +
 arch/arm/boot/dts/Makefile                      | 100 +++++++++++
 arch/arm/configs/multi_v7_defconfig             |  57 +++++++
 arch/arm/include/asm/gpio.h                     |   2 +
 arch/arm/include/asm/mach/arch.h                |   7 +
 arch/arm/include/asm/smp.h                      |  48 ++++--
 arch/arm/include/asm/timex.h                    |   4 +
 .../debug-macro.S => include/debug/highbank.S}  |   6 +-
 arch/arm/include/debug/icedcc.S                 |  90 ++++++++++
 .../debug-macro.S => include/debug/mvebu.S}     |   3 +-
 .../debug-macro.S => include/debug/picoxcell.S} |   4 +-
 .../debug-macro.S => include/debug/socfpga.S}   |   0
 .../debug-macro.S => include/debug/vexpress.S}  |   0
 arch/arm/kernel/debug.S                         |  87 +---------
 arch/arm/kernel/head.S                          |   4 +-
 arch/arm/kernel/setup.c                         |   4 +-
 arch/arm/kernel/smp.c                           |  72 +++++++-
 arch/arm/mach-at91/Makefile.boot                |  24 ---
 arch/arm/mach-at91/at91sam9g45_devices.c        |   2 +-
 arch/arm/mach-at91/at91sam9rl_devices.c         |   2 +-
 arch/arm/mach-at91/include/mach/atmel-mci.h     |   2 +-
 arch/arm/mach-bcm2835/Makefile.boot             |   2 -
 arch/arm/mach-davinci/aemif.c                   |   2 +-
 arch/arm/mach-davinci/board-da830-evm.c         |   8 +-
 arch/arm/mach-davinci/board-da850-evm.c         |   6 +-
 arch/arm/mach-davinci/board-dm355-evm.c         |   8 +-
 arch/arm/mach-davinci/board-dm355-leopard.c     |   8 +-
 arch/arm/mach-davinci/board-dm365-evm.c         |   8 +-
 arch/arm/mach-davinci/board-dm644x-evm.c        |  10 +-
 arch/arm/mach-davinci/board-dm646x-evm.c        |   6 +-
 arch/arm/mach-davinci/board-mityomapl138.c      |   4 +-
 arch/arm/mach-davinci/board-neuros-osd2.c       |   8 +-
 arch/arm/mach-davinci/board-sffsdr.c            |   4 +-
 arch/arm/mach-davinci/davinci.h                 |   2 +-
 arch/arm/mach-davinci/devices.c                 |   4 +-
 arch/arm/mach-davinci/dm355.c                   |   2 +-
 arch/arm/mach-davinci/dm365.c                   |   4 +-
 arch/arm/mach-davinci/include/mach/da8xx.h      |   8 +-
 arch/arm/mach-davinci/include/mach/tnetv107x.h  |   4 +-
 arch/arm/mach-davinci/usb.c                     |   2 +-
 arch/arm/mach-dove/common.c                     |   2 +-
 arch/arm/mach-dove/include/mach/gpio.h          |   9 -
 arch/arm/mach-dove/irq.c                        |   1 +
 arch/arm/mach-dove/mpp.c                        |   1 +
 arch/arm/mach-ep93xx/core.c                     |   6 +-
 arch/arm/mach-ep93xx/dma.c                      |   2 +-
 arch/arm/mach-ep93xx/edb93xx.c                  |   4 +-
 arch/arm/mach-ep93xx/include/mach/gpio.h        |   1 -
 arch/arm/mach-ep93xx/simone.c                   |   2 +-
 arch/arm/mach-ep93xx/snappercl15.c              |   2 +-
 arch/arm/mach-ep93xx/vision_ep9307.c            |   4 +-
 arch/arm/mach-exynos/Makefile.boot              |   3 -
 arch/arm/mach-exynos/common.h                   |   5 +
 arch/arm/mach-exynos/dev-audio.c                |   2 +-
 arch/arm/mach-exynos/dev-ohci.c                 |   2 +-
 arch/arm/mach-exynos/hotplug.c                  |  18 +-
 arch/arm/mach-exynos/mach-armlex4210.c          |   1 +
 arch/arm/mach-exynos/mach-exynos5-dt.c          |   1 +
 arch/arm/mach-exynos/mach-nuri.c                |   7 +-
 arch/arm/mach-exynos/mach-origen.c              |   7 +-
 arch/arm/mach-exynos/mach-smdk4x12.c            |   4 +-
 arch/arm/mach-exynos/mach-smdkv310.c            |   8 +-
 arch/arm/mach-exynos/mach-universal_c210.c      |   5 +-
 arch/arm/mach-exynos/platsmp.c                  |  27 +--
 arch/arm/mach-exynos/setup-i2c0.c               |   2 +-
 arch/arm/mach-exynos/setup-i2c1.c               |   2 +-
 arch/arm/mach-exynos/setup-i2c2.c               |   2 +-
 arch/arm/mach-exynos/setup-i2c3.c               |   2 +-
 arch/arm/mach-exynos/setup-i2c4.c               |   2 +-
 arch/arm/mach-exynos/setup-i2c5.c               |   2 +-
 arch/arm/mach-exynos/setup-i2c6.c               |   2 +-
 arch/arm/mach-exynos/setup-i2c7.c               |   2 +-
 arch/arm/mach-highbank/Kconfig                  |  15 ++
 arch/arm/mach-highbank/Makefile.boot            |   1 -
 arch/arm/mach-highbank/core.h                   |   9 +
 arch/arm/mach-highbank/highbank.c               |   2 +
 arch/arm/mach-highbank/hotplug.c                |  16 +-
 arch/arm/mach-highbank/include/mach/gpio.h      |   1 -
 arch/arm/mach-highbank/include/mach/timex.h     |   6 -
 .../arm/mach-highbank/include/mach/uncompress.h |   9 -
 arch/arm/mach-highbank/platsmp.c                |  18 +-
 arch/arm/mach-highbank/pm.c                     |   4 +-
 arch/arm/mach-imx/Makefile.boot                 |  11 --
 arch/arm/mach-imx/ehci-imx25.c                  |   2 +-
 arch/arm/mach-imx/ehci-imx27.c                  |   2 +-
 arch/arm/mach-imx/ehci-imx31.c                  |   2 +-
 arch/arm/mach-imx/ehci-imx35.c                  |   2 +-
 arch/arm/mach-imx/ehci-imx5.c                   |   2 +-
 arch/arm/mach-imx/hotplug.c                     |  16 +-
 arch/arm/mach-imx/mach-imx6q.c                  |   1 +
 arch/arm/mach-imx/mach-mx31moboard.c            |   2 +-
 arch/arm/mach-imx/mx1-camera-fiq-ksym.c         |   2 +-
 arch/arm/mach-imx/platsmp.c                     |  18 +-
 arch/arm/mach-ixp4xx/include/mach/gpio.h        |   2 -
 arch/arm/mach-kirkwood/Makefile.boot            |  11 --
 arch/arm/mach-kirkwood/board-dreamplug.c        |   2 +-
 arch/arm/mach-kirkwood/board-goflexnet.c        |   2 +-
 arch/arm/mach-kirkwood/common.c                 |  10 +-
 arch/arm/mach-kirkwood/d2net_v2-setup.c         |   2 +-
 arch/arm/mach-kirkwood/db88f6281-bp-setup.c     |   2 +-
 arch/arm/mach-kirkwood/dockstar-setup.c         |   2 +-
 arch/arm/mach-kirkwood/guruplug-setup.c         |   2 +-
 arch/arm/mach-kirkwood/include/mach/gpio.h      |   9 -
 arch/arm/mach-kirkwood/irq.c                    |   1 +
 arch/arm/mach-kirkwood/netspace_v2-setup.c      |   2 +-
 arch/arm/mach-kirkwood/netxbig_v2-setup.c       |   2 +-
 arch/arm/mach-kirkwood/openrd-setup.c           |   2 +-
 arch/arm/mach-kirkwood/rd88f6192-nas-setup.c    |   1 +
 arch/arm/mach-kirkwood/rd88f6281-setup.c        |   2 +-
 arch/arm/mach-kirkwood/sheevaplug-setup.c       |   2 +-
 arch/arm/mach-lpc32xx/Makefile.boot             |   2 -
 arch/arm/mach-mmp/aspenite.c                    |   2 +-
 arch/arm/mach-mmp/include/mach/mmp2.h           |   2 +-
 arch/arm/mach-mmp/include/mach/pxa168.h         |   4 +-
 arch/arm/mach-mmp/include/mach/pxa910.h         |   2 +-
 arch/arm/mach-mmp/sram.c                        |   2 +-
 arch/arm/mach-mmp/teton_bga.c                   |   2 +-
 arch/arm/mach-msm/Makefile.boot                 |   3 -
 arch/arm/mach-msm/board-dt-8660.c               |   1 +
 arch/arm/mach-msm/board-dt-8960.c               |   1 +
 arch/arm/mach-msm/board-qsd8x50.c               |   2 +-
 arch/arm/mach-msm/board-trout-mmc.c             |   2 +-
 arch/arm/mach-msm/board-trout-panel.c           |   2 +-
 arch/arm/mach-msm/common.h                      |   2 +
 arch/arm/mach-msm/core.h                        |   2 +
 arch/arm/mach-msm/devices-msm7x00.c             |   2 +-
 arch/arm/mach-msm/devices-msm7x30.c             |   2 +-
 arch/arm/mach-msm/devices-qsd8x50.c             |   2 +-
 arch/arm/mach-msm/hotplug.c                     |  18 +-
 arch/arm/mach-msm/include/mach/board.h          |   2 +-
 arch/arm/mach-msm/include/mach/gpio.h           |   1 -
 arch/arm/mach-msm/platsmp.c                     |  24 ++-
 arch/arm/mach-mv78xx0/common.c                  |   4 +-
 arch/arm/mach-mv78xx0/irq.c                     |   1 +
 arch/arm/mach-mvebu/Kconfig                     |  10 ++
 arch/arm/mach-mvebu/Makefile                    |   2 +
 arch/arm/mach-mvebu/Makefile.boot               |   3 -
 arch/arm/mach-mvebu/armada-370-xp.c             |   2 +-
 .../{include/mach => }/armada-370-xp.h          |   0
 arch/arm/mach-mvebu/include/mach/timex.h        |  13 --
 arch/arm/mach-mvebu/include/mach/uncompress.h   |  43 -----
 arch/arm/mach-mxs/Makefile.boot                 |  10 --
 arch/arm/mach-mxs/include/mach/gpio.h           |   1 -
 arch/arm/mach-netx/nxdb500.c                    |   2 +-
 arch/arm/mach-netx/nxdkn.c                      |   2 +-
 arch/arm/mach-netx/nxeb500hmi.c                 |   2 +-
 arch/arm/mach-nomadik/board-nhk8815.c           |   2 +-
 arch/arm/mach-nomadik/include/mach/gpio.h       |   4 -
 arch/arm/mach-omap2/Makefile.boot               |   6 -
 arch/arm/mach-omap2/board-4430sdp.c             |   1 +
 arch/arm/mach-omap2/board-generic.c             |   2 +
 arch/arm/mach-omap2/board-omap4panda.c          |   1 +
 arch/arm/mach-omap2/common.h                    |   5 +
 arch/arm/mach-omap2/omap-hotplug.c              |  16 +-
 arch/arm/mach-omap2/omap-smp.c                  |  18 +-
 arch/arm/mach-orion5x/common.c                  |   4 +-
 arch/arm/mach-orion5x/d2net-setup.c             |   1 +
 arch/arm/mach-orion5x/db88f5281-setup.c         |   2 +-
 arch/arm/mach-orion5x/dns323-setup.c            |   1 +
 arch/arm/mach-orion5x/include/mach/gpio.h       |   9 -
 arch/arm/mach-orion5x/irq.c                     |   1 +
 arch/arm/mach-orion5x/kurobox_pro-setup.c       |   2 +-
 arch/arm/mach-orion5x/net2big-setup.c           |   1 +
 arch/arm/mach-picoxcell/Kconfig                 |  14 ++
 arch/arm/mach-picoxcell/Makefile.boot           |   1 -
 arch/arm/mach-picoxcell/common.c                |  13 +-
 arch/arm/mach-picoxcell/include/mach/gpio.h     |   1 -
 arch/arm/mach-picoxcell/include/mach/hardware.h |  21 ---
 arch/arm/mach-picoxcell/include/mach/map.h      |  25 ---
 .../mach-picoxcell/include/mach/picoxcell_soc.h |  25 ---
 arch/arm/mach-picoxcell/include/mach/timex.h    |  25 ---
 .../mach-picoxcell/include/mach/uncompress.h    |  21 ---
 arch/arm/mach-prima2/Makefile.boot              |   2 -
 arch/arm/mach-pxa/am200epd.c                    |   2 +-
 arch/arm/mach-pxa/am300epd.c                    |   2 +-
 arch/arm/mach-pxa/balloon3.c                    |   8 +-
 arch/arm/mach-pxa/cm-x270.c                     |   4 +-
 arch/arm/mach-pxa/cm-x2xx.c                     |   2 +-
 arch/arm/mach-pxa/cm-x300.c                     |  10 +-
 arch/arm/mach-pxa/colibri-evalboard.c           |   4 +-
 arch/arm/mach-pxa/colibri-pxa270-income.c       |   6 +-
 arch/arm/mach-pxa/colibri-pxa300.c              |   4 +-
 arch/arm/mach-pxa/colibri-pxa320.c              |   4 +-
 arch/arm/mach-pxa/colibri-pxa3xx.c              |   6 +-
 arch/arm/mach-pxa/corgi.c                       |   4 +-
 arch/arm/mach-pxa/csb726.c                      |   4 +-
 arch/arm/mach-pxa/devices.c                     |  31 +++-
 arch/arm/mach-pxa/em-x270.c                     |  10 +-
 arch/arm/mach-pxa/eseries.c                     |   4 +-
 arch/arm/mach-pxa/ezx.c                         |   8 +-
 arch/arm/mach-pxa/gumstix.c                     |   2 +-
 arch/arm/mach-pxa/hx4700.c                      |   2 +-
 arch/arm/mach-pxa/idp.c                         |   4 +-
 arch/arm/mach-pxa/littleton.c                   |   8 +-
 arch/arm/mach-pxa/lpd270.c                      |   8 +-
 arch/arm/mach-pxa/lubbock.c                     |   6 +-
 arch/arm/mach-pxa/magician.c                    |   8 +-
 arch/arm/mach-pxa/mainstone.c                   |  10 +-
 arch/arm/mach-pxa/mioa701.c                     |   8 +-
 arch/arm/mach-pxa/mxm8x10.c                     |   8 +-
 arch/arm/mach-pxa/palm27x.c                     |   8 +-
 arch/arm/mach-pxa/palmld.c                      |  10 +-
 arch/arm/mach-pxa/palmt5.c                      |  10 +-
 arch/arm/mach-pxa/palmtc.c                      |   6 +-
 arch/arm/mach-pxa/palmte2.c                     |   8 +-
 arch/arm/mach-pxa/palmtreo.c                    |  14 +-
 arch/arm/mach-pxa/palmtx.c                      |  10 +-
 arch/arm/mach-pxa/palmz72.c                     |  12 +-
 arch/arm/mach-pxa/pcm990-baseboard.c            |   8 +-
 arch/arm/mach-pxa/poodle.c                      |   6 +-
 arch/arm/mach-pxa/pxa27x.c                      |   2 +-
 arch/arm/mach-pxa/pxa2xx.c                      |   2 +-
 arch/arm/mach-pxa/pxa3xx-ulpi.c                 |   2 +-
 arch/arm/mach-pxa/pxa3xx.c                      |   2 +-
 arch/arm/mach-pxa/raumfeld.c                    |   8 +-
 arch/arm/mach-pxa/saar.c                        |   2 +-
 arch/arm/mach-pxa/sharpsl_pm.c                  |  30 ++--
 arch/arm/mach-pxa/spitz.c                       |   8 +-
 arch/arm/mach-pxa/stargate2.c                   |   2 +-
 arch/arm/mach-pxa/tavorevb.c                    |   4 +-
 arch/arm/mach-pxa/tosa.c                        |   4 +-
 arch/arm/mach-pxa/trizeps4.c                    |   8 +-
 arch/arm/mach-pxa/viper.c                       |   4 +-
 arch/arm/mach-pxa/vpac270.c                     |   8 +-
 arch/arm/mach-pxa/z2.c                          |   6 +-
 arch/arm/mach-pxa/zeus.c                        |   8 +-
 arch/arm/mach-pxa/zylonite.c                    |  10 +-
 arch/arm/mach-realview/core.h                   |   3 +
 arch/arm/mach-realview/hotplug.c                |  18 +-
 arch/arm/mach-realview/include/mach/gpio.h      |   1 -
 arch/arm/mach-realview/platsmp.c                |  18 +-
 arch/arm/mach-realview/realview_pb11mp.c        |   1 +
 arch/arm/mach-realview/realview_pbx.c           |   1 +
 arch/arm/mach-s3c24xx/common-smdk.c             |   4 +-
 arch/arm/mach-s3c24xx/mach-amlm5900.c           |   2 +-
 arch/arm/mach-s3c24xx/mach-anubis.c             |   6 +-
 arch/arm/mach-s3c24xx/mach-at2440evb.c          |   6 +-
 arch/arm/mach-s3c24xx/mach-bast.c               |   8 +-
 arch/arm/mach-s3c24xx/mach-gta02.c              |  10 +-
 arch/arm/mach-s3c24xx/mach-h1940.c              |   8 +-
 arch/arm/mach-s3c24xx/mach-jive.c               |   6 +-
 arch/arm/mach-s3c24xx/mach-mini2440.c           |  10 +-
 arch/arm/mach-s3c24xx/mach-n30.c                |   8 +-
 arch/arm/mach-s3c24xx/mach-nexcoder.c           |   2 +-
 arch/arm/mach-s3c24xx/mach-osiris.c             |   4 +-
 arch/arm/mach-s3c24xx/mach-otom.c               |   2 +-
 arch/arm/mach-s3c24xx/mach-qt2410.c             |   8 +-
 arch/arm/mach-s3c24xx/mach-rx1950.c             |  10 +-
 arch/arm/mach-s3c24xx/mach-rx3715.c             |   2 +-
 arch/arm/mach-s3c24xx/mach-smdk2410.c           |   2 +-
 arch/arm/mach-s3c24xx/mach-smdk2413.c           |   4 +-
 arch/arm/mach-s3c24xx/mach-smdk2416.c           |   8 +-
 arch/arm/mach-s3c24xx/mach-smdk2440.c           |   2 +-
 arch/arm/mach-s3c24xx/mach-smdk2443.c           |   2 +-
 arch/arm/mach-s3c24xx/mach-tct_hammer.c         |   2 +-
 arch/arm/mach-s3c24xx/mach-vr1000.c             |   6 +-
 arch/arm/mach-s3c24xx/mach-vstms.c              |   4 +-
 arch/arm/mach-s3c24xx/setup-i2c.c               |   2 +-
 arch/arm/mach-s3c24xx/simtec-audio.c            |   2 +-
 arch/arm/mach-s3c24xx/simtec-usb.c              |   2 +-
 arch/arm/mach-s3c64xx/dev-audio.c               |   2 +-
 arch/arm/mach-s3c64xx/mach-anw6410.c            |   2 +-
 arch/arm/mach-s3c64xx/mach-crag6410-module.c    |   2 +-
 arch/arm/mach-s3c64xx/mach-crag6410.c           |   4 +-
 arch/arm/mach-s3c64xx/mach-hmt.c                |   4 +-
 arch/arm/mach-s3c64xx/mach-mini6410.c           |   4 +-
 arch/arm/mach-s3c64xx/mach-ncp.c                |   2 +-
 arch/arm/mach-s3c64xx/mach-real6410.c           |   4 +-
 arch/arm/mach-s3c64xx/mach-smartq.c             |   8 +-
 arch/arm/mach-s3c64xx/mach-smdk6400.c           |   2 +-
 arch/arm/mach-s3c64xx/mach-smdk6410.c           |   6 +-
 arch/arm/mach-s3c64xx/setup-i2c0.c              |   2 +-
 arch/arm/mach-s3c64xx/setup-i2c1.c              |   2 +-
 arch/arm/mach-s3c64xx/setup-ide.c               |   2 +-
 arch/arm/mach-s5p64x0/dev-audio.c               |   2 +-
 arch/arm/mach-s5p64x0/mach-smdk6440.c           |   4 +-
 arch/arm/mach-s5p64x0/mach-smdk6450.c           |   4 +-
 arch/arm/mach-s5p64x0/setup-i2c0.c              |   2 +-
 arch/arm/mach-s5p64x0/setup-i2c1.c              |   2 +-
 arch/arm/mach-s5pc100/dev-audio.c               |   2 +-
 arch/arm/mach-s5pc100/mach-smdkc100.c           |   8 +-
 arch/arm/mach-s5pc100/setup-i2c0.c              |   2 +-
 arch/arm/mach-s5pc100/setup-i2c1.c              |   2 +-
 arch/arm/mach-s5pv210/dev-audio.c               |   2 +-
 arch/arm/mach-s5pv210/mach-goni.c               |   2 +-
 arch/arm/mach-s5pv210/mach-smdkc110.c           |   4 +-
 arch/arm/mach-s5pv210/mach-smdkv210.c           |   6 +-
 arch/arm/mach-s5pv210/mach-torbreck.c           |   2 +-
 arch/arm/mach-s5pv210/setup-i2c0.c              |   2 +-
 arch/arm/mach-s5pv210/setup-i2c1.c              |   2 +-
 arch/arm/mach-s5pv210/setup-i2c2.c              |   2 +-
 arch/arm/mach-sa1100/assabet.c                  |   2 +-
 arch/arm/mach-sa1100/cerf.c                     |   2 +-
 arch/arm/mach-sa1100/collie.c                   |   2 +-
 arch/arm/mach-sa1100/lart.c                     |   2 +-
 arch/arm/mach-sa1100/shannon.c                  |   2 +-
 arch/arm/mach-sa1100/simpad.c                   |   2 +-
 arch/arm/mach-shmobile/Makefile.boot            |   4 -
 arch/arm/mach-shmobile/board-ag5evm.c           |   1 +
 arch/arm/mach-shmobile/board-ap4evb.c           |   2 +
 arch/arm/mach-shmobile/board-armadillo800eva.c  |   2 +
 arch/arm/mach-shmobile/board-g4evm.c            |   2 +
 arch/arm/mach-shmobile/board-kota2.c            |   1 +
 arch/arm/mach-shmobile/board-kzm9d.c            |   1 +
 arch/arm/mach-shmobile/board-kzm9g.c            |   1 +
 arch/arm/mach-shmobile/board-mackerel.c         |   2 +
 arch/arm/mach-shmobile/board-marzen.c           |   1 +
 arch/arm/mach-shmobile/hotplug.c                |  31 ++--
 arch/arm/mach-shmobile/include/mach/common.h    |  24 +--
 arch/arm/mach-shmobile/include/mach/emev2.h     |   7 +-
 arch/arm/mach-shmobile/include/mach/r8a7779.h   |   2 +
 arch/arm/mach-shmobile/include/mach/sh73a0.h    |   2 +
 arch/arm/mach-shmobile/pfc-r8a7740.c            |   2 +-
 arch/arm/mach-shmobile/pfc-r8a7779.c            |   2 +-
 arch/arm/mach-shmobile/pfc-sh7367.c             |   2 +-
 arch/arm/mach-shmobile/pfc-sh7372.c             |   2 +-
 arch/arm/mach-shmobile/pfc-sh7377.c             |   2 +-
 arch/arm/mach-shmobile/pfc-sh73a0.c             |   2 +-
 arch/arm/mach-shmobile/platsmp.c                |  96 +----------
 arch/arm/mach-shmobile/setup-emev2.c            |   1 +
 .../{include/mach/gpio.h => sh-gpio.h}          |  14 --
 arch/arm/mach-shmobile/smp-emev2.c              |  47 +++++-
 arch/arm/mach-shmobile/smp-r8a7779.c            |  48 +++++-
 arch/arm/mach-shmobile/smp-sh73a0.c             |  48 +++++-
 arch/arm/mach-socfpga/Kconfig                   |  16 ++
 arch/arm/mach-socfpga/Makefile.boot             |   1 -
 arch/arm/mach-socfpga/include/mach/timex.h      |  19 ---
 arch/arm/mach-socfpga/include/mach/uncompress.h |   9 -
 arch/arm/mach-spear13xx/Makefile.boot           |   3 -
 arch/arm/mach-spear13xx/hotplug.c               |  22 +--
 arch/arm/mach-spear13xx/include/mach/generic.h  |   3 +
 arch/arm/mach-spear13xx/include/mach/gpio.h     |  19 ---
 arch/arm/mach-spear13xx/platsmp.c               |  25 +--
 arch/arm/mach-spear13xx/spear1310.c             |   1 +
 arch/arm/mach-spear13xx/spear1340.c             |   1 +
 arch/arm/mach-spear3xx/Makefile.boot            |   4 -
 arch/arm/mach-spear3xx/include/mach/gpio.h      |  19 ---
 arch/arm/mach-spear6xx/Makefile.boot            |   2 -
 arch/arm/mach-spear6xx/include/mach/gpio.h      |  19 ---
 arch/arm/mach-tegra/Makefile.boot               |  12 --
 arch/arm/mach-tegra/board-dt-tegra20.c          |   2 +
 arch/arm/mach-tegra/board-dt-tegra30.c          |   2 +
 arch/arm/mach-tegra/board-paz00.c               |   2 +-
 arch/arm/mach-tegra/common.c                    |   1 +
 arch/arm/mach-tegra/common.h                    |   4 +
 arch/arm/mach-tegra/hotplug.c                   |   9 +-
 arch/arm/mach-tegra/include/mach/gpio.h         |   1 -
 arch/arm/mach-tegra/platsmp.c                   |  21 ++-
 arch/arm/mach-u300/include/mach/gpio.h          |   1 -
 arch/arm/mach-ux500/Makefile.boot               |   2 -
 arch/arm/mach-ux500/board-mop500.c              |   6 +-
 arch/arm/mach-ux500/cpu-db8500.c                |   2 +-
 arch/arm/mach-ux500/devices-common.h            |   2 +-
 arch/arm/mach-ux500/hotplug.c                   |  36 +---
 arch/arm/mach-ux500/include/mach/gpio.h         |   5 -
 arch/arm/mach-ux500/include/mach/setup.h        |   3 +
 arch/arm/mach-ux500/platsmp.c                   |  24 +--
 arch/arm/mach-ux500/usb.c                       |   2 +-
 arch/arm/mach-versatile/include/mach/gpio.h     |   1 -
 arch/arm/mach-vexpress/Kconfig                  |  64 +++----
 arch/arm/mach-vexpress/Makefile                 |   2 +
 arch/arm/mach-vexpress/Makefile.boot            |  10 --
 arch/arm/mach-vexpress/core.h                   |   4 +
 arch/arm/mach-vexpress/ct-ca9x4.c               |   1 +
 arch/arm/mach-vexpress/hotplug.c                |  18 +-
 arch/arm/mach-vexpress/include/mach/gpio.h      |   1 -
 arch/arm/mach-vexpress/include/mach/irqs.h      |   2 +
 arch/arm/mach-vexpress/include/mach/timex.h     |  23 ---
 .../arm/mach-vexpress/include/mach/uncompress.h |  86 ----------
 arch/arm/mach-vexpress/platsmp.c                |  18 +-
 arch/arm/mach-vexpress/v2m.c                    |   8 +-
 arch/arm/mach-vt8500/include/mach/gpio.h        |   1 -
 arch/arm/mach-w90x900/dev.c                     |   6 +-
 arch/arm/mach-w90x900/mach-nuc950evb.c          |   2 +-
 .../plat-mxc/devices/platform-sdhci-esdhc-imx.c |   2 +-
 arch/arm/plat-mxc/include/mach/common.h         |   4 +
 arch/arm/plat-mxc/include/mach/devices-common.h |  32 ++--
 arch/arm/plat-mxc/include/mach/gpio.h           |   1 -
 arch/arm/plat-mxc/ssi-fiq-ksym.c                |   2 +-
 arch/arm/plat-orion/common.c                    |   4 +-
 arch/arm/plat-orion/gpio.c                      |   2 +-
 .../include/plat/{gpio.h => orion-gpio.h}       |   2 +-
 arch/arm/plat-orion/irq.c                       |   2 +-
 arch/arm/plat-orion/mpp.c                       |   1 +
 arch/arm/plat-samsung/devs.c                    |  20 +--
 arch/arm/plat-spear/include/plat/gpio.h         |   1 -
 arch/arm/plat-versatile/Makefile                |   2 +
 arch/arm/plat-versatile/include/plat/platsmp.h  |  14 ++
 arch/arm/plat-versatile/platsmp.c               |  10 +-
 drivers/ata/pata_ep93xx.c                       |   2 +-
 drivers/ata/pata_pxa.c                          |   2 +-
 drivers/ata/pata_samsung_cf.c                   |   2 +-
 drivers/bus/omap_l3_noc.c                       |   1 -
 drivers/crypto/ux500/cryp/cryp_core.c           |   2 +-
 drivers/crypto/ux500/hash/hash_core.c           |   2 +-
 drivers/dma/at_hdmac_regs.h                     |   2 +-
 drivers/dma/ep93xx_dma.c                        |   2 +-
 drivers/dma/imx-dma.c                           |   2 +-
 drivers/dma/imx-sdma.c                          |   4 +-
 drivers/dma/mmp_tdma.c                          |   2 +-
 drivers/dma/mv_xor.c                            |   2 +-
 drivers/hwmon/s3c-hwmon.c                       |   2 +-
 drivers/i2c/busses/i2c-davinci.c                |   2 +-
 drivers/i2c/busses/i2c-imx.c                    |   2 +-
 drivers/i2c/busses/i2c-nuc900.c                 |   2 +-
 drivers/i2c/busses/i2c-s3c2410.c                |   2 +-
 drivers/input/keyboard/davinci_keyscan.c        |   2 +-
 drivers/input/keyboard/ep93xx_keypad.c          |   2 +-
 drivers/input/keyboard/nomadik-ske-keypad.c     |   2 +-
 drivers/input/keyboard/pxa27x_keypad.c          |   2 +-
 drivers/input/keyboard/pxa930_rotary.c          |   2 +-
 drivers/input/keyboard/spear-keyboard.c         |   2 +-
 drivers/input/keyboard/w90p910_keypad.c         |   2 +-
 drivers/input/mouse/pxa930_trkball.c            |   2 +-
 drivers/input/touchscreen/s3c2410_ts.c          |   2 +-
 drivers/leds/leds-netxbig.c                     |   2 +-
 drivers/leds/leds-ns2.c                         |   2 +-
 drivers/leds/leds-s3c24xx.c                     |   2 +-
 drivers/media/video/davinci/vpbe_venc.c         |   2 +-
 drivers/media/video/mx1_camera.c                |   2 +-
 drivers/media/video/mx2_camera.c                |   2 +-
 drivers/media/video/mx3_camera.c                |   4 +-
 drivers/media/video/pxa_camera.c                |   2 +-
 drivers/media/video/s5p-fimc/mipi-csis.c        |   2 +-
 drivers/mfd/mcp-sa11x0.c                        |   2 +-
 drivers/mmc/host/davinci_mmc.c                  |   2 +-
 drivers/mmc/host/msm_sdcc.c                     |   2 +-
 drivers/mmc/host/mvsdio.c                       |   2 +-
 drivers/mmc/host/mxcmmc.c                       |   4 +-
 drivers/mmc/host/pxamci.c                       |   2 +-
 drivers/mmc/host/s3cmci.c                       |   2 +-
 drivers/mmc/host/sdhci-esdhc-imx.c              |   2 +-
 drivers/mmc/host/sdhci-tegra.c                  |   3 +-
 drivers/mtd/nand/davinci_nand.c                 |   4 +-
 drivers/mtd/nand/mxc_nand.c                     |   2 +-
 drivers/mtd/nand/nomadik_nand.c                 |   2 +-
 drivers/mtd/nand/orion_nand.c                   |   2 +-
 drivers/mtd/nand/pxa3xx_nand.c                  |   2 +-
 drivers/mtd/nand/s3c2410.c                      |   2 +-
 drivers/net/ethernet/netx-eth.c                 |   2 +-
 drivers/net/irda/pxaficp_ir.c                   |  30 ++--
 drivers/pcmcia/pxa2xx_viper.c                   |   2 +-
 drivers/sh/pfc/gpio.c                           |   1 +
 drivers/spi/spi-davinci.c                       |   2 +-
 drivers/spi/spi-ep93xx.c                        |   4 +-
 drivers/spi/spi-imx.c                           |   2 +-
 drivers/spi/spi-nuc900.c                        |   2 +-
 drivers/spi/spi-s3c64xx.c                       |   2 +-
 .../ste_rmi4/board-mop500-u8500uib-rmi4.c       |   1 -
 drivers/tty/serial/imx.c                        |   2 +-
 drivers/usb/gadget/imx_udc.c                    |   2 +-
 drivers/usb/gadget/pxa27x_udc.c                 |   2 +-
 drivers/usb/gadget/s3c2410_udc.c                |   2 +-
 drivers/usb/host/ehci-mxc.c                     |   2 +-
 drivers/usb/host/ehci-orion.c                   |   2 +-
 drivers/usb/host/ehci-s5p.c                     |   2 +-
 drivers/usb/host/imx21-hcd.h                    |   2 +-
 drivers/usb/host/ohci-da8xx.c                   |   2 +-
 drivers/usb/host/ohci-exynos.c                  |   2 +-
 drivers/usb/host/ohci-pxa27x.c                  |   4 +-
 drivers/usb/host/ohci-s3c2410.c                 |   2 +-
 drivers/usb/musb/da8xx.c                        |   2 +-
 drivers/usb/musb/ux500_dma.c                    |   2 +-
 drivers/video/ep93xx-fb.c                       |   2 +-
 drivers/video/imxfb.c                           |   2 +-
 drivers/video/msm/mddi.c                        |   2 +-
 drivers/video/msm/mddi_client_dummy.c           |   2 +-
 drivers/video/msm/mddi_client_nt35399.c         |   2 +-
 drivers/video/msm/mddi_client_toshiba.c         |   2 +-
 drivers/video/msm/mdp.c                         |   2 +-
 drivers/video/msm/mdp_hw.h                      |   2 +-
 drivers/video/msm/mdp_ppp.c                     |   2 +-
 drivers/video/msm/msm_fb.c                      |   2 +-
 drivers/video/mx3fb.c                           |   4 +-
 drivers/video/nuc900fb.c                        |   2 +-
 drivers/video/nuc900fb.h                        |   2 +-
 drivers/video/pxafb.c                           |   2 +-
 drivers/video/vt8500lcdfb.c                     |   2 +-
 drivers/video/wm8505fb.c                        |   2 +-
 .../linux/platform_data/asoc-imx-ssi.h          |   0
 .../linux/platform_data/asoc-kirkwood.h         |   0
 .../linux/platform_data/asoc-palm27x.h          |   0
 .../linux/platform_data/asoc-s3c.h              |   0
 .../linux/platform_data/asoc-s3c24xx_simtec.h   |   0
 .../linux/platform_data/ata-pxa.h               |   0
 .../linux/platform_data/ata-samsung_cf.h        |   0
 include/linux/platform_data/atmel-aes.h         |   2 +-
 .../linux/platform_data/camera-mx1.h            |   0
 .../linux/platform_data/camera-mx2.h            |   0
 .../linux/platform_data/camera-mx3.h            |   0
 .../linux/platform_data/camera-pxa.h            |   0
 .../linux/platform_data}/crypto-ux500.h         |   0
 .../linux/platform_data/dma-atmel.h             |   0
 .../linux/platform_data/dma-ep93xx.h            |   0
 .../linux/platform_data/dma-imx-sdma.h          |   0
 .../linux/platform_data/dma-imx.h               |   0
 .../linux/platform_data/dma-mmp_tdma.h          |   0
 .../linux/platform_data/dma-mv_xor.h            |   0
 .../linux/platform_data/eth-netx.h              |   0
 .../linux/platform_data/hwmon-s3c.h             |   0
 .../linux/platform_data/i2c-davinci.h           |   0
 .../linux/platform_data/i2c-imx.h               |   0
 .../linux/platform_data/i2c-nuc900.h            |   0
 .../linux/platform_data/i2c-s3c2410.h           |   0
 .../linux/platform_data/irda-pxaficp.h          |   0
 .../platform_data/keyboard-pxa930_rotary.h      |   0
 .../linux/platform_data/keyboard-spear.h        |   0
 .../linux/platform_data/keypad-ep93xx.h         |   0
 .../linux/platform_data/keypad-nomadik-ske.h    |   0
 .../linux/platform_data/keypad-pxa27x.h         |   0
 .../linux/platform_data/keypad-w90p910.h        |   0
 .../linux/platform_data/keyscan-davinci.h       |   0
 .../linux/platform_data/leds-kirkwood-netxbig.h |   0
 .../linux/platform_data/leds-kirkwood-ns2.h     |   0
 .../linux/platform_data/leds-s3c24xx.h          |   0
 .../linux/platform_data/mfd-mcp-sa11x0.h        |   0
 .../linux/platform_data/mipi-csis.h             |   0
 .../linux/platform_data/mmc-davinci.h           |   0
 .../linux/platform_data/mmc-esdhc-imx.h         |   0
 .../linux/platform_data/mmc-msm_sdcc.h          |   0
 .../linux/platform_data/mmc-mvsdio.h            |   0
 .../linux/platform_data/mmc-mxcmmc.h            |   0
 .../linux/platform_data/mmc-pxamci.h            |   0
 .../linux/platform_data/mmc-s3cmci.h            |   0
 .../linux/platform_data/mmc-sdhci-tegra.h       |   6 +-
 .../linux/platform_data/mouse-pxa930_trkball.h  |   0
 .../linux/platform_data/mtd-davinci-aemif.h     |   0
 .../linux/platform_data/mtd-davinci.h           |   0
 .../linux/platform_data/mtd-mxc_nand.h          |   0
 .../linux/platform_data/mtd-nand-pxa3xx.h       |   0
 .../linux/platform_data/mtd-nand-s3c2410.h      |   0
 .../linux/platform_data/mtd-nomadik-nand.h      |   0
 .../linux/platform_data/mtd-orion_nand.h        |   0
 .../linux/platform_data/pcmcia-pxa2xx_viper.h   |   0
 .../linux/platform_data/serial-imx.h            |   0
 .../linux/platform_data/spi-davinci.h           |   0
 .../linux/platform_data/spi-ep93xx.h            |   0
 .../linux/platform_data/spi-imx.h               |   0
 .../linux/platform_data/spi-nuc900.h            |   0
 .../linux/platform_data/spi-s3c64xx.h           |   0
 .../linux/platform_data/touchscreen-s3c2410.h   |   0
 .../linux/platform_data/usb-davinci.h           |   0
 .../linux/platform_data/usb-ehci-mxc.h          |   0
 .../linux/platform_data/usb-ehci-orion.h        |   0
 .../linux/platform_data/usb-ehci-s5p.h          |   0
 .../linux/platform_data/usb-exynos.h            |   0
 .../linux/platform_data/usb-imx_udc.h           |   0
 .../linux/platform_data/usb-musb-ux500.h        |   0
 .../linux/platform_data/usb-mx2.h               |   0
 .../linux/platform_data/usb-ohci-pxa27x.h       |   0
 .../linux/platform_data/usb-ohci-s3c2410.h      |   0
 .../linux/platform_data/usb-pxa3xx-ulpi.h       |   0
 .../linux/platform_data/usb-s3c2410_udc.h       |   0
 .../linux/platform_data/video-ep93xx.h          |   0
 .../linux/platform_data/video-imxfb.h           |   0
 .../linux/platform_data/video-msm_fb.h          |   0
 .../linux/platform_data/video-mx3fb.h           |   0
 .../linux/platform_data/video-nuc900fb.h        |   0
 .../linux/platform_data/video-pxafb.h           |   0
 .../linux/platform_data/video-vt8500lcdfb.h     |   0
 sound/soc/ep93xx/ep93xx-ac97.c                  |   2 +-
 sound/soc/ep93xx/ep93xx-i2s.c                   |   2 +-
 sound/soc/ep93xx/ep93xx-pcm.c                   |   2 +-
 sound/soc/fsl/imx-pcm-dma.c                     |   2 +-
 sound/soc/fsl/imx-pcm-fiq.c                     |   2 +-
 sound/soc/fsl/imx-ssi.c                         |   2 +-
 sound/soc/fsl/imx-ssi.h                         |   2 +-
 sound/soc/kirkwood/kirkwood-i2s.c               |   2 +-
 sound/soc/kirkwood/kirkwood-openrd.c            |   2 +-
 sound/soc/kirkwood/kirkwood-t5325.c             |   2 +-
 sound/soc/pxa/palm27x.c                         |   2 +-
 sound/soc/samsung/ac97.c                        |   2 +-
 sound/soc/samsung/i2s.c                         |   2 +-
 sound/soc/samsung/pcm.c                         |   2 +-
 sound/soc/samsung/s3c24xx_simtec.c              |   2 +-
 sound/soc/samsung/spdif.c                       |   2 +-
 581 files changed, 1757 insertions(+), 1871 deletions(-)
 create mode 100644 arch/arm/boot/dts/Makefile
 create mode 100644 arch/arm/configs/multi_v7_defconfig
 rename arch/arm/{mach-highbank/include/mach/debug-macro.S => include/debug/highbank.S} (83%)
 create mode 100644 arch/arm/include/debug/icedcc.S
 rename arch/arm/{mach-mvebu/include/mach/debug-macro.S => include/debug/mvebu.S} (86%)
 rename arch/arm/{mach-picoxcell/include/mach/debug-macro.S => include/debug/picoxcell.S} (89%)
 rename arch/arm/{mach-socfpga/include/mach/debug-macro.S => include/debug/socfpga.S} (100%)
 rename arch/arm/{mach-vexpress/include/mach/debug-macro.S => include/debug/vexpress.S} (100%)
 delete mode 100644 arch/arm/mach-dove/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-ep93xx/include/mach/gpio.h
 create mode 100644 arch/arm/mach-highbank/Kconfig
 delete mode 100644 arch/arm/mach-highbank/Makefile.boot
 delete mode 100644 arch/arm/mach-highbank/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-highbank/include/mach/timex.h
 delete mode 100644 arch/arm/mach-highbank/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-ixp4xx/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-kirkwood/include/mach/gpio.h
 create mode 100644 arch/arm/mach-msm/core.h
 delete mode 100644 arch/arm/mach-msm/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-mvebu/Makefile.boot
 rename arch/arm/mach-mvebu/{include/mach => }/armada-370-xp.h (100%)
 delete mode 100644 arch/arm/mach-mvebu/include/mach/timex.h
 delete mode 100644 arch/arm/mach-mvebu/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-mxs/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-nomadik/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-orion5x/include/mach/gpio.h
 create mode 100644 arch/arm/mach-picoxcell/Kconfig
 delete mode 100644 arch/arm/mach-picoxcell/Makefile.boot
 delete mode 100644 arch/arm/mach-picoxcell/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-picoxcell/include/mach/hardware.h
 delete mode 100644 arch/arm/mach-picoxcell/include/mach/map.h
 delete mode 100644 arch/arm/mach-picoxcell/include/mach/picoxcell_soc.h
 delete mode 100644 arch/arm/mach-picoxcell/include/mach/timex.h
 delete mode 100644 arch/arm/mach-picoxcell/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-realview/include/mach/gpio.h
 rename arch/arm/mach-shmobile/{include/mach/gpio.h => sh-gpio.h} (84%)
 create mode 100644 arch/arm/mach-socfpga/Kconfig
 delete mode 100644 arch/arm/mach-socfpga/Makefile.boot
 delete mode 100644 arch/arm/mach-socfpga/include/mach/timex.h
 delete mode 100644 arch/arm/mach-socfpga/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-spear13xx/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-spear3xx/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-spear6xx/include/mach/gpio.h
 create mode 100644 arch/arm/mach-tegra/common.h
 delete mode 100644 arch/arm/mach-tegra/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-u300/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-ux500/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-versatile/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-vexpress/Makefile.boot
 delete mode 100644 arch/arm/mach-vexpress/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-vexpress/include/mach/timex.h
 delete mode 100644 arch/arm/mach-vexpress/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-vt8500/include/mach/gpio.h
 delete mode 100644 arch/arm/plat-mxc/include/mach/gpio.h
 rename arch/arm/plat-orion/include/plat/{gpio.h => orion-gpio.h} (95%)
 delete mode 100644 arch/arm/plat-spear/include/plat/gpio.h
 create mode 100644 arch/arm/plat-versatile/include/plat/platsmp.h
 rename arch/arm/plat-mxc/include/mach/ssi.h => include/linux/platform_data/asoc-imx-ssi.h (100%)
 rename arch/arm/plat-orion/include/plat/audio.h => include/linux/platform_data/asoc-kirkwood.h (100%)
 rename arch/arm/mach-pxa/include/mach/palmasoc.h => include/linux/platform_data/asoc-palm27x.h (100%)
 rename arch/arm/plat-samsung/include/plat/audio.h => include/linux/platform_data/asoc-s3c.h (100%)
 rename arch/arm/plat-samsung/include/plat/audio-simtec.h => include/linux/platform_data/asoc-s3c24xx_simtec.h (100%)
 rename arch/arm/mach-pxa/include/mach/pata_pxa.h => include/linux/platform_data/ata-pxa.h (100%)
 rename arch/arm/plat-samsung/include/plat/ata.h => include/linux/platform_data/ata-samsung_cf.h (100%)
 rename arch/arm/plat-mxc/include/mach/mx1_camera.h => include/linux/platform_data/camera-mx1.h (100%)
 rename arch/arm/plat-mxc/include/mach/mx2_cam.h => include/linux/platform_data/camera-mx2.h (100%)
 rename arch/arm/plat-mxc/include/mach/mx3_camera.h => include/linux/platform_data/camera-mx3.h (100%)
 rename arch/arm/mach-pxa/include/mach/camera.h => include/linux/platform_data/camera-pxa.h (100%)
 rename {arch/arm/mach-ux500/include/mach => include/linux/platform_data}/crypto-ux500.h (100%)
 rename arch/arm/mach-at91/include/mach/at_hdmac.h => include/linux/platform_data/dma-atmel.h (100%)
 rename arch/arm/mach-ep93xx/include/mach/dma.h => include/linux/platform_data/dma-ep93xx.h (100%)
 rename arch/arm/plat-mxc/include/mach/sdma.h => include/linux/platform_data/dma-imx-sdma.h (100%)
 rename arch/arm/plat-mxc/include/mach/dma.h => include/linux/platform_data/dma-imx.h (100%)
 rename arch/arm/mach-mmp/include/mach/sram.h => include/linux/platform_data/dma-mmp_tdma.h (100%)
 rename arch/arm/plat-orion/include/plat/mv_xor.h => include/linux/platform_data/dma-mv_xor.h (100%)
 rename arch/arm/mach-netx/include/mach/eth.h => include/linux/platform_data/eth-netx.h (100%)
 rename arch/arm/plat-samsung/include/plat/hwmon.h => include/linux/platform_data/hwmon-s3c.h (100%)
 rename arch/arm/mach-davinci/include/mach/i2c.h => include/linux/platform_data/i2c-davinci.h (100%)
 rename arch/arm/plat-mxc/include/mach/i2c.h => include/linux/platform_data/i2c-imx.h (100%)
 rename arch/arm/mach-w90x900/include/mach/i2c.h => include/linux/platform_data/i2c-nuc900.h (100%)
 rename arch/arm/plat-samsung/include/plat/iic.h => include/linux/platform_data/i2c-s3c2410.h (100%)
 rename arch/arm/mach-pxa/include/mach/irda.h => include/linux/platform_data/irda-pxaficp.h (100%)
 rename arch/arm/mach-pxa/include/mach/pxa930_rotary.h => include/linux/platform_data/keyboard-pxa930_rotary.h (100%)
 rename arch/arm/plat-spear/include/plat/keyboard.h => include/linux/platform_data/keyboard-spear.h (100%)
 rename arch/arm/mach-ep93xx/include/mach/ep93xx_keypad.h => include/linux/platform_data/keypad-ep93xx.h (100%)
 rename arch/arm/plat-nomadik/include/plat/ske.h => include/linux/platform_data/keypad-nomadik-ske.h (100%)
 rename arch/arm/plat-pxa/include/plat/pxa27x_keypad.h => include/linux/platform_data/keypad-pxa27x.h (100%)
 rename arch/arm/mach-w90x900/include/mach/w90p910_keypad.h => include/linux/platform_data/keypad-w90p910.h (100%)
 rename arch/arm/mach-davinci/include/mach/keyscan.h => include/linux/platform_data/keyscan-davinci.h (100%)
 rename arch/arm/mach-kirkwood/include/mach/leds-netxbig.h => include/linux/platform_data/leds-kirkwood-netxbig.h (100%)
 rename arch/arm/mach-kirkwood/include/mach/leds-ns2.h => include/linux/platform_data/leds-kirkwood-ns2.h (100%)
 rename arch/arm/mach-s3c24xx/include/mach/leds-gpio.h => include/linux/platform_data/leds-s3c24xx.h (100%)
 rename arch/arm/mach-sa1100/include/mach/mcp.h => include/linux/platform_data/mfd-mcp-sa11x0.h (100%)
 rename arch/arm/plat-samsung/include/plat/mipi_csis.h => include/linux/platform_data/mipi-csis.h (100%)
 rename arch/arm/mach-davinci/include/mach/mmc.h => include/linux/platform_data/mmc-davinci.h (100%)
 rename arch/arm/plat-mxc/include/mach/esdhc.h => include/linux/platform_data/mmc-esdhc-imx.h (100%)
 rename arch/arm/mach-msm/include/mach/mmc.h => include/linux/platform_data/mmc-msm_sdcc.h (100%)
 rename arch/arm/plat-orion/include/plat/mvsdio.h => include/linux/platform_data/mmc-mvsdio.h (100%)
 rename arch/arm/plat-mxc/include/mach/mmc.h => include/linux/platform_data/mmc-mxcmmc.h (100%)
 rename arch/arm/mach-pxa/include/mach/mmc.h => include/linux/platform_data/mmc-pxamci.h (100%)
 rename arch/arm/plat-samsung/include/plat/mci.h => include/linux/platform_data/mmc-s3cmci.h (100%)
 rename arch/arm/mach-tegra/include/mach/sdhci.h => include/linux/platform_data/mmc-sdhci-tegra.h (84%)
 rename arch/arm/mach-pxa/include/mach/pxa930_trkball.h => include/linux/platform_data/mouse-pxa930_trkball.h (100%)
 rename arch/arm/mach-davinci/include/mach/aemif.h => include/linux/platform_data/mtd-davinci-aemif.h (100%)
 rename arch/arm/mach-davinci/include/mach/nand.h => include/linux/platform_data/mtd-davinci.h (100%)
 rename arch/arm/plat-mxc/include/mach/mxc_nand.h => include/linux/platform_data/mtd-mxc_nand.h (100%)
 rename arch/arm/plat-pxa/include/plat/pxa3xx_nand.h => include/linux/platform_data/mtd-nand-pxa3xx.h (100%)
 rename arch/arm/plat-samsung/include/plat/nand.h => include/linux/platform_data/mtd-nand-s3c2410.h (100%)
 rename arch/arm/mach-nomadik/include/mach/nand.h => include/linux/platform_data/mtd-nomadik-nand.h (100%)
 rename arch/arm/plat-orion/include/plat/orion_nand.h => include/linux/platform_data/mtd-orion_nand.h (100%)
 rename arch/arm/mach-pxa/include/mach/arcom-pcmcia.h => include/linux/platform_data/pcmcia-pxa2xx_viper.h (100%)
 rename arch/arm/plat-mxc/include/mach/imx-uart.h => include/linux/platform_data/serial-imx.h (100%)
 rename arch/arm/mach-davinci/include/mach/spi.h => include/linux/platform_data/spi-davinci.h (100%)
 rename arch/arm/mach-ep93xx/include/mach/ep93xx_spi.h => include/linux/platform_data/spi-ep93xx.h (100%)
 rename arch/arm/plat-mxc/include/mach/spi.h => include/linux/platform_data/spi-imx.h (100%)
 rename arch/arm/mach-w90x900/include/mach/nuc900_spi.h => include/linux/platform_data/spi-nuc900.h (100%)
 rename arch/arm/plat-samsung/include/plat/s3c64xx-spi.h => include/linux/platform_data/spi-s3c64xx.h (100%)
 rename arch/arm/plat-samsung/include/plat/ts.h => include/linux/platform_data/touchscreen-s3c2410.h (100%)
 rename arch/arm/mach-davinci/include/mach/usb.h => include/linux/platform_data/usb-davinci.h (100%)
 rename arch/arm/plat-mxc/include/mach/mxc_ehci.h => include/linux/platform_data/usb-ehci-mxc.h (100%)
 rename arch/arm/plat-orion/include/plat/ehci-orion.h => include/linux/platform_data/usb-ehci-orion.h (100%)
 rename arch/arm/plat-samsung/include/plat/ehci.h => include/linux/platform_data/usb-ehci-s5p.h (100%)
 rename arch/arm/mach-exynos/include/mach/ohci.h => include/linux/platform_data/usb-exynos.h (100%)
 rename arch/arm/plat-mxc/include/mach/usb.h => include/linux/platform_data/usb-imx_udc.h (100%)
 rename arch/arm/mach-ux500/include/mach/usb.h => include/linux/platform_data/usb-musb-ux500.h (100%)
 rename arch/arm/plat-mxc/include/mach/mx21-usbhost.h => include/linux/platform_data/usb-mx2.h (100%)
 rename arch/arm/mach-pxa/include/mach/ohci.h => include/linux/platform_data/usb-ohci-pxa27x.h (100%)
 rename arch/arm/plat-samsung/include/plat/usb-control.h => include/linux/platform_data/usb-ohci-s3c2410.h (100%)
 rename arch/arm/mach-pxa/include/mach/pxa3xx-u2d.h => include/linux/platform_data/usb-pxa3xx-ulpi.h (100%)
 rename arch/arm/plat-samsung/include/plat/udc.h => include/linux/platform_data/usb-s3c2410_udc.h (100%)
 rename arch/arm/mach-ep93xx/include/mach/fb.h => include/linux/platform_data/video-ep93xx.h (100%)
 rename arch/arm/plat-mxc/include/mach/imxfb.h => include/linux/platform_data/video-imxfb.h (100%)
 rename arch/arm/mach-msm/include/mach/msm_fb.h => include/linux/platform_data/video-msm_fb.h (100%)
 rename arch/arm/plat-mxc/include/mach/mx3fb.h => include/linux/platform_data/video-mx3fb.h (100%)
 rename arch/arm/mach-w90x900/include/mach/fb.h => include/linux/platform_data/video-nuc900fb.h (100%)
 rename arch/arm/mach-pxa/include/mach/pxafb.h => include/linux/platform_data/video-pxafb.h (100%)
 rename arch/arm/mach-vt8500/include/mach/vt8500fb.h => include/linux/platform_data/video-vt8500lcdfb.h (100%)

^ permalink raw reply

* [PATCH] [ARM] Enable the second I2C bus on Marvell Kirkwood
From: Jason Gunthorpe @ 2012-10-01 23:59 UTC (permalink / raw)
  To: linux-arm-kernel

mv64xxx_of_config requires that the tclk frequency be found
through the clk stuff rather than through device tree, so add
another override for the 2nd controller.

Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
---
 arch/arm/mach-kirkwood/board-dt.c |    2 ++
 arch/arm/mach-kirkwood/common.c   |    1 +
 2 files changed, 3 insertions(+), 0 deletions(-)

of_serial specifies the tclk frequency (via clock-frequency) in the
DT, should the i2c have the same option?

diff --git a/arch/arm/mach-kirkwood/board-dt.c b/arch/arm/mach-kirkwood/board-dt.c
index d00223e..4428f2f 100644
--- a/arch/arm/mach-kirkwood/board-dt.c
+++ b/arch/arm/mach-kirkwood/board-dt.c
@@ -30,6 +30,8 @@ struct of_dev_auxdata kirkwood_auxdata_lookup[] __initdata = {
 	OF_DEV_AUXDATA("marvell,orion-spi", 0xf1010600, "orion_spi.0", NULL),
 	OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011000, "mv64xxx_i2c.0",
 		       NULL),
+	OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011100, "mv64xxx_i2c.1",
+		       NULL),
 	OF_DEV_AUXDATA("marvell,orion-wdt", 0xf1020300, "orion_wdt", NULL),
 	OF_DEV_AUXDATA("marvell,orion-sata", 0xf1080000, "sata_mv.0", NULL),
 	OF_DEV_AUXDATA("marvell,orion-nand", 0xf4000000, "orion_nand", NULL),
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
index 4177304..0cc2bd2 100644
--- a/arch/arm/mach-kirkwood/common.c
+++ b/arch/arm/mach-kirkwood/common.c
@@ -278,6 +278,7 @@ void __init kirkwood_clk_init(void)
 	orion_clkdev_add("1", "pcie", pex1);
 	orion_clkdev_add(NULL, "kirkwood-i2s", audio);
 	orion_clkdev_add(NULL, MV64XXX_I2C_CTLR_NAME ".0", runit);
+	orion_clkdev_add(NULL, MV64XXX_I2C_CTLR_NAME ".1", runit);
 
 	/* Marvell says runit is used by SPI, UART, NAND, TWSI, ...,
 	 * so should never be gated.
-- 
1.7.5.4

^ permalink raw reply related

* [PATCH 1/1] Fix segfault in DTC
From: David Gibson @ 2012-10-02  0:08 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <5069C7A5.8090409@wwwdotorg.org>

On Mon, Oct 01, 2012 at 10:41:09AM -0600, Stephen Warren wrote:
> On 10/01/2012 12:46 AM, David Gibson wrote:
> > On Sun, Sep 30, 2012 at 11:34:50PM -0600, Stephen Warren wrote:
> >> On 09/29/2012 05:53 PM, David Gibson wrote:
> >>> On Fri, Sep 28, 2012 at 01:05:33PM -0600, Stephen Warren wrote:
> >>>> On 09/28/2012 12:53 PM, Jon Loeliger wrote:
> >>>>>>>
> >>>>>>> Yeah, seems like the kernel DTC is quite old.
> >>>>>>
> >>>>>> FYI, I'm working on a patch to the kernel to bring in the latest dtc.
> >>>>>
> >>>>> Awesome.  Thank you.
> >>>>>
> >>>>>> I've run a regression test vs. the old dtc in the kernel ...
> >>>>>
> >>>>> Which is the icky step.  Again, thank you.
> >>>>>
> >>>>>> ... and found that
> >>>>>> some of the PowerPC .dts files don't compile with the new dtc (but did
> >>>>>> with the old), all due to non-existent labels/paths being referenced.
> >>>>>> I'll try and track down whether this is a regression in dtc, or simply
> >>>>>> buggy .dts files that weren't noticed before.
> >>>>>
> >>>>> I think you should just smack the PowerPC guys. :-)
> >>>>
> >>>> For the record in this thread, it was a regression I introduced into dtc
> >>>> - the patch I just sent was for this.
> >>>
> >>> I would be nice to add a testcase for this regression into dtc.
> >>
> >> The issue here was caused by uninitialized memory, so it would, I think,
> >> be basically impossible to create a test-case that would be guaranteed
> >> to fail because of this; it'd depend on the internal details of the
> >> malloc library and how/when it re-used previously free()d memory blocks.
> > 
> > It doesn't have to be guaranteed to fail to be useful.  Plus, we
> > already have the infrastructure to run the tests under valgrind, which
> > would catch it.
> 
> I certainly disagree here; the absolute worst kind of test is one which
> gives different results each time it's run, or statically gives
> different results to different people. People will either ignore the
> test because it's flaky, or it'll end up blaming the wrong person due to
> some entirely unrelated and correct change just happening to tickle the
> test.

I'd agree 100% if the test could give false failures.  But in this
case it can only give false passes.  If the test fails there is a bug
*somewhere*, even if it's not actually in whatever changed last.  The
test framework actually has a "PASS (inconclusive)" result for exactly
this sort of case.

> If we were to force any such new test to always run under valgrind, then
> hopefully the test would always fail (assuming the test harness triggers
> failure if valgrind finds problems).

Aside: it's supposed to;  if it doesn't, that's a bug.  You can try it
easily enough with "make checkm".

> That might be reasonable. However,
> if we do this, then I think instead we should just always force the
> entire existing test suite to run under valgrind; no new test should be
> needed for valgrind to detect this failure (since there was a
> read-before-write problem any time a label was used in the existing
> code, it just didn't always cause a user-visible issue).

Hrm.  I don't want to run the whole testsuite under valgrind by
default for a couple of reasons.  First, it's much, much slower, and
second you need to have valgrind installed.  Both these would
discourage people from running the testsuite so frequently, and even
without valgrind it's very, very useful.

I guess we could make the new one a "valgrind only" test, that's we
only bother to execute when the valgrind options are enabled.

> Another alternative might be to LD_PRELOAD a test malloc library with a
> known allocation pattern. That would allow a new test for this case to
> always fail. However, the allocation pattern of this test malloc library
> would have to be carefully tied to the allocation pattern of dtc itself
> when processing the new test's .dts file, and that could easily and
> legitimately change due to unrelated implementation details of dtc
> changing, thus making the maintenance of the test malloc library
> painful. So, I don't think this is the way to go.

Hrm.  A malloc() with a "known buggy" allocation pattern would be
impractical, I agree.  But it occurred to me that a much simpler
malloc() wrapper which filled each allocated block with garbage
(non-zero) data before returning it would be sufficient in this case.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

^ permalink raw reply

* [PATCH] ARM: hw_breakpoint: Clear breakpoints before enabling monitor mode
From: Stephen Boyd @ 2012-10-02  0:34 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20120924171934.GE5522@mudshark.cambridge.arm.com>

On 09/24/12 10:19, Will Deacon wrote:
> Ok, I've pushed a bunch of patches to my hw-breakpoint branch (head commit
> 55cb726797c7). I'll post them to the list after the merge window, but please
> do take them for a spin if you get a chance.
>

Forgot to reply here. Took them for a spin last week with that commit.
No more boot hangs but I can't say much else beyond that. When you post
to the list I'll add my tested-by.

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation

^ permalink raw reply

* [PATCH] [ARM] Enable the second I2C bus on Marvell Kirkwood
From: Jason Cooper @ 2012-10-02  0:52 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20121001235932.GA678@obsidianresearch.com>

On Mon, Oct 01, 2012 at 05:59:32PM -0600, Jason Gunthorpe wrote:
> mv64xxx_of_config requires that the tclk frequency be found
> through the clk stuff rather than through device tree, so add
> another override for the 2nd controller.
> 
> Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>

Thanks for the patch, Jason.  Looks good.  One small note, please don't
forget to CC: the maintainers in future submissions.  In this case,
myself and Andrew Lunn.

thx,

Jason.

> ---
>  arch/arm/mach-kirkwood/board-dt.c |    2 ++
>  arch/arm/mach-kirkwood/common.c   |    1 +
>  2 files changed, 3 insertions(+), 0 deletions(-)
> 
> of_serial specifies the tclk frequency (via clock-frequency) in the
> DT, should the i2c have the same option?
> 
> diff --git a/arch/arm/mach-kirkwood/board-dt.c b/arch/arm/mach-kirkwood/board-dt.c
> index d00223e..4428f2f 100644
> --- a/arch/arm/mach-kirkwood/board-dt.c
> +++ b/arch/arm/mach-kirkwood/board-dt.c
> @@ -30,6 +30,8 @@ struct of_dev_auxdata kirkwood_auxdata_lookup[] __initdata = {
>  	OF_DEV_AUXDATA("marvell,orion-spi", 0xf1010600, "orion_spi.0", NULL),
>  	OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011000, "mv64xxx_i2c.0",
>  		       NULL),
> +	OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011100, "mv64xxx_i2c.1",
> +		       NULL),
>  	OF_DEV_AUXDATA("marvell,orion-wdt", 0xf1020300, "orion_wdt", NULL),
>  	OF_DEV_AUXDATA("marvell,orion-sata", 0xf1080000, "sata_mv.0", NULL),
>  	OF_DEV_AUXDATA("marvell,orion-nand", 0xf4000000, "orion_nand", NULL),
> diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
> index 4177304..0cc2bd2 100644
> --- a/arch/arm/mach-kirkwood/common.c
> +++ b/arch/arm/mach-kirkwood/common.c
> @@ -278,6 +278,7 @@ void __init kirkwood_clk_init(void)
>  	orion_clkdev_add("1", "pcie", pex1);
>  	orion_clkdev_add(NULL, "kirkwood-i2s", audio);
>  	orion_clkdev_add(NULL, MV64XXX_I2C_CTLR_NAME ".0", runit);
> +	orion_clkdev_add(NULL, MV64XXX_I2C_CTLR_NAME ".1", runit);
>  
>  	/* Marvell says runit is used by SPI, UART, NAND, TWSI, ...,
>  	 * so should never be gated.
> -- 
> 1.7.5.4
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* [GIT PULL 0/12] ARM: soc: updates for 3.7, first batch
From: Linus Torvalds @ 2012-10-02  2:22 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1349135827-24790-1-git-send-email-olof@lixom.net>

On Mon, Oct 1, 2012 at 4:56 PM, Olof Johansson <olof@lixom.net> wrote:
>
> Here is the first batch of pull requests for arm-soc for this merge
> window. Some of them are tiny, and we will probably start to combine
> them into slightly larger misc branches in the future. I didn't do it
> this time around since the dependencies between branches ended up quite
> complex this time around.

Ok, I've merged them all. As usual, my end result is slightly
different from yours, although the differences are pretty small.

 - I added exynos4210-trats.dtb to the "dtb-$(CONFIG_ARCH_EXYNOS)"
case in arch/arm/boot/dts/Makefile

   That seemed to be the right thing, otherwise that dtb file isn't
actually accessed from anything. Hmm?

 - Commit dbc04161048d ("ARM: OMAP: Split plat/hardware.h, use local
soc.h for omap2+") added the line

    #include "soc.h"

   to arch/arm/mach-omap2/omap_l3_noc.c, and I left it in as it moved
into drivers/bus/.

   My resolution is quite possibly wrong, but I didn't know what the
right thing to do was. Please double-check.

 - non-semantic order/whitespace difference for
CONFIG_CLKSRC_ARM_GENERIC in drivers/clocksource/Makefile.

   I didn't want to mix the generic case up with the random cases.

Anyway, you should double-check the merges, the "soc.h" one in
particular is suspect.

          Linus

^ permalink raw reply

* [GIT PULL 0/12] ARM: soc: updates for 3.7, first batch
From: Linus Torvalds @ 2012-10-02  2:26 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <CA+55aFwoDOdKv9wcqEPkE76+w2TCz+419qp94T3_70jK9dR3-A@mail.gmail.com>

On Mon, Oct 1, 2012 at 7:22 PM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> Ok, I've merged them all. As usual, my end result is slightly
> different from yours, although the differences are pretty small.

Oh, one more thing: I suspect the OMAP_OCP2SCP config option should
depend on CONFIG_ARM or something. Just based on the name, I assume it
doesn't actually work on x86-64, but I see the question..

               Linus

^ permalink raw reply

* [GIT PULL 0/12] ARM: soc: updates for 3.7, first batch
From: Olof Johansson @ 2012-10-02  2:34 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <CA+55aFwoDOdKv9wcqEPkE76+w2TCz+419qp94T3_70jK9dR3-A@mail.gmail.com>

Hi,

On Mon, Oct 01, 2012 at 07:22:34PM -0700, Linus Torvalds wrote:
> On Mon, Oct 1, 2012 at 4:56 PM, Olof Johansson <olof@lixom.net> wrote:
> >
> > Here is the first batch of pull requests for arm-soc for this merge
> > window. Some of them are tiny, and we will probably start to combine
> > them into slightly larger misc branches in the future. I didn't do it
> > this time around since the dependencies between branches ended up quite
> > complex this time around.
> 
> Ok, I've merged them all. As usual, my end result is slightly
> different from yours, although the differences are pretty small.

Thanks!

>  - I added exynos4210-trats.dtb to the "dtb-$(CONFIG_ARCH_EXYNOS)"
> case in arch/arm/boot/dts/Makefile
>
>    That seemed to be the right thing, otherwise that dtb file isn't
> actually accessed from anything. Hmm?

Hmm. I know I did that edit. I've had cases where git rerere has forgotten
about edits to "new" files that were not part of the original conflict, and
I might have replayed that merge and lost it there. Thanks for catching it.

>  - Commit dbc04161048d ("ARM: OMAP: Split plat/hardware.h, use local
> soc.h for omap2+") added the line
> 
>     #include "soc.h"
> 
>    to arch/arm/mach-omap2/omap_l3_noc.c, and I left it in as it moved
> into drivers/bus/.
> 
>    My resolution is quite possibly wrong, but I didn't know what the
> right thing to do was. Please double-check.

I had a patch for this but I forgot to move the tag to include it, my local
branch with the resolutions has it since I used the branch head, not the tag,
to merge it.

The SHA is a55eb3ec0e38e2db17207b204c050fbcdf750abb. Or the patch is included
below if that's easier.

>  - non-semantic order/whitespace difference for
> CONFIG_CLKSRC_ARM_GENERIC in drivers/clocksource/Makefile.
>
>    I didn't want to mix the generic case up with the random cases.

Yes, makes sense, thanks. I wonder if the file should be sorted to reduce
conflicts on new additions soon anyway, maybe.

> Anyway, you should double-check the merges, the "soc.h" one in
> particular is suspect.

Yes, my bad for not remembering to move the tag forward. The patch is below.

Thanks!

-Olof


>From a55eb3ec0e38e2db17207b204c050fbcdf750abb Mon Sep 17 00:00:00 2001
From: Olof Johansson <olof@lixom.net>
Date: Thu, 20 Sep 2012 16:14:25 -0700
Subject: [PATCH] drivers: bus: omap_l3: fixup merge conflict resolution

This fixes a local merge conflict resolution done wrong locally in
arm-soc for-next. soc.h was added on a cleanup branch, but the driver
was moved and the header no longer needed.

Signed-off-by: Olof Johansson <olof@lixom.net>
---
 arch/arm/mach-omap2/omap_l3_noc.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/arch/arm/mach-omap2/omap_l3_noc.c b/arch/arm/mach-omap2/omap_l3_noc.c
index f447e02..4f8f3cf 100644
--- a/arch/arm/mach-omap2/omap_l3_noc.c
+++ b/arch/arm/mach-omap2/omap_l3_noc.c
@@ -28,7 +28,6 @@
 #include <linux/kernel.h>
 #include <linux/slab.h>
 
-#include "soc.h"
 #include "omap_l3_noc.h"
 
 /*
-- 
1.7.10.1.488.g05fbf7a

^ permalink raw reply related

* [GIT PULL 0/12] ARM: soc: updates for 3.7, first batch
From: Olof Johansson @ 2012-10-02  2:43 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <CA+55aFzmm=y85k81kAfgiuBb=oaFxi0f83hFb32Y2tTHu1wozw@mail.gmail.com>

On Mon, Oct 01, 2012 at 07:26:26PM -0700, Linus Torvalds wrote:
> On Mon, Oct 1, 2012 at 7:22 PM, Linus Torvalds
> <torvalds@linux-foundation.org> wrote:
> >
> > Ok, I've merged them all. As usual, my end result is slightly
> > different from yours, although the differences are pretty small.
> 
> Oh, one more thing: I suspect the OMAP_OCP2SCP config option should
> depend on CONFIG_ARM or something. Just based on the name, I assume it
> doesn't actually work on x86-64, but I see the question..

Ah, yes. It should build fine and not cause breakage, but it's largely
pointless to offer the option. Patch below.


-Olof


>From 5ae0b658cc10af29d7a0a66f2a412a754011ca0e Mon Sep 17 00:00:00 2001
From: Olof Johansson <olof@lixom.net>
Date: Mon, 1 Oct 2012 19:39:33 -0700
Subject: [PATCH] drivers/bus: make ocp2scp depend on OMAP2+

No use in enabling the driver on platforms where it won't be useful.

Signed-off-by: Olof Johansson <olof@lixom.net>
Cc: Tony Lindgren <tony@atomide.com>
---
 drivers/bus/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/bus/Kconfig b/drivers/bus/Kconfig
index bbec35d..0f51ed6 100644
--- a/drivers/bus/Kconfig
+++ b/drivers/bus/Kconfig
@@ -6,6 +6,7 @@ menu "Bus devices"
 
 config OMAP_OCP2SCP
 	tristate "OMAP OCP2SCP DRIVER"
+	depends on ARCH_OMAP2PLUS
 	help
 	  Driver to enable ocp2scp module which transforms ocp interface
 	  protocol to scp protocol. In OMAP4, USB PHY is connected via
-- 
1.7.10.1.488.g05fbf7a

^ permalink raw reply related

* [GIT PULL 0/12] ARM: soc: updates for 3.7, first batch
From: Tony Lindgren @ 2012-10-02  3:03 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20121002023420.GA838@quad.lixom.net>

* Olof Johansson <olof@lixom.net> [121001 19:36]:
> On Mon, Oct 01, 2012 at 07:22:34PM -0700, Linus Torvalds wrote:
> 
> > Anyway, you should double-check the merges, the "soc.h" one in
> > particular is suspect.
> 
> Yes, my bad for not remembering to move the tag forward. The patch is below.

Thanks, the current head is building just fine for omaps
with that fix.

Regards,

Tony

^ permalink raw reply

* [PATCH V2 0/7] ARM: OMAP: Move plat/dma*.h,omap-secure.h headers as part of single zImage work
From: Tony Lindgren @ 2012-10-02  3:21 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1349117226-4980-1-git-send-email-lokeshvutla@ti.com>

* Lokesh Vutla <lokeshvutla@ti.com> [121001 11:48]:
> Patch 1:
> 	Dropping the file plat/dma44xx.h as none of the omap44xx
> 	dma channel definitions are used.
> Patch 2:
> 	Moving OMAP1 DMA channel definitions to mach-omap1
> Patch 3:
> 	Moving OMAP2+ DMA channel definitions to mach-omap2
> Patch 4:
> 	Moving plat/dma.h to plat-omap/dma-omap.h
> Patch 5:
> 	Removing omap_reserve() callback from all omap1 board files.
> Patch 6:
> 	Defining omap_reserve() locally to mach-omap2.
> Patch 7:
> 	Move plat/omap-secure.h locally to mach-omap2
> 
> Lokesh Vutla (7):
>   ARM: OMAP: DMA: Removing plat/dma-44xx.h
>   ARM: OMAP1: DMA: Moving OMAP1 DMA channel definitions to mach-omap1
>   ARM: OMAP2+: DMA: Moving OMAP2 DMA channel definitions to mach-omap2
>   ARM: OMAP: DMA: Move plat/dma.h to plat-omap/dma-omap.h
>   ARM: OMAP1: Remove omap_reserve() callback for all omap1 boards
>   ARM: OMAP2+: Move omap_reserve() locally to mach-omap2
>   ARM: OMAP: Move plat/omap-secure.h locally to mach-omap2

Thanks, I'll be applying these probably at -rc1. If anybody
has better ideas for the move of plat/dma.h to plat-omap/dma-omap.h,
please yell out now.

Regards,

Tony

^ permalink raw reply

* [PATCH V2 0/3] Add clock framework for armada 370/XP
From: Mike Turquette @ 2012-10-02  4:17 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1349125926-16144-1-git-send-email-gregory.clement@free-electrons.com>

Quoting Gregory CLEMENT (2012-10-01 14:12:03)
> Hello Mike,
> 
> My first version didn't get many attention, so I guess it's too late
> for 3.7! ;) I should have ping you earlier about this series. This
> time was not lost, by using the cpu clock with SMP I found a bug and
> fixed it. And I also improved the spelling and removed unnecessary
> small piece of code thanks to the feed back of Andrew Lunn.
> 

My apologies for letting this one slip through the cracks.  I'm glad you
fixed the bug though!

I'll give this a review once the -rc1 merge window is closed.

Regards,
Mike

> The purpose of this patch set is to add support for clock framework
> for Armada 370 and Armada XP SoCs. All the support is done under the
> directory drivers/clk/mvebu/ as the support for other mvebu SoCs was
> in mind during the writing of the code.
> 
> Two kinds of clocks are added:
> 
> - The CPU clocks are only for Armada XP (which si multi-core)
> 
> - The core clocks are clocks which have their rate fixed during
>   reset.
> 
> This patch set is based on the clk-3.7 branch of Mike Turquette as it
> use the patch "clk: add of_clk_src_onecell_get() support" from Shawn
> Guo.
> 
> Many thanks to Thomas Petazzoni and Sebastian Hesselbarth for their
> review and feedback. The device tree bindings were really improved
> with the advices of Sebastian.
> 
> Changelog:
> V1 -> V2:
> 
> - Improved the spelling and the wording of the documentation and the
>   1st commit log
> - Removed the "end_of_list" name which are unused here.
> - Fix the cpu clock by using of_clk_src_onecell_get in the same way it
>   was used for the core clocks
> 
> Regards,
> 
> Gregory CLEMENT (3):
>   clk: mvebu: add armada-370-xp specific clocks
>   clk: armada-370-xp: add support for clock framework
>   clocksource: time-armada-370-xp converted to clk framework
> 
>  .../devicetree/bindings/clock/mvebu-core-clock.txt |   40 +++
>  .../devicetree/bindings/clock/mvebu-cpu-clock.txt  |   21 ++
>  arch/arm/boot/dts/armada-370-db.dts                |    4 -
>  arch/arm/boot/dts/armada-370-xp.dtsi               |    1 +
>  arch/arm/boot/dts/armada-370.dtsi                  |   12 +
>  arch/arm/boot/dts/armada-xp.dtsi                   |   48 +++
>  arch/arm/mach-mvebu/Kconfig                        |    5 +
>  arch/arm/mach-mvebu/armada-370-xp.c                |    8 +-
>  arch/arm/mach-mvebu/common.h                       |    1 +
>  drivers/clk/Makefile                               |    1 +
>  drivers/clk/mvebu/Makefile                         |    2 +
>  drivers/clk/mvebu/clk-core.c                       |  312 ++++++++++++++++++++
>  drivers/clk/mvebu/clk-core.h                       |   19 ++
>  drivers/clk/mvebu/clk-cpu.c                        |  155 ++++++++++
>  drivers/clk/mvebu/clk-cpu.h                        |   19 ++
>  drivers/clk/mvebu/clk.c                            |   36 +++
>  drivers/clocksource/time-armada-370-xp.c           |   11 +-
>  17 files changed, 685 insertions(+), 10 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/clock/mvebu-core-clock.txt
>  create mode 100644 Documentation/devicetree/bindings/clock/mvebu-cpu-clock.txt
>  create mode 100644 drivers/clk/mvebu/Makefile
>  create mode 100644 drivers/clk/mvebu/clk-core.c
>  create mode 100644 drivers/clk/mvebu/clk-core.h
>  create mode 100644 drivers/clk/mvebu/clk-cpu.c
>  create mode 100644 drivers/clk/mvebu/clk-cpu.h
>  create mode 100644 drivers/clk/mvebu/clk.c
> 
> -- 
> 1.7.9.5

^ permalink raw reply

* How many cores does the ARM branch support?
From: Michelle Konzack @ 2012-10-02  4:31 UTC (permalink / raw)
  To: linux-arm-kernel

Hello OverGeeks and *,

I have gotten a new gadget which run only with 700MHz but has  32 cores.
Support 16 GE Interfaces a 50 Gbit universal interface and 4 PCIe ports,
SATA HDD and much more...

...and yes, this ARM microcontroller is a telecommunications controller.

However, I have the Evaluation  Kit  and  a  PCIe  graphiccard  and  now
installed Debian ARMEL.  Unfortunately I get only 2 cores working...

What must I do to get the other 30 cores?

(without them, my Marvel Discovery MV78200 us 5 times faster)

And is it possibel, to get 100 cores running?
(this is the bigger version of the microcontroller I have)

I like to transform the 32 and 100 core versions into PanelPCs with  the
ultimate super power...  :-D  ...even it will be only a gadget for me!

Thanks, Greetings and nice Day/Evening
    Michelle Konzack

-- 
##################### Debian GNU/Linux Consultant ######################
   Development of Intranet and Embedded Systems with Debian GNU/Linux
               Internet Service Provider, Cloud Computing
                <http://www.itsystems.tamay-dogan.net/>

itsystems at tdnet                     Jabber  linux4michelle at jabber.ccc.de
Owner Michelle Konzack

Gewerbe Strasse 3                   Tel office: +49-176-86004575
77694 Kehl                          Tel mobil:  +49-177-9351947
Germany                             Tel mobil:  +33-6-61925193  (France)

USt-ID:  DE 278 049 239

Linux-User #280138 with the Linux Counter, http://counter.li.org/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.pgp
Type: application/pgp-signature
Size: 190 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20121002/32fc8ba9/attachment.sig>

^ permalink raw reply

* linux-next: manual merge of the arm-soc tree with the spi-mb tree
From: Stephen Rothwell @ 2012-10-02  5:13 UTC (permalink / raw)
  To: linux-arm-kernel

Hi all,

Today's linux-next merge of the arm-soc tree got a conflict in
drivers/spi/Kconfig between commit 536a53a300d0 ("spi: remove completely
broken Tegra driver") from the spi-mb tree and commit 5bd276118189 ("spi:
tegra: remove support of legacy DMA driver based access") from the
arm-soc tree.

I fixed it up (by removing the SPI_TEGRA section) and can carry the fix
as necessary (no action is required).

-- 
Cheers,
Stephen Rothwell                    sfr at canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20121002/46803068/attachment-0001.sig>

^ permalink raw reply

* linux-next: manual merge of the arm-soc tree with the spi-mb tree
From: Stephen Rothwell @ 2012-10-02  5:18 UTC (permalink / raw)
  To: linux-arm-kernel

Hi all,

Today's linux-next merge of the arm-soc tree got a conflict in
drivers/spi/spi-tegra.c between commit 536a53a300d0 ("spi: remove
completely broken Tegra driver") from the spi-mb tree and commit
5bd276118189 ("spi: tegra: remove support of legacy DMA driver based
access") from the arm-soc tree.

I removed the file and can carry the fix as necessary (no action is
required).

-- 
Cheers,
Stephen Rothwell                    sfr at canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20121002/7ebb744c/attachment.sig>

^ permalink raw reply

* [PATCHv3 2/4] Input: keypad: Add smsc ece1099 keypad driver
From: Dmitry Torokhov @ 2012-10-02  6:18 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1349089310-22134-1-git-send-email-sourav.poddar@ti.com>

Hi Sourav,

On Mon, Oct 01, 2012 at 04:31:50PM +0530, Sourav Poddar wrote:
> From: G, Manjunath Kondaiah <manjugk@ti.com>
> 
> SMSC ECE1099 is a keyboard scan or GPIO expansion device.The device
> supports a keypad scan matrix of 23*8.This driver uses this
> device as a keypad driver.
> 
> Tested on omap5430 evm with 3.6-rc6 custom kernel.
> 
> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> Cc: Benoit Cousson <b-cousson@ti.com>
> Cc: Felipe Balbi <balbi@ti.com>
> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
> Signed-off-by: G, Manjunath Kondaiah <manjugk@ti.com>
> Signed-off-by: Sourav Poddar <sourav.poddar@ti.com>
> Acked-by: Felipe Balbi <balbi@ti.com>
> ---
> Changes since v2:
>  - Replace magic numbers through driver variable.
>  - Provide comments for some initialisation done in probe.
>  drivers/input/keyboard/Kconfig               |   11 +
>  drivers/input/keyboard/Makefile              |    1 +
>  drivers/input/keyboard/smsc-ece1099-keypad.c |  304 ++++++++++++++++++++++++++
>  3 files changed, 316 insertions(+), 0 deletions(-)
>  create mode 100644 drivers/input/keyboard/smsc-ece1099-keypad.c
> 
> diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
> index c50fa75..b03a39c 100644
> --- a/drivers/input/keyboard/Kconfig
> +++ b/drivers/input/keyboard/Kconfig
> @@ -593,6 +593,17 @@ config KEYBOARD_TWL4030
>  	  To compile this driver as a module, choose M here: the
>  	  module will be called twl4030_keypad.
>  
> +config KEYBOARD_SMSC
> +       tristate "SMSC ECE1099 keypad support"

Should also select INPUT_MATRIXKMAP.

> +       depends on I2C
> +       help
> +         Say Y here if your board use the smsc keypad controller
> +         for omap5 defconfig. It's safe to say enable this
> +         even on boards that don't use the keypad controller.
> +
> +         To compile this driver as a module, choose M here: the
> +         module will be called smsc-ece1099-keypad.
> +
>  config KEYBOARD_XTKBD
>  	tristate "XT keyboard"
>  	select SERIO
> diff --git a/drivers/input/keyboard/Makefile b/drivers/input/keyboard/Makefile
> index 44e7600..0f2aa26 100644
> --- a/drivers/input/keyboard/Makefile
> +++ b/drivers/input/keyboard/Makefile
> @@ -52,5 +52,6 @@ obj-$(CONFIG_KEYBOARD_TC3589X)		+= tc3589x-keypad.o
>  obj-$(CONFIG_KEYBOARD_TEGRA)		+= tegra-kbc.o
>  obj-$(CONFIG_KEYBOARD_TNETV107X)	+= tnetv107x-keypad.o
>  obj-$(CONFIG_KEYBOARD_TWL4030)		+= twl4030_keypad.o
> +obj-$(CONFIG_KEYBOARD_SMSC)            += smsc-ece1099-keypad.o
>  obj-$(CONFIG_KEYBOARD_XTKBD)		+= xtkbd.o
>  obj-$(CONFIG_KEYBOARD_W90P910)		+= w90p910_keypad.o
> diff --git a/drivers/input/keyboard/smsc-ece1099-keypad.c b/drivers/input/keyboard/smsc-ece1099-keypad.c
> new file mode 100644
> index 0000000..15dc147
> --- /dev/null
> +++ b/drivers/input/keyboard/smsc-ece1099-keypad.c
> @@ -0,0 +1,304 @@
> +/*
> + * SMSC_ECE1099 Keypad driver
> + *
> + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +#include <linux/i2c.h>
> +#include <linux/kernel.h>
> +#include <linux/module.h>
> +#include <linux/init.h>
> +#include <linux/interrupt.h>
> +#include <linux/input.h>
> +#include <linux/gpio.h>
> +#include <linux/slab.h>
> +#include <linux/jiffies.h>
> +#include <linux/input/matrix_keypad.h>
> +#include <linux/delay.h>
> +#include <linux/mfd/core.h>
> +#include <linux/mfd/smsc.h>
> +#include <linux/of_gpio.h>
> +#include <linux/of.h>
> +
> +#define KEYPRESS_TIME          200
> +
> +struct smsc_keypad {
> +	struct smsc *smsc;
> +	struct matrix_keymap_data *keymap_data;
> +	unsigned int last_key_state[16];
> +	unsigned int last_col;
> +	unsigned int last_key_ms[16];
> +	unsigned short *keymap;
> +	struct i2c_client *client;
> +	struct input_dev *input;
> +	int rows, cols;
> +	int row_shift;
> +	bool no_autorepeat;
> +	unsigned        irq;
> +	struct device *dev;
> +};
> +
> +static void smsc_kp_scan(struct smsc_keypad *kp)
> +{
> +	struct input_dev *input = kp->input;
> +	int i, j;
> +	int row, col;
> +	int temp, code;
> +	unsigned int new_state[16];
> +	unsigned int bits_changed;
> +	int this_ms;
> +
> +	smsc_write(kp->dev, SMSC_KP_INT_MASK, 0x00);
> +	smsc_write(kp->dev, SMSC_KP_INT_STAT, 0xFF);
> +
> +	/* Scan for row and column */
> +	for (i = 0; i < kp->cols; i++) {
> +		smsc_write(kp->dev, SMSC_KP_OUT, SMSC_KSO_EVAL + i);
> +		/* Read Row Status */
> +		smsc_read(kp->dev, SMSC_KP_IN, &temp);
> +		if (temp == 0xFF)
> +			continue;
> +
> +		col = i;
> +		for (j = 0; j < kp->rows; j++) {
> +			if ((temp & 0x01) != 0x00) {
> +				temp = temp >> 1;
> +				continue;
> +			}
> +
> +			row = j;
> +			new_state[col] =  (1 << row);
> +			bits_changed = kp->last_key_state[col] ^ new_state[col];
> +			this_ms = jiffies_to_msecs(jiffies);
> +			if (bits_changed != 0 || (!bits_changed &&
> +					((this_ms - kp->last_key_ms[col]) >= KEYPRESS_TIME))) {
> +				code = MATRIX_SCAN_CODE(row, col, kp->row_shift);
> +				input_event(input, EV_MSC, MSC_SCAN, code);
> +				input_report_key(input, kp->keymap[code], 1);
> +				input_report_key(input, kp->keymap[code], 0);
> +				kp->last_key_state[col] = new_state[col];
> +				if (kp->last_col != col)
> +					kp->last_key_state[kp->last_col] = 0;
> +				kp->last_key_ms[col] = this_ms;
> +			}
> +			temp = temp >> 1;
> +		}
> +	}
> +	input_sync(input);
> +
> +	smsc_write(kp->dev, SMSC_KP_INT_MASK, 0xFF);
> +
> +	/* Set up Low Power Mode (Wake-up) (0xFB) */
> +	smsc_write(kp->dev, SMSC_WKUP_CTRL, SMSC_KP_SET_LOW_PWR);
> +
> +	/*Enable Keypad Scan (generate interrupt on key press) (0x40)*/
> +	smsc_write(kp->dev, SMSC_KP_OUT, SMSC_KSO_ALL_LOW);
> +}
> +
> +static irqreturn_t do_kp_irq(int irq, void *_kp)
> +{
> +	struct smsc_keypad *kp = _kp;
> +	int int_status;
> +
> +	smsc_read(kp->dev, SMSC_KP_INT_STAT, &int_status);
> +	if (int_status)
> +		smsc_kp_scan(kp);
> +
> +	return IRQ_HANDLED;
> +}
> +
> +#ifdef CONFIG_OF
> +static int __devinit smsc_keypad_parse_dt(struct device *dev,
> +				struct smsc_keypad *kp)
> +{
> +	struct device_node *np = dev->of_node;
> +
> +	if (!np) {
> +		dev_err(dev, "missing DT data");
> +		return -EINVAL;
> +	}
> +
> +	of_property_read_u32(np, "keypad,num-rows", &kp->rows);
> +	of_property_read_u32(np, "keypad,num-columns", &kp->cols);
> +	if (!kp->rows || !kp->cols) {
> +		dev_err(dev, "number of keypad rows/columns not specified\n");
> +		return -EINVAL;
> +	}
> +
> +	if (of_property_read_bool(np, "linux,input-no-autorepeat"))
> +		kp->no_autorepeat = true;
> +
> +	return 0;
> +}
> +#else
> +static inline int smsc_keypad_parse_dt(struct device *dev,
> +				struct smsc_keypad *kp)
> +{
> +	return -ENOSYS;
> +}
> +#endif
> +
> +static int __devinit
> +smsc_probe(struct platform_device *pdev)
> +{
> +	struct device *dev = &pdev->dev;
> +	struct smsc *smsc = dev_get_drvdata(pdev->dev.parent);
> +	struct input_dev *input;
> +	struct smsc_keypad *kp;
> +	int ret = 0, error;
> +	int col, i, max_keys, row_shift;
> +	int irq;
> +	int addr;
> +
> +	kp = devm_kzalloc(dev, sizeof(*kp), GFP_KERNEL);
> +
> +	input = input_allocate_device();
> +	if (!kp || !input) {
> +		error = -ENOMEM;
> +		goto err1;
> +	}
> +
> +	error = smsc_keypad_parse_dt(&pdev->dev, kp);

It doe snot look like the driver is useful without DT... Should it
simply depend on OF and not even provide !OF stubs?

> +	if (error)

You are leaking input device here.

> +		return error;
> +
> +	/* Get the debug Device */
> +	kp->input = input;
> +	kp->smsc = smsc;
> +	kp->irq = platform_get_irq(pdev, 0);
> +	kp->dev = dev;
> +
> +	for (col = 0; col < 16; col++) {
> +		kp->last_key_state[col] = 0;
> +		kp->last_key_ms[col] = 0;

kzalloc should have already taken care of this.

> +	}
> +
> +	/* setup input device */
> +	 __set_bit(EV_KEY, input->evbit);
> +
> +	/* Enable auto repeat feature of Linux input subsystem */
> +	if (!(kp->no_autorepeat))

No need for extra parenthesis.

> +		__set_bit(EV_REP, input->evbit);
> +
> +	input_set_capability(input, EV_MSC, MSC_SCAN);
> +	input->name             = "SMSC Keypad";
> +	input->phys             = "smsc_keypad/input0";
> +	input->dev.parent       = &pdev->dev;
> +	input->id.bustype       = BUS_HOST;
> +	input->id.vendor        = 0x0001;
> +	input->id.product       = 0x0001;
> +	input->id.version       = 0x0003;
> +
> +	error = input_register_device(input);
> +	if (error) {
> +		dev_err(kp->dev,
> +			"Unable to register twl4030 keypad device\n");
> +		goto err1;
> +	}
> +
> +	/* Mask all GPIO interrupts (0x37-0x3B) */
> +	for (addr = SMSC_GPIO_INT_MASK_START;
> +			addr < SMSC_GPIO_INT_MASK_START + 4; addr++)
> +		smsc_write(dev, addr, 0);
> +
> +	/* Set all outputs high (0x05-0x09) */
> +	for (addr = SMSC_GPIO_DATA_OUT_START;
> +			addr < SMSC_GPIO_DATA_OUT_START + 4; addr++)
> +		smsc_write(dev, addr, 0xff);
> +
> +	/* Clear all GPIO interrupts (0x32-0x36) */
> +	for (addr = SMSC_GPIO_INT_STAT_START;
> +			addr < SMSC_GPIO_INT_STAT_START + 4; addr++)
> +		smsc_write(dev, addr, 0xff);
> +
> +	/* Configure the smsc pins as Keyboard scan Input */
> +	for (i = 0; i <= kp->rows; i++) {
> +		addr = 0x12 + i;
> +		smsc_write(dev, addr, SMSC_KP_KSI);
> +	}
> +
> +	/* Configure the smsc pins as Keyboard scan output */
> +	for (i = 0; i <= kp->cols; i++) {
> +		addr = 0x1A + i;
> +		smsc_write(dev, addr, SMSC_KP_KSO);
> +	}
> +
> +	smsc_write(dev, SMSC_KP_INT_STAT, SMSC_KP_SET_HIGH);
> +	smsc_write(dev, SMSC_WKUP_CTRL, SMSC_KP_SET_LOW_PWR);
> +	smsc_write(dev, SMSC_KP_OUT, SMSC_KSO_ALL_LOW);
> +
> +	row_shift = get_count_order(kp->cols);
> +	max_keys = kp->rows << row_shift;
> +
> +	kp->row_shift = row_shift;
> +	kp->keymap = devm_kzalloc(dev, max_keys * sizeof(kp->keymap[0]),
> +					GFP_KERNEL);
> +	if (!kp->keymap) {
> +		dev_err(&pdev->dev, "Not enough memory for keymap\n");
> +		error = -ENOMEM;
> +	}
> +
> +	matrix_keypad_build_keymap(NULL, NULL, kp->rows,
> +			kp->cols, kp->keymap, input);

Needs error handling I believe.

> +
> +	/*
> +	* This ISR will always execute in kernel thread context because of
> +	* the need to access the SMSC over the I2C bus.
> +	*/
> +	ret = devm_request_threaded_irq(dev, kp->irq, NULL, do_kp_irq,
> +			IRQF_TRIGGER_FALLING | IRQF_ONESHOT, pdev->name, kp);
> +	if (ret) {
> +		dev_dbg(&pdev->dev, "request_irq failed for irq no=%d\n",
> +			irq);
> +		goto err2;
> +	}
> +
> +	/* Enable smsc keypad interrupts */
> +	ret = smsc_write(dev, SMSC_KP_INT_MASK, 0xff);
> +	if (ret < 0)
> +		goto err2;
> +
> +	return 0;
> +
> +err2:
> +	input_unregister_device(input);
> +err1:
> +	input_free_device(input);

Double free.

> +	return ret;
> +}
> +
> +static int __devexit smsc_remove(struct platform_device *pdev)
> +{
> +	struct smsc_keypad *kp = platform_get_drvdata(pdev);
> +	input_unregister_device(kp->input);

And your kernel goes *BOOM*

> +
> +	return 0;
> +}
> +
> +#ifdef CONFIG_OF
> +static const struct of_device_id smsc_keypad_dt_match[] = {
> +	{ .compatible = "smsc,keypad" },
> +	{},
> +};
> +MODULE_DEVICE_TABLE(of, smsc_keypad_dt_match);
> +#endif
> +
> +static struct platform_driver smsc_driver = {
> +	.driver = {
> +		.name	= "smsc-keypad",
> +		.of_match_table = of_match_ptr(smsc_keypad_dt_match),
> +		.owner  = THIS_MODULE,
> +	},
> +	.probe		= smsc_probe,
> +	.remove		= __devexit_p(smsc_remove),
> +};
> +
> +module_platform_driver(smsc_driver);
> +
> +MODULE_AUTHOR("G Kondaiah Manjunath <manjugk@ti.com>");
> +MODULE_DESCRIPTION("SMSC ECE1099 Keypad driver");
> +MODULE_LICENSE("GPL v2");
> -- 
> 1.7.1
> 

Thanks.

-- 
Dmitry

^ permalink raw reply

* [RFC] arm/mm: add a protection when flushing anonymous pages
From: Andrew Yan-Pai Chen @ 2012-10-02  7:07 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <CAGCDX1mkPVre6h=9kNbRqCp_wtbOneuRLMXM+mkZWFXPwWkBfg@mail.gmail.com>

On Mon, Oct 1, 2012 at 11:50 AM, Jason Lin <kernel.jason@gmail.com> wrote:
>
> Dear all:
> By the way, I used the CPU with VIPT cache.
> Thanks.
>
> 2012/10/1 Jason Lin <kernel.jason@gmail.com>:
> > Dear all:
> > When I do LTP direct I/O tests, it produced a cache coherence issue
> > caused by flush_pfn_alias() (arch/arm/mm/flush.c).
> > I think we should to disable preemption or lock before setting page
> > table and enable preemption or unlock after flushing pages
> >
> > Any comments are appreciated.
> > Thanks.
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

[RFC PATCH] make flush_pfn_alias() nonpreemptible

Since flush_pfn_alias() is preemptible, it is possible to be
preempted just after set_top_pte() is done. If the process
which preempts the previous happened to invoke flush_pfn_alias()
with the same colour vaddr as that of the previous, the same
top pte will be overwritten. When switching back to the previous,
it attempts to flush cache lines with incorrect mapping. Then
no lines (or wrong lines) will be flushed because of the nature
of vipt caches.

diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c
index 40ca11e..bd07918 100644
--- a/arch/arm/mm/flush.c
+++ b/arch/arm/mm/flush.c
@@ -27,6 +27,8 @@ static void flush_pfn_alias(unsigned long pfn,
unsigned long vaddr)
        unsigned long to = FLUSH_ALIAS_START + (CACHE_COLOUR(vaddr) <<
PAGE_SHIFT);
        const int zero = 0;

+       preempt_disable();
+
        set_top_pte(to, pfn_pte(pfn, PAGE_KERNEL));

        asm(    "mcrr   p15, 0, %1, %0, c14\n"
@@ -34,6 +36,8 @@ static void flush_pfn_alias(unsigned long pfn,
unsigned long vaddr)
            :
            : "r" (to), "r" (to + PAGE_SIZE - L1_CACHE_BYTES), "r" (zero)
            : "cc");
+
+       preempt_enable();
 }

--
Regards,
Andrew

^ permalink raw reply related

* [PATCH V2 0/3] Add clock framework for armada 370/XP
From: Gregory CLEMENT @ 2012-10-02  7:10 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20121002041736.21556.20051@nucleus>

On 10/02/2012 06:17 AM, Mike Turquette wrote:
> Quoting Gregory CLEMENT (2012-10-01 14:12:03)
>> Hello Mike,
>>
>> My first version didn't get many attention, so I guess it's too late
>> for 3.7! ;) I should have ping you earlier about this series. This
>> time was not lost, by using the cpu clock with SMP I found a bug and
>> fixed it. And I also improved the spelling and removed unnecessary
>> small piece of code thanks to the feed back of Andrew Lunn.
>>
> 
> My apologies for letting this one slip through the cracks.  I'm glad you
> fixed the bug though!
> 
> I'll give this a review once the -rc1 merge window is closed.

This time I will remind you as soon as -rc1 will be released ;)

I have an other patch set which will depend on this one. So I hope
this one will be merged early enough in your clk-3.8 branch.

Regards,
Gregory

> 
> Regards,
> Mike
> 
>> The purpose of this patch set is to add support for clock framework
>> for Armada 370 and Armada XP SoCs. All the support is done under the
>> directory drivers/clk/mvebu/ as the support for other mvebu SoCs was
>> in mind during the writing of the code.
>>
>> Two kinds of clocks are added:
>>
>> - The CPU clocks are only for Armada XP (which si multi-core)
>>
>> - The core clocks are clocks which have their rate fixed during
>>   reset.
>>
>> This patch set is based on the clk-3.7 branch of Mike Turquette as it
>> use the patch "clk: add of_clk_src_onecell_get() support" from Shawn
>> Guo.
>>
>> Many thanks to Thomas Petazzoni and Sebastian Hesselbarth for their
>> review and feedback. The device tree bindings were really improved
>> with the advices of Sebastian.
>>
>> Changelog:
>> V1 -> V2:
>>
>> - Improved the spelling and the wording of the documentation and the
>>   1st commit log
>> - Removed the "end_of_list" name which are unused here.
>> - Fix the cpu clock by using of_clk_src_onecell_get in the same way it
>>   was used for the core clocks
>>
>> Regards,
>>
>> Gregory CLEMENT (3):
>>   clk: mvebu: add armada-370-xp specific clocks
>>   clk: armada-370-xp: add support for clock framework
>>   clocksource: time-armada-370-xp converted to clk framework
>>
>>  .../devicetree/bindings/clock/mvebu-core-clock.txt |   40 +++
>>  .../devicetree/bindings/clock/mvebu-cpu-clock.txt  |   21 ++
>>  arch/arm/boot/dts/armada-370-db.dts                |    4 -
>>  arch/arm/boot/dts/armada-370-xp.dtsi               |    1 +
>>  arch/arm/boot/dts/armada-370.dtsi                  |   12 +
>>  arch/arm/boot/dts/armada-xp.dtsi                   |   48 +++
>>  arch/arm/mach-mvebu/Kconfig                        |    5 +
>>  arch/arm/mach-mvebu/armada-370-xp.c                |    8 +-
>>  arch/arm/mach-mvebu/common.h                       |    1 +
>>  drivers/clk/Makefile                               |    1 +
>>  drivers/clk/mvebu/Makefile                         |    2 +
>>  drivers/clk/mvebu/clk-core.c                       |  312 ++++++++++++++++++++
>>  drivers/clk/mvebu/clk-core.h                       |   19 ++
>>  drivers/clk/mvebu/clk-cpu.c                        |  155 ++++++++++
>>  drivers/clk/mvebu/clk-cpu.h                        |   19 ++
>>  drivers/clk/mvebu/clk.c                            |   36 +++
>>  drivers/clocksource/time-armada-370-xp.c           |   11 +-
>>  17 files changed, 685 insertions(+), 10 deletions(-)
>>  create mode 100644 Documentation/devicetree/bindings/clock/mvebu-core-clock.txt
>>  create mode 100644 Documentation/devicetree/bindings/clock/mvebu-cpu-clock.txt
>>  create mode 100644 drivers/clk/mvebu/Makefile
>>  create mode 100644 drivers/clk/mvebu/clk-core.c
>>  create mode 100644 drivers/clk/mvebu/clk-core.h
>>  create mode 100644 drivers/clk/mvebu/clk-cpu.c
>>  create mode 100644 drivers/clk/mvebu/clk-cpu.h
>>  create mode 100644 drivers/clk/mvebu/clk.c
>>
>> -- 
>> 1.7.9.5
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 


-- 
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply

* How many cores does the ARM branch support?
From: Gregory CLEMENT @ 2012-10-02  7:42 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20121002043106.GD21233@work1>

On 10/02/2012 06:31 AM, Michelle Konzack wrote:
> Hello OverGeeks and *,
> 

Hello Michelle,

> I have gotten a new gadget which run only with 700MHz but has  32 cores. Support 16 GE Interfaces a 50 Gbit universal interface and 4 PCIe ports, SATA HDD and much more...
> 
> ...and yes, this ARM microcontroller is a telecommunications controller.
> 
> However, I have the Evaluation  Kit  and  a  PCIe  graphiccard  and  now installed Debian ARMEL.  Unfortunately I get only 2 cores working...
> 
> What must I do to get the other 30 cores?

You have to check that your kernel was compiled with CONFIG_NR_CPUS = 32.
Checks also that you don't have "nr_cpus=2" in your kernel parameter.

> 
> (without them, my Marvel Discovery MV78200 us 5 times faster)
> 
> And is it possibel, to get 100 cores running? (this is the bigger version of the microcontroller I have)

Currently the maximum number of core supported is limited to 32.
the NR_CPUS range is from 2 to 32 for ARM.

Regards,
Gregory

-- 
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply

* [alsa-devel] [PATCH 2/3] ASoC: Davinci: pcm: add support for sram-support-less platforms
From: Peter Ujfalusi @ 2012-10-02  7:48 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20120922153313.GN4495@opensource.wolfsonmicro.com>

On 09/22/2012 06:33 PM, Mark Brown wrote:
> On Fri, Aug 31, 2012 at 06:20:58PM +0530, Hebbar, Gururaja wrote:
> 
>> +config SND_DAVINCI_HAVE_SRAM
>> +	bool
>> +	default y if ARCH_DAVINCI=y
>> +	default n if ARCH_OMAP=y
>> +
> 
> I've been sitting on this mostly since it seems like a step back from
> multi-platform kernels (which is where we're trying to get to) and I've
> been trying to decide what the best approach is.  I'm thinking that we
> do want a generic API for allocating this stuff, it's a fairly generic
> feature (there's TCMs as well).  
> 
> Adding ifdefs like this does just doesn't seem good.

I also agree that ifdef is not a good solution.
It is better to have this information passed as device_data and via DT it can
be decided based on the compatible property for the device.

-- 
P?ter

^ permalink raw reply

* [PATCH 00/10] Platform data clean-up and UIB device enablement
From: Lee Jones @ 2012-10-02  8:13 UTC (permalink / raw)
  To: linux-arm-kernel

In this patch-set we move all Device Tree start-up code from the u8500
board file and into the more persistent db8500 cpu file. This will aid
future endeavours to remove platform code completely from Mainline. We
also enable some of the devices found on the STUIB (User Interface
board), which attaches to some of ST-Ericsson's reference platforms.

  .../bindings/input/touchscreen/bu21013.txt         |   28 +++++
  arch/arm/boot/dts/hrefprev60.dts                   |    7 ++
  arch/arm/boot/dts/hrefv60plus.dts                  |    9 ++
  arch/arm/boot/dts/stuib.dtsi                       |   38 +++++++
  arch/arm/mach-ux500/board-mop500-stuib.c           |   92 +--------------
  arch/arm/mach-ux500/board-mop500.c                 |  105 +-----------------
  arch/arm/mach-ux500/board-mop500.h                 |    8 +-
  arch/arm/mach-ux500/cpu-db8500.c                   |  104 ++++++++++++++++-
  drivers/input/touchscreen/bu21013_ts.c             |  117 +++++++++++++++++---
  include/linux/input/bu21013.h                      |    8 +-
  10 files changed, 299 insertions(+), 217 deletions(-)

^ permalink raw reply

* [PATCH 01/10] ARM: ux500: Move all Device Tree booting into cpu-db8500
From: Lee Jones @ 2012-10-02  8:13 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1349165603-24401-1-git-send-email-lee.jones@linaro.org>

To aid the kernel in its effort to move to DT only booting, we're
transplanting all Device Tree related code to cpu-db8500 which will
remain persistent throughout the transition. This change paths the
way for complete removal of board-mop500, which will be done once
the all DMA settings are moved into the respective DT source files.

Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/mach-ux500/board-mop500.c |  105 ++---------------------------------
 arch/arm/mach-ux500/board-mop500.h |    8 +--
 arch/arm/mach-ux500/cpu-db8500.c   |  107 ++++++++++++++++++++++++++++++++++--
 3 files changed, 111 insertions(+), 109 deletions(-)

diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index 5dd4a59..2d7906a 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -33,8 +33,6 @@
 #include <linux/smsc911x.h>
 #include <linux/gpio_keys.h>
 #include <linux/delay.h>
-#include <linux/of.h>
-#include <linux/of_platform.h>
 #include <linux/leds.h>
 #include <linux/pinctrl/consumer.h>
 
@@ -464,7 +462,7 @@ static struct stedma40_chan_cfg ssp0_dma_cfg_tx = {
 };
 #endif
 
-static struct pl022_ssp_controller ssp0_plat = {
+struct pl022_ssp_controller ssp0_plat = {
 	.bus_id = 0,
 #ifdef CONFIG_STE_DMA40
 	.enable_dma = 1,
@@ -561,7 +559,7 @@ static void ux500_uart0_reset(void)
 	udelay(1);
 }
 
-static struct amba_pl011_data uart0_plat = {
+struct amba_pl011_data uart0_plat = {
 #ifdef CONFIG_STE_DMA40
 	.dma_filter = stedma40_filter,
 	.dma_rx_param = &uart0_dma_cfg_rx,
@@ -570,7 +568,7 @@ static struct amba_pl011_data uart0_plat = {
 	.reset = ux500_uart0_reset,
 };
 
-static struct amba_pl011_data uart1_plat = {
+struct amba_pl011_data uart1_plat = {
 #ifdef CONFIG_STE_DMA40
 	.dma_filter = stedma40_filter,
 	.dma_rx_param = &uart1_dma_cfg_rx,
@@ -578,7 +576,7 @@ static struct amba_pl011_data uart1_plat = {
 #endif
 };
 
-static struct amba_pl011_data uart2_plat = {
+struct amba_pl011_data uart2_plat = {
 #ifdef CONFIG_STE_DMA40
 	.dma_filter = stedma40_filter,
 	.dma_rx_param = &uart2_dma_cfg_rx,
@@ -737,98 +735,3 @@ MACHINE_START(SNOWBALL, "Calao Systems Snowball platform")
 	.init_machine	= snowball_init_machine,
 	.init_late	= NULL,
 MACHINE_END
-
-#ifdef CONFIG_MACH_UX500_DT
-
-struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
-	/* Requires call-back bindings. */
-	OF_DEV_AUXDATA("arm,cortex-a9-pmu", 0, "arm-pmu", &db8500_pmu_platdata),
-	/* Requires DMA and call-back bindings. */
-	OF_DEV_AUXDATA("arm,pl011", 0x80120000, "uart0", &uart0_plat),
-	OF_DEV_AUXDATA("arm,pl011", 0x80121000, "uart1", &uart1_plat),
-	OF_DEV_AUXDATA("arm,pl011", 0x80007000, "uart2", &uart2_plat),
-	/* Requires DMA bindings. */
-	OF_DEV_AUXDATA("arm,pl022", 0x80002000, "ssp0",  &ssp0_plat),
-	OF_DEV_AUXDATA("arm,pl18x", 0x80126000, "sdi0",  &mop500_sdi0_data),
-	OF_DEV_AUXDATA("arm,pl18x", 0x80118000, "sdi1",  &mop500_sdi1_data),
-	OF_DEV_AUXDATA("arm,pl18x", 0x80005000, "sdi2",  &mop500_sdi2_data),
-	OF_DEV_AUXDATA("arm,pl18x", 0x80114000, "sdi4",  &mop500_sdi4_data),
-	/* Requires clock name bindings. */
-	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8012e000, "gpio.0", NULL),
-	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8012e080, "gpio.1", NULL),
-	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8000e000, "gpio.2", NULL),
-	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8000e080, "gpio.3", NULL),
-	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8000e100, "gpio.4", NULL),
-	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8000e180, "gpio.5", NULL),
-	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8011e000, "gpio.6", NULL),
-	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8011e080, "gpio.7", NULL),
-	OF_DEV_AUXDATA("st,nomadik-gpio", 0xa03fe000, "gpio.8", NULL),
-	OF_DEV_AUXDATA("st,nomadik-i2c", 0x80004000, "nmk-i2c.0", NULL),
-	OF_DEV_AUXDATA("st,nomadik-i2c", 0x80122000, "nmk-i2c.1", NULL),
-	OF_DEV_AUXDATA("st,nomadik-i2c", 0x80128000, "nmk-i2c.2", NULL),
-	OF_DEV_AUXDATA("st,nomadik-i2c", 0x80110000, "nmk-i2c.3", NULL),
-	OF_DEV_AUXDATA("st,nomadik-i2c", 0x8012a000, "nmk-i2c.4", NULL),
-	/* Requires device name bindings. */
-	OF_DEV_AUXDATA("stericsson,nmk_pinctrl", 0, "pinctrl-db8500", NULL),
-	/* Requires clock name and DMA bindings. */
-	OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80123000,
-		"ux500-msp-i2s.0", &msp0_platform_data),
-	OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80124000,
-		"ux500-msp-i2s.1", &msp1_platform_data),
-	OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80117000,
-		"ux500-msp-i2s.2", &msp2_platform_data),
-	OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80125000,
-		"ux500-msp-i2s.3", &msp3_platform_data),
-	{},
-};
-
-static const struct of_device_id u8500_local_bus_nodes[] = {
-	/* only create devices below soc node */
-	{ .compatible = "stericsson,db8500", },
-	{ .compatible = "stericsson,db8500-prcmu", },
-	{ .compatible = "simple-bus"},
-	{ },
-};
-
-static void __init u8500_init_machine(void)
-{
-	struct device *parent = NULL;
-
-	/* Pinmaps must be in place before devices register */
-	if (of_machine_is_compatible("st-ericsson,mop500"))
-		mop500_pinmaps_init();
-	else if (of_machine_is_compatible("calaosystems,snowball-a9500"))
-		snowball_pinmaps_init();
-	else if (of_machine_is_compatible("st-ericsson,hrefv60+"))
-		hrefv60_pinmaps_init();
-
-	/* TODO: Export SoC, USB, cpu-freq and DMA40 */
-	parent = u8500_of_init_devices();
-
-	/* automatically probe child nodes of db8500 device */
-	of_platform_populate(NULL, u8500_local_bus_nodes, u8500_auxdata_lookup, parent);
-
-	/* This board has full regulator constraints */
-	regulator_has_full_constraints();
-}
-
-static const char * u8500_dt_board_compat[] = {
-	"calaosystems,snowball-a9500",
-	"st-ericsson,hrefv60+",
-	"st-ericsson,u8500",
-	"st-ericsson,mop500",
-	NULL,
-};
-
-
-DT_MACHINE_START(U8500_DT, "ST-Ericsson U8500 platform (Device Tree Support)")
-	.map_io		= u8500_map_io,
-	.init_irq	= ux500_init_irq,
-	/* we re-use nomadik timer here */
-	.timer		= &ux500_timer,
-	.handle_irq	= gic_handle_irq,
-	.init_machine	= u8500_init_machine,
-	.init_late	= ux500_init_late,
-	.dt_compat      = u8500_dt_board_compat,
-MACHINE_END
-#endif
diff --git a/arch/arm/mach-ux500/board-mop500.h b/arch/arm/mach-ux500/board-mop500.h
index 1f86387..eaa605f 100644
--- a/arch/arm/mach-ux500/board-mop500.h
+++ b/arch/arm/mach-ux500/board-mop500.h
@@ -89,6 +89,10 @@ extern struct msp_i2s_platform_data msp1_platform_data;
 extern struct msp_i2s_platform_data msp2_platform_data;
 extern struct msp_i2s_platform_data msp3_platform_data;
 extern struct arm_pmu_platdata db8500_pmu_platdata;
+extern struct amba_pl011_data uart0_plat;
+extern struct amba_pl011_data uart1_plat;
+extern struct amba_pl011_data uart2_plat;
+extern struct pl022_ssp_controller ssp0_plat;
 
 extern void mop500_sdi_init(struct device *parent);
 extern void snowball_sdi_init(struct device *parent);
@@ -104,8 +108,4 @@ void mop500_audio_init(struct device *parent);
 int __init mop500_uib_init(void);
 void mop500_uib_i2c_add(int busnum, struct i2c_board_info *info,
 		unsigned n);
-
-/* TODO: Once all pieces are DT:ed, remove completely. */
-struct device * __init u8500_of_init_devices(void);
-
 #endif
diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c
index 38b7f9c..610ad7f 100644
--- a/arch/arm/mach-ux500/cpu-db8500.c
+++ b/arch/arm/mach-ux500/cpu-db8500.c
@@ -17,9 +17,14 @@
 #include <linux/platform_device.h>
 #include <linux/io.h>
 #include <linux/mfd/abx500/ab8500.h>
+#include <linux/of.h>
+#include <linux/of_platform.h>
+#include <linux/regulator/machine.h>
 
 #include <asm/mach/map.h>
 #include <asm/pmu.h>
+#include <asm/mach/arch.h>
+#include <asm/hardware/gic.h>
 #include <plat/gpio-nomadik.h>
 #include <mach/hardware.h>
 #include <mach/setup.h>
@@ -29,6 +34,7 @@
 
 #include "devices-db8500.h"
 #include "ste-dma40-db8500.h"
+#include "board-mop500.h"
 
 /* minimum static i/o mapping required to boot U8500 platforms */
 static struct map_desc u8500_uart_io_desc[] __initdata = {
@@ -227,12 +233,12 @@ struct device * __init u8500_init_devices(struct ab8500_platform_data *ab8500)
 	return parent;
 }
 
+#ifdef CONFIG_MACH_UX500_DT
+
 /* TODO: Once all pieces are DT:ed, remove completely. */
-struct device * __init u8500_of_init_devices(void)
+static struct device * __init u8500_of_init_devices(void)
 {
-	struct device *parent;
-
-	parent = db8500_soc_device_init();
+	struct device *parent = db8500_soc_device_init();
 
 	db8500_add_usb(parent, usb_db8500_rx_dma_cfg, usb_db8500_tx_dma_cfg);
 
@@ -251,3 +257,96 @@ struct device * __init u8500_of_init_devices(void)
 
 	return parent;
 }
+
+static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
+	/* Requires call-back bindings. */
+	OF_DEV_AUXDATA("arm,cortex-a9-pmu", 0, "arm-pmu", &db8500_pmu_platdata),
+	/* Requires DMA and call-back bindings. */
+	OF_DEV_AUXDATA("arm,pl011", 0x80120000, "uart0", &uart0_plat),
+	OF_DEV_AUXDATA("arm,pl011", 0x80121000, "uart1", &uart1_plat),
+	OF_DEV_AUXDATA("arm,pl011", 0x80007000, "uart2", &uart2_plat),
+	/* Requires DMA bindings. */
+	OF_DEV_AUXDATA("arm,pl022", 0x80002000, "ssp0",  &ssp0_plat),
+	OF_DEV_AUXDATA("arm,pl18x", 0x80126000, "sdi0",  &mop500_sdi0_data),
+	OF_DEV_AUXDATA("arm,pl18x", 0x80118000, "sdi1",  &mop500_sdi1_data),
+	OF_DEV_AUXDATA("arm,pl18x", 0x80005000, "sdi2",  &mop500_sdi2_data),
+	OF_DEV_AUXDATA("arm,pl18x", 0x80114000, "sdi4",  &mop500_sdi4_data),
+	/* Requires clock name bindings. */
+	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8012e000, "gpio.0", NULL),
+	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8012e080, "gpio.1", NULL),
+	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8000e000, "gpio.2", NULL),
+	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8000e080, "gpio.3", NULL),
+	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8000e100, "gpio.4", NULL),
+	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8000e180, "gpio.5", NULL),
+	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8011e000, "gpio.6", NULL),
+	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8011e080, "gpio.7", NULL),
+	OF_DEV_AUXDATA("st,nomadik-gpio", 0xa03fe000, "gpio.8", NULL),
+	OF_DEV_AUXDATA("st,nomadik-i2c", 0x80004000, "nmk-i2c.0", NULL),
+	OF_DEV_AUXDATA("st,nomadik-i2c", 0x80122000, "nmk-i2c.1", NULL),
+	OF_DEV_AUXDATA("st,nomadik-i2c", 0x80128000, "nmk-i2c.2", NULL),
+	OF_DEV_AUXDATA("st,nomadik-i2c", 0x80110000, "nmk-i2c.3", NULL),
+	OF_DEV_AUXDATA("st,nomadik-i2c", 0x8012a000, "nmk-i2c.4", NULL),
+	/* Requires device name bindings. */
+	OF_DEV_AUXDATA("stericsson,nmk_pinctrl", 0, "pinctrl-db8500", NULL),
+	/* Requires clock name and DMA bindings. */
+	OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80123000,
+		"ux500-msp-i2s.0", &msp0_platform_data),
+	OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80124000,
+		"ux500-msp-i2s.1", &msp1_platform_data),
+	OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80117000,
+		"ux500-msp-i2s.2", &msp2_platform_data),
+	OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80125000,
+		"ux500-msp-i2s.3", &msp3_platform_data),
+	{},
+};
+
+static const struct of_device_id u8500_local_bus_nodes[] = {
+	/* only create devices below soc node */
+	{ .compatible = "stericsson,db8500", },
+	{ .compatible = "stericsson,db8500-prcmu", },
+	{ .compatible = "simple-bus"},
+	{ },
+};
+
+static void __init u8500_init_machine(void)
+{
+	struct device *parent = NULL;
+
+	/* Pinmaps must be in place before devices register */
+	if (of_machine_is_compatible("st-ericsson,mop500"))
+		mop500_pinmaps_init();
+	else if (of_machine_is_compatible("calaosystems,snowball-a9500"))
+		snowball_pinmaps_init();
+	else if (of_machine_is_compatible("st-ericsson,hrefv60+"))
+		hrefv60_pinmaps_init();
+
+	/* TODO: Export SoC, USB, cpu-freq and DMA40 */
+	parent = u8500_of_init_devices();
+
+	/* automatically probe child nodes of db8500 device */
+	of_platform_populate(NULL, u8500_local_bus_nodes, u8500_auxdata_lookup, parent);
+
+	/* This board has full regulator constraints */
+	regulator_has_full_constraints();
+}
+
+static const char * u8500_dt_board_compat[] = {
+	"calaosystems,snowball-a9500",
+	"st-ericsson,hrefv60+",
+	"st-ericsson,u8500",
+	"st-ericsson,mop500",
+	NULL,
+};
+
+DT_MACHINE_START(U8500_DT, "ST-Ericsson U8500 platform (Device Tree Support)")
+	.map_io		= u8500_map_io,
+	.init_irq	= ux500_init_irq,
+	/* we re-use nomadik timer here */
+	.timer		= &ux500_timer,
+	.handle_irq	= gic_handle_irq,
+	.init_machine	= u8500_init_machine,
+	.init_late	= ux500_init_late,
+	.dt_compat      = u8500_dt_board_compat,
+MACHINE_END
+
+#endif
-- 
1.7.9.5

^ permalink raw reply related

* [PATCH 02/10] ARM: ux500: Strip out duplicate touch screen platform information
From: Lee Jones @ 2012-10-02  8:13 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1349165603-24401-1-git-send-email-lee.jones@linaro.org>

We're currently carrying two 'struct bu21013_platform_device's which
are identical for no apparent reason. Here we remove the extra burden
and apply the same information to the two different instances of the
bu21012_tp driver registration.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/mach-ux500/board-mop500-stuib.c |   22 +++-------------------
 1 file changed, 3 insertions(+), 19 deletions(-)

diff --git a/arch/arm/mach-ux500/board-mop500-stuib.c b/arch/arm/mach-ux500/board-mop500-stuib.c
index 8c97977..564f57d 100644
--- a/arch/arm/mach-ux500/board-mop500-stuib.c
+++ b/arch/arm/mach-ux500/board-mop500-stuib.c
@@ -162,18 +162,6 @@ static struct bu21013_platform_device tsc_plat_device = {
 	.y_flip = true,
 };
 
-static struct bu21013_platform_device tsc_plat2_device = {
-	.cs_en = bu21013_gpio_board_init,
-	.cs_dis = bu21013_gpio_board_exit,
-	.irq_read_val = bu21013_read_pin_val,
-	.irq = NOMADIK_GPIO_TO_IRQ(TOUCH_GPIO_PIN),
-	.touch_x_max = TOUCH_XMAX,
-	.touch_y_max = TOUCH_YMAX,
-	.ext_clk = false,
-	.x_flip = false,
-	.y_flip = true,
-};
-
 static struct i2c_board_info __initdata u8500_i2c3_devices_stuib[] = {
 	{
 		I2C_BOARD_INFO("bu21013_tp", 0x5C),
@@ -181,21 +169,17 @@ static struct i2c_board_info __initdata u8500_i2c3_devices_stuib[] = {
 	},
 	{
 		I2C_BOARD_INFO("bu21013_tp", 0x5D),
-		.platform_data = &tsc_plat2_device,
+		.platform_data = &tsc_plat_device,
 	},
 
 };
 
 void __init mop500_stuib_init(void)
 {
-	if (machine_is_hrefv60()) {
+	if (machine_is_hrefv60())
 		tsc_plat_device.cs_pin = HREFV60_TOUCH_RST_GPIO;
-		tsc_plat2_device.cs_pin = HREFV60_TOUCH_RST_GPIO;
-	} else {
+	else
 		tsc_plat_device.cs_pin = GPIO_BU21013_CS;
-		tsc_plat2_device.cs_pin = GPIO_BU21013_CS;
-
-	}
 
 	mop500_uib_i2c_add(0, mop500_i2c0_devices_stuib,
 			ARRAY_SIZE(mop500_i2c0_devices_stuib));
-- 
1.7.9.5

^ permalink raw reply related

* [PATCH 03/10] Input: bu21013_ts - Request a regulator that actually exists
From: Lee Jones @ 2012-10-02  8:13 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1349165603-24401-1-git-send-email-lee.jones@linaro.org>

Currently the BU21013 Touch Screen driver requests a regulator by the
name of 'V-TOUCH', which doesn't exist anywhere in the kernel. The
correct name, as referenced in platform regulator code is 'avdd'. Here,
when we request a regulator, we use the correct name instead.

Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: linux-input at vger.kernel.org
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/input/touchscreen/bu21013_ts.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/input/touchscreen/bu21013_ts.c b/drivers/input/touchscreen/bu21013_ts.c
index 5c487d2..2fae682 100644
--- a/drivers/input/touchscreen/bu21013_ts.c
+++ b/drivers/input/touchscreen/bu21013_ts.c
@@ -461,7 +461,7 @@ static int __devinit bu21013_probe(struct i2c_client *client,
 	bu21013_data->chip = pdata;
 	bu21013_data->client = client;
 
-	bu21013_data->regulator = regulator_get(&client->dev, "V-TOUCH");
+	bu21013_data->regulator = regulator_get(&client->dev, "avdd");
 	if (IS_ERR(bu21013_data->regulator)) {
 		dev_err(&client->dev, "regulator_get failed\n");
 		error = PTR_ERR(bu21013_data->regulator);
-- 
1.7.9.5

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox