All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joachim Eastwood <manabian@gmail.com>
To: linus.walleij@linaro.org
Cc: Joachim Eastwood <manabian@gmail.com>,
	linux-gpio@vger.kernel.org, devicetree@vger.kernel.org
Subject: [PATCH 0/3] pinctrl: lpc18xx: support pint setup
Date: Sat, 20 Feb 2016 23:51:53 +0100	[thread overview]
Message-ID: <1456008716-6236-1-git-send-email-manabian@gmail.com> (raw)

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


             reply	other threads:[~2016-02-20 22:52 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-20 22:51 Joachim Eastwood [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1456008716-6236-1-git-send-email-manabian@gmail.com \
    --to=manabian@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.