Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752729AbdF2Qj4 (ORCPT ); Thu, 29 Jun 2017 12:39:56 -0400 Received: from smtprelay.synopsys.com ([198.182.60.111]:49969 "EHLO smtprelay.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751783AbdF2Qjt (ORCPT ); Thu, 29 Jun 2017 12:39:49 -0400 From: Eugeniy Paltsev To: "robh@kernel.org" CC: "linux-kernel@vger.kernel.org" , "Vineet.Gupta1@synopsys.com" , "Eugeniy.Paltsev@synopsys.com" , "Alexey.Brodkin@synopsys.com" , "linux-snps-arc@lists.infradead.org" , "devicetree@vger.kernel.org" Subject: Re: [PATCH 3/3 v6] ARC: hsdk: initial port for HSDK board Thread-Topic: [PATCH 3/3 v6] ARC: hsdk: initial port for HSDK board Thread-Index: AQHS7o6C/SwB24S3Y0WazysK8E068qI3KWQAgAAJpYCAA5AXgIABKtsA Date: Thu, 29 Jun 2017 16:39:45 +0000 Message-ID: <1498754384.2378.10.camel@synopsys.com> References: <20170626151118.19507-1-Eugeniy.Paltsev@synopsys.com> <20170626151118.19507-4-Eugeniy.Paltsev@synopsys.com> <1498494334.28955.58.camel@synopsys.com> <20170628225005.5ume54d67vtvp5fi@rob-hp-laptop> In-Reply-To: <20170628225005.5ume54d67vtvp5fi@rob-hp-laptop> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.121.8.106] Content-Type: text/plain; charset="utf-8" Content-ID: <510F4FDEE91E5247BB1E8C004AD14A4A@internal.synopsys.com> MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id v5TGdxgt015461 Content-Length: 2314 Lines: 70 On Wed, 2017-06-28 at 17:50 -0500, Rob Herring wrote: > > > > +                       #clock-cells = <0>; > > > > +                       compatible = "fixed-clock"; > > > > +                       clock-frequency = <1000000000>; > > > > +               }; > > > > + > > > > +               core_intc: archs-intc@cpu { > > > > > > cpu is not a valid unit-address. How are these interrupt > > > controllers addressed? > > > > We have per-core INTC so each core communicates to its own INTC and > > there's no way > > for any core to talk with INTC of another core. > > > > But then we have the next level INTC which is IDU (Interrupt > > Distribution Unit) > > which dispatches "common" IRQs to different upstream per-core INTC, > > see below its node.  > > Okay, I'd just do "cpu-interrupt-controller" for the node name then.  > There doesn't seem to be an easy way to use just "interrupt- > controller"  > since you have 2 nodes at the same level and no unit-address (i.e. a  > reg property). > To be more clarify, what is better way do describe such hardware in device tree? -------------    -------------   | cpu core 0|    | cpu core 1|   -------------    -------------   | interrupt |    | interrupt |   | controller|    | controller|   |     0     |    |     1     |   -------------    -------------         ^                ^       |                |              -----------       |      | ---------------- |   interrupt  | | distribution | |     unit     | ----------------       ^       |       |<--other devices interrupt lines We can't just create a node for each core interrupt controller because we wouldn't able to specify which one is parent for interrupt distribution unit: ------------>>>------------- cpus {     cpu@0 { intc@0 };     cpu@1 { intc@1 }; }; interrupt-distribution-unit {     interrupt-parent = ???? }; ------------>>>------------- Should we simply create one core interrupt controller node for all cpus (instead of one per each cpu core), or where is a better option? --  Eugeniy Paltsev