platform/kernel/linux-rpi.git
11 years agopinctrl: imx: Use struct type for pins
Sascha Hauer [Sun, 28 Jul 2013 14:29:22 +0000 (16:29 +0200)]
pinctrl: imx: Use struct type for pins

The i.MX pinctrl driver uses 5 different arrays for storing the
informations for pins. This requires five allocations. Instead,
use a struct type which is more cache friendly, readable and
requires less allocations. One array of integers is still needed
since the pinctrl framework forces us to maintain it.
This also adds checks whether the allocations are succesful which
were missing.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: imx: do not fail when parsing a function fails
Sascha Hauer [Fri, 9 Aug 2013 12:20:53 +0000 (14:20 +0200)]
pinctrl: imx: do not fail when parsing a function fails

When parsing a function fails this is no reason to make the whole
driver fail. Just continue with the next function.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: imx: do not fail when parsing a group fails
Sascha Hauer [Fri, 9 Aug 2013 12:20:52 +0000 (14:20 +0200)]
pinctrl: imx: do not fail when parsing a group fails

The i.MX pinctrl driver completely bails out when it detects an error
in the pinctrl nodes. This usually means that whatever error a
devicetree has the user is left blind because even the console cannot
be initialized without working pinmux.

Instead of bailing out completely, just continue probing. This makes
the pinctrl driver work, only the erroneous groups will fail later
during pin request time.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: imx: Catch no fsl,pins property
Sascha Hauer [Fri, 9 Aug 2013 12:20:51 +0000 (14:20 +0200)]
pinctrl: imx: Catch no fsl,pins property

Instead of crashing the kernel print an error message when
the fsl,pins property is missing.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: imx: make error messages more informative
Sascha Hauer [Fri, 9 Aug 2013 12:20:50 +0000 (14:20 +0200)]
pinctrl: imx: make error messages more informative

When printing error messages about errors in the devicetree also print
the offending node to give the use a hint what might be wrong.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: nomadik: simplify use of devm_ioremap_resource
Julia Lawall [Wed, 14 Aug 2013 09:11:05 +0000 (11:11 +0200)]
pinctrl: nomadik: simplify use of devm_ioremap_resource

Remove unneeded error handling on the result of a call to
platform_get_resource when the value is passed to devm_ioremap_resource.

Move the call to platform_get_resource adjacent to the call to
devm_ioremap_resource to make the connection between them more clear.

A simplified version of the semantic patch that makes this change is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@@
expression pdev,res,n,e,e1;
expression ret != 0;
identifier l;
@@

- res = platform_get_resource(pdev, IORESOURCE_MEM, n);
  ... when != res
- if (res == NULL) { ... \(goto l;\|return ret;\) }
  ... when != res
+ res = platform_get_resource(pdev, IORESOURCE_MEM, n);
  e = devm_ioremap_resource(e1, res);
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: add includes and ifdefs for non-DT builds
Linus Walleij [Thu, 15 Aug 2013 19:38:49 +0000 (21:38 +0200)]
pinctrl: add includes and ifdefs for non-DT builds

Commit e81c8f18afc4fdd6e34d8c83814b8b5134dbb30f
"pinctrl: pinconf-generic: add generic APIs for mapping pinctrl node"
Added function prototypes with implicit dependencies
on other header files causing build warnings like this:

In file included from
arch/arm/mach-ux500/board-mop500-pins.c:12:0:
include/linux/pinctrl/pinconf-generic.h:142:3:
warning: 'struct device_node' declared inside parameter list [enabled
by default]
   unsigned *reserved_maps, unsigned *num_maps);
   ^
include/linux/pinctrl/pinconf-generic.h:142:3:
warning: its scope is only this definition or declaration, which is
probably not what you want [enabled by default]
include/linux/pinctrl/pinconf-generic.h:142:3:
warning: 'struct pinctrl_dev' declared inside parameter list [enabled
by default]
include/linux/pinctrl/pinconf-generic.h:145:3:
warning: 'struct device_node' declared inside parameter list [enabled
by default]
   unsigned *num_maps);
   ^
Let's just add ifdefs for non-DT systems (the actual code is
already ifdefed) and #include <linux/device.h> to get the
most important structs and forward-declare the pinctrl
core structs.

Reported-by: Olof Johansson <olof@lixom.net>
Cc: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: nomadik: shut up a warning for flags
Linus Walleij [Thu, 15 Aug 2013 19:26:26 +0000 (21:26 +0200)]
pinctrl: nomadik: shut up a warning for flags

The irq flags variable gets a warning like this after
commit bf4dae5ce1b95a5932e43036edcf3f1b324758c6
"pinctrl: nomadik: delete ancient pin control API":

In file included from include/linux/seqlock.h:29:0,
                 from include/linux/time.h:5,
                 from include/linux/stat.h:18,
                 from include/linux/module.h:10,
                 from
drivers/pinctrl/pinctrl-nomadik.c:14:
drivers/pinctrl/pinctrl-nomadik.c: In function 'nmk_pmx_enable':
include/linux/spinlock.h:348:122: warning:
'flags' may be used uninitialized in this function
[-Wmaybe-uninitialized]
  raw_spin_unlock_irqrestore(&lock->rlock, flags);
                                                   ^
drivers/pinctrl/pinctrl-nomadik.c:1515:16: note:
'flags' was declared here
  unsigned long flags;

The function is question was never changed but it appears
the semantic checker could previously determine that the code
path that would use the flags was going to either use it or
not, but now it can't for some reason. Just fix it up.

Reported-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agogpio: clean up gpio-ranges documentation
Stephen Warren [Fri, 9 Aug 2013 16:57:46 +0000 (10:57 -0600)]
gpio: clean up gpio-ranges documentation

This change makes documentation of the the gpio-ranges property shorter
and more succinct, more consistent with the style of the rest of the
document, and not mention Linux-specifics such as the API
pinctrl_request_gpio(); DT binding documents should be OS independant
where at all possible. As part of this, the gpio-ranges property's format
is described in BNF form, in order to match the rest of the document.

This change also deprecates the #gpio-range-cells property. Such
properties are useful when one node references a second node, and that
second node dictates the format of the reference. However, that is not
the case here; the definition of gpio-ranges itself always dictates its
format entirely, and hence the value #gpio-range-cells must always be 3,
and hence there is no point requiring any referenced node to include
this property. The only remaining need for this property is to ensure
compatibility of DTs with older SW that was written to support the
previous version of the binding.

v4:
* Mention #gpio-range-cells as being deprecated, rather than removing all
  documentation of that property. This allows DTs to be written in a
  backwards-compatible way if desired, and also allows older DTs to be
  interpreted fully using the latest documentation.
v3:
* Mention BNF in commit description.
* Fixed typo.
* Dropped patch that removed the deprecated property from *.dts, since
  it's required to boot older kernels.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl/lantiq: add missing gphy led setup
John Crispin [Fri, 9 Aug 2013 18:38:15 +0000 (20:38 +0200)]
pinctrl/lantiq: add missing gphy led setup

We found out how to set the gphy led pinmuxing.

Signed-off-by: John Crispin <blogic@openwrt.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl/lantiq: add missing pin definition to falcon pinctrl driver
Thomas Langer [Fri, 9 Aug 2013 18:38:14 +0000 (20:38 +0200)]
pinctrl/lantiq: add missing pin definition to falcon pinctrl driver

The pps pin definition is missing in the current code.

Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
Acked-by: John Crispin <blogic@openwrt.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agoMAINTAINERS: Update sirf patterns
Joe Perches [Mon, 22 Jul 2013 00:15:40 +0000 (17:15 -0700)]
MAINTAINERS: Update sirf patterns

commit 3370dc916c ("pinctrl:sirf:re-arch and add support for
new SiRFatlas6 SoC") moved the files, update the patterns.

Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Barry Song <21cnbao@gmail.com>
cc: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agoDocumentation: pinctrl: Fix example code
Sachin Kamat [Thu, 8 Aug 2013 05:20:59 +0000 (10:50 +0530)]
Documentation: pinctrl: Fix example code

__initdata should be placed between the variable name and equal
sign for the variable to be placed in the intended section. Fix
the examples.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: r8a7790: Add DU pin groups and functions
Laurent Pinchart [Wed, 7 Aug 2013 12:02:23 +0000 (14:02 +0200)]
sh-pfc: r8a7790: Add DU pin groups and functions

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: r8a7790: Rename DU1_DOTCLKIN to DU_DOTCLKIN1
Laurent Pinchart [Wed, 7 Aug 2013 12:02:22 +0000 (14:02 +0200)]
sh-pfc: r8a7790: Rename DU1_DOTCLKIN to DU_DOTCLKIN1

Name the DU clock input 1 consistently with clock inputs 0 and 2.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: improve warning messages
Linus Walleij [Wed, 14 Aug 2013 16:23:33 +0000 (18:23 +0200)]
pinctrl: improve warning messages

Print out the affected group name on activation of pin mux
settings, and warn if you cannot free a pin that should have
been part of a certain setting.

ChangeLog v1->v2:
- Also print the pin name in the error messages.

Cc: Sonic Zhang <sonic.zhang@analog.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: palmas: add pincontrol driver
Laxman Dewangan [Tue, 6 Aug 2013 13:12:35 +0000 (18:42 +0530)]
pinctrl: palmas: add pincontrol driver

TI Palmas series Power Management IC have multiple pins which can be
configured for different functionality. This pins can be configured
for different function. Also their properties like pull up/down,
open drain enable/disable are configurable.

Add support for pincontrol driver Palmas series device like TPS65913,
TPS80036. The driver supports to be register from DT only.

Changes from V1:
- Add generic property for pins and functions in pinconf-generic.
- Add APIs to map the DT and subnode.
- Move common utils APIs to the pinctrl-utils from this file.
- Update the binding document accordingly.
Changes from V2:
- Add ack by Lee.
- Correct the binding docs.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Acked-by: Lee Jones <lee.jones@linaro.org>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: pinconf-generic: add generic APIs for mapping pinctrl node
Laxman Dewangan [Tue, 6 Aug 2013 13:12:34 +0000 (18:42 +0530)]
pinctrl: pinconf-generic: add generic APIs for mapping pinctrl node

Add generic APIs to map the DT node and its sub node in pinconf generic
driver. These APIs can be used from driver to parse the DT node who
uses the pinconf generic APIs for defining their nodes.

Changes from V1:
- Add generic property for pins and functions in pinconf-generic.
- Add APIs to map the DT and subnode.
- Move common utils APIs to the pinctrl-utils from this file.
- Update the binding document accordingly.
Changes from V2:
- Rebased the pinctrl binding doc on top of Stephen's cleanup.
- Rename properties "pinctrl-pins" and "pinctrl-function" to
  "pins" and "function".

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: add utility functions for add map/configs
Laxman Dewangan [Tue, 6 Aug 2013 13:12:33 +0000 (18:42 +0530)]
pinctrl: add utility functions for add map/configs

Some of pincontrol driver needs the utility function to create map
list. The utility function needed for adding mux, configs etc.

In place of duplicating this in each driver, add the common utility
function in common file and use from device specific driver. This will
reduce the duplicating of code across drivers.

Changes from V1:
- Add this files in this patch and add common utility APIs to here.

Changes from V2:
- Nothing in code.
- Added Reviewed by Stephen.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: pinmux: Don't free pins requested by other devices in pinmux_disable_setting.
Sonic Zhang [Wed, 14 Aug 2013 05:26:43 +0000 (13:26 +0800)]
pinctrl: pinmux: Don't free pins requested by other devices in pinmux_disable_setting.

One peripheral may share part of its pins with the 2nd
peripheral and the other pins with the 3rd. If it requests all pins
when part of them has already be requested and owned by the 2nd
peripheral, this request fails and pinmux_disable_setting() is called.
The pinmux_disable_setting() frees all pins of the first peripheral
without checking if the pin is owned by itself or the 2nd, which
results in the malfunction of the 2nd peripheral driver.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: nomadik: delete ancient pin control API
Linus Walleij [Wed, 7 Aug 2013 20:21:57 +0000 (22:21 +0200)]
pinctrl: nomadik: delete ancient pin control API

The pin control subsystem was created to do away with custom pin
control APIs such as this one. It was kept for backward-compatibility
but is completely unused in the current kernel, so let's delete
it.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: add generic pins and functions properties
Stephen Warren [Tue, 6 Aug 2013 17:10:32 +0000 (11:10 -0600)]
pinctrl: add generic pins and functions properties

pinctrl bindings can benefit from generic property names that define
which pins a "pin configuration node" affects, and which mux function
to select onto those pins. Document new properties for this purpose so
that other bindings may refer to them.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: sirf: add missing __iomem annotation
Jingoo Han [Tue, 6 Aug 2013 09:14:12 +0000 (18:14 +0900)]
pinctrl: sirf: add missing __iomem annotation

Added missing __iomem annotation in order to fix the following
sparse warnings:

drivers/pinctrl/sirf/pinctrl-sirf.c:846:14: warning: incorrect type in assignment (different address spaces)
drivers/pinctrl/sirf/pinctrl-sirf.c:846:14:    expected void *regs
drivers/pinctrl/sirf/pinctrl-sirf.c:846:14:    got void [noderef] <asn:2>*
drivers/pinctrl/sirf/pinctrl-sirf.c:869:33: warning: incorrect type in assignment (different address spaces)
drivers/pinctrl/sirf/pinctrl-sirf.c:869:33:    expected void [noderef] <asn:2>*regs
drivers/pinctrl/sirf/pinctrl-sirf.c:869:33:    got void *regs
drivers/pinctrl/sirf/pinctrl-sirf.c:909:17: warning: incorrect type in argument 1 (different address spaces)
drivers/pinctrl/sirf/pinctrl-sirf.c:909:17:    expected void volatile [noderef] <asn:2>*addr
drivers/pinctrl/sirf/pinctrl-sirf.c:909:17:    got void *regs

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: pinconf: fix comparison of different types
Jingoo Han [Tue, 6 Aug 2013 09:10:20 +0000 (18:10 +0900)]
pinctrl: pinconf: fix comparison of different types

Fix the following sparse warning:

drivers/pinctrl/pinconf.c:521:20: error: incompatible types in comparison expression (different type sizes)

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: clean up pinconfig-generic documentation
Stephen Warren [Mon, 5 Aug 2013 21:55:59 +0000 (15:55 -0600)]
pinctrl: clean up pinconfig-generic documentation

Reword the section of pinctrl-bindings.txt that describes generic
properties that pinctrl bindings may use. The aim is to make the text
clearer, and more explicitly call out the responsibility of individual
bindings that use the generic properties to define which of the
properties are used, and how.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: at91: choose appropriate handler for level interrupts
Boris BREZILLON [Sat, 20 Jul 2013 14:51:33 +0000 (16:51 +0200)]
pinctrl: at91: choose appropriate handler for level interrupts

The current implementation handle both edge and level interrupts with the
'handle_simple_irq' handler.

Level interrupts are active as long as the pin stays at the configured
level (low or high). In this case we have to use 'handle_level_irq' which
mask the interrupt until the handle has treated it.

Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com>
Tested-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: st: Staticize local symbols
Sachin Kamat [Mon, 29 Jul 2013 04:22:56 +0000 (09:52 +0530)]
pinctrl: st: Staticize local symbols

Symbols used only in this file are made static.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Acked-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: st: Convert to use devm_ioremap_resource
Sachin Kamat [Mon, 29 Jul 2013 04:22:55 +0000 (09:52 +0530)]
pinctrl: st: Convert to use devm_ioremap_resource

devm_request_and_ioremap is deprecated. Use devm_ioremap_resource
instead.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Acked-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: imx: work around select input quirk
Shawn Guo [Sun, 4 Aug 2013 13:39:23 +0000 (21:39 +0800)]
pinctrl: imx: work around select input quirk

The select input for some pin may not be implemented using the regular
select input register but the general purpose register.  A real example
is that imx6q designers found the select input for USB OTG ID pin is
missing at the very late stage, and can not add a new select input
register but have to use a general purpose register bit to implement it.

The patch adds a workaround for such select input quirk by interpreting
the input_val cell of pin function ID in a different way, so that all
the info that needed for setting up select input bits in general purpose
register could be decoded from there.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Tested-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: sunxi: Fix incorrect NULL check
Sachin Kamat [Mon, 29 Jul 2013 08:19:32 +0000 (13:49 +0530)]
pinctrl: sunxi: Fix incorrect NULL check

*map should be tested for NULL instead of map as kmalloc pointer
is assigned to it. This also fixes a potential null pointer dereference
bug later in the code.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: shut up a couple of pinctrl warnings
Russell King - ARM Linux [Sun, 28 Jul 2013 12:13:00 +0000 (13:13 +0100)]
pinctrl: shut up a couple of pinctrl warnings

So, I notice that we get a couple of warnings from the pinctrl code:

drivers/pinctrl/pinconf.c: In function 'pinconf_dbg_config_print':
drivers/pinctrl/pinconf.c:433:36: warning: 'configs' may be used uninitialized in this function
drivers/pinctrl/pinconf.c: In function 'pinconf_dbg_config_write':
drivers/pinctrl/pinconf.c:511:36: warning: 'configs' may be used uninitialized in this function

While the compiler might not be able to work out that "configs" is
safe, the code doesn't lend itself very well to identifying that
fact when reading it either.  This can be trivially solved by a slight
restructuring of the code - which also reduces the LOC.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agodrivers/pinctrl: don't check resource with devm_ioremap_resource
Wolfram Sang [Tue, 23 Jul 2013 18:01:47 +0000 (20:01 +0200)]
drivers/pinctrl: don't check resource with devm_ioremap_resource

devm_ioremap_resource does sanity checks on the given resource. No need to
duplicate this in the driver.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: rockchip: include correct clk header
Heiko Stübner [Tue, 23 Jul 2013 11:34:20 +0000 (13:34 +0200)]
pinctrl: rockchip: include correct clk header

The correct header to include for clock handling is clk.h .
clk-provider.h should not be used in simple clock consumers.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agoMerge branch 'pinmux/next/fixes' of git://linuxtv.org/pinchartl/fbdev into devel
Linus Walleij [Mon, 29 Jul 2013 14:33:57 +0000 (16:33 +0200)]
Merge branch 'pinmux/next/fixes' of git://linuxtv.org/pinchartl/fbdev into devel

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agoMerge branch 'pinmux/next/pin-no-gpio' of git://linuxtv.org/pinchartl/fbdev into...
Linus Walleij [Mon, 29 Jul 2013 14:30:55 +0000 (16:30 +0200)]
Merge branch 'pinmux/next/pin-no-gpio' of git://linuxtv.org/pinchartl/fbdev into devel

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: r8a7790: Add VIN pin groups and functions
Shinobu Uehara [Thu, 27 Jun 2013 10:38:02 +0000 (19:38 +0900)]
sh-pfc: r8a7790: Add VIN pin groups and functions

Signed-off-by: Shinobu Uehara <shinobu.uehara.xc@renesas.com>
Signed-off-by: Ryo Kataoka <ryo.kataoka.wt@renesas.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: r8a7790: Add USB pin groups and functions
Shinobu Uehara [Wed, 26 Jun 2013 00:39:34 +0000 (09:39 +0900)]
sh-pfc: r8a7790: Add USB pin groups and functions

Signed-off-by: Shinobu Uehara <shinobu.uehara.xc@renesas.com>
Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: r8a7790: Add SCIF2 pin groups and functions
Laurent Pinchart [Wed, 24 Jul 2013 00:02:58 +0000 (02:02 +0200)]
sh-pfc: r8a7790: Add SCIF2 pin groups and functions

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: r8a7790: Add MSIOF pin groups and functions
Kunihito Higashiyama [Fri, 28 Jun 2013 00:36:09 +0000 (09:36 +0900)]
sh-pfc: r8a7790: Add MSIOF pin groups and functions

Signed-off-by: Kunihito Higashiyama <kunihito.higashiyama.ur@renesas.com>
Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: r8a7790: Sort pin groups and functions alphabetically
Laurent Pinchart [Tue, 23 Jul 2013 23:47:29 +0000 (01:47 +0200)]
sh-pfc: r8a7790: Sort pin groups and functions alphabetically

Navigating through the source code is hard enough without having to
manually search for groups and functions.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: r8a7790: Fix miscellaneous pinmux configuration tables mistakes
Shinya Kuribayashi [Mon, 27 May 2013 08:10:11 +0000 (17:10 +0900)]
sh-pfc: r8a7790: Fix miscellaneous pinmux configuration tables mistakes

Fix erroneous entries in the pinmux configuration tables that affect
HSCIF, I2C, LBSC, SCIF, SSI and VIN operation.

Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: r8a7790: Add SCIF2 pins configuration support
Shinya Kuribayashi [Fri, 24 May 2013 07:56:54 +0000 (16:56 +0900)]
sh-pfc: r8a7790: Add SCIF2 pins configuration support

Update the pinmux configuration tables to support the SCIF2 pins
(TX2/TX2_B, RX2/RX2_B, SCK2).

Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: r8a7790: Add TCLK1 pin configuration support
Shinya Kuribayashi [Fri, 24 May 2013 07:31:32 +0000 (16:31 +0900)]
sh-pfc: r8a7790: Add TCLK1 pin configuration support

Update the pinmux configuration tables to support the TCLK1 pin.

Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: r8a7790: Swap SCIFA2_RXD_B and HRX0_C configurations
Shinya Kuribayashi [Fri, 24 May 2013 08:50:44 +0000 (17:50 +0900)]
sh-pfc: r8a7790: Swap SCIFA2_RXD_B and HRX0_C configurations

The SCIFA2 RXD_B and HRX0_C pins have their pinmux configuration data
swapped, fix it.

Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: r8a7790: Remove deprecated SPV_EVEN pin
Shinya Kuribayashi [Fri, 24 May 2013 08:26:08 +0000 (17:26 +0900)]
sh-pfc: r8a7790: Remove deprecated SPV_EVEN pin

The pins have been removed from the datasheet, remove them here as well.

Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: r8a7790: Remove deprecated RDS pins
Shinya Kuribayashi [Fri, 24 May 2013 07:14:24 +0000 (16:14 +0900)]
sh-pfc: r8a7790: Remove deprecated RDS pins

The pins have been removed from the datasheet, remove them here as well.

Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: r8a7790: Remove deprecated Ethernet MII/RMII pins
Shinya Kuribayashi [Wed, 22 May 2013 10:55:08 +0000 (19:55 +0900)]
sh-pfc: r8a7790: Remove deprecated Ethernet MII/RMII pins

The pins have been removed from the datasheet, remove them here as well.

Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: r8a7790: Remove trailing '_TANS' string from RTS/CTS pins
Shinya Kuribayashi [Fri, 24 May 2013 08:28:17 +0000 (17:28 +0900)]
sh-pfc: r8a7790: Remove trailing '_TANS' string from RTS/CTS pins

The RTS/CTS pins have been renamed in the datasheet, rename them here as
well.

Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: r8a7790: Rename I2C SDA/SCL pins
Shinya Kuribayashi [Wed, 22 May 2013 10:46:16 +0000 (19:46 +0900)]
sh-pfc: r8a7790: Rename I2C SDA/SCL pins

The I2C pins have been renamed in the datasheet, rename them here as
well.

Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: r8a7779: Add I2C pin groups
Phil Edworthy [Wed, 17 Jul 2013 11:00:48 +0000 (12:00 +0100)]
sh-pfc: r8a7779: Add I2C pin groups

Add all I2C pin groups to R8A7779 PFC driver.

Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: sh73a0: Remove EXT_IRQ16L and EXT_IRQ16H macros
Laurent Pinchart [Tue, 23 Jul 2013 23:24:15 +0000 (01:24 +0200)]
sh-pfc: sh73a0: Remove EXT_IRQ16L and EXT_IRQ16H macros

The macros expand to irq_pin() calls and where most probably introduced
from a copy&paste of the sh7372 PFC data. Replace them with irq_pin().

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Magnus Damm <damm@opensource.se>
11 years agosh-pfc: sh7372: Replace <mach/irqs.h> with <linux/sh_intc.h>
Laurent Pinchart [Tue, 23 Jul 2013 22:25:16 +0000 (00:25 +0200)]
sh-pfc: sh7372: Replace <mach/irqs.h> with <linux/sh_intc.h>

The mach/irqs.h header is included only to get the evt2irq macro
definition. The macro is defined in linux/sh_intc.h, include it directly
instead of the mach-specific header.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Magnus Damm <damm@opensource.se>
11 years agosh-pfc: Remove unneeded mach/<soc>.h includes
Laurent Pinchart [Tue, 23 Jul 2013 21:08:10 +0000 (23:08 +0200)]
sh-pfc: Remove unneeded mach/<soc>.h includes

The SoC-specific mach/<soc>.h headers are included needlesly. Don't
include them.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Magnus Damm <damm@opensource.se>
11 years agosh-pfc: Support pins not associated with a GPIO port
Laurent Pinchart [Mon, 15 Jul 2013 19:10:54 +0000 (21:10 +0200)]
sh-pfc: Support pins not associated with a GPIO port

Pins with selectable functions but without a GPIO port can't be named
PORT_# or GP_#_#. Add a SH_PFC_PIN_NAMED macro to declare such pins in
the pinmux pins array, naming them with the PIN_ prefix followed by the
pin physical position.

In order to make sure not to register those pins as GPIOs, add a
SH_PFC_PIN_CFG_NO_GPIO pin flag to denote pins without a GPIO port.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
11 years agosh-pfc: Compute pin ranges automatically
Laurent Pinchart [Mon, 15 Jul 2013 16:38:30 +0000 (18:38 +0200)]
sh-pfc: Compute pin ranges automatically

Remove the manually specified ranges from PFC SoC data and compute the
ranges automatically. This prevents ranges from being out-of-sync with
pins definitions.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
11 years agosh-pfc: Rename struct sh_pfc nr_pins field to nr_gpio_pins
Laurent Pinchart [Mon, 15 Jul 2013 11:48:56 +0000 (13:48 +0200)]
sh-pfc: Rename struct sh_pfc nr_pins field to nr_gpio_pins

The field contains the number of pins with an associated GPIO port. This
is currently equal to the total number of pins but will be modified when
adding support for pins without a GPIO port. Rename the field
accordingly.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
11 years agosh-pfc: Add pin number to struct sh_pfc_pin
Laurent Pinchart [Wed, 13 Feb 2013 23:59:49 +0000 (00:59 +0100)]
sh-pfc: Add pin number to struct sh_pfc_pin

The pin number is usually equal to the GPIO number but can differ when
GPIO numbering is sparse.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
11 years agosh-pfc: Pass the pin number down to the port function macro
Laurent Pinchart [Wed, 13 Feb 2013 23:41:57 +0000 (00:41 +0100)]
sh-pfc: Pass the pin number down to the port function macro

The PORT_1 macro invokes a macro passed as a parameter. Pass the pin
number down to that macro at the bottom of the call stack. This will be
used to compute the pin ranges automatically.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
11 years agosh-pfc: Add port numbers to the CPU_ALL_PORT macro
Laurent Pinchart [Wed, 13 Feb 2013 23:24:32 +0000 (00:24 +0100)]
sh-pfc: Add port numbers to the CPU_ALL_PORT macro

Pass down the port number down to the PORT_1 macro. The port number will
be used to compute the pin ranges automatically.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
11 years agosh-pfc: Don't duplicate argument to PINMUX_GPIO macro
Laurent Pinchart [Mon, 15 Jul 2013 19:16:25 +0000 (21:16 +0200)]
sh-pfc: Don't duplicate argument to PINMUX_GPIO macro

The PINMUX_GPIO macro takes a port name and a data mark, respectively of
the form GPIO_name and name_DATA. Modify the macro to take the name as a
single argument and derive the port name and data mark from it.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
11 years agosh-pfc: shx3: Remove shx3_ prefix from static symbols
Laurent Pinchart [Mon, 15 Jul 2013 15:13:51 +0000 (17:13 +0200)]
sh-pfc: shx3: Remove shx3_ prefix from static symbols

Unlike all other PFC SoC data, the shx3 data prefix all static symbols
with shx3_. Remove the prefix to be consistent with the other source
files.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: sh7734: Use the common GP port style macros
Laurent Pinchart [Mon, 15 Jul 2013 14:07:08 +0000 (16:07 +0200)]
sh-pfc: sh7734: Use the common GP port style macros

The SoC has a bank-style PFC. Replace the custom-defined macros with
common macros from sh-pfc.h.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: Consolidate pin definition macros
Laurent Pinchart [Mon, 15 Jul 2013 15:42:48 +0000 (17:42 +0200)]
sh-pfc: Consolidate pin definition macros

Move the pin definition macros to a common header file.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
11 years agosh-pfc: Consolidate PFC SoC data macros
Laurent Pinchart [Mon, 15 Jul 2013 13:14:22 +0000 (15:14 +0200)]
sh-pfc: Consolidate PFC SoC data macros

Move macros defined in several SoC data files to a common location and
document them.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
11 years agosh-pfc: Rename gpio arguments to be consistent with the rest of the code
Laurent Pinchart [Mon, 15 Jul 2013 11:25:08 +0000 (13:25 +0200)]
sh-pfc: Rename gpio arguments to be consistent with the rest of the code

The gpio_get_data_reg() and gpio_setup_data_reg() functions both take an
argument named gpio. The argument contains a GPIO offset for the first
function and a pin index for the second one. Rename them to offset and
idx respectively to match the rest of the code.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
11 years agosh-pfc: Replace pinmux_enum_id typedef with u16
Laurent Pinchart [Mon, 15 Jul 2013 11:03:20 +0000 (13:03 +0200)]
sh-pfc: Replace pinmux_enum_id typedef with u16

The typedef only conceals the real variable type without bringing any
additional value (see Documentation/CodingStyle, section 5.b). Moreover,
it polutes the pinmux namespace. Replace it with the integer type it
used to hide.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
11 years agosh-pfc: Don't overallocate memory for the GPIO chip pins array
Laurent Pinchart [Mon, 15 Jul 2013 11:36:39 +0000 (13:36 +0200)]
sh-pfc: Don't overallocate memory for the GPIO chip pins array

The GPIO driver uses an array of sh_pfc_gpio_pin structures to store
per-GPIO pin data. The array size is miscomputed at allocation time by
using the number of the last pin instead of the number of pins. When the
pin space contains holes this leads to memory overallocation. Fix it.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
11 years agosh-pfc: Remove unused GPIO_PORT_ALL macro
Laurent Pinchart [Mon, 15 Jul 2013 13:21:28 +0000 (15:21 +0200)]
sh-pfc: Remove unused GPIO_PORT_ALL macro

The macro isn't used, remove it.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
11 years agosh-pfc: Remove unneeded const keywords
Laurent Pinchart [Sun, 14 Jul 2013 18:04:53 +0000 (20:04 +0200)]
sh-pfc: Remove unneeded const keywords

Two integer field structures are needlesly defined as const. Remove the
const keyword.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
11 years agosh-pfc: Remove unused macro and enum entries
Laurent Pinchart [Sun, 14 Jul 2013 17:59:50 +0000 (19:59 +0200)]
sh-pfc: Remove unused macro and enum entries

The SH_PFC_MARK_INVALID macro and the PINMUX_FLAG_TYPE, GPIO_CFG_REQ and
GPIO_CFG_FREE enum entries are used, remove them.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
11 years agosh-pfc: Remove unused PORT_DATA_* macros
Laurent Pinchart [Sun, 14 Jul 2013 17:58:57 +0000 (19:58 +0200)]
sh-pfc: Remove unused PORT_DATA_* macros

Most of the PORT_DATA_* macros are not used, remove them.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
11 years agosh-pfc: Remove unused input_pd and input_pu ranges
Laurent Pinchart [Tue, 16 Jul 2013 00:01:00 +0000 (02:01 +0200)]
sh-pfc: Remove unused input_pd and input_pu ranges

The ranges are not used anymore, remove them.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
11 years agosh-pfc: shx3: Remove unused input_pu range
Laurent Pinchart [Mon, 15 Jul 2013 23:54:13 +0000 (01:54 +0200)]
sh-pfc: shx3: Remove unused input_pu range

The PFC SHX3 SoC data contains a input_pu range used to configure
pull-up resistors using the legacy non-pinconf API. That API has been
removed from the driver, the range is thus not used anymore. Remove it.

If required, configuring pull-up resistors for the SHX3 can be
implemented using the pinconf API, as done for the SH-Mobile, R-Mobile
and R-Car platforms.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: sh7786: Remove unused input_pu range
Laurent Pinchart [Mon, 15 Jul 2013 23:54:13 +0000 (01:54 +0200)]
sh-pfc: sh7786: Remove unused input_pu range

The PFC SH7786 SoC data contains a input_pu range used to configure
pull-up resistors using the legacy non-pinconf API. That API has been
removed from the driver, the range is thus not used anymore. Remove it.

If required, configuring pull-up resistors for the SH7786 can be
implemented using the pinconf API, as done for the SH-Mobile, R-Mobile
and R-Car platforms.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: sh7785: Remove unused input_pu range
Laurent Pinchart [Mon, 15 Jul 2013 23:54:13 +0000 (01:54 +0200)]
sh-pfc: sh7785: Remove unused input_pu range

The PFC SH7785 SoC data contains a input_pu range used to configure
pull-up resistors using the legacy non-pinconf API. That API has been
removed from the driver, the range is thus not used anymore. Remove it.

If required, configuring pull-up resistors for the SH7785 can be
implemented using the pinconf API, as done for the SH-Mobile, R-Mobile
and R-Car platforms.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: sh7757: Remove unused input_pu range
Laurent Pinchart [Mon, 15 Jul 2013 23:54:13 +0000 (01:54 +0200)]
sh-pfc: sh7757: Remove unused input_pu range

The PFC SH7757 SoC data contains a input_pu range used to configure
pull-up resistors using the legacy non-pinconf API. That API has been
removed from the driver, the range is thus not used anymore. Remove it.

If required, configuring pull-up resistors for the SH7757 can be
implemented using the pinconf API, as done for the SH-Mobile, R-Mobile
and R-Car platforms.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: sh7724: Remove unused input_pu range
Laurent Pinchart [Mon, 15 Jul 2013 23:54:13 +0000 (01:54 +0200)]
sh-pfc: sh7724: Remove unused input_pu range

The PFC SH7724 SoC data contains a input_pu range used to configure
pull-up resistors using the legacy non-pinconf API. That API has been
removed from the driver, the range is thus not used anymore. Remove it.

If required, configuring pull-up resistors for the SH7724 can be
implemented using the pinconf API, as done for the SH-Mobile, R-Mobile
and R-Car platforms.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: sh7723: Remove unused input_pu range
Laurent Pinchart [Mon, 15 Jul 2013 23:54:13 +0000 (01:54 +0200)]
sh-pfc: sh7723: Remove unused input_pu range

The PFC SH7723 SoC data contains a input_pu range used to configure
pull-up resistors using the legacy non-pinconf API. That API has been
removed from the driver, the range is thus not used anymore. Remove it.

If required, configuring pull-up resistors for the SH7723 can be
implemented using the pinconf API, as done for the SH-Mobile, R-Mobile
and R-Car platforms.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: sh7722: Remove unused input_pd and input_pu ranges
Laurent Pinchart [Sun, 14 Jul 2013 17:56:02 +0000 (19:56 +0200)]
sh-pfc: sh7722: Remove unused input_pd and input_pu ranges

The PFC SH7722 SoC data contains input_pd and input_pu ranges used to
configure pull-down and pull-up resistors using the legacy non-pinconf
API. That API has been removed from the driver, the ranges are thus not
used anymore. Remove them.

If required, configuring pull-down and pull-up resistors for the SH7722
can be implemented using the pinconf API, as done for the SH-Mobile,
R-Mobile and R-Car platforms.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: sh7720: Remove unused input_pu range
Laurent Pinchart [Mon, 15 Jul 2013 23:54:13 +0000 (01:54 +0200)]
sh-pfc: sh7720: Remove unused input_pu range

The PFC SH7720 SoC data contains a input_pu range used to configure
pull-up resistors using the legacy non-pinconf API. That API has been
removed from the driver, the range is thus not used anymore. Remove it.

If required, configuring pull-up resistors for the SH7720 can be
implemented using the pinconf API, as done for the SH-Mobile, R-Mobile
and R-Car platforms.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agopinctrl: pinctrl-imx: Remove unneeded check for platform_get_resource()
Fabio Estevam [Mon, 22 Jul 2013 01:16:21 +0000 (22:16 -0300)]
pinctrl: pinctrl-imx: Remove unneeded check for platform_get_resource()

As devm_ioremap_resource() is used on probe, there is no need to explicitly
check the return value from platform_get_resource(), as this is something that
devm_ioremap_resource() takes care by itself.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: Remove duplicate code in pinctrl_pm_select_state functions
Tony Lindgren [Thu, 18 Jul 2013 15:15:04 +0000 (08:15 -0700)]
pinctrl: Remove duplicate code in pinctrl_pm_select_state functions

There's no need to duplicate essentially the same functions. Let's
introduce static int pinctrl_pm_select_state() and make the other
related functions call that.

This allows us to add support later on for multiple active states,
and more optimized dynamic remuxing.

Note that we still need to export the various pinctrl_pm_select
functions as we want to keep struct pinctrl_state private to the
pinctrl code, and cannot replace those with inline functions.

Cc: Felipe Balbi <balbi@ti.com>
Cc: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl-baytrail: fix to avoid sparse warnings
Andy Shevchenko [Wed, 10 Jul 2013 11:55:40 +0000 (14:55 +0300)]
pinctrl-baytrail: fix to avoid sparse warnings

There are couple of sparse warnings we could avoid if we use a bit verbose
version of the code in byt_gpio_direction_output().

drivers/pinctrl/pinctrl-baytrail.c:266:45: warning: dubious: x | !y
drivers/pinctrl/pinctrl-baytrail.c:267:36: warning: dubious: x | !y

Additionally simplify a bit the code in byt_gpio_direction_input().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl-baytrail: introduce to_byt_gpio() macro
Andy Shevchenko [Wed, 10 Jul 2013 11:55:39 +0000 (14:55 +0300)]
pinctrl-baytrail: introduce to_byt_gpio() macro

The introduced macro helps to convert struct gpio_chip to struct byt_gpio.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl-baytrail: remove redundant ptr variable
Andy Shevchenko [Wed, 10 Jul 2013 11:55:38 +0000 (14:55 +0300)]
pinctrl-baytrail: remove redundant ptr variable

There is no need to have an additional variable in byt_gpio_reg().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl-baytrail: change lvl to level
Andy Shevchenko [Wed, 10 Jul 2013 13:42:14 +0000 (16:42 +0300)]
pinctrl-baytrail: change lvl to level

Additionally remove trailing whitespace when print triggering type.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl-baytrail: fix indentations
Andy Shevchenko [Wed, 10 Jul 2013 11:55:36 +0000 (14:55 +0300)]
pinctrl-baytrail: fix indentations

There are two minor issues with indentation in the code. This patch fixes them.
No functional changes.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: sirf: add freeze and restore entries for hibernation support
Barry Song [Thu, 4 Jul 2013 07:59:53 +0000 (15:59 +0800)]
pinctrl: sirf: add freeze and restore entries for hibernation support

this patch adds hibernation entries so that the sirf platform can
support suspend-to-disk.

Signed-off-by: Barry Song <Baohua.Song@csr.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: sirf: fix the checkpatch issue about indentation
Rongjun Ying [Thu, 4 Jul 2013 07:55:28 +0000 (15:55 +0800)]
pinctrl: sirf: fix the checkpatch issue about indentation

Signed-off-by: Rongjun Ying <Rongjun.Ying@csr.com>
Signed-off-by: Barry Song <Baohua.Song@csr.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: elaborate a bit on arrangements in doc
Linus Walleij [Tue, 25 Jun 2013 14:17:15 +0000 (16:17 +0200)]
pinctrl: elaborate a bit on arrangements in doc

This elaborates a bit on the pin control and pin muxing
logic vs GPIO arangements in the hardware.

Inspired by some drawings in a mail from Christian Ruppert.
Both arrangements are confirmed to exist in practice.

Cc: Rob Landley <rob@landley.net>
Reviewed-by: Christian Ruppert <christian.ruppert@abilis.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agoLinux 3.11-rc1
Linus Torvalds [Sun, 14 Jul 2013 22:18:27 +0000 (15:18 -0700)]
Linux 3.11-rc1

11 years agoMerge branch 'slab/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penber...
Linus Torvalds [Sun, 14 Jul 2013 22:14:29 +0000 (15:14 -0700)]
Merge branch 'slab/for-linus' of git://git./linux/kernel/git/penberg/linux

Pull slab update from Pekka Enberg:
 "Highlights:

  - Fix for boot-time problems on some architectures due to
    init_lock_keys() not respecting kmalloc_caches boundaries
    (Christoph Lameter)

  - CONFIG_SLUB_CPU_PARTIAL requested by RT folks (Joonsoo Kim)

  - Fix for excessive slab freelist draining (Wanpeng Li)

  - SLUB and SLOB cleanups and fixes (various people)"

I ended up editing the branch, and this avoids two commits at the end
that were immediately reverted, and I instead just applied the oneliner
fix in between myself.

* 'slab/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux
  slub: Check for page NULL before doing the node_match check
  mm/slab: Give s_next and s_stop slab-specific names
  slob: Check for NULL pointer before calling ctor()
  slub: Make cpu partial slab support configurable
  slab: add kmalloc() to kernel API documentation
  slab: fix init_lock_keys
  slob: use DIV_ROUND_UP where possible
  slub: do not put a slab to cpu partial list when cpu_partial is 0
  mm/slub: Use node_nr_slabs and node_nr_objs in get_slabinfo
  mm/slub: Drop unnecessary nr_partials
  mm/slab: Fix /proc/slabinfo unwriteable for slab
  mm/slab: Sharing s_next and s_stop between slab and slub
  mm/slab: Fix drain freelist excessively
  slob: Rework #ifdeffery in slab.h
  mm, slab: moved kmem_cache_alloc_node comment to correct place

11 years agoslub: Check for page NULL before doing the node_match check
Steven Rostedt [Thu, 17 Jan 2013 18:10:58 +0000 (13:10 -0500)]
slub: Check for page NULL before doing the node_match check

In the -rt kernel (mrg), we hit the following dump:

BUG: unable to handle kernel NULL pointer dereference at           (null)
IP: [<ffffffff811573f1>] kmem_cache_alloc_node+0x51/0x180
PGD a2d39067 PUD b1641067 PMD 0
Oops: 0000 [#1] PREEMPT SMP
Modules linked in: sunrpc cpufreq_ondemand ipv6 tg3 joydev sg serio_raw pcspkr k8temp amd64_edac_mod edac_core i2c_piix4 e100 mii shpchp ext4 mbcache jbd2 sd_mod crc_t10dif sr_mod cdrom sata_svw ata_generic pata_acpi pata_serverworks radeon ttm drm_kms_helper drm hwmon i2c_algo_bit i2c_core dm_mirror dm_region_hash dm_log dm_mod
CPU 3
Pid: 20878, comm: hackbench Not tainted 3.6.11-rt25.14.el6rt.x86_64 #1 empty empty/Tyan Transport GT24-B3992
RIP: 0010:[<ffffffff811573f1>]  [<ffffffff811573f1>] kmem_cache_alloc_node+0x51/0x180
RSP: 0018:ffff8800a9b17d70  EFLAGS: 00010213
RAX: 0000000000000000 RBX: 0000000001200011 RCX: ffff8800a06d8000
RDX: 0000000004d92a03 RSI: 00000000000000d0 RDI: ffff88013b805500
RBP: ffff8800a9b17dc0 R08: ffff88023fd14d10 R09: ffffffff81041cbd
R10: 00007f4e3f06e9d0 R11: 0000000000000246 R12: ffff88013b805500
R13: ffff8801ff46af40 R14: 0000000000000001 R15: 0000000000000000
FS:  00007f4e3f06e700(0000) GS:ffff88023fd00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000000000 CR3: 00000000a2d3a000 CR4: 00000000000007e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process hackbench (pid: 20878, threadinfo ffff8800a9b16000, task ffff8800a06d8000)
Stack:
 ffff8800a9b17da0 ffffffff81202e08 ffff8800a9b17de0 000000d001200011
 0000000001200011 0000000001200011 0000000000000000 0000000000000000
 00007f4e3f06e9d0 0000000000000000 ffff8800a9b17e60 ffffffff81041cbd
Call Trace:
 [<ffffffff81202e08>] ? current_has_perm+0x68/0x80
 [<ffffffff81041cbd>] copy_process+0xdd/0x15b0
 [<ffffffff810a2125>] ? rt_up_read+0x25/0x30
 [<ffffffff8104369a>] do_fork+0x5a/0x360
 [<ffffffff8107c66b>] ? migrate_enable+0xeb/0x220
 [<ffffffff8100b068>] sys_clone+0x28/0x30
 [<ffffffff81527423>] stub_clone+0x13/0x20
 [<ffffffff81527152>] ? system_call_fastpath+0x16/0x1b
Code: 89 fc 89 75 cc 41 89 d6 4d 8b 04 24 65 4c 03 04 25 48 ae 00 00 49 8b 50 08 4d 8b 28 49 8b 40 10 4d 85 ed 74 12 41 83 fe ff 74 27 <48> 8b 00 48 c1 e8 3a 41 39 c6 74 1b 8b 75 cc 4c 89 c9 44 89 f2
RIP  [<ffffffff811573f1>] kmem_cache_alloc_node+0x51/0x180
 RSP <ffff8800a9b17d70>
CR2: 0000000000000000
---[ end trace 0000000000000002 ]---

Now, this uses SLUB pretty much unmodified, but as it is the -rt kernel
with CONFIG_PREEMPT_RT set, spinlocks are mutexes, although they do
disable migration. But the SLUB code is relatively lockless, and the
spin_locks there are raw_spin_locks (not converted to mutexes), thus I
believe this bug can happen in mainline without -rt features. The -rt
patch is just good at triggering mainline bugs ;-)

Anyway, looking at where this crashed, it seems that the page variable
can be NULL when passed to the node_match() function (which does not
check if it is NULL). When this happens we get the above panic.

As page is only used in slab_alloc() to check if the node matches, if
it's NULL I'm assuming that we can say it doesn't and call the
__slab_alloc() code. Is this a correct assumption?

Acked-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
11 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Linus Torvalds [Sun, 14 Jul 2013 18:42:26 +0000 (11:42 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/viro/vfs

Pull more vfs stuff from Al Viro:
 "O_TMPFILE ABI changes, Oleg's fput() series, misc cleanups, including
  making simple_lookup() usable for filesystems with non-NULL s_d_op,
  which allows us to get rid of quite a bit of ugliness"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  sunrpc: now we can just set ->s_d_op
  cgroup: we can use simple_lookup() now
  efivarfs: we can use simple_lookup() now
  make simple_lookup() usable for filesystems that set ->s_d_op
  configfs: don't open-code d_alloc_name()
  __rpc_lookup_create_exclusive: pass string instead of qstr
  rpc_create_*_dir: don't bother with qstr
  llist: llist_add() can use llist_add_batch()
  llist: fix/simplify llist_add() and llist_add_batch()
  fput: turn "list_head delayed_fput_list" into llist_head
  fs/file_table.c:fput(): add comment
  Safer ABI for O_TMPFILE

11 years agosunrpc: now we can just set ->s_d_op
Al Viro [Sun, 14 Jul 2013 13:55:39 +0000 (17:55 +0400)]
sunrpc: now we can just set ->s_d_op

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agocgroup: we can use simple_lookup() now
Al Viro [Sun, 14 Jul 2013 13:50:23 +0000 (17:50 +0400)]
cgroup: we can use simple_lookup() now

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoefivarfs: we can use simple_lookup() now
Al Viro [Sun, 14 Jul 2013 13:48:35 +0000 (17:48 +0400)]
efivarfs: we can use simple_lookup() now

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agomake simple_lookup() usable for filesystems that set ->s_d_op
Al Viro [Sun, 14 Jul 2013 13:43:25 +0000 (17:43 +0400)]
make simple_lookup() usable for filesystems that set ->s_d_op

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoconfigfs: don't open-code d_alloc_name()
Al Viro [Sun, 14 Jul 2013 13:16:52 +0000 (17:16 +0400)]
configfs: don't open-code d_alloc_name()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago__rpc_lookup_create_exclusive: pass string instead of qstr
Al Viro [Sun, 14 Jul 2013 13:09:57 +0000 (17:09 +0400)]
__rpc_lookup_create_exclusive: pass string instead of qstr

... and use d_hash_and_lookup() instead of open-coding it, for fsck sake...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>