summaryrefslogtreecommitdiffstats
path: root/arch/arm
AgeCommit message (Collapse)Author
2013-06-20Merge tag 'u300-multiplatform' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson into next/soc From Linus Walleij: Device Tree and Multiplatform support for U300: - Add devicetree support to timer, pinctrl (probe), I2C block, watchdog, DMA controller and clocks. - Piecewise add a device tree containing all peripherals. - Delete the ATAG boot path. - Delete redundant platform data and board files. - Convert to multiplatform. * tag 'u300-multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson: (40 commits) ARM: u300: switch to using syscon regmap for board ARM: u300: Update MMC configs for u300 defconfig spi: pl022: use DMA by default when probing from DT pinctrl: get rid of all platform data for coh901 ARM: u300: convert MMC/SD clock to device tree ARM: u300: move the gated system controller clocks to DT i2c: stu300: do not request a specific clock name clk: move the U300 fixed and fixed-factor to DT ARM: u300: remove register definition file ARM: u300: add syscon node ARM: u300 use module_spi_driver to register driver ARM: u300: delete remnant machine headers ARM: u300: convert to multiplatform ARM: u300: localize <mach/u300-regs.h> ARM: u300: delete <mach/irqs.h> ARM: u300: delete <mach/hardware.h> ARM: u300: push down syscon registers ARM: u300: remove deps from debug macro ARM: u300: move debugmacro to debug includes ARM: u300: delete all static board data ... Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-06-20Merge tag 'integrator-pci-for-arm-soc' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into next/soc From Linus Walleij: This is a patch series that: - Pulls the Integrator/AP PCI bridge driver into one file - Adds full device tree support for it - Keeps ATAG support around for the time being * tag 'integrator-pci-for-arm-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator: ARM: integrator: basic PCIv3 device tree support ARM: integrator: move static ioremapping into PCIv3 driver ARM: integrator: move VGA base assignment ARM: integrator: remap PCIv3 base dynamically ARM: integrator: move V3 register definitions into driver ARM: integrator: move PCI base address grab to probe ARM: integrator: grab PCI error IRQ in probe() ARM: integrator: convert PCIv3 bridge to platform device ARM: integrator: merge PCIv3 driver into one file ARM: pci: create pci_common_init_dev() Documentation/devicetree: add a small note on PCI Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-06-18Merge tag 'keystone-soc-for-arm-soc' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone into next/soc From Santosh Shilimkar: SOC support for Keystone II devices: - Minimal machine and device-tree support with arch_timers and console UART - Reboot hook using PLL reset - Low level debug support using UART - SMP boot support * tag 'keystone-soc-for-arm-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone: ARM: keystone: Enable SMP support on Keystone machines ARM: keystone: Add minimal TI Keystone platform support ARM: dts: keystone: Add minimal Keystone SOC device tree data Signed-off-by: Olof Johansson <olof@lixom.net>
2013-06-17ARM: keystone: Enable SMP support on Keystone machinesSantosh Shilimkar
Add basic SMP support for Keystone machines. This does not include support for CPU hotplug for now. Cc: Arnd Bergmann <arnd@arndb.de> Cc: arm@kernel.org Acked-by: Olof Johansson <olof@lixom.net> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
2013-06-17ARM: keystone: Add minimal TI Keystone platform supportSantosh Shilimkar
Texas Instruments Keystone family of multi-core devices are based on ARM Cortex A15. Patch adds basic definitions for a new Keystone sub-architecture in ARM. The TCI66xxK2H Communications Infrastructure Keystone SoCs are member of the C66x family based on TI's new KeyStone 2 multi-core SoC Architecture designed specifically for high performance wireless and networking infrastructure applications. The SOCs contains many subsystems like Cortex A15 ARM CorePacs, C66XX DSP CorePacs, MSMC memory controller, Tera Net bus, IP Network, Navigator, Hyperlink, 1G/10G Ethernet, Radio layers and queue based communication systems. Cc: Arnd Bergmann <arnd@arndb.de> Cc: arm@kernel.org Acked-by: Olof Johansson <olof@lixom.net> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
2013-06-17ARM: dts: keystone: Add minimal Keystone SOC device tree dataSantosh Shilimkar
Add minimal device tree data for Keystone2 based SOCs. Patch contains mainly ARM related SOC data and nothing about EVM specific yet. Cc: Grant Likely <grant.likely@linaro.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: arm@kernel.org Acked-by: Olof Johansson <olof@lixom.net> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
2013-06-17ARM: u300: switch to using syscon regmap for boardLinus Walleij
This switches the code using a local remapping of the system controller to enable the U300 board to be self-powered over to making the U300-specific syscon compatible with the MFD generic syscon driver, selecting the generic syscon driver, and augmenting the board power code to pick the regmap and manipulate the syscon from the regmap side of things. Cc: Dong Aisheng <dong.aisheng@linaro.org> Suggested-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: Update MMC configs for u300 defconfigUlf Hansson
Enable MMC_UNSAFE_RESUME to be accomplish a proper suspend/resume cycle for SD/SDIO/(e)MMC. ARMMMCI host driver supports clock gating through runtime PM, thus MMC_CLKGATE is not needed. Moreover ARMMMCI can do scatter-gather which means we can explicity disable MMC_BLOCK_BOUNCE, since it's default enabled, to skip unnecessary bounce buffer copying. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17pinctrl: get rid of all platform data for coh901Linus Walleij
This deletes the dependency on any platform data for the COH901 pin controller. There is only one user in the kernel, and if we at some point want to support more variants, they shall provide their variant info through the device tree. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: convert MMC/SD clock to device treeLinus Walleij
This converts the last of the U300 clocks to being probed from the device tree. Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: move the gated system controller clocks to DTLinus Walleij
This moves the slow, fast, AHB bridge and "rest" clocks on the U300 system controller over to registration from the device tree. Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17clk: move the U300 fixed and fixed-factor to DTLinus Walleij
This converts the fixed and fixed-factor clocks in the U300 platform to register themselves from the device tree. Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: remove register definition fileLinus Walleij
Now that the core file is the only one actually using any of the base addresses, we can delete that header and move the base address definitions into the one and only core file. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: add syscon nodeLinus Walleij
This adds a device tree node for the U300 system controller and remaps this dynamically instead of using hard-coded virtual addresses. The board power set-up code is altered to fetch a reference to the syscon using ampersand <&syscon> notation. This way of passing a pointer to the syscon will also be used by the clocks. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300 use module_spi_driver to register driverPeter Huewe
Removing some boilerplate by using module_spi_driver instead of calling register and unregister in the otherwise empty init/exit functions. Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: delete remnant machine headersLinus Walleij
Two files remain in <mach/*> for U300: timex.h and uncompress.h. The former is done away with by using defaults, the latter is unused in multiplatform. Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: convert to multiplatformLinus Walleij
Now that we removed our dependency on <mach/*> the U300 can be converted to mutliplatform. Remove the invalid restriction that U300 would not support AUTO_ZRELADDR (it does) and update the defconfig in the process. Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: localize <mach/u300-regs.h>Linus Walleij
This register base file is now only used in the machine itself so move it down into mach-u300. Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: delete <mach/irqs.h>Linus Walleij
All IRQs are now obtained from the device tree, and this file is unused, so delete it. Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: delete <mach/hardware.h>Linus Walleij
This file is now unused and can be deleted. Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: push down syscon registersLinus Walleij
Get rid of the <mach/syscon.h> header as a prerequisite for multiplatform support. Do this by pushing the registers down to their respective drivers and deleting the unused remainder. Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: remove deps from debug macroLinus Walleij
This rids the dependency to <mach/hardware.h> (which is an implicit dependency to <mach/u300-regs.h>) from the U300 debug macro. Take this opportunity to update the file header. Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: move debugmacro to debug includesLinus Walleij
This moves the U300 debug macro to the debug headers to make way for multiplatform support. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: delete all static board dataLinus Walleij
We have now transferred all the U300 peripherals to the device tree, so we just select USE_OF, and delete all static board data, then require that this platform shall be booted using the device tree and nothing else. This gets rid of the MMCI (PL180), PL022, and serial PL011 platform data entries and more. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: add FSMC flash into the device treeLinus Walleij
This registers the U300 FSMC flash controller from the device tree, and defines the three partitions. Skip the BBT scan as in the current platform data. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: probe the U300 dummy-spichip from device treeLinus Walleij
This probes the U300 dummy-spichip from the device tree and adds the apropriate node to the tree. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: add SPI PL022 to the device treeLinus Walleij
This registers the PL022 PrimeCell from the U300 device tree. We make a new copy of the platform data for the device tree boot path, as the old platform data is in an older file which will be going away. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: add the COH 901 318 DMAC to device treeLinus Walleij
This adds the COH 901 318 DMA controller to the U300 device tree. All devices now converted to device tree so far will start to find their DMA channels. Note that the U300 is not yet using the device tree to obtain DMA channels, but this is a first step. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: augment device tree with DMA channelsLinus Walleij
This adds DMA channel assignments to the MMC/SD-controller and the two UARTs already in the U300 device tree, as we have now defined a way to obtain DMA channels from the device tree. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: enable MMC/SD card from device treeLinus Walleij
This adds support for the U300 MMC/SD card slot from the device tree boot. No other changes needed. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: support regulators in the device treeLinus Walleij
Now that we have enabled board power and the AB3100 regulators, put the regulator data into the device tree and enable it so we can start to tie regulators to devices. To begin with we're only supplying the power to the board itself. Cc: Mark Brown <broonie@kernel.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: set up board power from device treeLinus Walleij
This adds support for setting up the board power from the device tree on the U300. We use a board-specific node in the device tree for the S365 board and bind a regulator for the board power to this node. Cc: Mark Brown <broonie@kernel.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-17ARM: u300: add RTC to device treeLinus Walleij
This adds the COH 901 331 RTC to the U300 device tree. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-15ARM: integrator: basic PCIv3 device tree supportLinus Walleij
This registers the memory ranges for I/O, non-prefetched and prefetched memory and configuration space for the PCIv3 bridge and let us fetch these basic memory resources from the device tree in the device tree boot path. Remove the stepping stone platform device. This is an either/or approach - the platform data path is mutually exclusive to the plain platform data path and provided addresses from the device tree have to be correct. This adds the interrupt-map property to the PCIv3 DTS file and makes the bridge obtain mappings from the device tree. Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-14Merge tag 'tegra-for-3.11-soc' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra into next/soc From Stephen Warren: ARM: tegra: core SoC support enhancements This branch contains fixes and enhancement for core Tegra Soc support: * CPU hotplug support for Tegra114. * Some preliminary work on Tegra114 CPU sleep modes. * Minor fix for EMC table DT parsing. * tag 'tegra-for-3.11-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra: ARM: tegra: don't pass CPU ID to tegra_{set,clear}_cpu_in_lp2 ARM: tegra: cpuidle: using IS_ENABLED for multi SoCs management in init func ARM: tegra: hook tegra_tear_down_cpu function in the PM suspend init function ARM: tegra: cpuidle: move the init function behind the suspend init function ARM: tegra: remove ifdef in the tegra_resume ARM: tegra: add cpu_disable for hotplug ARM: tegra114: add CPU hotplug support clk: tegra114: implement wait_for_reset and disable_clock for tegra_cpu_car_ops ARM: tegra114: add power up sequence for warm boot CPU ARM: tegra: make tegra_resume can work for Tegra114 ARM: tegra: skip SCU and PL310 code when CPU is not Cortex-A9 ARM: tegra: add an assembly marco to check Tegra SoC ID ARM: tegra: emc: correction of ram-code parsing from dt Signed-off-by: Olof Johansson <olof@lixom.net>
2013-06-14Merge tag 'renesas-soc2-for-v3.11' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc From Simon Horman: Second Round of Renesas ARM-based SoC updates for v3.11 * Ether device name updates for r8a7778 and r8a7779 Sergei Shtylyov * Extended clock and driver coverage for r8a7778 by Goda-san and Morimoto-san * Extended clock and coverage for r8a73a4 and r8a7790 by Guennadi Liakhovetski * HSCIF support for r8a7790 by Ulrich Hecht * tag 'renesas-soc2-for-v3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: r8a7790: add clock definitions and aliases for MMCIF and SDHI ARM: shmobile: r8a73a4: add clock definitions and aliases for MMCIF and SDHI ARM: shmobile: r8a7778: add support MMC driver ARM: shmobile: r8a7778: add support HSPI driver ARM: shmobile: r8a7778: add support I2C driver ARM: shmobile: r8a7778: add support MMC clock ARM: shmobile: r8a7778: add support HSPI clock ARM: shmobile: r8a7778: add support I2C clock ARM: shmobile: r8a7790: HSCIF support ARM: shmobile: r8a7778: fix Ether device name ARM: shmobile: r8a7779: fix Ether device name Signed-off-by: Olof Johansson <olof@lixom.net> Conflicts: arch/arm/mach-shmobile/clock-r8a7778.c arch/arm/mach-shmobile/include/mach/r8a7778.h
2013-06-14Merge tag 'renesas-phy-rcar-usb-for-v3.11' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc From Simon Horman: Renesas USB updates for v3.11 These updates are by Sergei Shtylyov to clean-up USB support present for R8A7779/Marzen and then extend USB support coverage to R8A7778/BOCK-W. * tag 'renesas-phy-rcar-usb-for-v3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: BOCK-W: add USB support ARM: shmobile: r8a7778: add USB support phy-rcar-usb: add R8A7778 support phy-rcar-usb: handle platform data ARM: shmobile: Marzen: pass platform data to USB PHY device phy-rcar-usb: add platform data phy-rcar-usb: correct base address ARM: shmobile: r8a7779: remove USB PHY 2nd memory resource phy-rcar-usb: remove EHCI internal buffer setup ARM: shmobile: r8a7779: setup EHCI internal buffer ehci-platform: add pre_setup() method to platform data ARM: shmobile: Marzen: move USB EHCI, OHCI, and PHY devices to R8A7779 code Conflicts: arch/arm/mach-shmobile/board-marzen.c arch/arm/mach-shmobile/setup-r8a7778.c Signed-off-by: Olof Johansson <olof@lixom.net>
2013-06-14Merge tag 'regmap-3.11' of git://git.infradead.org/users/jcooper/linux into ↵Olof Johansson
next/soc mvebu register map changes for v3.11 This series removes the hardcoded register base address for mvebu. Depends: - mvebu/fixes-non-critical (up to tags/fixes-non-3.11-1) - mvebu/cleanup (up to tags/cleanup-3.11-3) * tag 'regmap-3.11' of git://git.infradead.org/users/jcooper/linux: arm: mvebu: disable DEBUG_LL/EARLY_PRINTK in defconfig arm: mvebu: add another earlyprintk Kconfig option arm: mvebu: don't hardcode the physical address for mvebu-mbus arm: mvebu: don't hardcode a physical address in headsmp.S arm: mvebu: remove hardcoded static I/O mapping arm: mvebu: move cache and mvebu-mbus initialization later arm: mvebu: avoid hardcoded virtual address in coherency code arm: mvebu: remove dependency of SMP init on static I/O mapping arm: mvebu: fix length of Ethernet registers area in .dtsi arm: mvebu: fix length of SATA registers area in .dtsi arm: mvebu: mark functions of armada-370-xp.c as static ARM: mvebu: Remove init_irq declaration in machine description ARM: Orion: Remove redundant init_dma_coherent_pool_size() Signed-off-by: Olof Johansson <olof@lixom.net>
2013-06-14Merge tag 'omap-for-v3.11/omap5-signed' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc From Tony Lindgren: Omap5 SoC data via Paul Walmsley <paul@pwsan.com: Add support for the OMAP5 SoC family. As part of the transition to DT, no board files will be used for OMAP5. The hwmod data is gradually being transitioned away from arch/arm/mach-omap2: IRQ, DMA, and memory map data has been moved to DT. Hopefully the dev_attr and clock role data will be the next step. Basic test logs are available here, although not for OMAP5, since I don't have an OMAP5 board: http://www.pwsan.com/omap/testlogs/omap5_v3.10/20130608130949/ * tag 'omap-for-v3.11/omap5-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP5: Remove unused include for ocp2scp ARM: OMAP5: Enable build and frameowrk initialisations ARM: OMAP5: voltagedomain data: Add OMAP5 voltage domain data ARM: OMAP5: hwmod data: Create initial OMAP5 SOC hwmod data ARM: OMAP5: powerdomain data: Add OMAP54XX data and update the header ARM: OMAP5: clockdomain data: Add OMAP54XX data and update the header ARM: OMAP5: SCRM: Add OMAP54XX header file. ARM: OMAP5: PRCM: Add OMAP54XX local MPU PRCM registers ARM: OMAP4+: PRCM MPU: Move function prototypes to common header for re-use ARM: OMAP5: CM: Add OMAP54XX register and bitfield files ARM: OMAP4+: CM: Move function prototypes to common header for re-use ARM: OMAP5: PRM: Add OMAP54XX register and bitfield files ARM: OMAP4+: PRM: Move function prototypes to common header for re-use Signed-off-by: Olof Johansson <olof@lixom.net>
2013-06-14Merge tag 'omap-for-v3.11/soc-signed' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc From Tony Lindgren: Omap SoC changes. Mostly improves am33xx support, and adds minimal support for am43x SoCs. * tag 'omap-for-v3.11/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: AM43x: SRAM base and size ARM: OMAP2+: AM43x: GP or HS ? ARM: OMAP2+: AM43x: early init ARM: OMAP2+: AM43x: static mapping ARM: OMAP2+: AM437x: SoC revision detection ARM: OMAP2+: AM43x: soc_is support ARM: OMAP2+: AM43x: kbuild ARM: OMAP2+: AM43x: Kconfig ARM: OMAP2+: separate out OMAP4 restart ARM: AM33XX: clk: Add clock node for EHRPWM TBCLK ARM: OMAP3: clock data: get rid of unused USB host clock aliases and dummies ARM: OMAP2+: AM33xx: Add missing reset status info to GFX hwmod + Linux 3.10-rc5 Signed-off-by: Olof Johansson <olof@lixom.net>
2013-06-14Merge tag 'omap-for-v3.11/pm-signed' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc From Tony Lindgren: Omap PM changes via Kevin Hilman <khilman@linaro.org>: OMAP PM cleanups for v3.10 * tag 'omap-for-v3.11/pm-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP4+: PM: Consolidate OMAP4 PM code to re-use it for OMAP5 ARM: OMAP4+: Make secondary_startup function name more consistent ARM: OMAP4+: PM: Consolidate MPU subsystem PM code for re-use ARM: OMAP4: PM: Avoid expensive cpu_suspend() path for all CPU power states except off
2013-06-13arm: mvebu: disable DEBUG_LL/EARLY_PRINTK in defconfigThomas Petazzoni
Now that we have two different addresses for the UART, depending on which bootloader is used, it is no longer desirable to enable earlyprintk by default in the defconfig. Users who need earlyprintk support will have to enable it explicitly, and select the right UART configuration depending on their platform. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2013-06-13arm: mvebu: add another earlyprintk Kconfig optionThomas Petazzoni
In order to support both old and new bootloaders, we add a new Kconfig option for the earlyprintk UART selection. The existing option allows to work with old bootloaders (that keep the internal registers mapped at 0xd0000000), while the newly introduced option allows to work with new bootloaders (that remap the internal registers at 0xf1000000). Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2013-06-13arm: mvebu: don't hardcode the physical address for mvebu-mbusThomas Petazzoni
Since the mvebu-mbus driver doesn't yet have a DT binding (and this DT binding may not necessarily be ready for 3.11), the physical address of the mvebu-mbus registers are currently hardcoded. This doesn't play well with the fact that the internal registers base address may be different depending on the bootloader. In order to have only one central place for the physical address of the internal registers, we now use of_translate_address() to translate the mvebu-mbus register offsets into the real physical address, by using DT-based address translation. This will go away once the mvebu-mbus driver gains a proper DT binding. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2013-06-13arm: mvebu: don't hardcode a physical address in headsmp.SThomas Petazzoni
Now that the coherency_init() function is called a bit earlier, we can actually read the physical address of the coherency unit registers from the Device Tree, and communicate that to the headsmp.S code, which avoids hardcoding a physical address. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Will Deacon <will.deacon@arm.com> Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2013-06-13arm: mvebu: remove hardcoded static I/O mappingThomas Petazzoni
Now that we have removed the need of the static I/O mapping for early initialization reasons, and fixed the registers area length that were broken, we can get rid of the static I/O mapping. Only the earlyprintk mapping needs to be set up, using the debug_ll_io_init() helper function. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2013-06-13arm: mvebu: move cache and mvebu-mbus initialization laterThomas Petazzoni
Current, the L2 cache and the mvebu-mbus drivers are initialized at ->init_early() time. However, at ->init_early() time, ioremap() only works if a static I/O mapping has already been put in place. If it's not the case, it tries to do a memory allocation with kmalloc() which is not possible so early at this stage of the initialization. Since we want to get rid of the static I/O mapping, we cannot initialize the L2 cache driver and the mvebu-mbus driver so early. So, we move their initialization to the ->init_time() level, which is slightly later (so ioremap() works properly), but sufficiently early to be before the call of the ->smp_prepare_cpus() hook, which creates an address decoding window for the BootROM, which requires the mvebu-mbus driver to be properly initialized. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2013-06-13arm: mvebu: avoid hardcoded virtual address in coherency codeThomas Petazzoni
Now that the coherency_get_cpu_count() function no longer requires a very early mapping of the coherency unit registers, we can avoid the hardcoded virtual address in coherency.c. However, the coherency features are still used quite early, so we need to do the of_iomap() early enough, at the ->init_timer() level, so we have the call of coherency_init() at this point. Unfortunately, at ->init_timer() time, it is not possible to register a bus notifier, so we add a separate coherency_late_init() function that gets called as as postcore_initcall(), when bus notifiers are available. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2013-06-13arm: mvebu: remove dependency of SMP init on static I/O mappingThomas Petazzoni
The ->smp_init_cpus() function is called very early during boot, at a point where dynamic I/O mappings are not yet possible. However, in the Armada 370/XP implementation of this function, we have to get the number of CPUs. We used to do that by accessing a hardware register, which requires relying on a static I/O mapping set up by ->map_io(). Not only this requires hardcoding a virtual address, but it also prevents us from removing the static I/O mapping. So this commit changes the way used to get the number of CPUs: we now use the Device Tree, which is a representation of the hardware, and provides us the number of available CPUs. This is also more accurate, because it potentially allows to boot the Linux kernel on only a number of CPUs given by the Device Tree, instead of unconditionally on all CPUs. As a consequence, the coherency_get_cpu_count() function becomes no longer used, so we remove it. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2013-06-13Merge tag 'tags/cleanup-3.11-3' into mvebu/regmapJason Cooper
mvebu cleanup for v3.11 (round 3) - mvebu - mark functions in armada-370-xp.c as static