Commit Graph

29 Commits

Author SHA1 Message Date
Linus Torvalds
231bf80f7f ARM: SoC board changes for 3.17
This is the smallest board branch we have ever had. Most of this is a
 few cleanups for board code for Renesas shmobile, with a bit of legacy
 driver support added. This is strongly trending in the right direction now.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.14 (GNU/Linux)
 
 iQIcBAABAgAGBQJT5DqVAAoJEIwa5zzehBx3VFkQAKnAaWP/JQEIAZmSp3ZaUTdu
 ioyduSHKq3vyW3bibQ3GQG04hMLz/ixnvlc+tRxHDs68i0AtqAfnYbojVJqms2xf
 PbW7slPq1FFfS/3QE6gACHRgamu+Iv/BcK+obvsXlpdLmzfrLIlbn6y5rJJZ7hQU
 XFGZCOSG+B9yEPTj4ir+GqESi7DB9ZgXWCD9+lEhnvFTkeBNepmYWp4JHDLWNZEw
 n903qXOs5y8S/rbjyZpliMpgoJlDA40RHOl8hwjOZcpxOl9Vrmd0ZO8mw8ldyNb+
 78g50MBAI6XTsrVL5GMDFYWH3rG/NrH4dyDLfm+cf5iNbtTlRJp2H/XjgTKcgIp/
 Iiyi3MSVa+wdYP0Men1vt05GfPJVEhFJkD7oqXxEs9qG51lK+MWHxbwaJZEYJHTA
 vju8xTU7Dn8WZoLzrx7k1+y9uNsmS7g499qof5Mzd5CUgoQNZhGByjWBml9Enh9w
 8rVgotjsVEc1vm6PUoDr9wUm7FefMVN2Ss1JkeXL6Qo9ZVQ2D7O7/0cm2dG2dAWR
 t4tXbaQuRQwkRQTqs1qun96YGs3fKWq/gnR+W72EW266tdN5yj0IyR0E/QjCapzJ
 YV///syR+JbNVufBwibluqQ6rQ6l4es6oUgt41AccaXyVTn16S208M4MSFLSPNxf
 D5uyP87dTgClIr+FTLPZ
 =m3yA
 -----END PGP SIGNATURE-----

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

Pull ARM SoC board changes from Olof Johansson:
 "This is the smallest board branch we have ever had.  Most of this is a
  few cleanups for board code for Renesas shmobile, with a bit of legacy
  driver support added.  This is strongly trending in the right
  direction now"

* tag 'boards-for-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
  ARM: shmobile: Enable R-Car Gen2 CMA code in board files
  ARM: shmobile: armadillo800eva reference: Spelling s/ED/LED/
  ARM: shmobile: armadillo800eva legacy: Add LED support
  ARM: shmobile: lager-reference: Remove workarounds for core clock issues
  ARM: shmobile: koelsch-reference: Remove workarounds for core clock issues
2014-08-08 11:16:17 -07:00
Geert Uytterhoeven
fccae89318 ARM: shmobile: Move r8a7790.h
Change location of r8a7790.h so it can be included as "r8a7790.h"
instead of the old style <mach/r8a7790.h>

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-06-25 16:49:10 +09:00
Magnus Damm
a5d626813f ARM: shmobile: Use r8a7790 DT CPU Frequency for Lager
Convert the Lager board support to use shmobile_init_delay()
to be able to migrate away from per-SoC delay setup functions.

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-06-17 19:50:35 +09:00
Magnus Damm
5f65c5bd58 ARM: shmobile: Enable R-Car Gen2 CMA code in board files
Hook in the R-Car Gen2 CMA reservation code in the board
files for Lager and Koelsch. Both the DT-reference code
and the legacy code is modified.

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-06-17 19:35:59 +09:00
Geert Uytterhoeven
f47b9e1ec3 ARM: shmobile: lager-reference: Remove workarounds for core clock issues
Now the core clock issues have been fixed by commit
3c90c55dcd ("drivers: sh: compile
drivers/sh/pm_runtime.c if ARCH_SHMOBILE_MULTI"), revert the following
2 commits:
  - f98b55d730 ("ARM: shmobile: Add Lager
    clock workarounds for SDHI and MMCIF"),
  - aa5de826af ("ARM: shmobile:
    lager-reference: Work around core clock issues").

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-06-17 19:35:58 +09:00
Magnus Damm
62872989bd ARM: shmobile: Move rcar-gen2.h, cleanup r8a7790 case
Change location of rcar-gen2.h so it can be used as #include "rcar-gen2.h"
instead of the old style #include <mach/rcar-gen2.h>. Also clean up
the r8a7790 case to follow the same style as r8a7791.

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-06-17 17:09:40 +09:00
Magnus Damm
fd44aa5e57 ARM: shmobile: Move common.h
Change location for common.h so it can be used as #include "common.h"
instead of the old style #include <mach/common.h>.

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-06-17 17:09:39 +09:00
Magnus Damm
b6bab1263c ARM: shmobile: Move most of irqs.h, keep some for pinctl
Move most of irqs.h so it can be used as #include "irqs.h"
instead of the old style #include <mach/irqs.h>.

Legacy code in drivers/pinctrl needs more work to get rid
of the "mach" portion of the include path, so some part
is left in the original location.

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
[horms+renesas@verge.net.au: Do not add trailing blank line to irqs.h]
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-06-17 17:09:38 +09:00
Magnus Damm
ad6ffa0b59 ARM: shmobile: Move clock.h
Change location of clock.h so it can be used as #include "clock.h"
instead of the old style #include <mach/clock.h>.

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-06-17 17:09:37 +09:00
Laurent Pinchart
4e9c4877aa ARM: shmobile: lager: Enable SCIF0 and SCIF1 serial ports in DT
SCIF0 and SCIF1 are used as debug serial ports. Enable them and
configure pinmuxing appropriately. We can now remove the clkdev
registration hack for SCIF devices from the Lager reference board file.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
[horms+renesas@verge.net.au: updated changelog to remove references to
                             device renaming]
[horms+renesas@verge.net.au: resolved conflicts]
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-05-14 09:56:35 +09:00
Laurent Pinchart
711ee6c8de ARM: shmobile: r8a7790: Switch to new style CMT device
The CMT (Compare Match Timer) driver implements a new style of platform
data that handles the timer as a single device with multiple channel.
Switch from the old-style platform data to the new-style platform data.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
[horms+renesas@verge.net.au resolved conflict: use clk_names]
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-05-11 19:35:27 +09:00
Magnus Damm
f98b55d730 ARM: shmobile: Add Lager clock workarounds for SDHI and MMCIF
Add MMCIF1, SDHI0 and SDHI2 to the clock workaround list for
Lager multiplatform. Without these additional lines wakeup
from Suspend-to-RAM never happens.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-04-14 11:30:40 +09:00
Simon Horman
aa5de826af ARM: shmobile: lager-reference: Work around core clock issues
Due to issues with runtime PM clock management, clocks not explicitly
managed by their drivers may not be enabled at all, or be inadvertently
disabled by the clk_disable_unused() late initcall.

Until this is fixed, add a temporary workaround, calling
shmobile_clk_workaround() with enable == true.

For now this enables the clocks for: ether, msiof1, qspi_mod, and
thermal. More clocks can be added if needed.

Based on work for the koelsch board by Geert Uytterhoeven.

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Acked-by: Geert Uytterhoeven <geert+renesas@linux-m68k.org>
2014-04-14 11:30:40 +09:00
Simon Horman
f71c77286b ARM: shmobile: lager: Annotate clk_names with __initconst
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
2014-04-14 11:30:39 +09:00
Magnus Damm
e6597e0e19 ARM: shmobile: Use shmobile_clk_workaround() on Lager
Convert the Lager DT reference code to use the newly introduced
function shmobile_clk_workaround().

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-04-14 11:30:39 +09:00
Magnus Damm
6197c08ab8 ARM: shmobile: Remove Lager DT reference legacy clock bits
Lager DT reference is these days built for multiplatform
only which means that CCF comes with the package. Remove
unused legacy code ifdefs to clean up the code.

Signed-off-by: Magnus Damm <damm@opensource.se>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-02-18 09:15:49 +09:00
Laurent Pinchart
433aa851d4 ARM: shmobile: lager-reference: Add DU device
The DU device has no DT bindings yet, instantiate it as a platform
device for now.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Magnus Damm <damm@opensource.se>
[horms+renesas@verge.net.au: omitted DTS portion]
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-02-17 12:09:10 +09:00
Laurent Pinchart
9a8c3ab9c0 ARM: shmobile: lager-reference: Refactor clock lookup hack
Make the clock lookup hack more generic to ease the addition of more
devices.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-02-17 12:00:23 +09:00
Ben Dooks
7a543d8124 ARM: shmobile: lager: fix error return code check from clk_get()
The lager_add_standard_devices() function calls clk_get() but then fails
to check that it returns an error pointer instead of NULL on failure.

This was added by 4a606af2 ("ARM: shmobile: lager-reference: Instantiate
clkdevs for SCIF and CMT") patch in Simon Horman's renesas-boards2-for-v3.14
tag.

The issue is not serious as it does not cause a crash and seems to not be
actually causing any issues now the other clock bugs have been fixed.

Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
[horms+renesas@verge.net.au: tweaked changelog]
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-02-04 14:28:32 +09:00
Laurent Pinchart
1fb68146d5 ARM: shmobile: Let Lager multiplatform boot with Lager DTB
Let the multiplatform Lager support boot with the legacy DTS for Lager
as well as the Lager reference DTS.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-12-19 19:08:26 +09:00
Laurent Pinchart
4a606af20d ARM: shmobile: lager-reference: Instantiate clkdevs for SCIF and CMT
Now that the common clock framework is supported, the clock lookup
entries in clock-r8a7790.c are not registered anymore. Devices must
instead reference their clocks in the device tree. However, SCIF and CMT
devices are still instantiated through platform code, and thus need a
clock lookup entry.

Retrieve the SCIF and CMT clock entries by name and register clkdevs for
the corresponding devices. This will be removed when the SCIF and CMT
devices will be instantiated from the device tree.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-12-19 19:08:25 +09:00
Laurent Pinchart
0ef3cde4d9 ARM: shmobile: lager-reference: Enable multiplaform kernel support
Enable multiplaform ARM architecture support for the Lager reference
board. Common clock framework initialization will be handled by the
rcar_gen2_init_timer() call, we just need to remove the legacy clock
code initialization.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-12-19 19:08:25 +09:00
Magnus Damm
3fbbcbdf57 ARM: shmobile: Use ->init_late() on Lager
Hook in shmobile_init_late() on Lager V2. This enables some PM
related things like CPUIdle and Suspend-to-RAM.

With this patch applied it is possible to use Suspend-to-RAM:
# echo enabled > /sys/class/tty/ttySC6/power/wakeup
# echo mem > /sys/power/state
(wake by sending a character on the serial console)

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-12-10 17:24:27 +09:00
Magnus Damm
20c6125fc9 ARM: shmobile: Cosmetic update of Lager DT Reference
Clean up the Lager DT reference board code to make it match
Koelsch DT reference including using the rcar-gen2 header.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-11-24 15:14:31 +09:00
Magnus Damm
50c517d92e ARM: shmobile: Break out R-Car Gen2 setup code
Move arch timer workaround code and boot mode pin
handling from setup-r8a7790.c to setup-rcar-gen2.c.

With this in place the same code can be used on
other R-Car Generation 2 devices such as r8a7791.

Signed-off-by: Magnus Damm <damm@opensource.se>
[horms+renesas@verge.net.au trivial rebase of board-lager.c
 for introduction of lager_add_standard_devices()]
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-10-08 09:52:25 +09:00
Magnus Damm
ad09cb8381 ARM: shmobile: Add r8a7790 SMP support using APMU code
Add r8a7790 SMP support using the shared APMU code. To enable
SMP the r8a7790 specific DTS needs to be updated to include
CPU cores, and this is happening in a separate patch.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-09-30 17:56:03 +09:00
Magnus Damm
0efd7faa6c ARM: shmobile: Rename to r8a7790_init_early()
Rename r8a7790_init_delay() into r8a7790_init_early()
to make the function name show that more than just
delay setup may happen in the future.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-09-19 14:33:44 -07:00
Magnus Damm
d144f3623a ARM: shmobile: Minor update for the Lager DT reference code
Update the Lager DT reference code to get rid of the redundant
irqchip header and also make lager_add_standard_devices() static.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-07-17 14:30:03 +09:00
Simon Horman
6dace67f9b ARM: shmobile: lager: Add DT reference
This is sufficient to allow boot of the Lager board with
a console without boards-lager.c compiled into the kernel.
This is an example of a minimal but still useful initialisation
of the board using DT as much as possible.

As such it is the same as the boot of Lager that can be achieved
without a board file. The intention of adding this file
is to facilitate further work to allow board specific devices to be
initialised via DT.

Acked-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-07-17 14:30:03 +09:00