Commit Graph

177 Commits

Author SHA1 Message Date
Scott Branden d318987ecd ARM: mach-bcm: Consolidate currently supported IPROC SoCs
Move ARCH_BCM_5301X subarch under ARCH_IPROC architecture.
Additional IPROC chipsets that share a lot of commonality should be
added under ARCH_IPROC as well.

Signed-off-by: Scott Branden <sbranden@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2014-11-11 22:35:41 -08:00
Jonathan Richardson 1b475f8d02 ARM: cygnus: Initial support for Broadcom Cygnus SoC
Adds initial support for the Cygnus SoC based on Broadcom’s iProc series.

Reviewed-by: Ray Jui <rjui@broadcom.com>
Reviewed-by: Desmond Liu <desmondl@broadcom.com>
Reviewed-by: JD (Jiandong) Zheng <jdzheng@broadcom.com>
Tested-by: Jonathan Richardson <jonathar@broadcom.com>
Signed-off-by: Scott Branden <sbranden@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2014-11-11 22:35:35 -08:00
Kevin Cernekee a4fcbb8614 irqchip: bcm7120-l2: Decouple driver from brcmstb-l2
Some chips, such as BCM6328, only require bcm7120-l2.  Some BCM7xxx STB
configurations only require brcmstb-l2.  Treat them as two separate
entities, and update the mach-bcm dependencies to reflect the change.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lkml.kernel.org/r/1415342669-30640-13-git-send-email-cernekee@gmail.com
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-11-09 04:03:17 +00:00
Brian Norris 1aaaad3ffa ARM: brcmstb: Kconfig: drop unneeded symbol selections
These are either implied or not necessary.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2014-10-20 12:44:41 -07:00
Brian Norris 62639c2f53 ARM: brcmstb: reintroduce SMP support
Support for SMP bringup of the B15 CPUs on Broadcom STB chips was added
in commit 4fbe66d990 but was reverted in
commit fc3e825fa9 to address some late
review comments. This reintroduces SMP support.

Signed-off-by: Marc Carino <marc.ceeeee@gmail.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2014-10-20 12:44:40 -07:00
Arnd Bergmann e1e85e76ef Merge tag 'bcm63138-v4' of http://github.com/brcm/linux into next/soc
Merge "ARM: BCM: Broadcom BCM63138 support" from Florian Fainelli:

This patchset adds very minimal support for the BCM63138 SoC which is
a xDSL SoC using a dual Cortex A9 CPU complex.

* tag 'bcm63138-v4' of http://github.com/brcm/linux:
  MAINTAINERS: add entry for the Broadcom BCM63xx ARM SoCs
  ARM: BCM63XX: add BCM963138DVT Reference platform DTS
  ARM: BCM63XX: add BCM63138 minimal Device Tree
  ARM: BCM63XX: add low-level UART debug support
  ARM: BCM63XX: add basic support for the Broadcom BCM63138 DSL SoC

Conflicts:
	arch/arm/Kconfig.debug

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-09-25 23:50:02 +02:00
Florian Fainelli dc6aec60e1 ARM: BCM63XX: add basic support for the Broadcom BCM63138 DSL SoC
This patch adds basic support for the Broadcom BCM63138 DSL SoC which is
using a dual-core Cortex A9 system. Add the very minimum required code
boot Linux on this SoC.

Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2014-09-17 10:56:06 -07:00
Brian Norris fc3e825fa9 ARM: brcmstb: revert SMP support
There were several issues (of varying degree of importance) pointed out
with this code late in the review cycle, yet the code was still merged.
Let's rip it out for now and look at resubmitting at a later time.

This reverts most of commit 4fbe66d990.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
2014-08-25 18:46:31 -07:00
Linus Torvalds b3345d7c57 ARM: SoC platform changes for 3.17
This is the bulk of new SoC enablement and other platform changes for 3.17:
 
 * Samsung S5PV210 has been converted to DT and multiplatform
 * Clock drivers and bindings for some of the lower-end i.MX 1/2 platforms
 * Kirkwood, one of the popular Marvell platforms, is folded into the
   mvebu platform code, removing mach-kirkwood.
 * Hwmod data for TI AM43xx and DRA7 platforms.
 * More additions of Renesas shmobile platform support
 * Removal of plat-samsung contents that can be removed with S5PV210 being
   multiplatform/DT-enabled and the other two old platforms being removed.
 
 New platforms (most with only basic support right now):
 
 * Hisilicon X5HD2 settop box chipset is introduced
 * Mediatek MT6589 (mobile chipset) is introduced
 * Broadcom BCM7xxx settop box chipset is introduced
 
 + as usual a lot other pieces all over the platform code.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.14 (GNU/Linux)
 
 iQIcBAABAgAGBQJT5Dp+AAoJEIwa5zzehBx3w1sP/0vjT/LQOmC8Lv8RW2Ley2ua
 hNu3HcNPnT/N40JEdU9YNv3q0fdxGgcfKj011CNN+49zPSUf1xduk2wfCAk9yV50
 8Sbt1PfDGm1YyUugGN420CzI431pPoM1OGXHZHkAmg+2J286RtUi3NckB//QDbCY
 QhEjhpYc9SXhAOCGwmB4ab7thOljOFSPzKTLMTu3+PNI5zRPRgkDkt6w9XlsAYmB
 nuR271BnzsROkMzAjycwaJ3kdim7wqrMRfk8g96o0jHSF5qf4zsT5uWYYAjTxdUQ
 8Ajz6zjeHe4+95TwTDcq+lCX6rDLZgwkvCAc6hFbeg0uR7Dyek0h6XMEYtwdjaiU
 KNPwOENrYdENNDAGRpkFp1x4h/rY9Plfru0bBo5o6t7aPBvmNeCDzRtlTtLiUNDV
 dG8sfDMtrS/wFHVjylDSQ60Mb+wuW0XneC8D7chY/iRhIllUYi6YXXvt+/tH5C20
 oYDOWqqcDFSb0sJhE5pn4KBV82ZaHx9jMBWGLl+erg2sDX/SK8SxOkLqKYZKtKB5
 0leOGE3Y+C70xt3G9HftLz2sAvvt+C8UPsApPT+dHNE401TWJOYx6LphPkQKjeeK
 P1iwKi+It3l+FaBypgJy/LeMQRy7EyvDBK2I5WoVL/R2qq14EmP1ui3Tthjj0bhq
 tBBof6P9c8OnRVj1Lz3R
 =5TJ6
 -----END PGP SIGNATURE-----

Merge tag 'soc-for-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM SoC platform changes from Olof Johansson:
 "This is the bulk of new SoC enablement and other platform changes for
  3.17:

   - Samsung S5PV210 has been converted to DT and multiplatform
   - Clock drivers and bindings for some of the lower-end i.MX 1/2
     platforms
   - Kirkwood, one of the popular Marvell platforms, is folded into the
     mvebu platform code, removing mach-kirkwood
   - Hwmod data for TI AM43xx and DRA7 platforms
   - More additions of Renesas shmobile platform support
   - Removal of plat-samsung contents that can be removed with S5PV210
     being multiplatform/DT-enabled and the other two old platforms
     being removed

  New platforms (most with only basic support right now):

   - Hisilicon X5HD2 settop box chipset is introduced
   - Mediatek MT6589 (mobile chipset) is introduced
   - Broadcom BCM7xxx settop box chipset is introduced

  + as usual a lot other pieces all over the platform code"

* tag 'soc-for-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (240 commits)
  ARM: hisi: remove smp from machine descriptor
  power: reset: move hisilicon reboot code
  ARM: dts: Add hix5hd2-dkb dts file.
  ARM: debug: Rename Hi3716 to HIX5HD2
  ARM: hisi: enable hix5hd2 SoC
  ARM: hisi: add ARCH_HISI
  MAINTAINERS: add entry for Broadcom ARM STB architecture
  ARM: brcmstb: select GISB arbiter and interrupt drivers
  ARM: brcmstb: add infrastructure for ARM-based Broadcom STB SoCs
  ARM: configs: enable SMP in bcm_defconfig
  ARM: add SMP support for Broadcom mobile SoCs
  Documentation: arm: misc updates to Marvell EBU SoC status
  Documentation: arm: add URLs to public datasheets for the Marvell Armada XP SoC
  ARM: mvebu: fix build without platforms selected
  ARM: mvebu: add cpuidle support for Armada 38x
  ARM: mvebu: add cpuidle support for Armada 370
  cpuidle: mvebu: add Armada 38x support
  cpuidle: mvebu: add Armada 370 support
  cpuidle: mvebu: rename the driver from armada-370-xp to mvebu-v7
  ARM: mvebu: export the SCU address
  ...
2014-08-08 11:14:29 -07:00
Brian Norris 305787f901 ARM: brcmstb: select GISB arbiter and interrupt drivers
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-07-28 09:59:51 -04:00
Marc Carino 4fbe66d990 ARM: brcmstb: add infrastructure for ARM-based Broadcom STB SoCs
The BCM7xxx series of Broadcom SoCs are used primarily in set-top boxes.

This patch adds machine support for the ARM-based Broadcom SoCs.

Signed-off-by: Marc Carino <marc.ceeeee@gmail.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-07-28 09:58:52 -04:00
Alex Elder 9a5a110eb9 ARM: add SMP support for Broadcom mobile SoCs
This patch adds SMP support for BCM281XX and BCM21664 family SoCs.

This feature is controlled with a distinct config option such that
an SMP-enabled multi-v7 binary can be configured to run these SoCs
in uniprocessor mode.  Since this SMP functionality is used for
multiple Broadcom mobile chip families the config option is called
ARCH_BCM_MOBILE_SMP (for lack of a better name).

On SoCs of this type, the secondary core is not held in reset on
power-on.  Instead it loops in a ROM-based holding pen.  To release
it, one must write into a special register a jump address whose
low-order bits have been replaced with a secondary core's id, then
trigger an event with SEV.  On receipt of an event, the ROM code
will examine the register's contents, and if the low-order bits
match its cpu id, it will clear them and write the value back to the
register just prior to jumping to the address specified.

The location of the special register is defined in the device tree
using a "secondary-boot-reg" property in a node whose "enable-method"
matches.

Derived from code originally provided by Ray Jui <rjui@broadcom.com>

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-07-28 09:42:24 -04:00
Pawel Moll d2168146c2 platform: Remove most references to platform_bus device
A number of board files in arch/arm and arch/unicore32
explicitly reference platform_bus device as a parent
for new platform devices.

This is unnecessary, as platform device API guarantees
that devices with NULL parent are going to by adopted
by the mentioned "root" device.

This patch removes or replaces with NULL such references.

Signed-off-by: Pawel Moll <pawel.moll@arm.com>
Acked-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-07-23 19:09:03 -07:00
Rob Herring 21278aeafb ARM: use menuconfig for sub-arch menus
The System Type menu is getting quite long with platforms and is
inconsistent in handling of sub-arch specific options. Tidy up the menu
by making platform options a menuconfig entry containing any platform
specific config items.

[arnd: change OMAP part according to suggestion from
 Tony Lindgren <tony@atomide.com>]

Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-06-17 17:09:48 +02:00
Linus Torvalds eb3d3ec567 Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next
Pull ARM updates from Russell King:

 - Major clean-up of the L2 cache support code.  The existing mess was
   becoming rather unmaintainable through all the additions that others
   have done over time.  This turns it into a much nicer structure, and
   implements a few performance improvements as well.

 - Clean up some of the CP15 control register tweaks for alignment
   support, moving some code and data into alignment.c

 - DMA properties for ARM, from Santosh and reviewed by DT people.  This
   adds DT properties to specify bus translations we can't discover
   automatically, and to indicate whether devices are coherent.

 - Hibernation support for ARM

 - Make ftrace work with read-only text in modules

 - add suspend support for PJ4B CPUs

 - rework interrupt masking for undefined instruction handling, which
   allows us to enable interrupts earlier in the handling of these
   exceptions.

 - support for big endian page tables

 - fix stacktrace support to exclude stacktrace functions from the
   trace, and add save_stack_trace_regs() implementation so that kprobes
   can record stack traces.

 - Add support for the Cortex-A17 CPU.

 - Remove last vestiges of ARM710 support.

 - Removal of ARM "meminfo" structure, finally converting us solely to
   memblock to handle the early memory initialisation.

* 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: (142 commits)
  ARM: ensure C page table setup code follows assembly code (part II)
  ARM: ensure C page table setup code follows assembly code
  ARM: consolidate last remaining open-coded alignment trap enable
  ARM: remove global cr_no_alignment
  ARM: remove CPU_CP15 conditional from alignment.c
  ARM: remove unused adjust_cr() function
  ARM: move "noalign" command line option to alignment.c
  ARM: provide common method to clear bits in CPU control register
  ARM: 8025/1: Get rid of meminfo
  ARM: 8060/1: mm: allow sub-architectures to override PCI I/O memory type
  ARM: 8066/1: correction for ARM patch 8031/2
  ARM: 8049/1: ftrace/add save_stack_trace_regs() implementation
  ARM: 8065/1: remove last use of CONFIG_CPU_ARM710
  ARM: 8062/1: Modify ldrt fixup handler to re-execute the userspace instruction
  ARM: 8047/1: rwsem: use asm-generic rwsem implementation
  ARM: l2c: trial at enabling some Cortex-A9 optimisations
  ARM: l2c: add warnings for stuff modifying aux_ctrl register values
  ARM: l2c: print a warning with L2C-310 caches if the cache size is modified
  ARM: l2c: remove old .set_debug method
  ARM: l2c: kill L2X0_AUX_CTRL_MASK before anyone else makes use of this
  ...
2014-06-05 15:57:04 -07:00
Linus Torvalds 825f4e0271 ARM: SoC updates for 3.16 (part 1)
A quite large set of SoC updates this cycle. In no particular order:
 
 - Multi-cluster power management for Samsung Exynos, adding support for
   big.LITTLE CPU switching on EXYNOS5
 - SMP support for Marvell Armada 375 and 38x
 - SMP rework on Allwinner A31
 - Xilinx Zynq support for SOC_BUS, big endian
 - Marvell orion5x platform cleanup, modernizing the implementation and
   moving to DT.
 - _Finally_ moving Samsung Exynos over to support MULTIPLATFORM, so
   that their platform can be enabled in the same kernel binary as most
   of the other v7 platforms in the tree. \o/ The work isn't quite complete,
   there's some driver fixes still needed, but the basics now work.
 
 New SoC support added:
 - Freescale i.MX6SX
 - LSI Axxia AXM55xx SoCs
 - Samsung EXYNOS 3250, 5260, 5410, 5420 and 5800
 - STi STIH407
 
 Plus a large set of various smaller updates for different platforms. I'm
 probably missing some important one here.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.14 (GNU/Linux)
 
 iQIcBAABAgAGBQJTjOKWAAoJEIwa5zzehBx36aEP/2vTD7x9FC59FACNHJ8iO7aw
 0ebTgBBjI1Np6X18O+M7URbxV5TaBgwpUm/NDN86p03MpQ2eOXr8r47qVxe/HhZs
 AdlTvzgE6QwxcVL/HeCKKUEN3BPH74+TZgFl9I5aSzNjpR39xETeK1aWP/ZiAl/q
 /lGRZAQ59+c7Ung00Hg0g2YDxH9WFpK50Nj90ROnyjKSFkhIYngXYVpZB3maOypq
 Pgib/U8IraKZ52oGJw3yinSoORr7FdcUdAGWGTz/lQdNL/jYDfQ6GkRW2oblWXdt
 3Xvj9UW6NmkbMICucMvFuuW1nXAgutZuTp9w7mBxsiUlYepxPv/DXM6yiI1WGlEb
 BeVOmOreNeN2nT6avv/uUhk3Osq63Jn9x8cz5y+7/lgWQwllh3/c+G01RotvgJEQ
 vpQq5ps9fMxIAMaNP6N/YqMJI1IOrBj0iXxaZEDw3VYM/k4lSvtb3VXP9c/rqApu
 U4i6hpSIGzrraU4NrjndYPndcLeNOVZbByETQKosZXuCo6G1sb7FstNSkzI9vSo8
 O/pujIVUfYyBW82GzZGDw+aa7DWA29FPeUQ3p+sj5MSCg051xXT8h6QwqMo2K/zY
 5ATs/qo6w7zH/Ou9rtHTRynCIb0GQJThDSlWtuXFedUF9quEltS+TDz/2o+dWtGJ
 yBFGKDRuBB20D36w9xqg
 =6LYI
 -----END PGP SIGNATURE-----

Merge tag 'soc-for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc into next

Pull part one of ARM SoC updates from Olof Johansson:
 "A quite large set of SoC updates this cycle.  In no particular order:

   - Multi-cluster power management for Samsung Exynos, adding support
     for big.LITTLE CPU switching on EXYNOS5

   - SMP support for Marvell Armada 375 and 38x

   - SMP rework on Allwinner A31

   - Xilinx Zynq support for SOC_BUS, big endian

   - Marvell orion5x platform cleanup, modernizing the implementation
     and moving to DT.

   - _Finally_ moving Samsung Exynos over to support MULTIPLATFORM, so
     that their platform can be enabled in the same kernel binary as
     most of the other v7 platforms in the tree.  \o/

     The work isn't quite complete, there's some driver fixes still
     needed, but the basics now work.

  New SoC support added:

   - Freescale i.MX6SX

   - LSI Axxia AXM55xx SoCs

   - Samsung EXYNOS 3250, 5260, 5410, 5420 and 5800

   - STi STIH407

  plus a large set of various smaller updates for different platforms.
  I'm probably missing some important one here"

* tag 'soc-for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (281 commits)
  ARM: exynos: don't run exynos4 l2x0 setup on other platforms
  ARM: exynos: Fix "allmodconfig" build errors in mcpm and hotplug
  ARM: EXYNOS: mcpm rename the power_down_finish
  ARM: EXYNOS: Enable mcpm for dual-cluster exynos5800 SoC
  ARM: EXYNOS: Enable multi-platform build support
  ARM: EXYNOS: Consolidate Kconfig entries
  ARM: EXYNOS: Add support for EXYNOS5410 SoC
  ARM: EXYNOS: Support secondary CPU boot of Exynos3250
  ARM: EXYNOS: Add Exynos3250 SoC ID
  ARM: EXYNOS: Add 5800 SoC support
  ARM: EXYNOS: initial board support for exynos5260 SoC
  clk: exynos5410: register clocks using common clock framework
  ARM: debug: qcom: add UART addresses to Kconfig help for APQ8084
  ARM: sunxi: allow building without reset controller
  Documentation: devicetree: arm: sort enable-method entries
  ARM: rockchip: convert smp bringup to CPU_METHOD_OF_DECLARE
  clk: exynos5250: Add missing sysmmu clocks for DISP and ISP blocks
  ARM: dts: axxia: Add reset controller
  power: reset: Add Axxia system reset driver
  ARM: axxia: Adding defconfig for AXM55xx
  ...
2014-06-02 16:15:12 -07:00
Russell King d458773fb3 ARM: l2c: bcm_5301x: convert to generic l2c OF initialisation
Remove the explicit call to l2x0_of_init(), converting to the generic
infrastructure instead.  We can remove the explicit machine init too
as this becomes identical to the generic version.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2014-05-30 00:49:04 +01:00
Will Deacon 08d38bebb4 ARM: kconfig: allow PCI support to be selected with ARCH_MULTIPLATFORM
When targetting ARCH_MULTIPLATFORM, we may include support for SoCs with
PCI-capable devices (e.g. mach-virt with virtio-pci).

This patch allows PCI support to be selected for these SoCs by selecting
CONFIG_MIGHT_HAVE_PCI when CONFIG_ARCH_MULTIPLATFORM=y and removes the
individual selections from multi-platform enabled SoCs.

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
2014-05-29 12:42:38 -07:00
Arnd Bergmann 1ef81bf7bc mach-bcm 3.16 soc updates:
* only show ARCH_BCM in multi v6/v7 configs
 * enable ARM erratum 775420
 * bcm_defconfig updates for pwm
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJTf0eOAAoJEOfTILNwq7R4yOUQAJIJVm5Sv3NIfZuU4fq0d+RZ
 UITyfQKZ9CRZ0WVOBl2IoKapxMKR/55d/O7/EZPh5HTpybVam/FXGDCo/ewJ+CNJ
 JkfkPX1UhCHoZ2VgNnx6UdXpYhbdpkgXHnhCpEaJ7b28BDIobxnDogNudQPenp1O
 rougpAeuRrEc8tW6+iDlmng25hBicD60RtbxKyoPAoDBm3QtcvL7sUMhUnlajc6Q
 XjDMlLcm5/fNBooeDFFvGmAnnX1JHMiMgJsanRv3dFRuk+7WiE/qNLlxgZFJgNwX
 XTCu/mLelCr3Avoq142rTTXolV18i5P5Jk4eK6imhE6h9VYB/YvaVIbmlli8psDh
 A4+dADWtUe/jNarx8G3mMzyA2GBeWroUiCizTiECpJYiSAKYz9V8l+J1sLrFlR8v
 7OyFTHKQolfMkVBji6kfcBdAOprl/HhirDGJhcc+kczxsg0hLWMLocg9jLueEjQR
 8t00bJs41vuZnxSYxEuRfe2nZpj8HugsnC1yPzxvU7oUnKLNXor7N60Km68PQtWg
 3VVagGfcABQ5ZtRhABf/KhKM31WGWIzYY+kA61NBaj5XRP21aWgfVlhNb/E8OahJ
 +YJUjwISN4aQLlvFukmHiFHmE/5ekM9cF+TAPuOgnTTXI7Zmv4SBLcE1oR1NQtmr
 PTKlCQdMN1kITA5qLGKb
 =qAvl
 -----END PGP SIGNATURE-----

Merge tag 'for-3.16/bcm-soc' of git://github.com/broadcom/mach-bcm into next/soc

Merge "mach-bcm 3.16 soc updates" From Matt Porter:

* only show ARCH_BCM in multi v6/v7 configs
* enable ARM erratum 775420
* bcm_defconfig updates for pwm

* tag 'for-3.16/bcm-soc' of git://github.com/broadcom/mach-bcm:
  ARM: bcm_defconfig: Enable PWM and Backlight
  ARM: mach-bcm: add ARM_ERRATA_775420
  ARM: bcm: Restrict ARCH_BCM selection to ARCH_MULTI_V6_V7

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-05-24 00:44:26 +02:00
Arnd Bergmann 80e98a9ca6 Merge branch 'bcm/cleanup' into next/soc
Conflicts:
	arch/arm/mach-bcm/Kconfig
2014-05-24 00:44:17 +02:00
Arnd Bergmann c40f01287b * Clean up mach-bcm config and build targets
* Clean up bcm281xx/21664 SMC code
 * Clean up bcm281xx/21664 L2C code
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJTf0TFAAoJEOfTILNwq7R4nvIQAI8T/EVvRaGQYgkgyer8rnCq
 cfurHHrn51uEFUS+kER522wYmGgqK7+B00h6u5QohcLelb7f2CdC2MQarmSA8G1G
 M5zl5EpmkBBoEpq+co2IGMtdpDk3vQqZbh1yBIb3DsJAQZzsMDUyS/L4vQ/LSCQN
 VLDLptro5kJmsgMdZ37XhkcLUXYhWPTXEggSHBvVDWk9hjc0h+75ZSwkCegUdA4X
 JhmojUyb3qyh/Gq+9vRvdakkwlbQQv/duvkzwEDgpFXns7gt7jz/DSuKhH2HymPc
 N/F3l/mEwVt1k3Ve0ij7tjejXsm/to2goD2YJEkxjdO8QeK808WcHMXQRJL5xNPc
 803LI/LtpL9gw0MinLQX7w7WoFbQXI9dUofCzu16va42k0uNmF/OFcTo6Y0R4Fla
 qhvZDQksHjO0c64P87ly2ypRNhjqkSzrnA+umjJ5UAItSG3AwJYYK8/uuaKJbugp
 r5QnjRcSJI+k+iA03I9lZCrETS1hUFlMpzlv8ZjoMpRhJ9H4Y7S/xWqtQMJyE9bi
 ABjJj2Q3Y67NAmKJYYXcCZUNwMuiwitMVo+wamsDbIWEFVk1NTsZBqWRvGkD1Ev4
 STKz9UohrlFisODUsBhSt0VgX9D9BMihn5DwsN8Eh0OHbWbPrzWitcO26YBfsEue
 CH591KjF5+fiPYHMme9j
 =QVlm
 -----END PGP SIGNATURE-----

Merge tag 'for-3.16/bcm-cleanup' of git://github.com/broadcom/mach-bcm into next/cleanup

* Clean up mach-bcm config and build targets
* Clean up bcm281xx/21664 SMC code
* Clean up bcm281xx/21664 L2C code

* tag 'for-3.16/bcm-cleanup' of git://github.com/broadcom/mach-bcm:
  ARM: bcm: rename "kona.h" and "kona.c"
  ARM: bcm: rewrite commentary for bcm_kona_do_smc()
  ARM: bcm: use inline assembly for "smc" request
  ARM: bcm: tidy up a few includes
  ARM: bcm: config option for l2 cache support
  ARM: bcm: don't special-case CPU 0 in bcm_kona_smc()
  ARM: bcm: have bcm_kona_smc() return request result
  ARM: bcm: clean up SMC code
  ARM: bcm: err, don't BUG() on SMC init failures
  ARM: bcm: use memory accessors for ioremapped area
  ARM: bcm: clean up config and build targets

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Conflicts:
	arch/arm/mach-bcm/Kconfig
2014-05-24 00:29:10 +02:00
Russell King d453ef752c ARM: l2c: remove unnecessary UL-suffix to mask values
They're u32, they're not unsigned long.  The UL suffix is not required
here.

Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2014-05-22 16:38:43 +01:00
Scott Branden ffc1086a55 ARM: mach-bcm: add ARM_ERRATA_775420
ARM_ERRATA_775420 needs to be enabled.

A data cache maintenance operation which aborts, followed by an ISB,
without any DSB in-between, might lead to deadlock.

Affects: bug present in Cortex-A9 r3p0 and earlier. Fixed in r4p0.

Cortex-A9 r3p0 is used in a multitude of Broadcom parts including
the bcm21664, bcm281xx, 5301x families of devices.

Signed-off-by: Scott Branden <sbranden@broadcom.com>
Tested-by: Markus Mayer <markus.mayer@linaro.org>
Reviewed-by: Markus Mayer <markus.mayer@linaro.org>
Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-04-25 08:56:48 -04:00
Alexander Shiyan fd33615897 ARM: bcm: Restrict ARCH_BCM selection to ARCH_MULTI_V6_V7
Currently, Broadcom SoC options are shown whenever ARCH_MULTIPLATFORM
is enabled. Restrict this so they are only seen when ARCH_MULTI_V6_V7
variants are enabled.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
[mporter: added commit log message]
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-04-25 08:54:44 -04:00
Alex Elder eeda4cb92e ARM: bcm: rename "kona.h" and "kona.c"
These source files contain only level-2 cache initialization code,
so rename them to make that fact more obvious.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Tim Kryger <tim.kryger@linaro.org>
Reviewed-by: Markus Mayer <markus.mayer@linaro.org>
Reviewed-by: Matt Porter <mporter@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-04-25 08:51:38 -04:00
Alex Elder ed24f446ab ARM: bcm: rewrite commentary for bcm_kona_do_smc()
The block of comments in bcm_kona_do_smc() are somewhat confusing.
This patch attempts to clarify what's going on.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Tim Kryger <tim.kryger@linaro.org>
Reviewed-by: Markus Mayer <markus.mayer@linaro.org>
Reviewed-by: Matt Porter <mporter@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-04-25 08:51:37 -04:00
Alex Elder 8b9c550e37 ARM: bcm: use inline assembly for "smc" request
Move the code that implements the "smc" call into a C function that
uses inline assembly.  This allows us to make that function private,
and enables us to get rid of "arch/arm/mach-bcm/bcm_kona_smc_asm.S".
Rename what had been the "buffer_addr" argument to be "buffer_phys"
so it's consistent with other usage in this file.

Since it's now easy to do, verify that r12 contains SEC_EXIT_NORMAL
upon completion of the SMC.  There really isn't a good way to handle
the abnormal completion of a secure monitor request.

Since "bcm_kona_smc.h" is now only included from C files, eliminate
the #ifndef __ASSEMBLY__.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Tim Kryger <tim.kryger@linaro.org>
Reviewed-by: Markus Mayer <markus.mayer@linaro.org>
Reviewed-by: Matt Porter <mporter@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-04-25 08:51:36 -04:00
Alex Elder d5c627b575 ARM: bcm: tidy up a few includes
Clean up a few header file includes, eliminating a few that are not
really needed and putting in their place some that are.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Matt Porter <mporter@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-04-25 08:51:36 -04:00
Alex Elder 7b5fe9c911 ARM: bcm: config option for l2 cache support
Add a new config option ARCH_BCM_MOBILE_L2_CACHE that allows support
for level-2 cache to be enabled or disabled at build time for
BCM218XX and BCM21664 family SoCs.

Build support for SMC only if it's required (currently it's only
required for to support level 2 cache control).

If arch/arm/mach-bcm/kona.c gets compiled, ARCH_BCM_MOBILE_L2_CACHE
must have been selected, which implies CONFIG_CACHE_L2X0 is set.
There is therefore no need to check CONFIG_CACHE_L2X0 at the top
of kona_l2_cache_init(), so get rid of that check.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Tim Kryger <tim.kryger@linaro.org>
Reviewed-by: Markus Mayer <markus.mayer@linaro.org>
Reviewed-by: Matt Porter <mporter@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-04-25 08:51:35 -04:00
Alex Elder 35138d52f1 ARM: bcm: don't special-case CPU 0 in bcm_kona_smc()
There's logic in bcm_kona_smc() to ensure __bcm_kona_smc() gets
called on CPU 0; if already executing on CPU 0, that function is
called directly.  The direct call is not protected from interrupts,
however, which is not safe.

Note that smp_call_function_single() is designed to handle the case
where the target cpu is the current one.  It also gets a reference
to the CPU and disables IRQs across the call.

So we can simplify things and at the same time be protected against
interrupts by calling smp_call_function_single() unconditionally.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Tim Kryger <tim.kryger@linaro.org>
Reviewed-by: Markus Mayer <markus.mayer@linaro.org>
Reviewed-by: Matt Porter <mporter@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-04-25 08:51:34 -04:00
Alex Elder 6c90f10864 ARM: bcm: have bcm_kona_smc() return request result
Currently it is assumed that SEC_ROM_RET_OK is the only valid "good"
result of a secure monitor request.  However the values that can be
returned by a secure monitor request are dependent on which service
id was provided.

We therefore should handle the result in a request-dependent way.
The most natural way to do that is to have the initiator of the
request--where bcm_kona_smc() is called--handle the result in a way
appropriate to the request.

An "smc" operation must be performed only on core 0, while the
request can be initiated from any core.  To pass back the request
result, we add a new field to the bcm_kona_smc_data structure, and
have bcm_kona_smc() return that value rather than 0.

There's only one caller right now.  Move the existing check of the
result out of __bcm_kona_smc() and into the kona_l2_cache_init()
where the SSAPI_ENABLE_L2_CACHE request is initiated.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Tim Kryger <tim.kryger@linaro.org>
Reviewed-by: Markus Mayer <markus.mayer@linaro.org>
Reviewed-by: Matt Porter <mporter@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-04-25 08:51:33 -04:00
Alex Elder c64756cca2 ARM: bcm: clean up SMC code
This patch just does some simple cleanup in "bcm_kona_smc.c":
    - Get rid of the secure_bridge_data structure.  Instead, just
      define two globals that record the physical and virtual
      addresses of the SMC arguments buffer.  Use "buffer" instead
      of "bounce" in their names.  Drop of the erroneous __iomem
      annotation for the physical address.
    - Get rid of the initialized flag and just use a non-null buffer
      address to indicate that.
    - Get the size of the memory region when fetching the SMC
      arguments buffer location from the device tree.  Use it to
      call ioremap() directly rather than requiring of_iomap() to
      go look it up again.
    - Do some additional validation on that memory region size.
    - Flush caches unconditionally in __bcm_kona_smc(); nothing
      supplies SSAPI_BRCM_START_VC_CORE as a service id.
    - Drop a needless initialization of "rc" in __bcm_kona_smc().

It also deletes most of the content of "bcm_kona_smc.h" because it's
never actually used and is of questionable value anyway.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Tim Kryger <tim.kryger@linaro.org>
Reviewed-by: Markus Mayer <markus.mayer@linaro.org>
Reviewed-by: Matt Porter <mporter@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-04-25 08:51:32 -04:00
Alex Elder 5c4cee2fe8 ARM: bcm: err, don't BUG() on SMC init failures
Several conditions in bcm_kona_smc_init() are handled with BUG_ON().
That function is capable of returning an error, so do that instead.

Also, don't assume of_get_address() returns a valid pointer.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Tim Kryger <tim.kryger@linaro.org>
Reviewed-by: Markus Mayer <markus.mayer@linaro.org>
Reviewed-by: Matt Porter <mporter@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-04-25 08:51:32 -04:00
Alex Elder e80eef33f4 ARM: bcm: use memory accessors for ioremapped area
The pointer used to pass parameters to an "smc" call is produced
through a call to ioremap().  As such, we should be using functions
like writel() to access it.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Tim Kryger <tim.kryger@linaro.org>
Reviewed-by: Markus Mayer <markus.mayer@linaro.org>
Reviewed-by: Matt Porter <mporter@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-04-25 08:51:31 -04:00
Alex Elder 1892bbcdd4 ARM: bcm: clean up config and build targets
Currently CONFIG_ARCH_BCM_MOBILE is used to select all (both)
Broadcom mobile SoC families.  Instead, use that only as a config
menu switch, and define specific symbols like ARCH_BCM_281XX to
select a particular SoC family.  If ARCH_BCM_MOBILE is selected, all
of the SoCs will be selected by default, but this way each can be
disabled individually as well.

Note that BCM281xx and BCM21664 both require the SMC and L2 cache
control code, so that code will be built based on ARCH_BCM_MOBILE.

Signed-off-by: Alex Elder <elder@linaro.org>
[mporter: added ARM: to the description]
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-04-25 08:51:30 -04:00
Rob Herring 9f0db8b9c4 ARM: bcm: clean-up unneeded kconfig selects
Multi-platform support implies all these options are already selected and
individual platforms don't need to select them.

Signed-off-by: Rob Herring <robh@kernel.org>
Cc: Christian Daudt <bcm@fixthebug.org>
Cc: Matt Porter <mporter@linaro.org>
Cc: bcm-kernel-feedback-list@broadcom.com
2014-04-22 14:33:27 -05:00
Linus Torvalds ff050ad12c ARM: SoC specific changes
Lots of changes specific to one of the SoC families. Some that
 stick out are:
 
 * mach-qcom gains new features, most importantly SMP support for
   the newer chips (Stephen Boyd, Rohit Vaswani)
 * mvebu gains support for three new SoCs: Armada 375, 380 and 385
   (Thomas Petazzoni and Free-electrons team)
 * SMP support for Rockchips (Heiko Stübner)
 * Lots of i.MX changes (Shawn Guo)
 * Added support for BCM5301x SoC (Hauke Mehrtens)
 * Multiplatform support for Marvell Kirkwood and Dove
   (Andrew Lunn and Sebastian Hesselbarth doing the final part
   of a long journey)
 * Unify davinci platforms and remove obsolete ones (Sekhar Nori,
   Arnd Bergmann)
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIVAwUAUz/yT2CrR//JCVInAQJN8A/9Ft1rfp4LEe8Lpr9yAZydG4UaJKy8Hh7Z
 fmohMAuy88J+8jzdwQKKCeEiId+nIf+WmFIQDn9YRDev1/T2v32Ax49XuGtY47JX
 4loIC2wR0+j1aSwhEVOmlM03lX7Hbu6iNDkxaLkDKTRrt3DhDNA6cPZYwNOT273W
 Yx7hIDpvsoOVN3zbPwqhwLrXgywsaNB9E7ly1GixRd1thdg46kMRcM0LJSXPH3we
 pyx7sZbILTVMeUx79XUTvBDJYsbjJWFZknVDYXGkrS5YxAASVsVW2KW9fP9E+UXE
 wTmOxg6spsHGgCezwy8NL5UmfaAOXL3mm6ginFwWpyz7Iu+P5IvfR1W+8UA/O8tp
 K9y8wLA64chPQJkAGaPQBqUPq9QkNHodZWgaPKxKuuv3qF481DCnQKkFRz+sl7mu
 oQVGnoMCnTY6L6yYcIq/GpgiJ731vwefirAwPR8FEBN/gw/gC01b+DDchx/5inPJ
 6V6dCEtPZxXMOsIaYBWFauk3pMFU3E8coklmteyYDQg7eb+55Zq3vsNEpu/vb6ll
 M660AQzzbkZ7lgsSBdNODEvkNH15kC35G2UCfwy99uCE4k/0Vi7reJ1BzXkc+dtJ
 +maBtA6NMALXQ/EI+B+fZLccI4Hv7avwFy1rQJaf+TLiFvTd9yp0qUX8JjXWDPgu
 pPWQOC4a9mU=
 =AGpV
 -----END PGP SIGNATURE-----

Merge tag 'soc-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM SoC specific changes from Arnd Bergmann:
 "Lots of changes specific to one of the SoC families.  Some that stick
  out are:

   - mach-qcom gains new features, most importantly SMP support for the
     newer chips (Stephen Boyd, Rohit Vaswani)
   - mvebu gains support for three new SoCs: Armada 375, 380 and 385
     (Thomas Petazzoni and Free-electrons team)
   - SMP support for Rockchips (Heiko Stübner)
   - Lots of i.MX changes (Shawn Guo)
   - Added support for BCM5301x SoC (Hauke Mehrtens)
   - Multiplatform support for Marvell Kirkwood and Dove (Andrew Lunn
     and Sebastian Hesselbarth doing the final part of a long journey)
   - Unify davinci platforms and remove obsolete ones (Sekhar Nori, Arnd
     Bergmann)"

* tag 'soc-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (126 commits)
  ARM: sunxi: Select HAVE_ARM_ARCH_TIMER
  ARM: cache-tauros2: remove ARMv6 code
  ARM: mvebu: don't select CONFIG_NEON
  ARM: davinci: fix DT booting with default defconfig
  ARM: configs: bcm_defconfig: enable bcm590xx regulator support
  ARM: davinci: remove tnetv107x support
  MAINTAINERS: Update ARM STi maintainers
  ARM: restrict BCM_KONA_UART to ARCH_BCM_MOBILE
  ARM: bcm21664: Add board support.
  ARM: sunxi: Add the new watchog compatibles to the reboot code
  ARM: enable ARM_HAS_SG_CHAIN for multiplatform
  ARM: davinci: remove da8xx_omapl_defconfig
  ARM: davinci: da8xx: fix multiple watchdog device registration
  ARM: davinci: add da8xx specific configs to davinci_all_defconfig
  ARM: davinci: enable da8xx build concurrently with older devices
  ARM: BCM5301X: workaround suppress fault
  ARM: BCM5301X: add early debugging support
  ARM: BCM5301X: initial support for the BCM5301X/BCM470X SoCs with ARM CPU
  ARM: mach-bcm: Remove GENERIC_TIME
  ARM: shmobile: APMU: Fix warnings due to improper printk formats
  ...
2014-04-05 14:19:54 -07:00
Arnd Bergmann 3b325a494b ARM: mach-bcm: soc updates for 3.15 - part 2
- Add bcm21664 support
 - Use Kona Debug UART only on ARCH_BCM_MOBILE
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJTI1XaAAoJEOfTILNwq7R4y+gP/R4b689mZGiNM48PgWqzqK1o
 EgOg7GU9hMpZqAdzpFznWlePJeO0hKo8JZ7ozUefPQe4l3Lxt92C3lgrrJzZxbi5
 40N3mGwhjyrAS8DfdjBGDIJzCW+GUmNbQBb4yh9rFa40Z3kOh5c3xj30J+tA+/5M
 JT4H8tHS1AEJEuGedtIDASyN45cehskCYJ/dIYfeNOTPH4CaLhq9RxyO6PNSEvHD
 f9UG0jC1GIu9bDfkPBBzKIaJABSXzdUwT9fd7coKB9gFR9DcmpUUgFUZ9ZGqWHUO
 sBzMtWQI4Z5ueV226nrJca2zth4W8eMOu/GHbjVT7YLoDmibqRL/HlJfnoOaJLOg
 e1lk/ZsNk+hnNNvmyuFhadpFjxaDuDQM1rRkjyV60EszJ5gwre4MtAyrMX48dtUr
 nPmbgciUateNabgtJNJxVGehH/NPKf42sLcEsq4z+hCF3JI9nNmjpoPD6wILwNIz
 k2HOoOCWXo9z/57XJv2EDOHZbTpqmnyEaiFvR7hjtiHTohXgFTNVb5BvNMf7GbtA
 GUKp0qmhnPjseKMteNO2TiSO8OiHKLUQ1elIKeLY7CedpuEHHK1uj+eU/nzx0W95
 AimQRlNaWFqxJaSMpYkYUa+DGrAxsxbxnsnIUJWcUy1sEboNREIhwhaGv0hlfPuS
 QVl4PoPnY5iZ+4xKDFQi
 =bmN2
 -----END PGP SIGNATURE-----

Merge tag 'armsoc/for-3.15/soc-3' of git://github.com/broadcom/mach-bcm into next/soc

Merge "ARM: mach-bcm: soc updates for 3.15 - part 2" from Matt Porter:

- Add bcm21664 support
- Use Kona Debug UART only on ARCH_BCM_MOBILE

* tag 'armsoc/for-3.15/soc-3' of git://github.com/broadcom/mach-bcm:
  ARM: restrict BCM_KONA_UART to ARCH_BCM_MOBILE
  ARM: bcm21664: Add board support.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-03-17 14:45:28 +01:00
Arnd Bergmann 8efa50c5e1 Merge branch 'bcm/cleanup' into next/soc
This is a dependency for the bcm21664 support.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-03-17 14:45:02 +01:00
Markus Mayer c3ceebd7ca ARM: bcm21664: Add board support.
Add support for the Broadcom BCM21664 mobile SoC. It has two Cortex-A9
cores like the BCM281xx family of chips. BCM21664 and BCM281xx share
many IP blocks in addition to the ARM cores.

Signed-off-by: Markus Mayer <markus.mayer@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-03-14 11:25:15 -04:00
Matt Porter 833688f4e4 ARM: mach-bcm soc updates
- add BCM5301x support
 - remove GENERIC_TIME
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJTGAsEAAoJEOfTILNwq7R4hyEP/ApeGhAN6ubhui78M880ycl1
 TEjTvAA9yvbldiTF8Jp2XUIdIfxTcraCpd11TMF1kgQcnKNK9GqvkaB8Dh98WYzD
 MY8+8SMJSGsPtAT5tp0MaamZREoPm4wEZ5JWn8wQjIMTjiIPDu78Gjm0M00E3c+a
 1uOkbUrIFTECgzIeMr92p0NSYqYthz0g5EE/BTfPWCA6wqfIQ4DvqUtB9Mad6iR6
 VBN6tqjL98riz+CYSV3WhqMCaI60HEPtpVBhrVMoZHKyMcR7O83F7V91t2QZc/dM
 5DZLSdU9/1ZkIpK3gFf5CyBbO6lVv47kFpVm7hSZhqPIR6w3SfhCNxjPy5dyCb5Y
 vlMqUmakXtuqPkk6mm4x79Scxj/1ct3g7pssHzS7N8tuAtPISeBzW+GhjXjICXtR
 6shZQRJwhCDJ3pPMWsBW60VQ/ct+A9X5gXka8kthWGoLPBlZrLNR8vZmsfcbx4Ei
 nurWQGLoMfHt7KxVaTVrrwdUXkXTRc4EZrmMvVkNzJEiedyuN8E1nZEF2kVOPsgA
 aZIih6Lex4mPVakGwaQH4zPCXTfHwstIe0P1aPy+seHzbqUf64s0VkNEbctCCZOe
 7a4yj72KYXEnsD2mSHa3c/MRfQEzEatefl1QGeQw7nPsDwxOWgrCsWylXYoVCSyT
 +i6ga9T1VIwL5Jlb6fhr
 =WKwJ
 -----END PGP SIGNATURE-----

Merge tag 'armsoc/for-3.15/soc-2' into armsoc/for-3.15/soc-3

ARM: mach-bcm soc updates

- add BCM5301x support
- remove GENERIC_TIME
2014-03-14 11:20:43 -04:00
Olof Johansson 0daba17de7 ARM: bcm2835: consolidate into mach-bcm/
This pull request consists of a single patch which moves files from
 arch/arm/mach-bcm2835 into mach-bcm, thus consolidating them with
 support for other Broadcom chips.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.14 (GNU/Linux)
 
 iQIcBAABAgAGBQJTGTE1AAoJEJuNpwkmVCGc+LEP/iVZKPWIZVsc1XwT87SJZbqq
 BvHP7K+xo0qcy9I3xxlXPoaTfLMeaXdzlNBAMsSatq8gV2ZraMshBGIuTSbvu5c7
 hIlhi1NQS0tnSO7FndV7IjarQXcfgzNgO/b1/AowuLTlr2FGOzY6W+Z6JJf15Rrj
 bY23wwKR/cEzl0qDtWpG5nZzxqLcAUTZFZE0P2KnNgVBeumeny04i5ctma49rjhT
 sO61cNqD69svB4LO7gjTizWcOK5e63jX9HA6jaHCDDZqK3IbVWmNglmNBmedcj9I
 j9Zq73MD9O/HXi1sD5avdDVIKM+FYdK9AjGq53jypbynRJUppyYxuw30ndP1WBa5
 K8b7aLny+I6jOnXhtlkVmcOy7DgMJoMo/tqZL54vYeYLKCyTRL7pow9gg19mx+n/
 WXGee4BHSjoTBAI3F47NPxrKpnVsOeDrLHl8+hHSxPZ2VBaFk7Nqjc/7vuSpOla3
 0Byessu9jd32ZX2tZd66eEk2Zvj45pyfRdFCQ71kBtpzyzekTck2BPwdvO+eTAiz
 13Y8my2U38GE1aviN2RnjRO+cOc8VNaegO5GHGWRmq6oi4/tpZTHC8234v+jkfUs
 IOWVAdQ2u0NpkzV6PB/ZcLeNx3HE9BnqTaPIdPOxzD/CJV6FR1YaFrXdiLibSVVB
 a9sYmSyIw3/N1a+Qg8T4
 =yrfJ
 -----END PGP SIGNATURE-----

Merge tag 'bcm2835-for-3.15-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-rpi into next/cleanup

Merge "ARM: bcm2835: consolidate into mach-bcm/" from Stephen Warren:

This pull request consists of a single patch which moves files from
arch/arm/mach-bcm2835 into mach-bcm, thus consolidating them with
support for other Broadcom chips.

* tag 'bcm2835-for-3.15-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-rpi:
  ARM: bcm2835: Move to mach-bcm directory

Signed-off-by: Olof Johansson <olof@lixom.net>
2014-03-11 13:28:32 -07:00
Olof Johansson 50776b6cf8 ARM: mach-bcm: cleanups for 3.15
- make bcm281xx symbol naming consistent with SoC name
 - remove unneeded and reorder bcm281xx header files
 - consolidate bcm281xx reboot and l2 cache code
 
  #
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJTGDPeAAoJEOfTILNwq7R4qf0QAPRRcEFl8+B1jHFKeoR1NE73
 Y8RaajbaaVbiu7R/P3u271KfLl0M5yT3XT/ocG6wzaMgbewb3EYs47kNGJ8STqAB
 N9SCrS3baWbSjHKFbgHGqz/LMhGEWwUuRa0UE9Pqth/jhLcxS4p3sASyugINEr66
 E/mzZ5u04HRPE97FyAl6MbpX0ZOcA7BjNpeSwIDgd74bj6fmi2cO8Yo+Sozd2nBj
 bKo4BdTmJYx0O2A3p5UEjbQKOeAffoKznYKmIyfhsx21sRigkqj85JpynAO6bNY7
 wPhnGXbcePqECnBxSvlLwsVTmBKN3QKzMIjiHrqBDQ5bWl4ffVK68UtuBSxsmgWw
 oA9e76tT5qtbDDmWki4T0hhpK8LB27cJQB87nuV5C+C75FfVKRQLmg2jO4F+FllG
 K20Y+a2d6LGsUaMYeR/QhrPdMXCgwDGOjsqHerAGXWZXVHUiOB+KMyeS8cOQm1YV
 b5UgbNaOc1myrjejbvHfPMopdMuznWq1a3eVlK4W5cJKaY60/i3bqvdGn8bNJLQb
 2ViePUfHpx4vMeKWnfNtD2Ys6lvkw1DMy0uVLRkQEQO88jJBDWrJaA7cUNekCd2E
 R12sj7H61lvdi5lfz9mKabWHY0jZlqB6A1lGsTtvb/bL49faMGFJynfni9ZYv8zW
 D/j3x30zph+6gkC/8pi/
 =vYzH
 -----END PGP SIGNATURE-----

Merge tag 'armsoc/for-3.15/cleanup' of git://github.com/broadcom/mach-bcm into next/cleanup

Merge "ARM: mach-bcm: cleanups for 3.15" from Matt Porter:

- make bcm281xx symbol naming consistent with SoC name
- remove unneeded and reorder bcm281xx header files
- consolidate bcm281xx reboot and l2 cache code

* tag 'armsoc/for-3.15/cleanup' of git://github.com/broadcom/mach-bcm:
  ARM: bcm281xx: Rename board_init() function
  ARM: bcm281xx: Re-order hearder files
  ARM: bcm281xx: Consolidate reboot code
  ARM: bcm281xx: Move kona_l2_cache_init() so it can be shared
  ARM: bcm281xx: symbol cleanup

Signed-off-by: Olof Johansson <olof@lixom.net>
2014-03-11 13:27:21 -07:00
Olof Johansson 07cb1ec1ae ARM: mach-bcm soc updates
- add BCM5301x support
 - remove GENERIC_TIME
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJTGAsEAAoJEOfTILNwq7R4hyEP/ApeGhAN6ubhui78M880ycl1
 TEjTvAA9yvbldiTF8Jp2XUIdIfxTcraCpd11TMF1kgQcnKNK9GqvkaB8Dh98WYzD
 MY8+8SMJSGsPtAT5tp0MaamZREoPm4wEZ5JWn8wQjIMTjiIPDu78Gjm0M00E3c+a
 1uOkbUrIFTECgzIeMr92p0NSYqYthz0g5EE/BTfPWCA6wqfIQ4DvqUtB9Mad6iR6
 VBN6tqjL98riz+CYSV3WhqMCaI60HEPtpVBhrVMoZHKyMcR7O83F7V91t2QZc/dM
 5DZLSdU9/1ZkIpK3gFf5CyBbO6lVv47kFpVm7hSZhqPIR6w3SfhCNxjPy5dyCb5Y
 vlMqUmakXtuqPkk6mm4x79Scxj/1ct3g7pssHzS7N8tuAtPISeBzW+GhjXjICXtR
 6shZQRJwhCDJ3pPMWsBW60VQ/ct+A9X5gXka8kthWGoLPBlZrLNR8vZmsfcbx4Ei
 nurWQGLoMfHt7KxVaTVrrwdUXkXTRc4EZrmMvVkNzJEiedyuN8E1nZEF2kVOPsgA
 aZIih6Lex4mPVakGwaQH4zPCXTfHwstIe0P1aPy+seHzbqUf64s0VkNEbctCCZOe
 7a4yj72KYXEnsD2mSHa3c/MRfQEzEatefl1QGeQw7nPsDwxOWgrCsWylXYoVCSyT
 +i6ga9T1VIwL5Jlb6fhr
 =WKwJ
 -----END PGP SIGNATURE-----

Merge tag 'armsoc/for-3.15/soc-2' of git://github.com/broadcom/mach-bcm into next/soc

Merge "ARM: mach-bcm soc updates" from Matt Porter:

- add BCM5301x support
- remove GENERIC_TIME

* tag 'armsoc/for-3.15/soc-2' of git://github.com/broadcom/mach-bcm:
  ARM: BCM5301X: workaround suppress fault
  ARM: BCM5301X: add early debugging support
  ARM: BCM5301X: initial support for the BCM5301X/BCM470X SoCs with ARM CPU
  ARM: mach-bcm: Remove GENERIC_TIME

Signed-off-by: Olof Johansson <olof@lixom.net>
2014-03-11 13:18:36 -07:00
Markus Mayer 0e8b860ac6 ARM: bcm281xx: Rename board_init() function
Rename board_init() to bcm281xx_init(), so the name reflects the board
specific nature of this function.

Signed-off-by: Markus Mayer <markus.mayer@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-03-06 03:18:01 -05:00
Markus Mayer 389df03610 ARM: bcm281xx: Re-order hearder files
Re-order header files alphabetically.

Signed-off-by: Markus Mayer <markus.mayer@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-03-06 03:18:00 -05:00
Markus Mayer a21ea269b9 ARM: bcm281xx: Consolidate reboot code
Consolidate reboot code and remove unnecessary functions.

Signed-off-by: Markus Mayer <markus.mayer@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-03-06 03:17:59 -05:00
Markus Mayer 8b1c342629 ARM: bcm281xx: Move kona_l2_cache_init() so it can be shared
In preparation for future SoCs, move kona_l2_cache_init() from board
specific board_bcm281xx.c to shared kona.c, so multiple SoC families
can make use of it. Also change the return type to "void", since we
never look at the return code anyway.

Signed-off-by: Markus Mayer <markus.mayer@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-03-06 03:17:59 -05:00
Alex Elder 9c6423aa7e ARM: bcm281xx: symbol cleanup
This patch renames a few symbols that needlessly used "11351" rather
than "281xx" in their names.

Support for the bcm11351 board is being removed from the kernel, and
the family of boards is more properly referred to as "bcm281xx".

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Markus Mayer <markus.mayer@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-03-06 03:17:34 -05:00
Hauke Mehrtens fdf4850cb5 ARM: BCM5301X: workaround suppress fault
Without this patch I am getting a unhandled fault exception like this
one after "Freeing unused kernel memory":

Freeing unused kernel memory: 1260K (c02c1000 - c03fc000)
Unhandled fault: imprecise external abort (0x1c06) at 0xb6f89005
Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000007

The address which is here 0xb6f89005 changes from boot to boot, with a
new build the changes are bigger. With kernel 3.10 I have also seen
this fault at different places in the boot process, but starting with
3.11 they are always occurring after the "Freeing unused kernel memory"
message. I never was able to completely boot to userspace without this
handler. The abort code is constant 0x1c06. This fault just happens
once in the boot process I have never seen it happing twice or more.

I also tried changing the CPSR.A bit to 0 in init_early, with this code
like Afzal suggested, but that did not change anything:
asm volatile("mrs r12, cpsr\n"
	"bic r12, r12, #0x00000100\n"
	"msr cpsr_c, r12" ::: "r12", "cc", "memory");

Disabling the L2 cache by building with CONFIG_CACHE_L2X0 unset did not
help.

This workaround was copied from the vendor code including most of the
comments. It says it they think this is caused by the CFE boot loader
used on this device. I do not have any access to any datasheet or
errata document to check this.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Christian Daudt <bcm@fixthebug.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-03-06 00:36:04 -05:00
Hauke Mehrtens 5b293ebe75 ARM: BCM5301X: initial support for the BCM5301X/BCM470X SoCs with ARM CPU
This patch adds support for the BCM5301X/BCM470X SoCs with an ARM CPUs.
Currently just booting to a shell is working and nothing else, no
Ethernet, wifi, flash, ...
I have some pending patches to make Ethernet work for this device.
Mostly device tree support for bcma is missing.

This SoC is used in small office and home router with Broadcom SoCs
it's internal name is Northstar. This code should support the BCM4707,
BCM4708, BCM4709, BCM53010, BCM53011 and BCM53012 SoC. It uses one or
two ARM Cortex A9 Cores, some highlights are 2 PCIe 2.0 controllers,
4 Gigabit Ethernet MACs and a USB 3.0 host controller.

This SoC uses a dual core CPU, but this is currently not implemented.
More information about this SoC can be found here:
http://www.anandtech.com/show/5925/broadcom-announces-bcm4708x-and-bcm5301x-socs-for-80211ac-routers

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Christian Daudt <bcm@fixthebug.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-03-06 00:36:02 -05:00
Richard Weinberger c43bad6f76 ARM: mach-bcm: Remove GENERIC_TIME
The symbol is an orphan, get rid of it.

Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Christian Daudt <bcm@fixthebug.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-03-06 00:34:32 -05:00
Markus Mayer d30fe62721 ARM: bcm2835: Move to mach-bcm directory
Move the bcm2835 board file into the mach-bcm directory. This allows us
to get rid of the mach-bcm2835 directory with the associated Kconfig
and Makefile.

Signed-off-by: Markus Mayer <markus.mayer@linaro.org>
[swarren, adjust defconfig so ARCH_BCM2835 still gets enabled]
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
2014-02-24 19:42:35 -07:00
Rob Herring ddb902cc34 ARM: centralize common multi-platform kconfig options
Multi-platform requires various kconfig options to be selected, so
platforms don't need to select them individually.

Signed-off-by: Rob Herring <robh@kernel.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Cc: Russell King <linux@arm.linux.org.uk>
Acked-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Stephen Warren <swarren@wwwdotorg.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
2014-02-19 16:38:18 -06:00
Sherman Yin 54b1aa5a5b ARM: pinctrl: Add Broadcom Capri pinctrl driver
Adds pinctrl driver for Broadcom Capri (BCM281xx) SoCs.

v4: - PINCTRL selected in Kconfig, PINCTRL_CAPRI selected in bcm_defconfig
    - make use of regmap
    - change CAPRI_PIN_UPDATE from macro to inline function.
    - Handle pull-up strength arg in Ohm instead of enum
v3: Re-work driver to be based on generic pin config. Moved config selection
    from Kconfig to bcm_defconfig.
v2: Use hyphens instead of underscore in DT property names.

Signed-off-by: Sherman Yin <syin@broadcom.com>
Reviewed-by: Christian Daudt <bcm@fixthebug.org>
Reviewed-by: Matt Porter <matt.porter@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2014-01-16 14:25:38 +01:00
Olof Johansson 6216650a7a BCM changes for 3.13/soc. A number of cleanup related changes.
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.14 (GNU/Linux)
 
 iQIcBAABAgAGBQJScKOTAAoJEPYb7NoJr+nL+fwP/1bZKlbqYURXdrjLxHTZGKp3
 WBpo8KUYp80nAZpw1SLoOk/78ciulQ0VLifWMebzMd/1qXXnek71jfYusbSb7MeM
 e70y9TRtXrfkDPxL12XTXIf6F7JieGtVx0S2jJsGsofmM0w6b723KwZAYZgxACYB
 Ec7TSzwaTlBBCI+ZyouS8e4CkS0x/0Mpkj8Ym8FDhKnwTs/mtD9kOcgVBzfz0Bt8
 ExtiAsASeDvxUq5zskOiGiEhaNlhbQHd8etLIHEBTRreYQRg8nWTI+fdKKqwHKi0
 qHm7p/ZcVQUgqf/2EjEfbEa0sQrQKrH82oaJirY3A6QrIEVQ5OVZCThkcvVV5Bxo
 w1jDJcxYl2PEM/awR1YkRT3KQKb13J2PxbLFTYnKyhKgZz4mvB/NnjI1AuskTiS8
 ddYfJ5apOqtZBqIYQvM6fv69mSWNinhmOqze14ulxGn+U6CVEYsGcQY1QvgA7T+c
 0JAAUJwgRsJ+jIDjzx4EJFYCEpdRY8NAKNnZmPr8maP7DIttsbZd0KjWTTqg1Y1N
 RHJkxJtnSxJYxfXkgpADJJNjcPdYxqfoYSpcRrGpFM3XLyCPKu2FiahpACyjua3W
 JPzRGuYr4I51D16uHiYLxkDSwBKLYBlzyi5bzb+hed9nhoeynvOYtZZkuVgqVRKT
 QJwnbUpxU1m870cNpAm/
 =fAes
 -----END PGP SIGNATURE-----

Merge tag 'bcm-for-3.13-soc2' of git://github.com/broadcom/bcm11351 into next/soc

From Christian Daudt, BCM changes for 3.13/soc. Mostly cleanups and
renaming of kernel config options, pushing down the mobile platforms
one level in the naming scheme, keeping ARCH_BCM as a wider family
config option.

* tag 'bcm-for-3.13-soc2' of git://github.com/broadcom/bcm11351:
  ARM: bcm_defconfig: Run "make savedefconfig"
  ARM: bcm281xx: Add ARCH Timers to config
  rename ARCH_BCM to ARCH_BCM_MOBILE (mach-bcm)
  ARM: bcm281xx: more descriptive machine string
  ARM: bcm281xx: Enable GPIO driver

Signed-off-by: Olof Johansson <olof@lixom.net>
2013-10-30 14:03:39 -07:00
Christian Daudt e84dfa26a0 ARM: bcm281xx: Add ARCH Timers to config
Add HAVE_ARM_ARCH_TIMER to Broadcom Kconfig as it is
required for some Mobile SoCs.

Signed-off-by: Christian Daudt <bcm@fixthebug.org>
Reviewed-by: Markus Mayer <mmayer@broadcom.com>
Reviewed-by: Mark Hambleton <mahamble@broadcom.com>
Reviewed-by: James King <jamesk@broadcom.com>
2013-10-29 23:09:10 -07:00
Christian Daudt badb923898 rename ARCH_BCM to ARCH_BCM_MOBILE (mach-bcm)
Currently ARCH_BCM has been used for Broadcom
Mobile V7 based SoCs. In order to allow other Broadcom
SoCs to also use mach-bcm directory and files, this patch
renames the original ARCH_BCM to ARCH_BCM_MOBILE, and
uses ARCH_BCM to define any Broadcom chip residing
in mach-bcm directory.

Signed-off-by: Christian Daudt <bcm@fixthebug.org>
Acked-by: Olof Johansson <olof@lixom.net>

Changes from v2:
 - switch ARCH_MULTIPLATFORM from select to depends
 - remove 'default y' from BCM_MOBILE

Changes from v1:
 - fix alpha ordering in dts/Makefile
 - break into 4 patches for separate subsys
2013-10-29 23:07:57 -07:00
Christian Daudt 616b931eea ARM: bcm281xx: more descriptive machine string
Add SoC model to DT_MACHINE_START string.

Signed-off-by: Christian Daudt <bcm@fixthebug.org>
Reviewed-by: Markus Mayer <mmayer@broadcom.com>
Reviewed-by: Mark Hambleton <mahamble@broadcom.com>
Reviewed-by: James King <jamesk@broadcom.com>
2013-10-01 18:16:25 -07:00
Markus Mayer 29c700d758 ARM: bcm281xx: Enable GPIO driver
Turn on the bcm281xx GPIO driver in the kernel configuration.

Signed-off-by: Markus Mayer <markus.mayer@linaro.org>
Reviewed-by: Christian Daudt <csd@broadcom.com>
2013-10-01 18:16:23 -07:00
Matt Porter 2881764d2a ARM: bcm: provide common arch init for DT clocks
With arch/arm calling of_clk_init(NULL) and clocksource_of_init()
this is no longer needed. The former is useful because we can make
use of dummy fixed clocks for drivers until the bcm281xx common
clock driver is ready.

Signed-off-by: Matt Porter <matt.porter@linaro.org>
Reviewed-by: Markus Mayer <markus.mayer@linaro.org>
Acked-by: Christian Daudt <csd@broadcom.com>
2013-09-29 21:09:23 +02:00
Christian Daudt 3a76b35186 ARM: bcm: Make secure API call optional
The current bcm_kona_smc_init function throws a BUG_ON if there's no SMC
device node defined in the device tree.

Since secure API access is optional depending the chip configuration,
fix this by allowing the rest of the code to run even if there's no SMC
device node defined

Signed-off-by: Christian Daudt <csd@broadcom.com>
Reviewed-by: Markus Mayer <markus.mayer@linaro.org>
2013-08-20 10:51:39 -07:00
Christian Daudt aea237bfa0 ARM: DT: binding fixup to align with vendor-prefixes.txt (drivers)
[ this is a follow-up to this discussion:
http://archive.arm.linux.org.uk/lurker/message/20130730.230827.a1ceb12a.en.html ]
This patchset renames all uses of "bcm," name bindings to
"brcm," as they were done prior to knowing that brcm had
already been standardized as Broadcom vendor prefix
(in Documentation/devicetree/bindings/vendor-prefixes.txt).
This will not cause any churn on devices because none of
these bindings have made it into production yet.

Signed-off-by: Christian Daudt <csd@broadcom.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
2013-08-20 10:51:38 -07:00
Christian Daudt 959faee9e1 ARM: bcm: Rename board_bcm
In order to support multiple SoC models in the mach-bcm
directory, board_bcm.c is being renamed board_bcm281xx.c

Reviewed-by: Markus Mayer <markus.mayer@linaro.org>
Signed-off-by: Christian Daudt <csd@broadcom.com>
2013-08-19 15:44:28 -07:00
Markus Mayer 257b49e3d8 ARM: bcm281xx: Board specific reboot code
This patch adds the code needed to trigger a reboot on the bcm281xx
family.

Signed-off-by: Markus Mayer <markus.mayer@linaro.org>
Reviewed-by: Tim Kryger <tim.kryger@linaro.org>
Reviewed-by: Matt Porter <matt.porter@linaro.org>
Reviewed-by: Alex Elder <alex.elder@linaro.org>
Acked-by: Christian Daudt <csd@broadcom.com>
2013-08-08 15:19:19 -07:00
Markus Mayer 58d3077a75 ARM: bcm281xx: Turn on L2 cache.
Turning on the L2 cache for the bcm281xx family.

Signed-off-by: Markus Mayer <markus.mayer@linaro.org>
Acked-by: Christian Daudt <csd@broadcom.com>
2013-08-06 15:35:46 -07:00
Maxime Ripard 77979bd7b5 ARM: bcm281xx: Remove init_irq declaration in machine description
Commit ebafed7a ("ARM: irq: Call irqchip_init if no init_irq function is
specified") removed the need to explictly setup the init_irq field in
the machine description when using only irqchip_init. Remove that
declaration for bcm281xx as well.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: Christian Daudt <csd@broadcom.com>
2013-05-14 09:48:40 -07:00
Linus Torvalds e3d98847de ARM: platform specific firmware interfaces for 3.10
Two platforms, bcm and exynos have their own firmware interfaces using
 the "secure monitor call", this adds support for those.
 
 We had originally planned to have a third set of patches in here, which
 would extend support for the existing generic "psci" call that is used
 on multiple platforms as well as Xen and KVM guests, but that ended up
 getting dropped because the patches were not ready in time.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJRhKXyAAoJEIwa5zzehBx3hVQP/1dOFA/LDDKAV918vutKlCtC
 Rptv8WOjMA/r5vlbTKmUHi3tMDDXdDH6CaWH5Fd4pDAnWqWQ8lCB0lSsOY0sKo7c
 SPujwUV6i5LyF2AM+gqTOUrK/6nZNuDYJL9xVjQTOMMNFnTckI4DsgrWAFsv07hh
 N8kh5iR2fD13tg3c/xmuqQ0JECyot1xZowif3dPi/QywsPlxUAua86XI3rWujN8w
 VSARDdpDj6l/6VHYjqiBaGG3sPvzG/dcsN03lTjI5dah4MNtKU4U4Qy7M83ebRXd
 4+gKqy1T0H+lfAODtZqvnkJdJHhZ73f2dUiZj0eWQg9RxNJoLx/tQKmr9fUp4ypP
 fKv0/z5aFEymAPa0FqUvU+zG57WUBjyOrEUie5XoPq4k+Z0xWHmJ8YeDRaqhBC2j
 YcHuSFAhSimqw8Lrc720qvovLvsy4gU8Y6HVIPek0v/D7svvB6smhry2P3XPjXbM
 nEldmqljONMOXJFfgav5Jp6r41IGJOBzwlPlqmNT7+QYo9BLxPVrnroKVUhvx4da
 gjx0Uo8PJZC8wH2WUiP8v/X6yYk7ZzdYgY0oJseeW8TqT8RxkpIScgwRKeufJW0m
 WHcYoJWrFRPv4iHUNBaFfDLk86NaDVFhjJaUKWGbHLJPG/wGEsT6xoMkl7oI0uH5
 bI8xCHEsSqz8GiRW+j22
 =68m5
 -----END PGP SIGNATURE-----

Merge tag 'firmware-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM platform specific firmware interfaces from Olof Johansson:
 "Two platforms, bcm and exynos have their own firmware interfaces using
  the "secure monitor call", this adds support for those.

  We had originally planned to have a third set of patches in here,
  which would extend support for the existing generic "psci" call that
  is used on multiple platforms as well as Xen and KVM guests, but that
  ended up getting dropped because the patches were not ready in time."

* tag 'firmware-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
  ARM: bcm: mark bcm_kona_smc_init as __init
  ARM: bcm281xx: Add DT support for SMC handler
  ARM: bcm281xx: Add L2 cache enable code
  ARM: EXYNOS: Add secure firmware support to secondary CPU bring-up
  ARM: EXYNOS: Add IO mapping for non-secure SYSRAM.
  ARM: EXYNOS: Add support for Exynos secure firmware
  ARM: EXYNOS: Add support for secure monitor calls
  ARM: Add interface for registering and calling firmware-specific operations
2013-05-04 12:33:36 -07:00
Arnd Bergmann 721e0205b0 ARM: bcm: mark bcm_kona_smc_init as __init
The bcm_kona_smc_init function references the bcm_kona_smc_ids variable
that is marked __initconst, so the function itself has to be __init
to avoid this build error:

WARNING: arch/arm/mach-bcm/built-in.o(.text+0x12c): Section mismatch in reference from the function bcm_kona_smc_init() to the (unknown reference) .init.rodata:(unknown)

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Christian Daudt <csd@broadcom.com>
2013-04-23 17:43:32 +02:00
Christian Daudt b8eb35fd59 ARM: bcm281xx: Add L2 cache enable code
- Adds a module to provide calls into secure monitor mode
- Uses this module to make secure monitor calls to enable L2 cache.

Updates from V1:
- Split DT portion into separate patch
- replace #ifdef-ed L2 code with "if".
- move init call to board init

Signed-off-by: Christian Daudt <csd@broadcom.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
2013-04-09 09:18:13 -07:00
Christian Daudt 8011657b9e ARM: bcm281xx: Add timer driver (driver portion)
This adds support for the Broadcom timer, used in the following SoCs:
BCM11130, BCM11140, BCM11351, BCM28145, BCM28155

Updates from V6:
- Split DT portion into a separate patch

Updates from V5:
- Rebase to latest arm-soc/for-next

Updates from V4:
- Switch code to use CLOCKSOURCE_OF_DECLARE

Updates from V3:
- Migrate to 3.9 timer framework updates

Updates from V2:
- prepend static fns + fields with kona_

Updates from V1:
- Rename bcm_timer.c to bcm_kona_timer.c
- Pull .h into bcm_kona_timer.c
- Make timers static
- Clean up comment block
- Switched to using clockevents_config_and_register
- Added an error to the get_timer loop if it repeats too much
- Added to Documentation/devicetree/bindings/arm/bcm/bcm,kona-timer.txt
- Added missing readl to timer_disable_and_clear

Note: bcm,kona-timer was kept as the 'compatible' field to make it
specific enough for when there are multiple bcm timers (bcm,timer is
too generic).

Signed-off-by: Christian Daudt <csd@broadcom.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: John Stultz <john.stultz@linaro.org>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
2013-03-28 10:58:55 -07:00
Shawn Guo 7d47f36432 ARM: remove redundant 'select GENERIC_GPIO'
In drivers/gpio/Kcong, ARCH_REQUIRE_GPIOLIB selects GPIOLIB which in
turn selects GENERIC_GPIO.  So GENERIC_GPIO will be selected
automatically for those platforms that select ARCH_REQUIRE_GPIOLIB.

Remove the redundant 'select GENERIC_GPIO' for platforms that already
select ARCH_REQUIRE_GPIOLIB at either mach or plat level.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
2013-01-22 00:01:50 -08:00
Olof Johansson f8060f5446 Initial irqchip init infrastructure and GIC and VIC clean-ups
This creates irqchip initialization infrastructure from Thomas
 Petazzoni. The VIC and GIC irqchip code is moved to drivers/irqchips
 and adapted to use the new infrastructure. All DT enabled platforms
 using GIC and VIC are converted over to use the new irqchip_init.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQEcBAABAgAGBQJQ8ZobAAoJEMhvYp4jgsXiihIH/2VvxmSHZb0e3jN6AR0B42b7
 9EwX0IE0B23t91hNTwdzzmTJQYA7pMmWkgHNfd3vIeqSepJAmrVv/gp4iM9CtPwE
 KNh+kDWOK2ZsOH4Vb0lYRJHN8WQOIQHuCUr9+MdYLNOgf/pPL6G/Y9kv9A1e7fTC
 W+tFRjC5N1ilZMGyowX12L1wnwDk6kHzed6YV6bskC17cZ9/pg8PhSVbM4A/3kAv
 NXYKqbXJb+eCsWGXg/knZXOL6V9gBwvVYoe4O9X3nQ0226AWB9caad8l8tchAjRB
 fmrYF1tbkpOWPnLxhvQy5b5MJichJgTMJHh7RgiEcc/3f63kOljjlx4QKiqHvT0=
 =q7gm
 -----END PGP SIGNATURE-----

Merge tag 'gic-vic-to-irqchip' of git://sources.calxeda.com/kernel/linux into next/cleanup

From Rob Herring:

Initial irqchip init infrastructure and GIC and VIC clean-ups

This creates irqchip initialization infrastructure from Thomas
Petazzoni. The VIC and GIC irqchip code is moved to drivers/irqchips
and adapted to use the new infrastructure. All DT enabled platforms
using GIC and VIC are converted over to use the new irqchip_init.

* tag 'gic-vic-to-irqchip' of git://sources.calxeda.com/kernel/linux:
  irqchip: Move ARM vic.h to include/linux/irqchip/arm-vic.h
  ARM: picoxcell: use common irqchip_init function
  ARM: spear: use common irqchip_init function
  irqchip: Move ARM VIC to drivers/irqchip
  ARM: samsung: remove unused tick.h
  ARM: remove unneeded vic.h includes
  ARM: remove mach .handle_irq for VIC users
  ARM: VIC: set handle_arch_irq in VIC initialization
  ARM: VIC: shrink down vic.h
  irqchip: Move ARM gic.h to include/linux/irqchip/arm-gic.h
  ARM: use common irqchip_init for GIC init
  irqchip: Move ARM GIC to drivers/irqchip
  ARM: remove mach .handle_irq for GIC users
  ARM: GIC: set handle_arch_irq in GIC initialization
  ARM: GIC: remove direct use of gic_raise_softirq
  ARM: GIC: remove assembly ifdefs from gic.h
  ARM: mach-ux500: use SGI0 to wake up the other core
  arm: add set_handle_irq() to register the parent IRQ controller handler function
  irqchip: add basic infrastructure
  irqchip: add to the directories part of the IRQ subsystem in MAINTAINERS

Fixed up massive merge conflicts with the timer cleanup due to adjacent changes:

Signed-off-by: Olof Johansson <olof@lixom.net>

Conflicts:
	arch/arm/mach-bcm/board_bcm.c
	arch/arm/mach-cns3xxx/cns3420vb.c
	arch/arm/mach-ep93xx/adssphere.c
	arch/arm/mach-ep93xx/edb93xx.c
	arch/arm/mach-ep93xx/gesbc9312.c
	arch/arm/mach-ep93xx/micro9.c
	arch/arm/mach-ep93xx/simone.c
	arch/arm/mach-ep93xx/snappercl15.c
	arch/arm/mach-ep93xx/ts72xx.c
	arch/arm/mach-ep93xx/vision_ep9307.c
	arch/arm/mach-highbank/highbank.c
	arch/arm/mach-imx/mach-imx6q.c
	arch/arm/mach-msm/board-dt-8960.c
	arch/arm/mach-netx/nxdb500.c
	arch/arm/mach-netx/nxdkn.c
	arch/arm/mach-netx/nxeb500hmi.c
	arch/arm/mach-nomadik/board-nhk8815.c
	arch/arm/mach-picoxcell/common.c
	arch/arm/mach-realview/realview_eb.c
	arch/arm/mach-realview/realview_pb1176.c
	arch/arm/mach-realview/realview_pb11mp.c
	arch/arm/mach-realview/realview_pba8.c
	arch/arm/mach-realview/realview_pbx.c
	arch/arm/mach-socfpga/socfpga.c
	arch/arm/mach-spear13xx/spear1310.c
	arch/arm/mach-spear13xx/spear1340.c
	arch/arm/mach-spear13xx/spear13xx.c
	arch/arm/mach-spear3xx/spear300.c
	arch/arm/mach-spear3xx/spear310.c
	arch/arm/mach-spear3xx/spear320.c
	arch/arm/mach-spear3xx/spear3xx.c
	arch/arm/mach-spear6xx/spear6xx.c
	arch/arm/mach-tegra/board-dt-tegra20.c
	arch/arm/mach-tegra/board-dt-tegra30.c
	arch/arm/mach-u300/core.c
	arch/arm/mach-ux500/board-mop500.c
	arch/arm/mach-ux500/cpu-db8500.c
	arch/arm/mach-versatile/versatile_ab.c
	arch/arm/mach-versatile/versatile_dt.c
	arch/arm/mach-versatile/versatile_pb.c
	arch/arm/mach-vexpress/v2m.c
	include/asm-generic/vmlinux.lds.h
2013-01-14 19:55:03 -08:00
Rob Herring 0529e315bb ARM: use common irqchip_init for GIC init
Convert all GIC DT initialization over to use common irqchip_init
function.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: David Brown <davidb@codeaurora.org>
Cc: Daniel Walker <dwalker@fifo99.com>
Cc: Bryan Huntsman <bryanh@codeaurora.org>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Magnus Damm <magnus.damm@gmail.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
Cc: Viresh Kumar <viresh.linux@gmail.com>
Cc: Shiraz Hashim <shiraz.hashim@st.com>
Cc: Stephen Warren <swarren@wwwdotorg.org>
Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
2013-01-12 10:47:32 -06:00
Rob Herring 1d5cc604f4 ARM: remove mach .handle_irq for GIC users
Now that the GIC initialization sets up the handle_arch_irq pointer, we
can remove it for all machines and make it static.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Anton Vorontsov <avorontsov@mvista.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: David Brown <davidb@codeaurora.org>
Cc: Daniel Walker <dwalker@fifo99.com>
Cc: Bryan Huntsman <bryanh@codeaurora.org>
Acked-by: Tony Lindgren <tony@atomide.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Magnus Damm <magnus.damm@gmail.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
Cc: Shiraz Hashim <shiraz.hashim@st.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Olof Johansson <olof@lixom.net>
Acked-by: Arnd Bergmann <arnd@arndb.de>
2013-01-12 10:47:20 -06:00
Stephen Warren 6bb27d7349 ARM: delete struct sys_timer
Now that the only field in struct sys_timer is .init, delete the struct,
and replace the machine descriptor .timer field with the initialization
function itself.

This will enable moving timer drivers into drivers/clocksource without
having to place a public prototype of each struct sys_timer object into
include/linux; the intent is to create a single of_clocksource_init()
function that determines which timer driver to initialize by scanning
the device dtree, much like the proposed irqchip_init() at:
http://www.spinics.net/lists/arm-kernel/msg203686.html

Includes mach-omap2 fixes from Igor Grinberg.

Tested-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
2012-12-24 09:36:38 -07:00
Christian Daudt 8ac49e0485 Add support for generic BCM SoC chipsets
In order to start upstreaming Broadcom SoC support, create
a starting hierarchy, arch and dts files.
The first support SoC family that is planned is the
BCM281XX (BCM11130/11140/11351/28145/28155) family of dual A9 mobile
SoC cores.
This code is just the skeleton code for get the machine upstreamed. It
has been made MULTIPLATFORM compatible.
Next steps
----------
Upstream a basic set of drivers - sufficient for a console boot to
ramdisk. These will includer timer, gpio, i2c drivers.
After this basic set, we will proceed with a more comprehensive set
of drivers for the 281XX SoC family.

v2 patch mods
--------
 - Remove l2x0_of_init call as there were problems with the code.
   A separate patch will be submitted with cache init code
 - Rename capri files and refs to bcm281xx-based names
 - Add bcm281xx binding doc
 - various misc cleanups

v3 patch mods
-------------
 - Remove extra #include lines
 - Remove remaining references to capri
 - dt uart chipset string added
 - cleaned up chip # references

v4 patch mods
-------------
 - swap order of compatible definitions for uart
 - fix typo

v5 patch mods
-------------
 - Rename bcm281xx to bcm11351 in dts+code,
   leaving references to bcm281xx only in help+comments.

v6 patch mods
-------------
 - fix typo in uart 'compatible' string

Signed-off-by: Christian Daudt <csd@broadcom.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
2012-11-19 22:39:07 -08:00