devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>
To: Stefan Wahren <stefan.wahren-eS4NqCHxEME@public.gmane.org>
Cc: kernelnewbies
	<kernelnewbies-7JyXY6prKcjpASu1u0TL5ti2O/JbrIOy@public.gmane.org>,
	devicetree <devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: Question about shared interrupts in devicetree
Date: Tue, 7 Apr 2015 12:29:29 +0100	[thread overview]
Message-ID: <20150407112928.GA3812@leverpostej> (raw)
In-Reply-To: <2039290448.1160624.1428183613109.JavaMail.open-xchange-h4m1HHXQYNGvCDav5jC2oMgmgJlYmuWJ@public.gmane.org>

On Sat, Apr 04, 2015 at 10:40:13PM +0100, Stefan Wahren wrote:
> Hi,

Hi,

> i'm currently working on drivers (regulator and power switch) for a power
> subsystem of a ARM9 processor (Freescale i.MX28). There are interrupts for the
> power subsystem which share the same interrupt line. This interrupt line is
> needed by both drivers (regulator and power switch).
> 
> Now the question what is the right way (tm) to specify the interrupt in the
> devicetree and fetch the irq number during driver probe?

If the interrupts are generated by the subsystem as a whole, then A
would be more correct. If you can read some shared register to determine
the particular sub-block which generated the interrupt, A would
certainly be the right way of describing the HW.

If the subsystem is just a logical grouping, and the two units generate
separate interrupts which simply get muxed together (with nothing
special done at the subsystem level), then B would seem more correct, as
the two units are effectively independent.

It really depends on way the HW is organised, and how the HW _could_ be
organised if reused, so this is a grey area generally.

It looks like it would be possible to support both styles if we need to
(by checking the node first, then its parent), if we go for one option
and later discover we need the other.

Thanks,
Mark.

> 
> Option A (define interrupt in parent node):
> 
>   power: power@80044000 {
> 	compatible = "fsl,imx28-power", "syscon";
> 	reg = <0x80044000 0x2000>;
> 	interrupts = <6>;
> 
> 	reg_vddd: regulator@1 {
> 		compatible = "fsl,imx28-vddd";
> 	};
> 
> 	pswitch: pswitch@5 {
> 		compatible = "fsl,mxs-pswitch";
> 		linux,code = <116>;
> 	};
>   }
> 
>   int irq = irq_of_parse_and_map(parent, 0);
> 
> Option B (define interrupt for each child node):
> 
>   power: power@80044000 {
> 	compatible = "fsl,imx28-power", "syscon";
> 	reg = <0x80044000 0x2000>;
> 
> 	reg_vddd: regulator@1 {
> 		compatible = "fsl,imx28-vddd";
> 		interrupts = <6>;
> 	};
> 
> 	pswitch: pswitch@5 {
> 		compatible = "fsl,mxs-pswitch";
> 		linux,code = <116>;
> 		interrupts = <6>;
> 	};
>   }
> 
>   int irq = platform_get_irq(pdev, 0);
> 
> Best regards
> Stefan
> --
> To unsubscribe from this list: send the line "unsubscribe devicetree" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2015-04-07 11:29 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-04 21:40 Question about shared interrupts in devicetree Stefan Wahren
     [not found] ` <2039290448.1160624.1428183613109.JavaMail.open-xchange-h4m1HHXQYNGvCDav5jC2oMgmgJlYmuWJ@public.gmane.org>
2015-04-07 11:29   ` Mark Rutland [this message]
2015-04-07 17:06     ` Stefan Wahren
     [not found]       ` <2146749411.2111.1428426398346.JavaMail.open-xchange-h4m1HHXQYNGvCDav5jC2oMgmgJlYmuWJ@public.gmane.org>
2015-04-08 19:20         ` Geert Uytterhoeven
     [not found]           ` <CAMuHMdUaQTotvzRiGczyVxfeu34UNLMmwU=aVGTP6rDSHUK45Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-09  7:24             ` Stefan Wahren
     [not found]               ` <55262935.9080005-eS4NqCHxEME@public.gmane.org>
2015-04-09  7:37                 ` Geert Uytterhoeven
     [not found]                   ` <CAMuHMdXpByUO4S_Qdhvbm8PF8hfGTtqr7aA9mmRE5Dk6LrZkJw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-09 17:02                     ` Stefan Wahren
2015-04-22 18:18     ` Stefan Wahren

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=20150407112928.GA3812@leverpostej \
    --to=mark.rutland-5wv7dgnigg8@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=kernelnewbies-7JyXY6prKcjpASu1u0TL5ti2O/JbrIOy@public.gmane.org \
    --cc=stefan.wahren-eS4NqCHxEME@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).