All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Marc Gonzalez <marc.w.gonzalez@free.fr>
Cc: Russell King - ARM Linux admin <linux@armlinux.org.uk>,
	GPIO <linux-gpio@vger.kernel.org>,
	MSM <linux-arm-msm@vger.kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Marc Zyngier <maz@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Uwe Kleine-Konig <u.kleine-koenig@pengutronix.de>
Subject: Re: Using a GPIO as an interrupt line
Date: Tue, 19 Nov 2019 11:19:58 -0800	[thread overview]
Message-ID: <20191119191958.GP36595@minitux> (raw)
In-Reply-To: <9356da2a-2190-03fd-f5cc-6a0fd8c38e89@free.fr>

On Tue 19 Nov 03:46 PST 2019, Marc Gonzalez wrote:

> On 19/11/2019 11:58, Russell King - ARM Linux admin wrote:
> 
> > On Tue, Nov 19, 2019 at 11:46:21AM +0100, Marc Gonzalez wrote:
> >
> >> On 19/11/2019 10:57, Russell King - ARM Linux admin wrote:
> >>
> >>> On Tue, Nov 19, 2019 at 10:28:15AM +0100, Marc Gonzalez wrote:
> >>>
> >>>> The board I'm working on provides a TCA9539 I/O expander.
> >>>> Or, as the datasheet(*) calls it, a "Low Voltage 16-Bit I2C and
> >>>> SMBus Low-Power I/O Expander with Interrupt Output, Reset Pin,
> >>>> and Configuration Registers"
> >>>>
> >>>> (*) http://www.ti.com/lit/ds/symlink/tca9539.pdf
> >>>>
> >>>> The binding is documented in Documentation/devicetree/bindings/gpio/gpio-pca953x.txt
> >>>>
> >>>> I have some doubts about the interrupt output, described as:
> >>>>
> >>>> Optional properties:
> >>>>  - interrupts: interrupt specifier for the device's interrupt output.
> >>>>
> >>>> In my board's DT, the I/O expander is described as:
> >>>>
> >>>> 	exp1: gpio@74 {
> >>>> 		compatible = "ti,tca9539";
> >>>> 		reg = <0x74>;
> >>>> 		gpio-controller;
> >>>> 		#gpio-cells = <2>;
> >>>> 		reset-gpios = <&tlmm 96 GPIO_ACTIVE_LOW>;
> >>>> 		pinctrl-names = "default";
> >>>> 		pinctrl-0 = <&top_exp_rst>;
> >>>> 		interrupt-parent = <&tlmm>;
> >>>> 		interrupts = <42 IRQ_TYPE_LEVEL_HIGH>;
> >>
> >> As pointed out by ukleinek on IRC, I might have (??) specified the wrong
> >> trigger type. The data-sheet states:
> >> "The TCA9539 open-drain interrupt (INTn) output is activated when any input state
> >> differs from its corresponding Input Port register state, and is used to indicate
> >> to the system master that an input state has changed."
> >> (The data sheet speaks of "INT with a line on top"; what is the typical way to
> >> write that in ASCII? I was told that adding a trailing 'n' or 'b' was common.)
> > 
> > /INT or nINT are commonly used - I've never heard or seen 'b' (which is
> > commonly used as a suffix on binary numbers) or a trailing 'n'.
> 
> Perhaps the 'b' suffix is only used in French...
> 'b' might stand for "barre" (i.e. the line above the symbol).
> 
> 
> > Is pin 42 something that can be muxed?  If so, it seems sane to specify
> > configuration for it.  Whether it needs to be a GPIO or whether it has
> > a specific "interrupt" function mux state depends on the SoC.
> 
> According to drivers/pinctrl/qcom/pinctrl-msm8998.c
> PINGROUP(42, EAST, blsp_spi6, blsp_uart3_b, blsp_uim3_b, _, qdss, _, _, _, _)
> 
> I don't think there is an explicit "interrupt" function in
> this pinctrl driver... except FUNCTION(ssc_irq).
> 

No there's no "interrupt" function, the function to be used is "gpio",
which will ensure that the irq logic is available. But in a modern
kernel we're implicitly selecting the "gpio" function if you're
requesting an interrupt. So you shouldn't need to specify this even.

> static const char * const ssc_irq_groups[] = {
> 	"gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63", "gpio78",
> 	"gpio79", "gpio80", "gpio117", "gpio118", "gpio119", "gpio120",
> 	"gpio121", "gpio122", "gpio123", "gpio124", "gpio125",
> };
> 
> @Bjorn, do you know what these are used for?
> 

The "ssc" would imply that it relates to the secure coprocessor somehow.

Regards,
Bjorn

WARNING: multiple messages have this Message-ID (diff)
From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Marc Gonzalez <marc.w.gonzalez@free.fr>
Cc: Marc Zyngier <maz@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Uwe Kleine-Konig <u.kleine-koenig@pengutronix.de>,
	Russell King - ARM Linux admin <linux@armlinux.org.uk>,
	GPIO <linux-gpio@vger.kernel.org>,
	MSM <linux-arm-msm@vger.kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>
Subject: Re: Using a GPIO as an interrupt line
Date: Tue, 19 Nov 2019 11:19:58 -0800	[thread overview]
Message-ID: <20191119191958.GP36595@minitux> (raw)
In-Reply-To: <9356da2a-2190-03fd-f5cc-6a0fd8c38e89@free.fr>

On Tue 19 Nov 03:46 PST 2019, Marc Gonzalez wrote:

> On 19/11/2019 11:58, Russell King - ARM Linux admin wrote:
> 
> > On Tue, Nov 19, 2019 at 11:46:21AM +0100, Marc Gonzalez wrote:
> >
> >> On 19/11/2019 10:57, Russell King - ARM Linux admin wrote:
> >>
> >>> On Tue, Nov 19, 2019 at 10:28:15AM +0100, Marc Gonzalez wrote:
> >>>
> >>>> The board I'm working on provides a TCA9539 I/O expander.
> >>>> Or, as the datasheet(*) calls it, a "Low Voltage 16-Bit I2C and
> >>>> SMBus Low-Power I/O Expander with Interrupt Output, Reset Pin,
> >>>> and Configuration Registers"
> >>>>
> >>>> (*) http://www.ti.com/lit/ds/symlink/tca9539.pdf
> >>>>
> >>>> The binding is documented in Documentation/devicetree/bindings/gpio/gpio-pca953x.txt
> >>>>
> >>>> I have some doubts about the interrupt output, described as:
> >>>>
> >>>> Optional properties:
> >>>>  - interrupts: interrupt specifier for the device's interrupt output.
> >>>>
> >>>> In my board's DT, the I/O expander is described as:
> >>>>
> >>>> 	exp1: gpio@74 {
> >>>> 		compatible = "ti,tca9539";
> >>>> 		reg = <0x74>;
> >>>> 		gpio-controller;
> >>>> 		#gpio-cells = <2>;
> >>>> 		reset-gpios = <&tlmm 96 GPIO_ACTIVE_LOW>;
> >>>> 		pinctrl-names = "default";
> >>>> 		pinctrl-0 = <&top_exp_rst>;
> >>>> 		interrupt-parent = <&tlmm>;
> >>>> 		interrupts = <42 IRQ_TYPE_LEVEL_HIGH>;
> >>
> >> As pointed out by ukleinek on IRC, I might have (??) specified the wrong
> >> trigger type. The data-sheet states:
> >> "The TCA9539 open-drain interrupt (INTn) output is activated when any input state
> >> differs from its corresponding Input Port register state, and is used to indicate
> >> to the system master that an input state has changed."
> >> (The data sheet speaks of "INT with a line on top"; what is the typical way to
> >> write that in ASCII? I was told that adding a trailing 'n' or 'b' was common.)
> > 
> > /INT or nINT are commonly used - I've never heard or seen 'b' (which is
> > commonly used as a suffix on binary numbers) or a trailing 'n'.
> 
> Perhaps the 'b' suffix is only used in French...
> 'b' might stand for "barre" (i.e. the line above the symbol).
> 
> 
> > Is pin 42 something that can be muxed?  If so, it seems sane to specify
> > configuration for it.  Whether it needs to be a GPIO or whether it has
> > a specific "interrupt" function mux state depends on the SoC.
> 
> According to drivers/pinctrl/qcom/pinctrl-msm8998.c
> PINGROUP(42, EAST, blsp_spi6, blsp_uart3_b, blsp_uim3_b, _, qdss, _, _, _, _)
> 
> I don't think there is an explicit "interrupt" function in
> this pinctrl driver... except FUNCTION(ssc_irq).
> 

No there's no "interrupt" function, the function to be used is "gpio",
which will ensure that the irq logic is available. But in a modern
kernel we're implicitly selecting the "gpio" function if you're
requesting an interrupt. So you shouldn't need to specify this even.

> static const char * const ssc_irq_groups[] = {
> 	"gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63", "gpio78",
> 	"gpio79", "gpio80", "gpio117", "gpio118", "gpio119", "gpio120",
> 	"gpio121", "gpio122", "gpio123", "gpio124", "gpio125",
> };
> 
> @Bjorn, do you know what these are used for?
> 

The "ssc" would imply that it relates to the secure coprocessor somehow.

Regards,
Bjorn

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-11-19 19:20 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-19  9:28 Using a GPIO as an interrupt line Marc Gonzalez
2019-11-19  9:28 ` Marc Gonzalez
2019-11-19  9:57 ` Russell King - ARM Linux admin
2019-11-19  9:57   ` Russell King - ARM Linux admin
2019-11-19 10:46   ` Marc Gonzalez
2019-11-19 10:46     ` Marc Gonzalez
2019-11-19 10:56     ` Uwe Kleine-König
2019-11-19 10:56       ` Uwe Kleine-König
2019-11-19 11:00       ` Russell King - ARM Linux admin
2019-11-19 11:00         ` Russell King - ARM Linux admin
2019-11-19 11:03         ` Uwe Kleine-König
2019-11-19 11:03           ` Uwe Kleine-König
2019-11-19 10:58     ` Russell King - ARM Linux admin
2019-11-19 10:58       ` Russell King - ARM Linux admin
2019-11-19 11:46       ` Marc Gonzalez
2019-11-19 11:46         ` Marc Gonzalez
2019-11-19 19:19         ` Bjorn Andersson [this message]
2019-11-19 19:19           ` Bjorn Andersson
2019-11-19 19:23           ` Jeffrey Hugo
2019-11-19 19:23             ` Jeffrey Hugo
2019-11-19 19:35             ` Bjorn Andersson
2019-11-19 19:35               ` Bjorn Andersson

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=20191119191958.GP36595@minitux \
    --to=bjorn.andersson@linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=marc.w.gonzalez@free.fr \
    --cc=maz@kernel.org \
    --cc=u.kleine-koenig@pengutronix.de \
    /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.