* [PATCH v3 00/29] SH pinctrl and pinmux implementation
@ 2013-03-06 12:52 Laurent Pinchart
2013-03-07 8:41 ` Linus Walleij
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Laurent Pinchart @ 2013-03-06 12:52 UTC (permalink / raw)
To: linux-sh
Hello,
Here's the third version of the SuperH and SH Mobile pin controllers (PFC)
pinctrl and pinmux support patches. The patches have been rebased on top of
v3.9-rc1 and are available from my git tree at
git://linuxtv.org/pinchartl/fbdev.git pinmux/3.9/pinctrl
As previously, the series start with miscellaneous cleanup and rework patches
that slowly get the code in shape. Patches 15/29 and 16/29 then rework the GPIO
code to split real GPIOs and function GPIOS in two gpio_chip instances. Patches
17/29 to 22/29 are more miscellaneous cleanups to prepare for patch 23/29 that
adds support for sparse GPIO numbering (this was the major issue with v2).
Patch 29/29 implements real pinctrl and pinmux support.
Patch 01/29 is a pinctrl core improvement that should go separately through
the pinctrl tree. Linus, would you like to pick it up now ?
This pinctrl and pinmux implementation simply replaces the existing one. This
should be safe as I've verified that the pinctrl and pinmux APIs are not used
by any SuperH or SH Mobile board code or driver.
Changes since v2:
- Rebased on v3.9-rc1
- Constify fields in the pinctrl core
- Support sparse GPIO numbers
- Drop LCD(C) pin groups and functions (moved to another patch set)
Changes since v1:
- Port the bonito board to the pinmux API
- Set the pins gpio_chip dev field correctly
Guennadi Liakhovetski (2):
sh-pfc: Fix a typo and simplify a definition on sh73a0
ARM: shmobile: sh73a0: Support sparse GPIO numbers
Laurent Pinchart (27):
pinctrl: Declare operation structures as const
sh-pfc: Declare operation structures as const
sh-pfc: Don't define the per-device pinctrl struct instances as global
sh-pfc: Drop the sh_pfc_pinctrl spinlock
sh-pfc: Don't take the sh_pfc spinlock in sh_pfc_map_gpios()
sh-pfc: Use GPIO_FN instead of PINMUX_GPIO where possible
sh-pfc: Replace first_gpio and last_gpio with nr_gpios
sh-pfc: Replace SoC info data and mark ranges with a number of pins
sh-pfc: Remove unused sh_pfc_soc_info reserved_id field
sh-pfc: Initialize pinmux_gpio flags statically
sh-pfc: Make struct pinmux_gpio enum_id field const
sh-pfc: Shrink the pinctrl GPIO range to include real GPIOs only
sh-pfc: Don't needlessly check GPIO type in sh_gpio_free()
sh-pfc: Split pins and functions definition tables
sh-pfc: Split pins and functions into separate gpio_chip instances
sh-pfc: Rename struct pinmux_pin to struct sh_pfc_pin
sh-pfc: Look up IRQ table entries by GPIO number
sh-pfc: Share the PORT_10_REV, PORT_32 and PORT_32_REV definitions
sh-pfc: Use pinmux identifiers in the pin muxing API
sh-pfc: Simplify the sh_pfc_gpio_is_pin() logic
sh-pfc: Add function to retrieve a pin instance from its pin number
sh-pfc: Add support for sparse pin numbers
ARM: shmobile: ap4-evb: Replace GPIO_PORTx enum with GPIO port numbers
ARM: shmobile: armadillo: Replace GPIO_PORTx enum with GPIO port
numbers
ARM: shmobile: bonito: Replace GPIO_PORTx enum with GPIO port numbers
ARM: shmobile: mackerel: Replace GPIO_PORTx enum with GPIO port
numbers
sh-pfc: Expose real groups and functions in pinctrl/pinmux operations
arch/arm/mach-shmobile/board-ag5evm.c | 26 +-
arch/arm/mach-shmobile/board-ap4evb.c | 36 +-
arch/arm/mach-shmobile/board-armadillo800eva.c | 58 +--
arch/arm/mach-shmobile/board-bonito.c | 6 +-
arch/arm/mach-shmobile/board-kota2.c | 42 +-
arch/arm/mach-shmobile/board-kzm9g.c | 14 +-
arch/arm/mach-shmobile/board-mackerel.c | 34 +-
arch/arm/mach-shmobile/include/mach/sh73a0.h | 2 +-
drivers/pinctrl/devicetree.c | 4 +-
drivers/pinctrl/mvebu/pinctrl-mvebu.c | 6 +-
drivers/pinctrl/pinconf.c | 2 +-
drivers/pinctrl/pinctrl-at91.c | 6 +-
drivers/pinctrl/pinctrl-bcm2835.c | 6 +-
drivers/pinctrl/pinctrl-exynos5440.c | 6 +-
drivers/pinctrl/pinctrl-falcon.c | 2 +-
drivers/pinctrl/pinctrl-imx.c | 6 +-
drivers/pinctrl/pinctrl-lantiq.c | 4 +-
drivers/pinctrl/pinctrl-mxs.c | 6 +-
drivers/pinctrl/pinctrl-nomadik.c | 6 +-
drivers/pinctrl/pinctrl-pxa3xx.c | 4 +-
drivers/pinctrl/pinctrl-samsung.c | 6 +-
drivers/pinctrl/pinctrl-single.c | 6 +-
drivers/pinctrl/pinctrl-sirf.c | 4 +-
drivers/pinctrl/pinctrl-tegra.c | 6 +-
drivers/pinctrl/pinctrl-u300.c | 6 +-
drivers/pinctrl/pinctrl-xway.c | 2 +-
drivers/pinctrl/sh-pfc/core.c | 71 +--
drivers/pinctrl/sh-pfc/core.h | 15 +-
drivers/pinctrl/sh-pfc/gpio.c | 210 +++++---
drivers/pinctrl/sh-pfc/pfc-r8a7740.c | 84 ++--
drivers/pinctrl/sh-pfc/pfc-r8a7779.c | 51 +-
drivers/pinctrl/sh-pfc/pfc-sh7203.c | 480 +++++++++----------
drivers/pinctrl/sh-pfc/pfc-sh7264.c | 452 +++++++++---------
drivers/pinctrl/sh-pfc/pfc-sh7269.c | 616 ++++++++++++------------
drivers/pinctrl/sh-pfc/pfc-sh7372.c | 82 ++--
drivers/pinctrl/sh-pfc/pfc-sh73a0.c | 97 ++--
drivers/pinctrl/sh-pfc/pfc-sh7720.c | 325 ++++++-------
drivers/pinctrl/sh-pfc/pfc-sh7722.c | 472 +++++++++---------
drivers/pinctrl/sh-pfc/pfc-sh7723.c | 634 +++++++++++++------------
drivers/pinctrl/sh-pfc/pfc-sh7724.c | 630 ++++++++++++------------
drivers/pinctrl/sh-pfc/pfc-sh7734.c | 47 +-
drivers/pinctrl/sh-pfc/pfc-sh7757.c | 612 ++++++++++++------------
drivers/pinctrl/sh-pfc/pfc-sh7785.c | 346 +++++++-------
drivers/pinctrl/sh-pfc/pfc-sh7786.c | 288 +++++------
drivers/pinctrl/sh-pfc/pfc-shx3.c | 140 +++---
drivers/pinctrl/sh-pfc/pinctrl.c | 289 +++++------
drivers/pinctrl/sh-pfc/sh_pfc.h | 94 +++-
drivers/pinctrl/spear/pinctrl-spear.c | 4 +-
include/linux/pinctrl/pinctrl.h | 6 +-
49 files changed, 3229 insertions(+), 3122 deletions(-)
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v3 00/29] SH pinctrl and pinmux implementation
2013-03-06 12:52 [PATCH v3 00/29] SH pinctrl and pinmux implementation Laurent Pinchart
@ 2013-03-07 8:41 ` Linus Walleij
2013-03-07 23:39 ` Laurent Pinchart
2013-03-08 2:07 ` Linus Walleij
2 siblings, 0 replies; 4+ messages in thread
From: Linus Walleij @ 2013-03-07 8:41 UTC (permalink / raw)
To: linux-sh
On Wed, Mar 6, 2013 at 1:52 PM, Laurent Pinchart
<laurent.pinchart+renesas@ideasonboard.com> wrote:
> Here's the third version of the SuperH and SH Mobile pin controllers (PFC)
> pinctrl and pinmux support patches. The patches have been rebased on top of
> v3.9-rc1
The series:
Acked-by: Linus Walleij <linus.walleij@linaro.org>
For the stuff I've not already ACKed.
Basically I see two annoying things in this driver set that would be
nice to have
fixed:
- Alter the pinctrl.c file to register the GPIO range from the gpiochip
side of things, essentially taking out pinctrl_add_gpio_range() and
use gpiochip_add_pin_range() from the gpio.c code instead.
- Change gpio.c to get rid of the complex code in sh_gpio_to_irq()
by using irqdomain. It'll need a custom mapping function but that makes
it simpler overall. Change all mappings between Linux and hardware
irq numbers to use the irqdomain.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v3 00/29] SH pinctrl and pinmux implementation
2013-03-06 12:52 [PATCH v3 00/29] SH pinctrl and pinmux implementation Laurent Pinchart
2013-03-07 8:41 ` Linus Walleij
@ 2013-03-07 23:39 ` Laurent Pinchart
2013-03-08 2:07 ` Linus Walleij
2 siblings, 0 replies; 4+ messages in thread
From: Laurent Pinchart @ 2013-03-07 23:39 UTC (permalink / raw)
To: linux-sh
Hi Linus,
On Thursday 07 March 2013 09:41:27 Linus Walleij wrote:
> On Wed, Mar 6, 2013 at 1:52 PM, Laurent Pinchart,
> > Here's the third version of the SuperH and SH Mobile pin controllers (PFC)
> > pinctrl and pinmux support patches. The patches have been rebased on top
> > of v3.9-rc1
>
> The series:
> Acked-by: Linus Walleij <linus.walleij@linaro.org>
>
> For the stuff I've not already ACKed.
Thank you.
> Basically I see two annoying things in this driver set that would be
> nice to have fixed:
>
> - Alter the pinctrl.c file to register the GPIO range from the gpiochip
> side of things, essentially taking out pinctrl_add_gpio_range() and
> use gpiochip_add_pin_range() from the gpio.c code instead.
OK, I'll do that for v4. Is pinctrl_add_gpio_range() getting deprecated ?
> - Change gpio.c to get rid of the complex code in sh_gpio_to_irq()
> by using irqdomain. It'll need a custom mapping function but that makes
> it simpler overall. Change all mappings between Linux and hardware
> irq numbers to use the irqdomain.
I plan to split the GPIO handling functions to a separate driver, I'll try to
address that then.
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v3 00/29] SH pinctrl and pinmux implementation
2013-03-06 12:52 [PATCH v3 00/29] SH pinctrl and pinmux implementation Laurent Pinchart
2013-03-07 8:41 ` Linus Walleij
2013-03-07 23:39 ` Laurent Pinchart
@ 2013-03-08 2:07 ` Linus Walleij
2 siblings, 0 replies; 4+ messages in thread
From: Linus Walleij @ 2013-03-08 2:07 UTC (permalink / raw)
To: linux-sh
On Fri, Mar 8, 2013 at 12:39 AM, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
> [Me]
>> - Alter the pinctrl.c file to register the GPIO range from the gpiochip
>> side of things, essentially taking out pinctrl_add_gpio_range() and
>> use gpiochip_add_pin_range() from the gpio.c code instead.
>
> OK, I'll do that for v4. Is pinctrl_add_gpio_range() getting deprecated ?
Sort of. We prefer to do it this way for new code, it's using the local
numbers on both the GPIO and the pinctrl side, which is nice (no
reference to the global GPIO numberspace!)
>> - Change gpio.c to get rid of the complex code in sh_gpio_to_irq()
>> by using irqdomain. It'll need a custom mapping function but that makes
>> it simpler overall. Change all mappings between Linux and hardware
>> irq numbers to use the irqdomain.
>
> I plan to split the GPIO handling functions to a separate driver, I'll try to
> address that then.
OK!
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-03-08 2:07 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-06 12:52 [PATCH v3 00/29] SH pinctrl and pinmux implementation Laurent Pinchart
2013-03-07 8:41 ` Linus Walleij
2013-03-07 23:39 ` Laurent Pinchart
2013-03-08 2:07 ` Linus Walleij
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox