All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] pinctrl: lpc18xx: support pint setup
@ 2016-02-20 22:51 Joachim Eastwood
  2016-02-20 22:51 ` [PATCH 1/3] pinctrl: core: create unlocked version of pinctrl_find_gpio_range_from_pin Joachim Eastwood
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Joachim Eastwood @ 2016-02-20 22:51 UTC (permalink / raw)
  To: linus.walleij; +Cc: Joachim Eastwood, linux-gpio, devicetree

Some background here:
The LPC1850 has no less than 3 GPIO interrupt blocks. One of these
blocks is called 'gpio pin interrupt' or just PINT. LPC1850 PINT can
handle up to 8 interrupts and these have a one-to-one relationship with
the main interrupt controller (NVIC).

Selecting which GPIOs that are associated with PINT irq lines is done in
pinctrl hw block (SCU). The pinctrl device usually deals with the pin
namespace but PINT selecction is done in the GPIO namespace. Fortunatly
there is a function that can translate from the pin namespace to the
GPIO namespace.

Selection is done in DT with the "nxp,gpio-pin-interrupt" property.
Example usage;
&pinctrl {
	gpio_joystick_1_cfg {
		pins =  "p9_0";
		function = "gpio";
		nxp,gpio-pin-interrupt = <0>;
		input-enable;
		bias-disable;
	};
};

The reason for not doing this irq line selection on the fly in the
irqchip driver is that the registers lie in the SCU hw block not in the
PINT block and DT gives you more control since you can select a specific
irq lines easily.

The irq chip driver is ready but will posted separetly.

Linus; Take a careful look at patch 1 as this one deals with a pinctrl
locking issue I encountered when trying to use the pinctrl to gpio
function. I am not that familiar with pinctrl locking so please advice.


Joachim Eastwood (3):
  pinctrl: core: create unlocked version of pinctrl_find_gpio_range_from_pin
  pinctrl: lpc18xx: add nxp,gpio-pin-interrupt property
  pinctrl: lpc1850-scu: document nxp,gpio-pin-interrupt

 .../bindings/pinctrl/nxp,lpc1850-scu.txt           |  14 ++
 drivers/pinctrl/core.c                             |  25 +++-
 drivers/pinctrl/core.h                             |   4 +
 drivers/pinctrl/pinctrl-lpc18xx.c                  | 144 ++++++++++++++++++++-
 4 files changed, 174 insertions(+), 13 deletions(-)

-- 
1.8.0


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2016-02-25 15:23 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-20 22:51 [PATCH 0/3] pinctrl: lpc18xx: support pint setup Joachim Eastwood
2016-02-20 22:51 ` [PATCH 1/3] pinctrl: core: create unlocked version of pinctrl_find_gpio_range_from_pin Joachim Eastwood
2016-02-25  9:21   ` Linus Walleij
2016-02-25  9:23     ` Linus Walleij
2016-02-25 11:19       ` Joachim Eastwood
2016-02-25 14:55         ` Linus Walleij
2016-02-25 15:15           ` Joachim Eastwood
2016-02-25 15:23             ` Linus Walleij
2016-02-20 22:51 ` [PATCH 2/3] pinctrl: lpc18xx: add nxp,gpio-pin-interrupt property Joachim Eastwood
     [not found] ` <1456008716-6236-1-git-send-email-manabian-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-02-20 22:51   ` [PATCH 3/3] pinctrl: lpc1850-scu: document nxp,gpio-pin-interrupt Joachim Eastwood
2016-02-22 19:11     ` Rob Herring

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.