1. 15 Dec, 2015 20 commits
    • Arnd Bergmann's avatar
      Merge branch 'versatile/multiplatform' into next/multiplatform · 7379d96b
      Arnd Bergmann authored
      Merge "ARM Versatile multi-platform support" from Rob Herring:
      
      Arnd lit a fire under me to dust this off and get it merged. So here it
      is. The main change from prior version is I merged all the code to a
      single file. It's a bigger patch than I'd like, but I don't think trying
      to do it in multiple steps is worth it.
      
      This is dependent on some solution for the default platform choice on
      !MMU builds (allnoconfig) as it can't be Versatile after this series.
      Arnd has some ideas on how to address that.
      
      This is tested under QEMU. Linus previously tested this on actual h/w
      and had a problem with the display identification which needs
      investigation or agreement to worry about it if and when someone
      actually cares.
      
      * versatile/multiplatform:
        ARM: versatile: convert to multi-platform
        ARM: versatile: merge mach code into a single file
        ARM: versatile: switch to DT only booting and remove legacy code
        ARM: versatile: add DT based PCI detection
      Acked-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      7379d96b
    • Rob Herring's avatar
      ARM: versatile: convert to multi-platform · a29da136
      Rob Herring authored
      Now that all the prerequisites are in place, we can enable Versatile
      boards for multi-platform kernels.
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      a29da136
    • Rob Herring's avatar
      ARM: versatile: merge mach code into a single file · a7096789
      Rob Herring authored
      With DT-only support now in place and most of the legacy code removed,
      the separation of core.c and versatile_dt.c makes little sense. The
      headers in mach include directory also have to move for multi-platform
      support, but with a single .c file the remaining definitions needed can
      also be moved into the versatile_dt.c.
      
      In the move, the system registers and IB2 registers are converted to
      run-time mappings and all register accesses converted to use
      readl/writel.
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      a7096789
    • Rob Herring's avatar
      ARM: versatile: switch to DT only booting and remove legacy code · 16956fed
      Rob Herring authored
      With DT support for clocks, irqchips, timers, and PCI now in place, DT
      based booting has feature parity with non-DT legacy boot. The final
      piece is actually enabling common clock support on Versatile. Enabling
      full DT support requires either removing the old Versatile clock code,
      updating the legacy boot to use the common clock code, or making DT and
      legacy boot mutually exclusive. Given that removing legacy boot code is
      the goal anyway, I am going with the 1st option.
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Mike Turquette <mturquette@linaro.org>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      16956fed
    • Rob Herring's avatar
      ARM: versatile: add DT based PCI detection · a8e2894c
      Rob Herring authored
      Disable the Versatile PCI DT node when no PCI backplane is detected. This
      will prevent the Versatile PCI driver from probing when PCI is not
      populated.
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      a8e2894c
    • Arnd Bergmann's avatar
      ARM: pxa: mark ezx structures as __maybe_unused · ee5d8742
      Arnd Bergmann authored
      The ezx platform contains multiple machine descriptors, but not all
      of them use all of the data structures, and it's possible to disable
      all of the machines, which produces some harmless warnings:
      
      mach-pxa/ezx.c:53:26: warning: 'ezx_pwm_lookup' defined but not used [-Wunused-variable]
      mach-pxa/ezx.c:86:31: warning: 'ezx_fb_info_1' defined but not used [-Wunused-variable]
      mach-pxa/ezx.c:107:31: warning: 'ezx_fb_info_2' defined but not used [-Wunused-variable]
      mach-pxa/ezx.c:113:32: warning: 'ezx_devices' defined but not used [-Wunused-variable]
      mach-pxa/ezx.c:117:22: warning: 'ezx_pin_config' defined but not used [-Wunused-variable]
      
      This marks all those structures as __maybe_unused to avoid the warnings.
      Obviously a configuration that contains the ezx platform but no specific
      model is a bit silly, but it should not cause compile-time warnings.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
      ee5d8742
    • Arnd Bergmann's avatar
      ARM: pxa: mark raumfeld init functions as __maybe_unused · f41bd6af
      Arnd Bergmann authored
      The raumfeld.c file contains three similar machine definitions,
      each with their own init function. If one or more of them are
      disabled, we get compile-time warnings:
      
      arm/mach-pxa/raumfeld.c:1070:123: warning: 'raumfeld_connector_init' defined but not used [-Wunused-function]
      arm/mach-pxa/raumfeld.c:1082:123: warning: 'raumfeld_speaker_init' defined but not used [-Wunused-function]
      
      This marks the functions as __maybe_unused to avoid the warnings.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarDaniel Mack <daniel@zonque.org>
      f41bd6af
    • Arnd Bergmann's avatar
      ARM: pxa: cm-x2xx: avoid duplicate macro warnings · f39c42f5
      Arnd Bergmann authored
      In an old commit, we worked around the duplicate definition of
      GPIO24_SSP1_SFRM in cm-x2xx.c, which includes files for both
      pxa25x and pxa27x. Apparently the problem has come back and we
      now have four additional duplicate symbols that cause warnings:
      
      In file included from /git/arm-soc/arch/arm/mach-pxa/pxa27x.h:7:0,
                       from /git/arm-soc/arch/arm/mach-pxa/cm-x2xx.c:27:
      /git/arm-soc/arch/arm/mach-pxa/mfp-pxa27x.h:21:0: warning: "GPIO86_GPIO" redefined
       #define GPIO86_GPIO  MFP_CFG_IN(GPIO86, AF0)
      
      This uses the same hack as before and undefines all symbols that
      are defined more than once. Fortunately, cm-x2xx does not need
      any of these.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
      f39c42f5
    • Arnd Bergmann's avatar
      Merge branch 'mmp/multiplatform' into next/multiplatform · 8864eaca
      Arnd Bergmann authored
      * mmp/multiplatform:
        ARM: mmp: avoid unused functions
        ARM: mmp: move into ARCH_MULTIPLATFORM
        ARM: mmp: make all header files local
        ARM: mmp: make plat-pxa build standalone
        ARM: mmp: remove remaining legacy pxa-dma support
        ARM: mohawk: allow building with MMU disabled
        ARM: make xscale iwmmxt code multiplatform aware
        clk: mmp: stop using platform headers
      8864eaca
    • Arnd Bergmann's avatar
      Merge branch 's3c64xx/multiplatform' into next/multiplatform · fb4f0424
      Arnd Bergmann authored
      * s3c64xx/multiplatform:
        ARM: s3c64xx: allow building without board support
        ARM: s3c64xx: multiplatform support
        ARM: s3c64xx: use common debug-ll implementation
        ARM: s3c64xx: use new adc/touchscreen driver
        iio: exynos-adc: add experimental touchscreen support
        ARM: s3c64xx: enable sparse IRQ support
        ARM: s3c64xx: prepare initcalls for multiplatform
        gpio: samsung: move gpio-samsung driver back to platform code
        ASoC: samsung/smartq: use dynamic registration
        Input: s3c2410_ts: fix S3C_ADC dependency
      
      Conflicts:
      	arch/arm/Kconfig.debug
      fb4f0424
    • Arnd Bergmann's avatar
      Merge branch 'multiplatform/debug-ll' into next/multiplatform · 35d3aad4
      Arnd Bergmann authored
      * multiplatform/debug-ll:
        ARM: debug-ll: reorder Kconfig alphanumerically
        ARM: debug-ll: rework footbridge handling
        ARM: debug-ll: rework lpc32xx handling
        ARM: debug-ll: rework gemini handling
        ARM: debug-ll: rework integrator/versatile handling
        ARM: debug-ll: rework SPEAr handling
        ARM: debug-ll: rework ep93xx handling
        ARM: debug-ll: reorganize mvebu debug uart config
        ARM: debug-ll: fix UART configuration with ARCH_KEYSTONE
      35d3aad4
    • Arnd Bergmann's avatar
      ARM: debug-ll: reorder Kconfig alphanumerically · 1dc93416
      Arnd Bergmann authored
      The file has gotten a little out of sync, as platforms got
      added in the wrong place, or have been renamed. This moves
      the options around, but should not change any functionality.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      1dc93416
    • Arnd Bergmann's avatar
      ARM: debug-ll: rework footbridge handling · 0045c0dd
      Arnd Bergmann authored
      Footbridge has two debug ports that are handled a bit differently:
      
      The 8250 port uses the normal debug/8250.S implementation that is shared
      with a lot of other platforms, but it relies on the DEBUG_UART_8250
      option to be turned on automatically instead of being selected by
      DEBUG_FOOTBRIDGE_COM1 as we do for most other platforms. I'm changing
      this to use a 'select' and change the dependency to the debug symbol
      rather than the platform symbol for consistency.
      
      The DC21285 UART has a separate top-level option, and relies on
      the traditional include/mach/debug-macro.S method. With the s3c64xx
      multiplatform series queued up for 4.5, it is now the last one that does
      this, so by moving this file to include/debug/dc21285.S, we can get
      all platforms to do things the same way.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      0045c0dd
    • Arnd Bergmann's avatar
      ARM: debug-ll: rework lpc32xx handling · 59bd4c38
      Arnd Bergmann authored
      LPC32xx can not yet be configured in a multiplatform kernel, but
      if we ever get there, enabling one of the LPC32xx platforms
      while trying to use DEBUG_LL for another platform can default to
      the wrong UART address, as the options are purely based on the
      architecture being enabled or not.
      
      This changes the logic to use the LPC32xx default addresses only
      if we have also picked the respective Kconfig symbols introduced
      here.
      
      While we're at it, this also reorders the virtual address as
      it should be.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarVladimir Zapolskiy <vz@mleia.com>
      59bd4c38
    • Arnd Bergmann's avatar
      ARM: debug-ll: rework gemini handling · d7175a3b
      Arnd Bergmann authored
      Gemini can not yet be configured in a multiplatform kernel, but
      if we ever get there, enabling one of the gemini platforms
      while trying to use DEBUG_LL for another platform can default to
      the wrong UART address, as the options are purely based on the
      architecture being enabled or not.
      
      This changes the logic to use the gemini default addresses and
      the flow control settings only if we have also picked the respective
      Kconfig symbols introduced here.
      
      While we're at it, this also reorders the virtual address as
      it should be.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarHans Ulli Kroll <ulli.kroll@googlemail.com>
      d7175a3b
    • Arnd Bergmann's avatar
      ARM: debug-ll: rework integrator/versatile handling · 4db22c10
      Arnd Bergmann authored
      Enabling one of the integrator platforms in a multiplatform kernel
      while trying to use DEBUG_LL for another platform can default to
      the wrong UART address, as the options are purely based on the
      architecture being enabled or not.
      
      This changes the logic to use the integrator default addresses only
      if we have also picked the respective Kconfig symbols introduced
      here. Versatile is not yet part of multiplatform, but hopefully
      soon will be, so we do the same change for versatile as well.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      4db22c10
    • Arnd Bergmann's avatar
      ARM: debug-ll: rework SPEAr handling · 375d84cf
      Arnd Bergmann authored
      Enabling one of the SPEAr platforms in a multiplatform kernel
      while trying to use DEBUG_LL for another platform can default to
      the wrong UART address, as the options are purely based on the
      architecture being enabled or not.
      
      This changes the logic to use the SPEAr default addresses only
      if we have also picked the respective Kconfig symbols introduced
      here.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      375d84cf
    • Arnd Bergmann's avatar
      ARM: debug-ll: rework ep93xx handling · f06455fa
      Arnd Bergmann authored
      This makes ep93xx debug-ll handling more consistent with the other
      platforms, by adding a separate Kconfig symbol for it that
      in turn selects the standard DEBUG_UART_PL01X symbol.
      
      We still have to pick a physical address even if DEBUG_LL is disabled
      here, because the EP93xx uncompress output code uses
      CONFIG_DEBUG_UART_PHYS. If we ever move to multiplatform support,
      this can go away.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      f06455fa
    • Arnd Bergmann's avatar
      ARM: debug-ll: reorganize mvebu debug uart config · c047f529
      Arnd Bergmann authored
      As we are moving dove/mv78xx0/orion into multiplatform, the debug-ll
      configuration options for these platforms are conflicting with the
      multiplatform configuration: enabling one of those platforms sometimes
      changes the default addresses to the ones used on one of them, rather
      than the one that was selected in Kconfig.
      
      This changes the configuration so we share the physical address
      configuration with mach-mvebu.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      c047f529
    • Arnd Bergmann's avatar
      ARM: debug-ll: fix UART configuration with ARCH_KEYSTONE · cdd2e08b
      Arnd Bergmann authored
      We may have multiple platforms enabled and also DEBUG_LL
      configured for one of them. However if we enable ARCH_KEYSTONE,
      we default to using 32-bit UART access independent of which
      platform we are actually using, which can be confusing.
      
      This changes the logic so the 32-bit default gets only
      used by default if we actually configure the keystone
      UART, as opposed to picking some other 8250 setting on
      a kernel that has keystone support enabled.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      cdd2e08b
  2. 01 Dec, 2015 20 commits