]> git.openfabrics.org - ~emulex/infiniband.git/log
~emulex/infiniband.git
11 years agoARM: shmobile: ag5evm: Register pinctrl mappings for SCIF
Laurent Pinchart [Thu, 3 Jan 2013 11:54:28 +0000 (12:54 +0100)]
ARM: shmobile: ag5evm: Register pinctrl mappings for SCIF

Replace the GPIO-based SCIF pinmux configuration by pinctrl mappings.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: r8a7779: Add INTC pin groups and functions
Laurent Pinchart [Thu, 7 Mar 2013 12:38:51 +0000 (13:38 +0100)]
sh-pfc: r8a7779: Add INTC pin groups and functions

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: r8a7779: Add LBSC pin groups and functions
Laurent Pinchart [Thu, 7 Mar 2013 12:38:51 +0000 (13:38 +0100)]
sh-pfc: r8a7779: Add LBSC pin groups and functions

Only the CS pins and functions are currently handled.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: r8a7779: Add USB pin groups and functions
Laurent Pinchart [Thu, 7 Mar 2013 12:38:51 +0000 (13:38 +0100)]
sh-pfc: r8a7779: Add USB pin groups and functions

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: r8a7779: Add USB0 and USB1 PENC pinmux support
Laurent Pinchart [Thu, 7 Mar 2013 12:36:36 +0000 (13:36 +0100)]
sh-pfc: r8a7779: Add USB0 and USB1 PENC pinmux support

The USB0 and USB1 PENC functions were missing. Add them.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: r8a7779: Add HSPI pin groups and functions
Laurent Pinchart [Wed, 6 Mar 2013 18:04:43 +0000 (19:04 +0100)]
sh-pfc: r8a7779: Add HSPI pin groups and functions

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: r8a7779: Add SCIF pin groups and functions
Laurent Pinchart [Wed, 6 Mar 2013 18:04:43 +0000 (19:04 +0100)]
sh-pfc: r8a7779: Add SCIF pin groups and functions

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: r8a7779: Add SDHI and MMCIF pin groups and functions
Laurent Pinchart [Wed, 6 Mar 2013 18:04:43 +0000 (19:04 +0100)]
sh-pfc: r8a7779: Add SDHI and MMCIF pin groups and functions

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: r8a7779: Add DU pin groups and functions
Laurent Pinchart [Thu, 3 Jan 2013 12:07:05 +0000 (13:07 +0100)]
sh-pfc: r8a7779: Add DU pin groups and functions

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: r8a7740: Add SDHI and MMCIF pin groups and functions
Guennadi Liakhovetski [Wed, 23 Jan 2013 16:37:44 +0000 (17:37 +0100)]
sh-pfc: r8a7740: Add SDHI and MMCIF pin groups and functions

Add pin groups for the first two SDHI interfaces and two alternative pin
groups for the MMCIF interface on the r8a7740 SoC.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: r8a7740: Add LCDC0 and LCDC1 pin groups and functions
Laurent Pinchart [Thu, 3 Jan 2013 12:07:05 +0000 (13:07 +0100)]
sh-pfc: r8a7740: Add LCDC0 and LCDC1 pin groups and functions

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: sh73a0: Add IrDA pin groups and functions
Laurent Pinchart [Tue, 12 Mar 2013 00:55:08 +0000 (01:55 +0100)]
sh-pfc: sh73a0: Add IrDA pin groups and functions

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: sh73a0: Add USB pin groups and functions
Laurent Pinchart [Tue, 12 Mar 2013 00:55:08 +0000 (01:55 +0100)]
sh-pfc: sh73a0: Add USB pin groups and functions

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: sh73a0: Add BSC pin groups and functions
Laurent Pinchart [Tue, 12 Mar 2013 00:55:08 +0000 (01:55 +0100)]
sh-pfc: sh73a0: Add BSC pin groups and functions

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: sh73a0: Add KEYSC pin groups and functions
Laurent Pinchart [Tue, 12 Mar 2013 00:55:08 +0000 (01:55 +0100)]
sh-pfc: sh73a0: Add KEYSC pin groups and functions

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: sh73a0: Add SDHI and MMCIF pin groups and functions
Guennadi Liakhovetski [Tue, 12 Feb 2013 15:50:03 +0000 (16:50 +0100)]
sh-pfc: sh73a0: Add SDHI and MMCIF pin groups and functions

Add pin group definitions for SDHI0, SDHI1, SDHI2 and MMCIF interfaces on
sh73a0.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: sh73a0: Add FSI pin groups and functions
Laurent Pinchart [Thu, 3 Jan 2013 12:07:05 +0000 (13:07 +0100)]
sh-pfc: sh73a0: Add FSI pin groups and functions

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: sh73a0: Add I2C2 and I2C3 pin groups and functions
Laurent Pinchart [Thu, 3 Jan 2013 12:07:05 +0000 (13:07 +0100)]
sh-pfc: sh73a0: Add I2C2 and I2C3 pin groups and functions

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: sh73a0: Add SCIFA and SCIFB pin groups and functions
Laurent Pinchart [Thu, 3 Jan 2013 12:07:05 +0000 (13:07 +0100)]
sh-pfc: sh73a0: Add SCIFA and SCIFB pin groups and functions

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: sh73a0: Add LCD and LCD2 pin groups and functions
Laurent Pinchart [Thu, 3 Jan 2013 12:07:05 +0000 (13:07 +0100)]
sh-pfc: sh73a0: Add LCD and LCD2 pin groups and functions

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: sh73a0: Add bias (pull-up/down) pinconf support
Laurent Pinchart [Wed, 13 Mar 2013 00:31:23 +0000 (01:31 +0100)]
sh-pfc: sh73a0: Add bias (pull-up/down) pinconf support

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: sh7372: Add SDHCI and MMCIF pin groups and functions
Guennadi Liakhovetski [Wed, 23 Jan 2013 16:37:45 +0000 (17:37 +0100)]
sh-pfc: sh7372: Add SDHCI and MMCIF pin groups and functions

Add pin groups for all three SDHI interfaces and two alternative pin
groups for the MMCIF interface on the sh7372 SoC.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: Return an error if a pin doesn't support the requested direction
Laurent Pinchart [Wed, 13 Mar 2013 17:18:30 +0000 (18:18 +0100)]
sh-pfc: Return an error if a pin doesn't support the requested direction

When setting a pin direction verify that the requested direction is
supported, and return an error if it isn't.

This requires pin configuration information to be supplied by SoC data.
The check is a no-op if the information is not supplied.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Convert message printing from pr_* to dev_*
Laurent Pinchart [Sun, 10 Mar 2013 17:00:02 +0000 (18:00 +0100)]
sh-pfc: Convert message printing from pr_* to dev_*

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Clean up pin configuration type handling
Laurent Pinchart [Sun, 10 Mar 2013 16:25:29 +0000 (17:25 +0100)]
sh-pfc: Clean up pin configuration type handling

Set pin configuration type to

- PINMUX_TYPE_NONE at initialization time and when disabling a function
  or freeing a GPIO

- PINMUX_TYPE_FUNCTION when enabling a function

- PINMUX_TYPE_INPUT or PINMUX_TYPE_OUTPUT when setting the GPIO
  direction

Verify that the type is PINMUX_TYPE_NONE when enabling a function or
requesting a GPIO and return -EBUSY if it isn't.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Merge sh_pfc_reconfig_pin() into sh_pfc_gpio_set_direction()
Laurent Pinchart [Sun, 10 Mar 2013 15:55:19 +0000 (16:55 +0100)]
sh-pfc: Merge sh_pfc_reconfig_pin() into sh_pfc_gpio_set_direction()

The sh_pfc_reconfig_pin() is only called from a single location. Merge
it into its call site to make the code easier to follow.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Implement generic pinconf support
Laurent Pinchart [Sun, 10 Mar 2013 15:44:02 +0000 (16:44 +0100)]
sh-pfc: Implement generic pinconf support

The existing PFC pinconf implementation, tied to the PFC-specific pin
types, isn't used by drivers or boards. Replace it with the generic
pinconf types to implement bias (pull-up/down) setup. Other pin
configuration options can be implemented later if needed.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Use proper error codes
Laurent Pinchart [Sun, 10 Mar 2013 15:38:23 +0000 (16:38 +0100)]
sh-pfc: Use proper error codes

Return proper error codes instead of -1, and propagate the error codes.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Constify all SoC data
Laurent Pinchart [Sat, 16 Feb 2013 17:47:05 +0000 (18:47 +0100)]
sh-pfc: Constify all SoC data

None of the SoC data need to be modified. Constify it.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Remove configuration dry-run and free
Laurent Pinchart [Sun, 10 Mar 2013 14:29:14 +0000 (15:29 +0100)]
sh-pfc: Remove configuration dry-run and free

The purpose of the dry-run is to ensure that a pin about to be
configured isn't in use. However, the current implementation is a no-op.
This proves that the dry-run isn't essential. Remove it.

Freeing configuration then becomes a no-op as well. Remove it.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Don't modify sh_pfc_pin SoC data
Laurent Pinchart [Fri, 8 Mar 2013 16:43:54 +0000 (17:43 +0100)]
sh-pfc: Don't modify sh_pfc_pin SoC data

The sh_pfc_pin structure supplied in SoC data contains information about
pin configuration and name. It's abused to store GPIO data registers
information and pin config type. Move those fields out of the
pinmux_data_reg structure into the new sh_pfc_gpio_pin and
sh_pfc_pin_config structures.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Don't modify pinmux_data_reg SoC data
Laurent Pinchart [Sat, 16 Feb 2013 17:34:32 +0000 (18:34 +0100)]
sh-pfc: Don't modify pinmux_data_reg SoC data

The pinmux_data_reg structure supplied in SoC data contains information
about data registers. It's abused to store per-device mapped iomem and
shadow values. Move those fields out of the pinmux_data_reg structure
into the per-device sh_pfc_chip structure.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Drop unused support for 1:1 physical to virtual memory mappings
Laurent Pinchart [Sat, 16 Feb 2013 22:39:07 +0000 (23:39 +0100)]
sh-pfc: Drop unused support for 1:1 physical to virtual memory mappings

Now that all PFC platform devices provide memory resources support for
registers without an associated memory resource isn't used anymore. Drop
it.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Don't map data registers individually
Laurent Pinchart [Sat, 16 Feb 2013 23:26:33 +0000 (00:26 +0100)]
sh-pfc: Don't map data registers individually

All data registers are located in the same memory resource. Locate the
mapped resource at initializat time and use it directly instead of
computing a mapped address for each register. This gets rid of the
mapped_reg field of the pinmux_data_reg structure.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Move GPIO registers access functions to gpio.c
Laurent Pinchart [Fri, 15 Feb 2013 01:04:55 +0000 (02:04 +0100)]
sh-pfc: Move GPIO registers access functions to gpio.c

Move the sh_pfc_setup_data_regs(), sh_pfc_setup_data_reg(),
sh_pfc_get_data_reg(), sh_pfc_read_bit() and sh_pfc_write_bit()
function to gpio.c as they belong to the GPIO implementation. Inline
sh_pfc_read_bit() and sh_pfc_write_bit() in their only call location.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Fix return value check in sh_pfc_register_pinctrl()
Wei Yongjun [Mon, 11 Mar 2013 14:08:12 +0000 (22:08 +0800)]
sh-pfc: Fix return value check in sh_pfc_register_pinctrl()

In case of error, the function pinctrl_register() returns NULL not
ERR_PTR(). The IS_ERR() test in the return value check should be
replaced with NULL test.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh: shx3: Add pin control resources
Laurent Pinchart [Sat, 16 Feb 2013 18:23:58 +0000 (19:23 +0100)]
sh: shx3: Add pin control resources

Add memory resources for the pin control platform device to let the
sh-pfc driver ioremap() registers properly instead of evily casting
register physical addresses to virtual addresses.

The memory resource address range has been extracted from the config and
data registes lists in the sh-pfc driver.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh: sh7786: Add pin control resources
Laurent Pinchart [Sat, 16 Feb 2013 18:23:58 +0000 (19:23 +0100)]
sh: sh7786: Add pin control resources

Add memory resources for the pin control platform device to let the
sh-pfc driver ioremap() registers properly instead of evily casting
register physical addresses to virtual addresses.

The memory resource address range has been extracted from the config and
data registes lists in the sh-pfc driver.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh: sh7785: Add pin control resources
Laurent Pinchart [Sat, 16 Feb 2013 18:23:58 +0000 (19:23 +0100)]
sh: sh7785: Add pin control resources

Add memory resources for the pin control platform device to let the
sh-pfc driver ioremap() registers properly instead of evily casting
register physical addresses to virtual addresses.

The memory resource address range has been extracted from the config and
data registes lists in the sh-pfc driver.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh: sh7757: Add pin control resources
Laurent Pinchart [Sat, 16 Feb 2013 18:23:58 +0000 (19:23 +0100)]
sh: sh7757: Add pin control resources

Add memory resources for the pin control platform device to let the
sh-pfc driver ioremap() registers properly instead of evily casting
register physical addresses to virtual addresses.

The memory resource address range has been extracted from the config and
data registes lists in the sh-pfc driver.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh: sh7724: Add pin control resources
Laurent Pinchart [Sat, 16 Feb 2013 18:23:58 +0000 (19:23 +0100)]
sh: sh7724: Add pin control resources

Add memory resources for the pin control platform device to let the
sh-pfc driver ioremap() registers properly instead of evily casting
register physical addresses to virtual addresses.

The memory resource address range has been extracted from the config and
data registes lists in the sh-pfc driver.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh: sh7723: Add pin control resources
Laurent Pinchart [Sat, 16 Feb 2013 18:23:58 +0000 (19:23 +0100)]
sh: sh7723: Add pin control resources

Add memory resources for the pin control platform device to let the
sh-pfc driver ioremap() registers properly instead of evily casting
register physical addresses to virtual addresses.

The memory resource address range has been extracted from the config and
data registes lists in the sh-pfc driver.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh: sh7722: Add pin control resources
Laurent Pinchart [Sat, 16 Feb 2013 18:23:58 +0000 (19:23 +0100)]
sh: sh7722: Add pin control resources

Add memory resources for the pin control platform device to let the
sh-pfc driver ioremap() registers properly instead of evily casting
register physical addresses to virtual addresses.

The memory resource address range has been extracted from the config and
data registes lists in the sh-pfc driver.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh: sh7720: Add pin control resources
Laurent Pinchart [Sat, 16 Feb 2013 18:23:58 +0000 (19:23 +0100)]
sh: sh7720: Add pin control resources

Add memory resources for the pin control platform device to let the
sh-pfc driver ioremap() registers properly instead of evily casting
register physical addresses to virtual addresses.

The memory resource address range has been extracted from the config and
data registes lists in the sh-pfc driver.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh: sh7269: Add pin control resources
Laurent Pinchart [Sat, 16 Feb 2013 18:23:58 +0000 (19:23 +0100)]
sh: sh7269: Add pin control resources

Add memory resources for the pin control platform device to let the
sh-pfc driver ioremap() registers properly instead of evily casting
register physical addresses to virtual addresses.

The memory resource address range has been extracted from the config and
data registes lists in the sh-pfc driver.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh: sh7264: Add pin control resources
Laurent Pinchart [Sat, 16 Feb 2013 18:23:58 +0000 (19:23 +0100)]
sh: sh7264: Add pin control resources

Add memory resources for the pin control platform device to let the
sh-pfc driver ioremap() registers properly instead of evily casting
register physical addresses to virtual addresses.

The memory resource address range has been extracted from the config and
data registes lists in the sh-pfc driver.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh: sh7203: Add pin control resources
Laurent Pinchart [Sat, 16 Feb 2013 18:23:58 +0000 (19:23 +0100)]
sh: sh7203: Add pin control resources

Add memory resources for the pin control platform device to let the
sh-pfc driver ioremap() registers properly instead of evily casting
register physical addresses to virtual addresses.

The memory resource address range has been extracted from the config and
data registes lists in the sh-pfc driver.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11 years agosh-pfc: Expose real groups and functions in pinctrl/pinmux operations
Laurent Pinchart [Thu, 3 Jan 2013 13:33:13 +0000 (14:33 +0100)]
sh-pfc: Expose real groups and functions in pinctrl/pinmux operations

The sh-pfc driver exposes one fake group and function per GPIO pin. As
the pinctrl and pinmux APIs are not used by any SuperH and SH Mobile
board or driver, drop the fake groups and functions and replace them by
a real pinctrl and pinmux implementation.

Groups and functions must now be explicitly provided by PFC SoC-specific
data.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agoARM: shmobile: mackerel: Replace GPIO_PORTx enum with GPIO port numbers
Laurent Pinchart [Sat, 16 Feb 2013 06:38:50 +0000 (07:38 +0100)]
ARM: shmobile: mackerel: Replace GPIO_PORTx enum with GPIO port numbers

The PFC GPIO API implementation moved to using port numbers. Replace all
GPIO_PORTx enum usage with the corresponding port number. The GPIO_PORTx
enum values are identical to the port number on this platform.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agoARM: shmobile: bonito: Replace GPIO_PORTx enum with GPIO port numbers
Laurent Pinchart [Sat, 16 Feb 2013 06:38:50 +0000 (07:38 +0100)]
ARM: shmobile: bonito: Replace GPIO_PORTx enum with GPIO port numbers

The PFC GPIO API implementation moved to using port numbers. Replace all
GPIO_PORTx enum usage with the corresponding port number. The GPIO_PORTx
enum values are identical to the port number on this platform.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agoARM: shmobile: armadillo: Replace GPIO_PORTx enum with GPIO port numbers
Laurent Pinchart [Sat, 16 Feb 2013 06:38:50 +0000 (07:38 +0100)]
ARM: shmobile: armadillo: Replace GPIO_PORTx enum with GPIO port numbers

The PFC GPIO API implementation moved to using port numbers. Replace all
GPIO_PORTx enum usage with the corresponding port number. The GPIO_PORTx
enum values are identical to the port number on this platform.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agoARM: shmobile: ap4-evb: Replace GPIO_PORTx enum with GPIO port numbers
Laurent Pinchart [Sat, 16 Feb 2013 06:38:50 +0000 (07:38 +0100)]
ARM: shmobile: ap4-evb: Replace GPIO_PORTx enum with GPIO port numbers

The PFC GPIO API implementation moved to using port numbers. Replace all
GPIO_PORTx enum usage with the corresponding port number. The GPIO_PORTx
enum values are identical to the port number on this platform.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agoARM: shmobile: sh73a0: Support sparse GPIO numbers
Guennadi Liakhovetski [Tue, 12 Feb 2013 15:50:02 +0000 (16:50 +0100)]
ARM: shmobile: sh73a0: Support sparse GPIO numbers

The SH73A0 SoC has sparse GPIO numbers. Declare the pin numbers ranges
in the PFC SoC data and use the pin numbers in the GPIO API.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Add support for sparse pin numbers
Laurent Pinchart [Fri, 15 Feb 2013 00:33:38 +0000 (01:33 +0100)]
sh-pfc: Add support for sparse pin numbers

The PFC driver assumes that the value of the GPIO_PORTxxx enumeration
names are equal to the port number. This isn't true when the port number
space is sparse, as with the SH73A0.

Fix the issue by adding support for pin numbers ranges specified through
SoC data. When no range is specified the driver considers that the PFC
implements a single contiguous range for all pins.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Replace pinctrl_add_gpio_range() with gpiochip_add_pin_range()
Laurent Pinchart [Thu, 7 Mar 2013 23:45:12 +0000 (00:45 +0100)]
sh-pfc: Replace pinctrl_add_gpio_range() with gpiochip_add_pin_range()

Adding a GPIO range to a pinctrl device logically belongs to the GPIO
driver. Switch to the right API.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Add function to retrieve a pin instance from its pin number
Laurent Pinchart [Thu, 14 Feb 2013 21:35:09 +0000 (22:35 +0100)]
sh-pfc: Add function to retrieve a pin instance from its pin number

This prepares support for sparse pin numbering. The function currently
just performs and indexed lookup in the pins array.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Simplify the sh_pfc_gpio_is_pin() logic
Laurent Pinchart [Thu, 14 Feb 2013 21:12:11 +0000 (22:12 +0100)]
sh-pfc: Simplify the sh_pfc_gpio_is_pin() logic

The function is guaranteed to be called with a gpio number smaller than
nr_pins. The condition can the be simplified, and the function inlined.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Use pinmux identifiers in the pin muxing API
Laurent Pinchart [Thu, 14 Feb 2013 16:36:56 +0000 (17:36 +0100)]
sh-pfc: Use pinmux identifiers in the pin muxing API

The PFC core exposes a sh_pfc_config_gpio() function that configures
pinmuxing for a given GPIO (either a real GPIO or a function GPIO).
Handling of real and function GPIOs belong to the GPIO layer, move the
GPIO number to mark translation to the caller and rename the function to
sh_pfc_config_mux().

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Share the PORT_10_REV, PORT_32 and PORT_32_REV definitions
Laurent Pinchart [Wed, 13 Feb 2013 21:09:27 +0000 (22:09 +0100)]
sh-pfc: Share the PORT_10_REV, PORT_32 and PORT_32_REV definitions

The macros are defined identically and used in two SoC-specific files,
share them.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Look up IRQ table entries by GPIO number
Laurent Pinchart [Thu, 3 Jan 2013 13:12:14 +0000 (14:12 +0100)]
sh-pfc: Look up IRQ table entries by GPIO number

Instead of converting the GPIO number to an enum_id and looking up IRQ
table entries by enum_id, replace the pinmux_irq enum_ids field with a
gpios field and lookup entries using the GPIO number.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Rename struct pinmux_pin to struct sh_pfc_pin
Laurent Pinchart [Wed, 2 Jan 2013 13:53:37 +0000 (14:53 +0100)]
sh-pfc: Rename struct pinmux_pin to struct sh_pfc_pin

And drop the pinmux_flag_t typedef.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Split pins and functions into separate gpio_chip instances
Laurent Pinchart [Thu, 6 Dec 2012 13:49:25 +0000 (14:49 +0100)]
sh-pfc: Split pins and functions into separate gpio_chip instances

Register two GPIO chips, one for the real GPIOs and one for the function
GPIOs.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Split pins and functions definition tables
Laurent Pinchart [Thu, 29 Nov 2012 12:24:07 +0000 (13:24 +0100)]
sh-pfc: Split pins and functions definition tables

Split the GPIOs table into a pins table for real GPIOs and a functions
table for function GPIOs.

Only register pins with the pinctrl core. The function GPIOs remain
accessible as GPIOs.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Don't needlessly check GPIO type in sh_gpio_free()
Laurent Pinchart [Thu, 29 Nov 2012 17:00:32 +0000 (18:00 +0100)]
sh-pfc: Don't needlessly check GPIO type in sh_gpio_free()

The GPIO type is always PINMUX_TYPE_FUNCTION when freeing a function
GPIO. Hardcode the type value.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Shrink the pinctrl GPIO range to include real GPIOs only
Laurent Pinchart [Thu, 29 Nov 2012 12:03:53 +0000 (13:03 +0100)]
sh-pfc: Shrink the pinctrl GPIO range to include real GPIOs only

As a step towards GPIO function removal, shorten the GPIO range
registered with the pinctrl core. Function GPIOs are now handled in the
GPIO handlers directly instead of going through the pinctrl API.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Make struct pinmux_gpio enum_id field const
Laurent Pinchart [Wed, 28 Nov 2012 18:22:18 +0000 (19:22 +0100)]
sh-pfc: Make struct pinmux_gpio enum_id field const

This ensures that the field is not modified, which is a prerequisite for
the rest of the PFC refactoring work.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Initialize pinmux_gpio flags statically
Laurent Pinchart [Thu, 29 Nov 2012 01:23:26 +0000 (02:23 +0100)]
sh-pfc: Initialize pinmux_gpio flags statically

All function GPIO entries are initialized with the GPIO_FN macro that
expands to the PINMUX_GPIO macro, used to initialize real GPIOs. Create
a PINMUX_GPIO_FN macro that duplicates PINMUX_GPIO and sets flags to
PINMUX_TYPE_FUNCTION and use it in GPIO_FN, and make PINMUX_GPIO set
flags to PINMUX_TYPE_GPIO.

This removes the need to initialize GPIO flags at runtime and thus
simplifies the code, preparing for the GPIO and functions split.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Remove unused sh_pfc_soc_info reserved_id field
Laurent Pinchart [Thu, 29 Nov 2012 15:18:24 +0000 (16:18 +0100)]
sh-pfc: Remove unused sh_pfc_soc_info reserved_id field

The field is unused, remove it.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Replace SoC info data and mark ranges with a number of pins
Laurent Pinchart [Thu, 29 Nov 2012 11:24:51 +0000 (12:24 +0100)]
sh-pfc: Replace SoC info data and mark ranges with a number of pins

The data and mark ranges are only used to check whether a GPIO
corresponds to a real pin or a function. As pins come first in the list
of GPIOs and in the platform-specific GPIO enumerations, we can replace
the data and mark ranges by a number of pins.

Add an nr_pins field to struct sh_pfc_soc_info to store the number of
pins implemented by the SoC, remove the data and mark range fields and
introduce sh_pfc_gpio_is_pin() and sh_pfc_gpio_is_function() functions
to replace range-based checks.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Replace first_gpio and last_gpio with nr_gpios
Laurent Pinchart [Wed, 28 Nov 2012 16:51:00 +0000 (17:51 +0100)]
sh-pfc: Replace first_gpio and last_gpio with nr_gpios

The SoC information first_gpio field is always equal to 0, and the
last_gpio field is the index of the last entry in the pinmux_gpios
array. Replace the first_gpio and last_gpio fields by a nr_gpios field,
and initialize it to ARRAY_SIZE(pinmux_gpios).

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Use GPIO_FN instead of PINMUX_GPIO where possible
Laurent Pinchart [Wed, 28 Nov 2012 21:05:49 +0000 (22:05 +0100)]
sh-pfc: Use GPIO_FN instead of PINMUX_GPIO where possible

The GPIO_FN macro expands to the PINMUX_GPIO macro. The regular
expression to 'unexpand' PINMUX_GPIO to GPIO_FN is

s/\tPINMUX_GPIO(GPIO_FN_\([A-Z0-9_]*\),[ \t]*\1_MARK)/\tGPIO_FN(\1)/

This consolidates SoC-specific PFC information to use the same macros
for all SoCs.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Don't take the sh_pfc spinlock in sh_pfc_map_gpios()
Laurent Pinchart [Wed, 28 Nov 2012 19:56:48 +0000 (20:56 +0100)]
sh-pfc: Don't take the sh_pfc spinlock in sh_pfc_map_gpios()

The sh_pfc_map_gpios() function is only called at initialization time
when no other task can access the sh_pfc fields. Don't protect the
operation with a spinlock.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Drop the sh_pfc_pinctrl spinlock
Laurent Pinchart [Wed, 28 Nov 2012 19:52:53 +0000 (20:52 +0100)]
sh-pfc: Drop the sh_pfc_pinctrl spinlock

The spinlock is used to protect data that is only accessed sequentially
during initialization. Remove it.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Fix a typo and simplify a definition on sh73a0
Guennadi Liakhovetski [Tue, 12 Feb 2013 15:34:31 +0000 (16:34 +0100)]
sh-pfc: Fix a typo and simplify a definition on sh73a0

Fix definition of the SDHIWP0 function and simplify the CPU_ALL_PORT
definition on sh73a0.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Don't define the per-device pinctrl struct instances as global
Laurent Pinchart [Sat, 16 Feb 2013 15:38:30 +0000 (16:38 +0100)]
sh-pfc: Don't define the per-device pinctrl struct instances as global

The pinctrl_desc and pinctrl_gpio_range structures registered with the
pinctrl core are per-device instances. Move them to the dynamically
allocated sh_pfc_pinctrl structure and initialize them at runtime.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agosh-pfc: Declare operation structures as const
Laurent Pinchart [Fri, 15 Feb 2013 15:04:47 +0000 (16:04 +0100)]
sh-pfc: Declare operation structures as const

The pinconf, pinctrl and pinmux operation structures hold function
pointers that are never modified. Declare them as const.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
11 years agoMerge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux...
Simon Horman [Fri, 15 Mar 2013 06:16:28 +0000 (07:16 +0100)]
Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl into pinmux-base

11 years agopinctrl: generic: Fix compilation error
Sachin Kamat [Wed, 13 Mar 2013 11:43:46 +0000 (17:13 +0530)]
pinctrl: generic: Fix compilation error

The function definition of pinconf_generic_dump_config is defined
under CONFIG_DEBUG_FS macro. Define the declaration too under this macro.

Without this patch we get the following build error:
drivers/built-in.o: In function `pcs_pinconf_config_dbg_show':
drivers/pinctrl/pinctrl-single.c:726: undefined reference to
`pinconf_generic_dump_config'

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: Print the correct information in debugfs pinconf-state file
Laurent Pinchart [Wed, 13 Mar 2013 02:18:18 +0000 (03:18 +0100)]
pinctrl: Print the correct information in debugfs pinconf-state file

A bad copy&paste resulted in the debugfs pinconf-state file printing the
pin name instead of the state name. Fix it.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: abx500: Fix checking if pin use AlternateFunction register
Axel Lin [Tue, 5 Mar 2013 06:58:53 +0000 (14:58 +0800)]
pinctrl: abx500: Fix checking if pin use AlternateFunction register

It's pointless to check "af.alt_bit1 == UNUSED" twice.
This looks like a copy-paste bug, I think what we want is to check if *both*
af.alt_bit1 and af.alt_bit2 are UNUSED.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Patrice Chotard <patrice.chotard@st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agoMerge branch 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux...
Simon Horman [Wed, 13 Mar 2013 13:45:39 +0000 (22:45 +0900)]
Merge branch 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl into pinmux

11 years agoARM: shmobile: marzen: Include mmc/host.h
Simon Horman [Wed, 13 Feb 2013 09:45:50 +0000 (09:45 +0000)]
ARM: shmobile: marzen: Include mmc/host.h

mmc/host.h provides MMC_CAP_SD_HIGHSPEED which is used in board-marzen.c

This resolves a build problem observed when compiling with
"mmc: tmio: remove unused and deprecated symbols" applied.

Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
11 years agopinctrl: sunxi: Add Allwinner A13 pin functions
Maxime Ripard [Wed, 6 Mar 2013 15:12:45 +0000 (16:12 +0100)]
pinctrl: sunxi: Add Allwinner A13 pin functions

The initial driver contained only a limited set of pins functions
because we lacked of documentation on it.

Now that we have such documentation, finish to fill the array.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: sunxi: Add Allwinner A10 pin functions
Maxime Ripard [Wed, 6 Mar 2013 15:12:44 +0000 (16:12 +0100)]
pinctrl: sunxi: Add Allwinner A10 pin functions

The initial driver contained only a limited set of pins functions
because we lacked of documentation on it.

Now that we have such documentation, finish to fill the array.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: single: Fix build error
Axel Lin [Mon, 4 Mar 2013 05:47:39 +0000 (13:47 +0800)]
pinctrl: single: Fix build error

If pcs->is_pinconf is false, it means does not support pinconf.
If pcs->is_pinconf is true, is_generic flag is always true.

This patch fixes below build error:

  CC [M]  drivers/pinctrl/pinctrl-single.o
drivers/pinctrl/pinctrl-single.c: In function 'pcs_probe':
drivers/pinctrl/pinctrl-single.c:1441:3: error: assignment of member 'is_generic' in read-only object
make[2]: *** [drivers/pinctrl/pinctrl-single.o] Error 1
make[1]: *** [drivers/pinctrl] Error 2
make: *** [drivers] Error 2

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Reviewed-by: Haojian Zhuang <haojian.zhuang@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agodocument: devicetree: bind pinconf with pin single
Haojian Zhuang [Sun, 17 Feb 2013 11:42:56 +0000 (19:42 +0800)]
document: devicetree: bind pinconf with pin single

Add comments with pinconf & gpio range in the document of
pinctrl-single.

Signed-off-by: Haojian Zhuang <haojian.zhuang@gmail.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: single: support generic pinconf
Haojian Zhuang [Sun, 17 Feb 2013 11:42:55 +0000 (19:42 +0800)]
pinctrl: single: support generic pinconf

Support the operation of generic pinconf. The supported config arguments
are INPUT_SCHMITT, INPUT_SCHMITT_ENABLE, DRIVE_STRENGHT, BIAS_DISABLE,
BIAS_PULLUP, BIAS_PULLDOWN, SLEW_RATE.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: single: set function mask as optional
Haojian Zhuang [Sun, 17 Feb 2013 11:42:54 +0000 (19:42 +0800)]
pinctrl: single: set function mask as optional

Since Hisilicon's pin controller is divided into two parts. One is the
function mux, and the other is pin configuration. These two parts are
in the different memory regions. So make pinctrl-single,function-mask
as optional property. Then we can define pingroups without valid
function mux that is only used for pin configuration.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: generic: dump pin configuration
Haojian Zhuang [Sun, 17 Feb 2013 11:42:53 +0000 (19:42 +0800)]
pinctrl: generic: dump pin configuration

Add the support of dumping pin configuration.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: single: create new gpio function range
Haojian Zhuang [Sun, 17 Feb 2013 11:42:52 +0000 (19:42 +0800)]
pinctrl: single: create new gpio function range

Since gpio driver could create gpio range in DTS, it could invoke
pinctrl_request_gpio(). In the pinctrl-single driver, it needs to
configure pins with gpio function mode.

A new gpio function range should be created in DTS file in below.

pinctrl-single,gpio-range = <phandle pin_offset nr_pins gpio_func>;

range: gpio-range {
#pinctrl-single,gpio-range-cells = <3>;
};

The gpio-ranges property is used in gpio driver and the
pinctrl-single,gpio-range property is used in pinctrl-single driver.

1. gpio-ranges is used for gpio driver in below.
   gpio-ranges = <phandle gpio_offset_in_chip pin_offset nr_pins>
gpio-ranges = < &pmx0 0 89 1 &pmx0 1 89 1 &pmx0 2 90 1
&pmx0 3 90 1 &pmx0 4 91 1 &pmx0 5 92 1>;

2. gpio driver could get pin offset from gpio-ranges property.
   pinctrl-single driver could get gpio function mode from gpio_func
   that is stored in @gpiofuncs list in struct pcs_device.
   This new pinctrl-single,gpio-range is used as complement for
   gpio-ranges property in gpio driver.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agogpio: pl061: bind pinctrl by gpio request
Haojian Zhuang [Sun, 17 Feb 2013 11:42:51 +0000 (19:42 +0800)]
gpio: pl061: bind pinctrl by gpio request

Add the pl061_gpio_request() to request pinctrl. Create the logic
between pl061 gpio driver and pinctrl (pinctrl-single) driver.

While a gpio pin is requested, it will request pinctrl driver to
set that pin with gpio function mode. So pinctrl driver should
append .gpio_request_enable() in pinmux_ops.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: check pinctrl ready for gpio range
Haojian Zhuang [Sun, 17 Feb 2013 11:42:50 +0000 (19:42 +0800)]
pinctrl: check pinctrl ready for gpio range

pinctrl_get_device_gpio_range() only checks whether a certain GPIO pin
is in gpio range. But maybe some GPIO pins don't have back-end pinctrl
interface, it means that these pins are always configured as GPIO
function. For example, gpio159 isn't related to back-end pinctrl device
in Hi3620 while other GPIO pins are related to back-end pinctrl device.

Append pinctrl_ready_for_gpio_range() that is used to check whether
pinctrl device with GPIO range is ready. This function will be called
after pinctrl_get_device_gpio_range() fails.

If pinctrl device with GPIO range is found, it means that pinctrl device
is already launched and a certain GPIO pin just don't have back-end pinctrl
interface. Then pinctrl_request_gpio() shouldn't return -EPROBE_DEFER in
this case.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agogpio: pl061: support irqdomain
Haojian Zhuang [Sun, 17 Feb 2013 11:42:49 +0000 (19:42 +0800)]
gpio: pl061: support irqdomain

Drop the support of irq generic chip. Now support irqdomain instead.

Although set_wake() is defined in irq generic chip & it is not really
used in pl061 gpio driver. Drop it at the same time.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agogpio: add gpio offset in gpio range cells property
Haojian Zhuang [Sun, 17 Feb 2013 11:42:47 +0000 (19:42 +0800)]
gpio: add gpio offset in gpio range cells property

Add gpio offset into "gpio-range-cells" property. It's used to support
sparse pinctrl range in gpio chip.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: abx500: Add terminating entry for of_device_id table
Axel Lin [Sun, 17 Feb 2013 13:58:47 +0000 (21:58 +0800)]
pinctrl: abx500: Add terminating entry for of_device_id table

The of_device_id table is supposed to be zero-terminated.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: Declare operation structures as const
Laurent Pinchart [Sat, 16 Feb 2013 09:25:07 +0000 (10:25 +0100)]
pinctrl: Declare operation structures as const

The pinconf, pinctrl and pinmux operation structures hold function
pointers that are never modified. Declare them as const.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agopinctrl: core: use devres_release() instead of devres_destroy()
Jingoo Han [Tue, 26 Feb 2013 02:34:07 +0000 (11:34 +0900)]
pinctrl: core: use devres_release() instead of devres_destroy()

devres_release() can simplify the code, because devres_release()
will call the destructor for the resource as well as freeing
the devres data.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agogpio: fix wrong checking condition for gpio range
Haojian Zhuang [Sun, 17 Feb 2013 11:42:48 +0000 (19:42 +0800)]
gpio: fix wrong checking condition for gpio range

If index++ calculates from 0, the checking condition of "while
(index++)" fails & it doesn't check any more. It doesn't follow
the loop that used at here.

Replace it by endless loop at here. Then it keeps parsing
"gpio-ranges" property until it ends.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agoLinux 3.9-rc1 v3.9-rc1
Linus Torvalds [Sun, 3 Mar 2013 23:11:05 +0000 (15:11 -0800)]
Linux 3.9-rc1

11 years agoMerge tag 'disintegrate-fbdev-20121220' of git://git.infradead.org/users/dhowells...
Linus Torvalds [Sun, 3 Mar 2013 22:24:59 +0000 (14:24 -0800)]
Merge tag 'disintegrate-fbdev-20121220' of git://git.infradead.org/users/dhowells/linux-headers

Pull fbdev UAPI disintegration from David Howells:
 "You'll be glad to here that the end is nigh for the UAPI patches.
  Only the fbdev/framebuffer piece remains now that the SCSI stuff has
  gone in.

  Here are the UAPI disintegration bits for the fbdev drivers.  It
  appears that Florian hasn't had time to deal with my patch, but back
  in December he did say he didn't mind if I pushed it forward."

Yay.  No more uapi movement.  And hopefully no more big header file
cleanups coming up either, it just tends to be very painful.

* tag 'disintegrate-fbdev-20121220' of git://git.infradead.org/users/dhowells/linux-headers:
  UAPI: (Scripted) Disintegrate include/video