linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Lokesh Vutla <lokeshvutla@ti.com>
To: Rob Herring <robh@kernel.org>
Cc: Nishanth Menon <nm@ti.com>,
	Santosh Shilimkar <ssantosh@kernel.org>, <tglx@linutronix.de>,
	<jason@lakedaemon.net>, <marc.zyngier@arm.com>,
	Linux ARM Mailing List <linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>, Tero Kristo <t-kristo@ti.com>,
	Sekhar Nori <nsekhar@ti.com>,
	Device Tree Mailing List <devicetree@vger.kernel.org>,
	Grygorii Strashko <grygorii.strashko@ti.com>,
	Peter Ujfalusi <peter.ujfalusi@ti.com>
Subject: Re: [PATCH v3 06/13] dt-bindings: irqchip: Introduce TISCI Interrupt router bindings
Date: Fri, 16 Nov 2018 07:36:45 +0530	[thread overview]
Message-ID: <8adf30b7-07a2-fdc3-5993-3de0210638a6@ti.com> (raw)
In-Reply-To: <569674da-07a1-107b-020a-4a11534a06b6@ti.com>

Hi Rob,

On 11/13/2018 11:43 AM, Lokesh Vutla wrote:
> Hi Rob,
> 
> On 12/11/18 11:30 PM, Rob Herring wrote:
>> On Tue, Nov 06, 2018 at 02:10:58PM +0530, Lokesh Vutla wrote:
>>> Add the DT binding documentation for Interrupt router driver.
>>>
>>> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
>>> ---
>>> Changes since v2:
>>> - Dropped interrupt-parent from reqired properties description
>>> - Updated the interrupt cells to 4.
>>>
>>>   .../interrupt-controller/ti,sci-intr.txt      | 84 +++++++++++++++++++
>>>   MAINTAINERS                                   |  1 +
>>>   2 files changed, 85 insertions(+)
>>>   create mode 100644
>>> Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt
>>>
>>> diff --git
>>> a/Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt
>>> b/Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt
>>> new file mode 100644
>>> index 000000000000..06e69f8c812c
>>> --- /dev/null
>>> +++
>>> b/Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt
>>> @@ -0,0 +1,84 @@
>>> +Texas Instruments K3 Interrupt Router
>>> +=====================================
>>> +
>>> +The Interrupt Router (INTR) module provides a mechanism to mux M
>>> +interrupt inputs to N interrupt outputs, where all M inputs are
>>> selectable
>>> +to be driven per N output. There is one register per output
>>> (MUXCNTL_N) that
>>> +controls the selection.
>>> +
>>> +
>>> +                                 Interrupt Router
>>> +                             +----------------------+
>>> +                             |  Inputs     Outputs  |
>>> +        +-------+            | +------+             |
>>> +        | GPIO  |----------->| | irq0 |             |       Host IRQ
>>> +        +-------+            | +------+             |      controller
>>> +                             |    .        +-----+  |      +-------+
>>> +        +-------+            |    .        |  0  |  |----->|  IRQ  |
>>> +        | INTA  |----------->|    .        +-----+  |      +-------+
>>> +        +-------+            |    .          .      |
>>> +                             | +------+      .      |
>>> +                             | | irqM |    +-----+  |
>>> +                             | +------+    |  N  |  |
>>> +                             |             +-----+  |
>>> +                             +----------------------+
>>> +
>>> +Configuration of these MUXCNTL_N registers is done by a system
>>> controller
>>> +(like the Device Memory and Security Controller on K3 AM654 SoC).
>>> System
>>> +controller will keep track of the used and unused registers within
>>> the Router.
>>> +Driver should request the system controller to get the range of GIC
>>> IRQs
>>> +assigned to the requesting hosts. It is the drivers responsibility
>>> to keep
>>> +track of Host IRQs.
>>> +
>>> +Communication between the host processor running an OS and the system
>>> +controller happens through a protocol called TI System Control
>>> Interface
>>> +(TISCI protocol). For more details refer:
>>> +Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
>>> +
>>> +TISCI Interrupt Router Node:
>>> +----------------------------
>>> +- compatible:        Must be "ti,sci-intr".
>>> +- interrupt-controller:    Identifies the node as an interrupt
>>> controller
>>> +- #interrupt-cells:    Specifies the number of cells needed to
>>> encode an
>>> +            interrupt source. The value should be 4.
>>> +            First cell should contain the TISCI device ID of source
>>> +            Second cell should contain the interrupt source offset
>>> +            within the device
>>> +            Third cell specifies the trigger type as defined
>>> +            in interrupts.txt in this directory.
>>> +            Fourth cell should be 1 if the irq is coming from
>>> +            interrupt aggregator else 0.
>>> +- ti,sci:        Phandle to TI-SCI compatible System controller node.
>>> +- ti,sci-dst-id:    TISCI device ID of the destination IRQ controller.
>>> +- ti,sci-rm-range-girq:    TISCI subtype id representing the host
>>> irqs assigned
>>> +            to this interrupt router.
>>
>> u32 or array?
> 
> it is u32.

Sorry, I am wrong here. There is one instance where there are more than
one set of gic irq ranges associated with this IP. Will fix it as an
array in next version.

Thanks and regards,
Lokesh

> 
>>
>>> +
>>> +For more details on TISCI IRQ resource management refer:
>>> +http://downloads.ti.com/tisci/esd/latest/2_tisci_msgs/rm/rm_irq.html
>>> +
>>> +Example:
>>> +--------
>>> +The following example demonstrates both interrupt router node and
>>> the consumer
>>> +node(main gpio) on the AM654 SoC:
>>> +
>>> +main_intr: interrupt-controller@1 {
>>
>> Unit-address is not valid here without a reg property.
> 
> Sure will fix it in next version.
> 
> Thanks and regards,
> Lokesh
> 
>>
>>> +    compatible = "ti,sci-intr";
>>> +    interrupt-controller;
>>> +    interrupt-parent = <&gic>;
>>> +    #interrupt-cells = <4>;
>>> +    ti,sci = <&dmsc>;
>>> +    ti,sci-dst-id = <56>;
>>> +    ti,sci-rm-range-girq = <0x1>;
>>> +};
>>> +
>>> +main_gpio0: gpio@600000 {
>>> +    ...
>>> +    interrupt-parent = <&main_intr>;
>>> +    interrupts = <57 256 IRQ_TYPE_EDGE_RISING 0>,
>>> +            <57 257 IRQ_TYPE_EDGE_RISING 0>,
>>> +            <57 258 IRQ_TYPE_EDGE_RISING 0>,
>>> +            <57 259 IRQ_TYPE_EDGE_RISING 0>,
>>> +            <57 260 IRQ_TYPE_EDGE_RISING 0>,
>>> +            <57 261 IRQ_TYPE_EDGE_RISING 0>;
>>> +    ...
>>> +};
>>> diff --git a/MAINTAINERS b/MAINTAINERS
>>> index 88b28f6dec45..0e3aa3386287 100644
>>> --- a/MAINTAINERS
>>> +++ b/MAINTAINERS
>>> @@ -14739,6 +14739,7 @@ F:   
>>> Documentation/devicetree/bindings/reset/ti,sci-reset.txt
>>>   F:    Documentation/devicetree/bindings/clock/ti,sci-clk.txt
>>>   F:    drivers/clk/keystone/sci-clk.c
>>>   F:    drivers/reset/reset-ti-sci.c
>>> +F:   
>>> Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt
>>>     THANKO'S RAREMONO AM/FM/SW RADIO RECEIVER USB DRIVER
>>>   M:    Hans Verkuil <hverkuil@xs4all.nl>
>>> -- 
>>> 2.19.1
>>>
>>

  reply	other threads:[~2018-11-16  2:07 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-06  8:40 [PATCH v3 00/13] Add support for TISCI irqchip drivers Lokesh Vutla
2018-11-06  8:40 ` [PATCH v3 01/13] firmware: ti_sci: Add support to get TISCI handle using of_phandle Lokesh Vutla
2018-11-06  8:40 ` [PATCH v3 02/13] firmware: ti_sci: Add support for RM core ops Lokesh Vutla
2018-11-06  8:40 ` [PATCH v3 03/13] firmware: ti_sci: Add support for IRQ management Lokesh Vutla
2018-11-06  8:40 ` [PATCH v3 04/13] firmware: ti_sci: Add RM mapping table for am654 Lokesh Vutla
2018-11-06  8:40 ` [PATCH v3 05/13] firmware: ti_sci: Add helper apis to manage resources Lokesh Vutla
2018-11-06  8:40 ` [PATCH v3 06/13] dt-bindings: irqchip: Introduce TISCI Interrupt router bindings Lokesh Vutla
     [not found]   ` <5bea0eb4.1c69fb81.843ed.0186@mx.google.com>
2018-11-13  6:13     ` Lokesh Vutla
2018-11-16  2:06       ` Lokesh Vutla [this message]
2018-11-06  8:40 ` [PATCH v3 07/13] irqchip: ti-sci-intr: Add support for Interrupt Router driver Lokesh Vutla
2018-11-06  8:41 ` [RFC PATCH v3 08/13] genirq/msi: Add support for allocating single MSI for a device Lokesh Vutla
2018-11-06  8:41 ` [RFC PATCH v3 09/13] genirq/msi: Add support for .msi_unprepare callback Lokesh Vutla
2018-11-06  8:41 ` [RFC PATCH v3 10/13] soc: ti: Add MSI domain support for K3 Interrupt Aggregator Lokesh Vutla
2018-11-13  7:35   ` Lokesh Vutla
2018-11-06  8:41 ` [RFC PATCH v3 11/13] dt-bindings: irqchip: Introduce TISCI Interrupt Aggregator bindings Lokesh Vutla
2018-11-06  8:41 ` [RFC PATCH v3 12/13] irqchip: ti-sci-inta: Add support for Interrupt Aggregator driver Lokesh Vutla
2018-11-06  8:41 ` [RFC PATCH v3 13/13] soc: ti: am6: Enable interrupt controller drivers Lokesh Vutla

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=8adf30b7-07a2-fdc3-5993-3de0210638a6@ti.com \
    --to=lokeshvutla@ti.com \
    --cc=devicetree@vger.kernel.org \
    --cc=grygorii.strashko@ti.com \
    --cc=jason@lakedaemon.net \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marc.zyngier@arm.com \
    --cc=nm@ti.com \
    --cc=nsekhar@ti.com \
    --cc=peter.ujfalusi@ti.com \
    --cc=robh@kernel.org \
    --cc=ssantosh@kernel.org \
    --cc=t-kristo@ti.com \
    --cc=tglx@linutronix.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 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).