Re: tca-6416: interrupt device tree configuration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Apr 02, 2014 at 12:06:03PM +0200, Yegor Yefremov wrote:
> On Tue, Mar 18, 2014 at 4:02 PM, Yegor Yefremov
> <yegorslists@xxxxxxxxxxxxxx> wrote:
> > I've an am335x-based board with tca6416. The interrupt output of the
> > tca is connected to GPIO0_20 on my SoC. How should I configure this
> > wiring in device tree file?
> >
> > I've already managed to hook it on I2C and it is working so far:
> >
> >  tca6416: gpio@20 {
> >                 compatible = "ti,tca6416";
> >                 reg = <0x20>;
> >                 gpio-controller;
> >                 #gpio-cells = <2>;
> >   };
> >
> > Documentation/devicetree/bindings/gpio/gpio-pcf857x.txt describes
> > following properties:
> >
> >   - interrupt-controller: Identifies the node as an interrupt controller.
> >   - #interrupt-cells: Number of cells to encode an interrupt source, shall be 2.
> >   - interrupt-parent: phandle of the parent interrupt controller.
> >   - interrupts: Interrupt specifier for the controllers interrupt.
> >
> > and following example:
> >
> >         pcf8575: gpio@20 {
> >                 compatible = "nxp,pcf8575";
> >                 reg = <0x20>;
> >                 interrupt-parent = <&irqpin2>;
> >                 interrupts = <3 0>;
> >                 gpio-controller;
> >                 #gpio-cells = <2>;
> >                 interrupt-controller;
> >                 #interrupt-cells = <2>;
> >         };
> >
> > Where does irqpin2 come from? How to specify GPIO0_20 in "interrupts" context?
> 
> Maxime, I've seen your irq domain related patch. Could you please
> provide an example/hint for my question?

<&irqpin2> is called a phandle, and it's actually a reference to
another device tree node. So the answer to your question is from
somewhere else in the device tree.

It will be the parent interrupt controller, so in your case, I guess
you will have to do two things:
  - Say that your interrupt comes from

interrupt-parent = <&something>;

  - Say the actual interrupt it is using inside that parent

interrupts = <42>;

In your case, I guess something like:
interrupt-parent = <&gpio0>;
interrupts = <20 GPIO_ACTIVE_HIGH>;

Will work, but I'm not familiar enough with the am335x platform to
know for sure.

In any case, you should probably go through this talk:
http://elinux.org/images/a/a3/Elce2013-petazzoni-devicetree-for-dummies.pdf

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux