Geert Uytterhoeven [Mon, 2 Jun 2014 13:38:14 +0000 (15:38 +0200)]
spi: rspi: Pass sg_tables instead of spi_tranfer to rspi_*_dma()
The DMA routines only need access to the scatter-gather tables inside the
spi_transfer structures, hence just pass those.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit
e4b52dc4625ee739195189d40c6ddc7d55ddf312)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Geert Uytterhoeven [Mon, 2 Jun 2014 13:38:13 +0000 (15:38 +0200)]
spi: rspi: Move RSPI-specific setup out of DMA routines
Refactor RSPI (on SH) DMA handling to make it reusable for other RSPI
implementations:
- Call the DMA routines after configuring the TX Mode bit and after
calling rspi_receive_init(), so these RSPI-specific operations can be
removed from the DMA routines,
- Absorb rspi_transfer_out_in() into rspi_transfer_one().
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit
8393fa787bf63c05cb6f9cf0a58ba1ea213c3f01)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Geert Uytterhoeven [Mon, 2 Jun 2014 13:38:12 +0000 (15:38 +0200)]
spi: rspi: Use SPI core DMA mapping framework
Use the SPI core DMA mapping framework instead of our own.
If available, DMA is used for transfers larger than the FIFO size
(8 or 32 bytes).
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit
2f777ec91aa0623e058c43dd4aaf0b3325d3c3e8)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Geert Uytterhoeven [Mon, 2 Jun 2014 13:38:11 +0000 (15:38 +0200)]
spi: rspi: SPI DMA core needs both RX and TX DMA to function
The SPI DMA core framework needs both RX and TX DMA to function. As a
preparation for converting the driver to use this framework, fall back to
PIO if no DMA channel or only one DMA channel is available.
This affects only RSPI, which could do DMA transfers for TX-only before.
RSPI-RZ and QSPI (at least for Single SPI Transfers) will need both RX and
TX DMA anyway.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit
5f338d0ce0b4c9e6c554b92cfb288789a41bfbc1)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Geert Uytterhoeven [Mon, 2 Jun 2014 13:38:10 +0000 (15:38 +0200)]
spi: rspi: Remove unneeded resource test in DMA setup
The resource is know to exist, as rspi_probe() already mapped it.
Remove the test, and just pass the resource.
Pass the device pointer instead of the platform device pointer, as the
latter is no longer needed.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit
fcdc49ae53dc8cfc1a7758607bca68935f568ca2)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Geert Uytterhoeven [Mon, 2 Jun 2014 13:38:09 +0000 (15:38 +0200)]
spi: rspi: Extract rspi_request_dma_chan()
Setup of the receive and transmit DMA channels is very similar, so let's
consolidate.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit
65bf220571f131a7c3a564a88793bd0f16fd7c96)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Geert Uytterhoeven [Mon, 2 Jun 2014 13:38:08 +0000 (15:38 +0200)]
spi: rspi: Don't consider DMA configuration failures fatal
Fall back to PIO if DMA configuration failed.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit
27e105a6006b8ce1b55709c5e24f63959981475d)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Geert Uytterhoeven [Mon, 2 Jun 2014 13:38:07 +0000 (15:38 +0200)]
spi: rspi: Extract rspi_pio_transfer()
The various PIO loops are very similar. Consolidate into a single
function rspi_pio_transfer().
Both buffer pointers can be NULL, as RSPI supports TX-only mode, and
Dual/Quad SPI Transfers are unidirectional.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit
6837b8e91d2a080293c30d5fe42d9692390091fa)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Geert Uytterhoeven [Mon, 2 Jun 2014 13:38:06 +0000 (15:38 +0200)]
spi: rspi: Use core SPI_MASTER_MUST_[RT]X handling
RSPI needs dummy transfers to generate the SPI clock on receive.
RSPI-RZ and QSPI always do both transmit and receive.
Use the SPI core SPI_MASTER_MUST_RX/SPI_MASTER_MUST_TX infrastructure
instead of checking for the presence of buffers and providing dummy data
ourselves (for PIO), or providing a dummy buffer (for DMA).
rspi_receive_dma() now provides full duplex DMA transfers on RSPI, and is
renamed to rspi_send_receive_dma().
As the SPI core will always provide a TX buffer, the logic to choose
between DMA send and DMA send/receive in rspi_transfer_one() now has to
check for the presence of an RX buffer. Likewise for the DMA availability
tests in rspi_is_dma().
The buffer tests in qspi_transfer_one() are now always true, so they're
removed.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit
b42e03596db3d45980c976c8124fdc323f031dc4)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Geert Uytterhoeven [Mon, 2 Jun 2014 13:38:05 +0000 (15:38 +0200)]
spi: rspi: Remove unused 16-bit DMA support
The 16-bit DMA support doesn't fit well within the SPI core DMA framework,
as it needs to manage its own double-sized temporary buffers, for handling
the interleaved data.
Remove it, as there is no in-tree board code that sets
rspi_plat_data.dma_width_16bit.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit
9c5de2c1754c2bb3c69c4d7bf0d0edc0a61d8232)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Geert Uytterhoeven [Mon, 2 Jun 2014 13:38:04 +0000 (15:38 +0200)]
spi: rspi: Do not call rspi_receive_init() for TX-only
Since commit
8449fd76deb9ac67a15a6fb8ead7bb4595d019d2 ("spi: rspi: Merge
rspi_send_pio() and rspi_receive_pio()"), rspi_receive_init() is called
for transmit-only transfers too, while this is not needed.
Only call rspi_receive_init() when receiving, to preserve behavior on
RSPI on SH.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit
32c64261c6f50a4e71ec7546f7e2f48eba91c985)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Geert Uytterhoeven [Mon, 2 Jun 2014 13:38:03 +0000 (15:38 +0200)]
spi: rspi: Extract rspi_wait_for_{tx_empty,rx_full}()
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit
5f684c34fc82be84ece158aa5c5c7c5072daa9a0)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Geert Uytterhoeven [Thu, 22 May 2014 18:07:35 +0000 (20:07 +0200)]
spi: rspi: Round up division to avoid slave overclocking
The calculation of the bit rate divider used a standard C division, which
rounds down the quotient. This may lead to a higher bitrate than requested.
Round up to avoid this.
E.g. on Koelsch, the SPI flash (configured for 30 MHz) was driven at 48.75
MHz. After this patch it's driven at a safe 24.375 MHz.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit
3beb61dbfcf188399cbc36ce1eeb8b2ba724de38)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Geert Uytterhoeven [Tue, 27 May 2014 13:45:09 +0000 (15:45 +0200)]
drivers: sh: Enable PM runtime for new R-Car Gen2 SoCs
The PM runtime code should also be enabled for:
- r8a7792 (R-Car V2H)
- r8a7793 (R-Car M2-N)
- r8a7794 (R-Car E2)
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
(cherry picked from commit
2f35fb3c8a6018a0a5fe4a7fb0948b853c157256)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Ben Dooks [Thu, 22 May 2014 18:00:05 +0000 (20:00 +0200)]
drivers: sh: pm_runtime implementation needs to suspend and resume devices
If we override the platform bus calls for pm_runtime then we end up
with the calls to the devices' suspend and resume methods ignored
in favour of the bus ones.
Change to calling the pm_runtime calls to suspend and resume the
devices specifically in the drivers/sh/pm_runtime.c implementation
to allow any device that may want to run power management to do so.
Note, all the current sh driver implementations do not use their
own power management code so this is not a major implementation
issues.
This also brings the implementation into line with the versions
used by the Davinci and Keystone PM domain code, so once fully
tested these implementations could be merged together.
Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
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>
(cherry picked from commit
8255fe169232364e5a01bd062e8037b8c1a9adec)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Geert Uytterhoeven [Thu, 22 May 2014 18:00:06 +0000 (20:00 +0200)]
drivers: sh: Restrict INTC_USERIMASK to SH4A
register_intc_userimask() is called from sh4a code only.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> [r8a7779 legacy]
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
(cherry picked from commit
39c5abbc54179998bf04368a11c561e19220d7d4)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Ben Dooks [Thu, 22 May 2014 18:00:04 +0000 (20:00 +0200)]
drivers: sh: pm_runtime does not need idle callback
In the runtime_pm idle callback the code assumes that a NULL .runtime_idle
entry is the same as a .runtime_idle entry that returns 0 as a result. This
means the entry in drivers/sh/pm_runtime can be removed in favour of just
leaving the entry NULL.
Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> [r8a7779 legacy]
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
(cherry picked from commit
fe95c932a31e7f12bcb6a4e07434462da2ac6e1d)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Thomas Gleixner [Wed, 7 May 2014 15:44:18 +0000 (15:44 +0000)]
sh: intc: Remove pointless irq_reserve_irqs() invocation
The preceding call to irq_create_identity_mapping() marks the
interrupt as allocated already. Remove the leftover.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Grant Likely <grant.likely@linaro.org>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Acked-by: Simon Horman <horms@verge.net.au>
Cc: linux-sh@vger.kernel.org
Link: http://lkml.kernel.org/r/20140507154339.189047829@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
(cherry picked from commit
3670802223e164f1089287d1c223d34d3c5dc3da)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Stratos Karafotis [Fri, 25 Apr 2014 20:16:58 +0000 (23:16 +0300)]
sh: clk: Use cpufreq_for_each_valid_entry macro for iteration
The cpufreq core now supports the cpufreq_for_each_valid_entry macro
helper for iteration over the cpufreq_frequency_table, so use it.
It should have no functional changes.
Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
(cherry picked from commit
4229e1c61a4a7ac21d5d0790f6add1c9b98d33e7)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Stratos Karafotis [Wed, 7 May 2014 16:33:33 +0000 (19:33 +0300)]
cpufreq: Fix build error on some platforms that use cpufreq_for_each_*
On platforms that use cpufreq_for_each_* macros, build fails if
CONFIG_CPU_FREQ=n, e.g. ARM/shmobile/koelsch/non-multiplatform:
drivers/built-in.o: In function `clk_round_parent':
clkdev.c:(.text+0xcf168): undefined reference to `cpufreq_next_valid'
drivers/built-in.o: In function `clk_rate_table_find':
clkdev.c:(.text+0xcf820): undefined reference to `cpufreq_next_valid'
make[3]: *** [vmlinux] Error 1
Fix this making cpufreq_next_valid function inline and move it to
cpufreq.h.
Fixes:
27e289dce297 (cpufreq: Introduce macros for cpufreq_frequency_table iteration)
Reported-and-tested-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
(cherry picked from commit
5eeaf1f1897372590105f155c6a7110b3fa36aef)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Conflicts:
include/linux/cpufreq.h
Stratos Karafotis [Fri, 25 Apr 2014 20:15:23 +0000 (23:15 +0300)]
cpufreq: Introduce macros for cpufreq_frequency_table iteration
Many cpufreq drivers need to iterate over the cpufreq_frequency_table
for various tasks.
This patch introduces two macros which can be used for iteration over
cpufreq_frequency_table keeping a common coding style across drivers:
- cpufreq_for_each_entry: iterate over each entry of the table
- cpufreq_for_each_valid_entry: iterate over each entry that contains
a valid frequency.
It should have no functional changes.
Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
(cherry picked from commit
27e289dce29764e488c1e13e9aa6950cad1f4aab)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Seungwon Jeon [Fri, 14 Mar 2014 12:12:33 +0000 (21:12 +0900)]
mmc: sh_mmcif: clarify DDR timing mode between SD-UHS and eMMC
Replaced UHS_DDR50 with MMC_DDR52.
CC: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Seungwon Jeon <tgih.jun@samsung.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <chris@printf.net>
(cherry picked from commit
4039ff4741c6e8d27b5ca42dc92d87dc2d625b80)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Seungwon Jeon [Fri, 14 Mar 2014 12:11:56 +0000 (21:11 +0900)]
mmc: clarify DDR timing mode between SD-UHS and eMMC
This change distinguishes DDR timing mode of current
mixed usage to clarify device type.
Signed-off-by: Seungwon Jeon <tgih.jun@samsung.com>
Acked-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <chris@printf.net>
(cherry picked from commit
79f7ae7c45a6ccf04e2908337461dee615f6afb0)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Simon Horman [Thu, 15 May 2014 11:00:58 +0000 (20:00 +0900)]
serial: sh-sci: Add device tree support for r8a7779
Simply document a new compat string.
There appears to be no need for a driver updates.
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit
81bd1eb7af751666ace2f1dadb0b0101401807cd)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Greg Kroah-Hartman [Fri, 25 Apr 2014 02:26:16 +0000 (19:26 -0700)]
Revert "serial: sh-sci: Add device tree support for r8a7779"
This reverts commit
fcbee4d49f30eb0eaa83a62e6a3cab5a892ed93f.
It wasn't quite ready to go in yet, sorry about that.
Cc: Simon Horman <horms@verge.net.au>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit
2aafb3864b9fa5ce83250537d940f973ef37b8dc)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Simon Horman [Thu, 24 Apr 2014 06:54:44 +0000 (15:54 +0900)]
serial: sh-sci: Add device tree support for r8a7779
According to the platform data for the legacy-C initialisation of sh-sci
for the r8a7779 SoC and my own testing the SCIx_SH4_SCIF_REGTYPE bit of
scscr needs to be set.
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit
fcbee4d49f30eb0eaa83a62e6a3cab5a892ed93f)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Magnus Damm [Tue, 13 May 2014 11:37:49 +0000 (13:37 +0200)]
pinctrl: sh-pfc: r8a73a4: Allow Multiplatform Build
Add #ifdefs to allow r8a73a4 Multiplatform build. Needed
to enable r8a73a4 Multiplatform support.
Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit
f39d8a72feb073c4ef6296f1d12cedf2ed572bfb)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Magnus Damm [Tue, 13 May 2014 11:37:48 +0000 (13:37 +0200)]
pinctrl: sh-pfc: sh73a0: Allow Multiplatform Build
Add #ifdefs to allow sh73a0 Multiplatform build. Needed
to enable sh73a0 Multiplatform support.
Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit
672d32377494b84d6af483ce46eda07baba4e3ea)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Magnus Damm [Tue, 13 May 2014 11:37:47 +0000 (13:37 +0200)]
pinctrl: sh-pfc: r8a7740: Allow Multiplatform Build
Add #ifdefs to allow r8a7740 Multiplatform build. Needed
to enable r8a7740 Multiplatform support.
Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit
b6c996a295620b67e4033f2eb07e5a5cf9e7a48f)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 13 May 2014 11:37:46 +0000 (13:37 +0200)]
pinctrl: sh-pfc: Don't set the pinmux_irq irq field for multiplatform
In the multiplatform kernel case the IRQs associated with the PFC GPIOs
are specified through DT. The pinmux_irq irq field is thus ignored by
the code, and doesn't need to be set.
This will allow removing the mach/irq.h include from pfc-*.c files that
was required for the irq_pin() macro used to initialize the irq field.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit
0e26e8dfb9dddb0559fb7cd7b53a8b497a8d4121)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Tue, 25 Mar 2014 18:56:26 +0000 (19:56 +0100)]
pinctrl: pfc: r8a7790: add mux data for IIC(B) cores
Signed-off-by: Wolfram Sang <wsa@sang-engineering.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit
a16b81dcbfc5889c37dac5f8e836136e4740fc18)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Tue, 25 Mar 2014 18:56:25 +0000 (19:56 +0100)]
pinctrl: pfc: r8a7790: add i2c0 muxing
Add the muxing for the last missing i2c rcar core. Fix the sorting for
SH_PFC_PIN_NAMED while we are here.
Signed-off-by: Wolfram Sang <wsa@sang-engineering.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit
35a493de0daf4955b6d15d488b3f8754d4637a04)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Kuninori Morimoto [Mon, 14 Apr 2014 00:24:04 +0000 (17:24 -0700)]
sh-pfc: r8a7791: Add Audio pin support
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit
c57a05b0eb0ee0205b34f2694b035afc75fa71e4)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Kuninori Morimoto [Mon, 14 Apr 2014 00:23:35 +0000 (17:23 -0700)]
sh-pfc: r8a7791: Add SSI pin support
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit
b664cd1f020211d8e4480c2937b82fe513a9c757)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 1 Apr 2014 10:59:09 +0000 (12:59 +0200)]
pinctrl: sh-pfc: r8a7791: Split the DU sync and cde/disp groups
The DU parallel interface ODDF signal is optional, move it out of the
HSYNC/VSYNC group into a group of its down. The CDE and DISP signals are
independent, split them to two different groups.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit
d10046e25c73e6150677b1b5360f20bb631181a7)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Jingoo Han [Thu, 22 May 2014 12:05:07 +0000 (14:05 +0200)]
clocksource: sh_mtu2: Remove unnecessary OOM messages
The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.
[dlezcano] : refreshed against latest modifications: kmalloc -> kzalloc
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
(cherry picked from commit
c77a565b2966567b97d589e90a6b9ce725bb15b1)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 4 Mar 2014 13:11:47 +0000 (14:11 +0100)]
clocksource: sh_mtu2: Sort headers alphabetically
This helps locating duplicates and inserting new headers.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa@sang-engineering.com>
(cherry picked from commit
346f5e76b3822a2530a03f33b00ee89dfc463326)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 4 Mar 2014 13:12:32 +0000 (14:12 +0100)]
clocksource: sh_mtu2: Remove FSF mail address from GPL notice
Do not include the paragraph about writing to the Free Software
Foundation's mailing address from the sample GPL notice. The FSF has
changed addresses in the past, and may do so again. Linux already
includes a copy of the GPL.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa@sang-engineering.com>
(cherry picked from commit
24c8f71707087eb177b45f4a24faedaa0d8f0287)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 4 Mar 2014 17:09:15 +0000 (18:09 +0100)]
clocksource: sh_mtu2: Rename clock to "fck" in the non-legacy case
The sh_mtu2 driver gets the MTU2 functional clock using a connection ID
of "mtu2_fck". While all SH SoCs create clock lookup entries with a NULL
device ID and a "mtu2_fck" connection ID, the ARM SoCs use the device ID
only with a NULL connection ID. This works on legacy platforms but will
break on ARM with DT boot.
Fix the situation by using a connection ID of "fck" in the non-legacy
platform data case. Clock lookup entries will be renamed to use the
device ID as well as the connection ID as platforms get moved to new
platform data. The legacy code will eventually be dropped, leaving us
with device ID based clock lookup, compatible with DT boot.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa@sang-engineering.com>
(cherry picked from commit
6dc9693bb3997cb324a2ffb39deaa72081a9bd0d)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 4 Mar 2014 17:05:45 +0000 (18:05 +0100)]
clocksource: sh_mtu2: Add support for multiple channels per device
MTU2 hardware devices can support multiple channels, with global
registers and per-channel registers. The sh_mtu2 driver currently models
the hardware with one Linux device per channel. This model makes it
difficult to handle global registers in a clean way.
Add support for a new model that uses one Linux device per timer with
multiple channels per device. This requires changes to platform data,
add new channel configuration fields.
Support for the legacy model is kept and will be removed after all
platforms switch to the new model.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa@sang-engineering.com>
(cherry picked from commit
faf3f4f8c805f5f8a786ba544c94bf3e01838388)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 4 Mar 2014 14:19:41 +0000 (15:19 +0100)]
clocksource: sh_mtu2: Hardcode MTU2 clock event rating to 200
All boards use clock event ratings of 200 for the MTU2, hardcode it in
the driver.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa@sang-engineering.com>
(cherry picked from commit
207e21a9732a27f58843ccae1c9644f3a1636b66)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 4 Mar 2014 14:22:19 +0000 (15:22 +0100)]
clocksource: sh_mtu2: Set cpumask to cpu_possible_mask
The MTU2 is not tied to CPU0, make it usable on any CPU.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa@sang-engineering.com>
(cherry picked from commit
3cc950479891040366629247357512f1cc928da3)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 4 Mar 2014 14:16:25 +0000 (15:16 +0100)]
clocksource: sh_mtu2: Replace hardcoded register values with macros
Define symbolic macros for all used registers bits.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa@sang-engineering.com>
(cherry picked from commit
f992c2410bd31b7c80ba8cc8b989d91b9cac3c30)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 4 Mar 2014 13:23:00 +0000 (14:23 +0100)]
clocksource: sh_mtu2: Allocate channels dynamically
This prepares the driver for multi-channel support.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa@sang-engineering.com>
(cherry picked from commit
c54ccb431ce6ce813bb850e8659991fc4c5bc6bc)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 4 Mar 2014 13:10:55 +0000 (14:10 +0100)]
clocksource: sh_mtu2: Replace kmalloc + memset with kzalloc
One kzalloc a day keeps the bugs away.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa@sang-engineering.com>
(cherry picked from commit
810c651369b343618d949826e0acd0df1b8b06eb)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 4 Mar 2014 13:17:26 +0000 (14:17 +0100)]
clocksource: sh_mtu2: Add index to struct sh_mtu2_channel
Use the index as the timer start/stop bit and when printing messages to
identify the channel.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa@sang-engineering.com>
(cherry picked from commit
d2b93177065fd8e1e18f4f42880326e0881ff457)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 4 Mar 2014 13:04:24 +0000 (14:04 +0100)]
clocksource: sh_mtu2: Add memory base to sh_mtu2_channel structure
The channel memory base is channel-specific, add it to the channel
structure in preparation for support of multiple channels per device.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa@sang-engineering.com>
(cherry picked from commit
da90a1c67751a412499a9f5698c3bf0bf80f65a6)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 4 Mar 2014 12:57:14 +0000 (13:57 +0100)]
clocksource: sh_mtu2: Constify name argument to sh_mtu2_register()
The name argument is assigned to const structure fields only, constify
it.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa@sang-engineering.com>
(cherry picked from commit
aa83804af705731d2802b80fb4b94a79045d31a3)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 4 Mar 2014 12:11:23 +0000 (13:11 +0100)]
clocksource: sh_mtu2: Split channel setup to separate function
Move the channel setup code from sh_mtu2_setup to a new
sh_mtu2_setup_channel function and call it from sh_mtu2_setup.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa@sang-engineering.com>
(cherry picked from commit
2e1a53265d550002fdd1658778854d56ae4cadc1)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 4 Mar 2014 12:04:48 +0000 (13:04 +0100)]
clocksource: sh_mtu2: Rename struct sh_mtu2_priv to sh_mtu2_device
Channel data is private as well, rename priv to device to make the
distrinction between the core device and the channels clearer.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa@sang-engineering.com>
(cherry picked from commit
7dad72de1b475d02935e5c79c218637b6c63108b)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 4 Mar 2014 11:58:30 +0000 (12:58 +0100)]
clocksource: sh_mtu2: Split channel fields from sh_mtu2_priv
Create a new sh_mtu2_channel structure to hold the channel-specific
fields in preparation for multiple channels per device support.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa@sang-engineering.com>
(cherry picked from commit
42752cc619c0ee619b56f86932ce42b00adb5052)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 4 Mar 2014 11:59:54 +0000 (12:59 +0100)]
clocksource: sh_mtu2: Turn sh_mtu2_priv fields into local variables
The rate and periodic fields are used in a single function only, as
local variables. Remove them from the structure.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa@sang-engineering.com>
(cherry picked from commit
f92d62f53973466cccb25900c2597ff6df950d74)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Mon, 17 Feb 2014 10:27:49 +0000 (11:27 +0100)]
clocksource: sh_mtu2: Use request_irq() instead of setup_irq()
The driver claims it needs to register an interrupt handler too early
for request_irq(). This might have been true in the past, but the only
meaningful difference between request_irq() and setup_irq() today is an
additional kzalloc() call in request_irq(). As the driver calls
kmalloc() itself we know that the slab allocator is available, we can
thus switch to request_irq().
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa@sang-engineering.com>
(cherry picked from commit
276bee05d8b72e98d530b55161e0a2131da99f58)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Jingoo Han [Thu, 22 May 2014 12:05:06 +0000 (14:05 +0200)]
clocksource: sh_cmt: Remove unnecessary OOM messages
The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.
[dlezcano] : refreshed against latest modifications: kmalloc -> kzalloc
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
(cherry picked from commit
0178f41d3d35b63ed25a066d90e7dda380018c06)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Fri, 21 Feb 2014 00:24:47 +0000 (01:24 +0100)]
clocksource: sh_cmt: Request IRQ for clock event device only
Clock sources don't need an IRQ, request the IRQ only for channels used
as clock event devices.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
bfa76bb12f23ecf0c6d07c302f4571a6fe9bc3e3)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Wed, 12 Feb 2014 15:56:44 +0000 (16:56 +0100)]
clocksource: sh_cmt: Sort headers alphabetically
This helps locating duplicates and inserting new headers.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
e7a9bcc2372b0e62443569c63a369cfd528db4f4)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Fri, 14 Feb 2014 00:25:50 +0000 (01:25 +0100)]
clocksource: sh_cmt: Remove FSF mail address from GPL notice
Do not include the paragraph about writing to the Free Software
Foundation's mailing address from the sample GPL notice. The FSF has
changed addresses in the past, and may do so again. Linux already
includes a copy of the GPL.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
1cd89c568c057a13ca11acf0eb3a78121513e2b6)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Thu, 13 Feb 2014 23:35:18 +0000 (00:35 +0100)]
clocksource: sh_cmt: Rename clock to "fck" in the non-legacy case
The sh_cmt driver gets the CMT functional clock using a connection ID of
"cmt_fck". While all SH SoCs create clock lookup entries with a NULL
device ID and a "cmt_fck" connection ID, the ARM SoCs use the device ID
only with a NULL connection ID. This works on legacy platforms but will
break on ARM with DT boot.
Fix the situation by using a connection ID of "fck" in the non-legacy
platform data case. Clock lookup entries will be renamed to use the
device ID as well as the connection ID as platforms get moved to new
platform data. The legacy code will eventually be dropped, leaving us
with device ID based clock lookup, compatible with DT boot.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
24b4e07df54b7bf7739fb3dd193f639a8f274ad6)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 28 Jan 2014 11:36:48 +0000 (12:36 +0100)]
clocksource: sh_cmt: Add support for multiple channels per device
CMT hardware devices can support multiple channels, with global
registers and per-channel registers. The sh_cmt driver currently models
the hardware with one Linux device per channel. This model makes it
difficult to handle global registers in a clean way.
Add support for a new model that uses one Linux device per timer with
multiple channels per device. This requires changes to platform data,
add new channel configuration fields.
Support for the legacy model is kept and will be removed after all
platforms switch to the new model.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
81b3b2711072b6047d5f332cd8751a1c5c9a3fb2)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Wed, 19 Feb 2014 16:00:31 +0000 (17:00 +0100)]
clocksource: sh_cmt: Hardcode CMT clock source rating to 125
All boards use or should use a clock source rating of 125 for the CMT,
hardcode it in the driver.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
fb28a659813084365eced5c2876c6383da52e634)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Wed, 19 Feb 2014 16:00:31 +0000 (17:00 +0100)]
clocksource: sh_cmt: Hardcode CMT clock event rating to 125
All boards use or should use a clock event rating of 125 for the CMT,
hardcode it in the driver.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
b7fcbb0f830e6cccc9d358c24f8463e5d8018649)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Wed, 19 Feb 2014 15:19:44 +0000 (16:19 +0100)]
clocksource: sh_cmt: Set cpumask to cpu_possible_mask
The CMT is a global timer not restricted to a single CPU. It has a lower
rating than the TMU or ARM architected timer, but is still useful on
systems where the other timers are stopped during CPU sleep.
When multiple timers are available the timers core selects which timer
to use based on timer ratings.
On SMP systems where timer broadcasting is required, one dummy timer is
instantiated per CPU with a rating of 100. On those systems the CMT
timer has a rating of 80, which makes the dummy timer selected by
default on all CPUs. The CMT is then available, and will be used as a
broadcast timer.
On UP systems no dummy timer is instantiated. The CMT timer has a rating
of 125 on those systems and is used directly as a clock event device for
CPU0 without broadcasting.
The CMT rating shouldn't depend on whether we boot a UP or SMP system.
We can't raise the CMT rating to 125 on SMP systems. This would select
CMT as the clock event device for CPU0 as its rating is higher than the
dummy timer rating, and would leave the system without a broadcast
timer. We could instead lower the rating to 80 on all systems, but that
wouldn't reflect reality as ratings between 1 and 99 are documented as
"unfit for real use".
We should raise the rating above 99 and still have the CMT selected as a
broadcast timer. This can be done by changing the cpumask from
cpumask_of(0) to cpu_possible_mask. In that case the timer selection
logic will prefer the previously probed and already selected dummy timer
for all CPUs based on the fact that already selected per-cpu timers are
preferred over new global timers, regardless of their respective
ratings. This also better reflects reality, as the CMT is not tied to
the boot CPU.
Ideally the timer selection logic should realize that the CMT needs to
be used as a broadcast timer on SMP systems as no other broadcast timer
is available, regardless of the cpumask and rating.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
f1ebe1e47e1979393a8492bfe751176908a830ae)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 28 Jan 2014 23:33:08 +0000 (00:33 +0100)]
clocksource: sh_cmt: Replace hardcoded register values with macros
Define symbolic macros for all used registers bits.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
d14be99b7e3fe52bc9921caa30953d49f499f121)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Tue, 11 Feb 2014 22:46:48 +0000 (23:46 +0100)]
clocksource: sh_cmt: Split static information from sh_cmt_device
Create a new sh_cmt_info structure to hold static information about the
device model and reference that structure from the sh_cmt_device
structure.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
2cda3ac49d5744432e9ebffb8ba47bef6eca053d)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Mon, 27 Jan 2014 21:04:17 +0000 (22:04 +0100)]
clocksource: sh_cmt: Allocate channels dynamically
This prepares the driver for multi-channel support.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
f5ec9b194a93c05e2ccdb3e90d9061cfedc806d9)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Mon, 27 Jan 2014 21:04:17 +0000 (22:04 +0100)]
clocksource: sh_cmt: Replace kmalloc + memset with kzalloc
One kzalloc a day keeps the bugs away.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
b262bc74dcfd77355720342cbcf89cc8ec12e86b)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Mon, 27 Jan 2014 21:04:17 +0000 (22:04 +0100)]
clocksource: sh_cmt: Add index to struct sh_cmt_channel
Use the index when printing messages to identify the channel.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
740a95184dd61eb0481f75ced05ea5e01b7ce6ac)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Mon, 27 Jan 2014 21:04:17 +0000 (22:04 +0100)]
clocksource: sh_cmt: Add memory base to sh_cmt_channel structure
The channel memory base is channel-specific, add it to the channel
structure in preparation for support of multiple channels per device.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
c924d2d2a964715b55b6601be338b3bd05a1ced5)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Mon, 27 Jan 2014 21:04:17 +0000 (22:04 +0100)]
clocksource: sh_cmt: Rename mapbase/mapbase_str to mapbase_ch/mapbase
The mapbase variable points to the mapped base address of the channel,
rename it to mapbase_sh. mapbase_str points to the mapped base address
of the CMT device, rename it to mapbase.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
36f1ac982d94cd3cce8ae24abd0676b79dec6126)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Mon, 17 Feb 2014 15:04:16 +0000 (16:04 +0100)]
clocksource: sh_cmt: Constify name argument to sh_cmt_register()
The name argument is assigned to const structure fields only, constify
it.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
1d053e1d8eb28f42b7ec57d1c11ce70b8fba45ff)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Mon, 27 Jan 2014 21:04:17 +0000 (22:04 +0100)]
clocksource: sh_cmt: Split channel setup to separate function
Move the channel setup code from sh_cmt_setup to a new
sh_cmt_setup_channel function and call it from sh_cmt_setup.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
b882e7b13bc12b3d6b00e4ea2fe374413ddcdd2d)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Mon, 27 Jan 2014 21:04:17 +0000 (22:04 +0100)]
clocksource: sh_cmt: Rename struct sh_cmt_priv to sh_cmt_device
Channel data is private as well, rename priv to device to make the
distrinction between the core device and the channels clearer.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
2653caf4381f9adeec8c18dfec21ec3c855d801c)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Mon, 27 Jan 2014 14:29:19 +0000 (15:29 +0100)]
clocksource: sh_cmt: Split channel fields from sh_cmt_priv
Create a new sh_cmt_channel structure to hold the channel-specific
field in preparation for multiple channels per device support.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
7269f9333292586f2378c5321b40a8d3779c4653)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Laurent Pinchart [Mon, 17 Feb 2014 10:27:49 +0000 (11:27 +0100)]
clocksource: sh_cmt: Use request_irq() instead of setup_irq()
The driver claims it needs to register an interrupt handler too early
for request_irq(). This might have been true in the past, but the only
meaningful difference between request_irq() and setup_irq() today is an
additional kzalloc() call in request_irq(). As the driver calls
kmalloc() itself we know that the slab allocator is available, we can
thus switch to request_irq().
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
(cherry picked from commit
dc2eadece70089430f12e4ed6bb1a4421cf3d6f4)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Bartlomiej Zolnierkiewicz [Wed, 7 May 2014 15:17:44 +0000 (17:17 +0200)]
ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers
This patch fixes host drivers to use CONFIG_PM_SLEEP instead of CONFIG_PM
where applicable. Benefits of this change:
* unused code is not being compiled in for CONFIG_PM=y, CONFIG_PM_SLEEP=n
and CONFIG_PM_RUNTIME=y configurations
* easier transition to use struct dev_pm_ops and SIMPLE_DEV_PM_OPS() in
the future
* more consistent code (there are host drivers which are using the correct
CONFIG_PM_SLEEP checks already)
The patch leaves the core libata code and ->port_[suspend,resume] support
in sata_[inic162x,nv,sil24].c alone for now.
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
(cherry picked from commit
58eb8cd565af4a104395e3c10443951c1f73dafe)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Jingoo Han [Wed, 7 May 2014 06:03:25 +0000 (15:03 +0900)]
thermal: rcar: remove unnecessary OOM messages
The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
(cherry picked from commit
b0a60d88d60b92c769ec589796403937f6e5243e)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Geert Uytterhoeven [Mon, 14 Apr 2014 17:02:55 +0000 (19:02 +0200)]
thermal: rcar: Use pm_runtime_put() i.s.o. pm_runtime_put_sync()
There's no need for this to be synchronous
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
(cherry picked from commit
09be511cdab813c2971c9f9af0cb40f6583cf80d)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Ivan T. Ivanov [Tue, 27 May 2014 06:27:36 +0000 (09:27 +0300)]
pinctrl: Enable "power-source" to be extracted from DT files
Add "power-source" property to generic options used for DT parsing files.
This enables drivers, which use generic pin configurations, to get the
value passed to this property.
Signed-off-by: Ivan T. Ivanov <iivanov@mm-sol.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit
ca6c55189a631f3380ff0a28f90d920a84e60d7b)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Benoit Taine [Mon, 26 May 2014 15:21:27 +0000 (17:21 +0200)]
pinctrl: pinconf-generic: Use kmemdup instead of kmalloc + memcpy
This issue was reported by coccicheck using the semantic patch
at scripts/coccinelle/api/memdup.cocci
Signed-off-by: Benoit Taine <benoit.taine@lip6.fr>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit
db388dfb90368638ad238c27b045b6c9bf1f6c17)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Antoine Ténart [Thu, 10 Apr 2014 13:07:50 +0000 (15:07 +0200)]
pinctrl: allows not to define the get_group_pins operation
When using a group only pinctrl driver, which does not have any
information on the pins it is useless to define a get_group_pins
always returning an empty list of pins.
When not using get_group_pin[1], a driver must implement it so
pins = NULL and num_pins = 0. This patch makes it the default
behaviour if not defined in the pinctrl driver when used in
pinmux enable and disable funtions and in pinctrl_groups_show.
It also adds a check in pinctrl_get_group_pins and return -EINVAL if
not defined. This function is called in the gpiolib when adding when
pingroup range. It cannot be used if no group is defined, so this seams
reasonable.
[1] get_group_pin(struct pinctrl_dev *pctldev,
unsigned selector,
const unsigned **pins,
unsigned *num_pins);
Signed-off-by: Antoine Ténart <antoine.tenart@free-electrons.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit
e5b3b2d9ed202697a937c282f9c4d93b1e3e0848)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Tue, 27 May 2014 12:06:28 +0000 (14:06 +0200)]
i2c: sh_mobile: add compatibles for additional SoC
Signed-off-by: Wolfram Sang <wsa@sang-engineering.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
90104d06372e41b2a844950f6648322b09f9b8b9)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Fri, 2 May 2014 19:15:16 +0000 (21:15 +0200)]
i2c: sh_mobile: fix clock calculation for newer SoCs
Newer SoCs have so fast input clocks that the ICCL/H registers only
count every second clock to have a meaningful 9-bit range. The driver
was already prepared for that happening, but didn't use it so far.
Add the proper DT configuration for SoCs that need it.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
67240dfcb8dcf756cc00fb37f5cb7e3ee2fa6190)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Fri, 2 May 2014 19:15:15 +0000 (21:15 +0200)]
i2c: sh_mobile: check timing parameters for valid range
Due to misconfiguration, it can happen that the calculated timing
parameters are out of range. Bail out if that happens. We can also
simplify some logic later because of the verified value. Also, make the
printouts of the values more precise by adding the hex-prefixes.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
7663ebefca8079ef0fd2fff1047d3d10af654c78)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Fri, 2 May 2014 19:15:14 +0000 (21:15 +0200)]
i2c: sh_mobile: bail out on errors when initializing
sh_mobile_i2c_init() could detect wrong settings, but didn't bail out,
so it would continue unconfigured. Fix this.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
6ed7053c2255c34886297b995c6a18607b36d668)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Fri, 2 May 2014 19:15:13 +0000 (21:15 +0200)]
i2c: sh_mobile: remove superfluous offset parameter
Following the KISS principle, remove unneeded stuff.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
ed4121e129ae46615ab570318b5b8f31494ced98)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Fri, 2 May 2014 19:15:12 +0000 (21:15 +0200)]
i2c: sh_mobile: devm conversion, irq setup
This is what devm was made for. No rollback mechanism needed, remove the
hook parameter from the irq setup function and simplify it. While we are
here change some variables to proper types.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
7fe8a9993337e4d1957737b4468fc574af8fb957)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Fri, 2 May 2014 19:15:11 +0000 (21:15 +0200)]
i2c: sh_mobile: devm conversion, low hanging fruits
Convert the easy parts to devm. irqs will be converted in a seperate
patch to keep diffs readable.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
4fd31c2eb7bf19927524bca1c5c17e6bb0f4f6eb)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Fri, 2 May 2014 19:15:09 +0000 (21:15 +0200)]
i2c: sh_mobile: honor DT bus speed settings
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
88c289ec28dfb0f383dcdbadd2c759f910585815)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Fri, 2 May 2014 19:15:08 +0000 (21:15 +0200)]
i2c: sh_mobile: improve error handling
Use standard i2c error codes for i2c failures. Also, don't print
something on timeout since it happens regularly with i2c. Simplify some,
logic, too.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
5a72b25e7896e6358b62b590ce5b3a457516ae40)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Fri, 2 May 2014 19:15:07 +0000 (21:15 +0200)]
i2c: sh_mobile: replace magic hex values with constants
No functional change, binaries are identical.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
a78f6a4140f95cbedc0b28c4c883e8aa9ba044f1)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Jingoo Han [Tue, 13 May 2014 01:51:58 +0000 (10:51 +0900)]
i2c: remove unnecessary OOM messages
The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message. For example,
k.alloc and v.alloc failures use dump_stack().
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Guenter Roeck <linux@roeck-us.net>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Felipe Balbi <balbi@ti.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
46797a2adbf0cdc3be17707dc64e872eeed86a8a)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Conflicts:
drivers/i2c/busses/i2c-efm32.c
Wolfram Sang [Wed, 28 May 2014 07:44:46 +0000 (09:44 +0200)]
i2c: rcar: update copyright and license information
Make clear that the driver is GPL v2 only. Remove FSF address. Remove
filename in comment. Update copyright information.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
3d99beabf17506b9d48461d1677a61a430000ad7)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Wed, 28 May 2014 07:44:45 +0000 (09:44 +0200)]
i2c: rcar: janitorial cleanup after refactoring
Remove some obvious comments, remove some superfluous debug output (the
error code carries the same information), some white space fixing...
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
51371cdc86403d9f643efe3d4a4febd11f084c74)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Wed, 28 May 2014 07:44:44 +0000 (09:44 +0200)]
i2c: rcar: reuse status bits as enable bits
Status register and enable register are identical regarding their
layout. Use the bit definitions for both.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
3e3aabac443e25712a3788cf88cc188e13ca8b0e)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Wed, 28 May 2014 07:44:43 +0000 (09:44 +0200)]
i2c: rcar: remove spinlock
The i2c core has per-adapter locks, so no need to protect again.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
150b8be3cda54412ad7b54f5392b513b25c0aaa7)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Wed, 28 May 2014 07:44:42 +0000 (09:44 +0200)]
i2c: rcar: refactor status bit handling
The old macros made it harder to see what was actually happening.
Replace them with something more readable.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
3c95de674496e08d3b373f85af4aa59c23ddb8d6)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Wed, 28 May 2014 07:44:41 +0000 (09:44 +0200)]
i2c: rcar: refactor setting up msg
Setting up a read or write message is similar enough to be done in one
function. Also, move a helper function into the new function since it is
only used here.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
386babf8e2f7dd483f88e5c0c4c761346b750185)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Wed, 28 May 2014 07:44:40 +0000 (09:44 +0200)]
i2c: rcar: check bus free before first message
We should always check if the bus is free, independently if it is a read
or write. It should be done before the first message, though. After
that, we ourselves keep the bus busy. Remove a 'ret' assignment which
only silenced a build warning.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
3f7de22eb28244fc79bc744d9f51d018da343962)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Wed, 28 May 2014 07:44:39 +0000 (09:44 +0200)]
i2c: rcar: refactor irq state machine
Remove the seperate functions and use designated constants. As readable
but less overhead. Actually, this is even more readable since the old
function used a mix of "=" and "|=".
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
f2382249b27d1589a1ae495a1df84d890982a3e1)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Wolfram Sang [Wed, 28 May 2014 07:44:38 +0000 (09:44 +0200)]
i2c: rcar: refactor bus state machine
Remove the seperate functions and use designated constants. As readable
but less overhead.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit
4f443a8a611d0cb3c40e95e0d90e9d7e4740eda6)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>