Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752837AbdFUPO2 (ORCPT ); Wed, 21 Jun 2017 11:14:28 -0400 Received: from foss.arm.com ([217.140.101.70]:54146 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751133AbdFUPO1 (ORCPT ); Wed, 21 Jun 2017 11:14:27 -0400 Subject: Re: [PATCH v5 0/6] Add support for the ICU unit in Marvell Armada 7K/8K To: Thomas Petazzoni , Thomas Gleixner , Jason Cooper , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Rob Herring , Ian Campbell , Pawel Moll , Mark Rutland , Kumar Gala , Andrew Lunn , Sebastian Hesselbarth , Gregory Clement References: <20170621132917.14187-1-thomas.petazzoni@free-electrons.com> Cc: linux-arm-kernel@lists.infradead.org, Nadav Haklai , Hanna Hawa , Yehuda Yitschak , Antoine Tenart , =?UTF-8?Q?Miqu=c3=a8l_Raynal?= From: Marc Zyngier Organization: ARM Ltd Message-ID: Date: Wed, 21 Jun 2017 16:14:21 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170621132917.14187-1-thomas.petazzoni@free-electrons.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3322 Lines: 72 On 21/06/17 14:29, Thomas Petazzoni wrote: > Hello, > > The Marvell Armada 7K/8K SoCs are composed of two parts: the AP (which > contains the CPU cores) and the CP (which contains most > peripherals). The 7K SoCs have one CP, while the 8K SoCs have two CPs, > doubling the number of available peripherals. > > In terms of interrupt handling, all devices in the CPs are connected > through wired interrupt to a unit called ICU located in each CP. This > unit converts the wired interrupts from the devices into memory > transactions. > > Inside the AP, there is a GIC extension called GICP, which allows a > memory write transaction to trigger a GIC SPI interrupt. The ICUs in > each CP are therefore configured to trigger a memory write into the > appropriate GICP register so that a wired interrupt from a CP device > is converted into a memory write, itself converted into a regular GIC > SPI interrupt. > > Until now, the configuration of the ICU was done statically by the > firmware, and therefore the Device Tree files in Linux were specifying > directly GIC interrupts for the interrupts of CP devices. However, > with the growing number of devices in the CP, a static allocation > scheme doesn't work for the long term. > > This patch series therefore makes Linux aware of the ICU: GIC SPI > interrupts are dynamically allocated, and the ICU is configured > accordingly to route a CP wired interrupt to the allocated GIC SPI > interrupt. > > In detail: [...] > Thomas Petazzoni (6): > dt-bindings: interrupt-controller: add DT binding for the Marvell GICP > dt-bindings: interrupt-controller: add DT binding for the Marvell ICU > irqchip: irq-mvebu-gicp: new driver for Marvell GICP > irqchip: irq-mvebu-icu: new driver for Marvell ICU > arm64: marvell: enable ICU and GICP drivers > arm64: dts: marvell: enable GICP and ICU on Armada 7K/8K > > .../bindings/interrupt-controller/marvell,gicp.txt | 27 ++ > .../bindings/interrupt-controller/marvell,icu.txt | 51 ++++ > arch/arm64/Kconfig.platforms | 2 + > arch/arm64/boot/dts/marvell/armada-ap806.dtsi | 7 + > .../boot/dts/marvell/armada-cp110-master.dtsi | 59 +++-- > .../arm64/boot/dts/marvell/armada-cp110-slave.dtsi | 55 ++-- > drivers/irqchip/Kconfig | 6 + > drivers/irqchip/Makefile | 2 + > drivers/irqchip/irq-mvebu-gicp.c | 279 ++++++++++++++++++++ > drivers/irqchip/irq-mvebu-gicp.h | 12 + > drivers/irqchip/irq-mvebu-icu.c | 289 +++++++++++++++++++++ > .../dt-bindings/interrupt-controller/mvebu-icu.h | 15 ++ > 12 files changed, 756 insertions(+), 48 deletions(-) > create mode 100644 Documentation/devicetree/bindings/interrupt-controller/marvell,gicp.txt > create mode 100644 Documentation/devicetree/bindings/interrupt-controller/marvell,icu.txt > create mode 100644 drivers/irqchip/irq-mvebu-gicp.c > create mode 100644 drivers/irqchip/irq-mvebu-gicp.h > create mode 100644 drivers/irqchip/irq-mvebu-icu.c > create mode 100644 include/dt-bindings/interrupt-controller/mvebu-icu.h > It all looks good to me. How do we merge this? I take the first five patches and Gregory takes the last one? Thanks, M. -- Jazz is not dead. It just smells funny...