From patchwork Mon Sep 10 15:23:42 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hunter, Jon" X-Patchwork-Id: 1432511 Return-Path: X-Original-To: patchwork-linux-omap@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id 7355B4025E for ; Mon, 10 Sep 2012 15:24:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757362Ab2IJPYM (ORCPT ); Mon, 10 Sep 2012 11:24:12 -0400 Received: from comal.ext.ti.com ([198.47.26.152]:44947 "EHLO comal.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757539Ab2IJPYK (ORCPT ); Mon, 10 Sep 2012 11:24:10 -0400 Received: from dlelxv30.itg.ti.com ([172.17.2.17]) by comal.ext.ti.com (8.13.7/8.13.7) with ESMTP id q8AFNrbK027598; Mon, 10 Sep 2012 10:23:53 -0500 Received: from DFLE73.ent.ti.com (dfle73.ent.ti.com [128.247.5.110]) by dlelxv30.itg.ti.com (8.13.8/8.13.8) with ESMTP id q8AFNrOg005814; Mon, 10 Sep 2012 10:23:53 -0500 Received: from dlelxv23.itg.ti.com (172.17.1.198) by dfle73.ent.ti.com (128.247.5.110) with Microsoft SMTP Server id 14.1.323.3; Mon, 10 Sep 2012 10:23:53 -0500 Received: from legion.dal.design.ti.com (legion.dal.design.ti.com [128.247.22.53]) by dlelxv23.itg.ti.com (8.13.8/8.13.8) with ESMTP id q8AFNrN7016232; Mon, 10 Sep 2012 10:23:53 -0500 Received: from localhost (h56-53.vpn.ti.com [172.24.56.53]) by legion.dal.design.ti.com (8.11.7p1+Sun/8.11.7) with ESMTP id q8AFNqr00985; Mon, 10 Sep 2012 10:23:52 -0500 (CDT) From: Jon Hunter To: Tony Lindgren CC: linux-omap , linux-arm , Ming Lei , Will Deacon , Benoit Cousson , Paul Walmsley , Kevin Hilman , Jon Hunter Subject: [PATCH V3 4/8] ARM: OMAP4430: Create PMU device via HWMOD Date: Mon, 10 Sep 2012 10:23:42 -0500 Message-ID: <1347290626-21164-5-git-send-email-jon-hunter@ti.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1347290626-21164-1-git-send-email-jon-hunter@ti.com> References: <1347290626-21164-1-git-send-email-jon-hunter@ti.com> MIME-Version: 1.0 Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org From: Ming Lei For OMAP4430 PMU events are routed to the CPU via the cross trigger interface (CTI) because there are no dedicated interrupts. In order to route the PMU events via the CTI IRQs, the following modules must be enabled: l3_instr, l3_main_3, debugss Therefore, build the arm-pmu device via these three HWMODs. Cc: Ming Lei Cc: Will Deacon Cc: Benoit Cousson Cc: Paul Walmsley Cc: Kevin Hilman Signed-off-by: Ming Lei Signed-off-by: Will Deacon Signed-off-by: Jon Hunter --- arch/arm/mach-omap2/pmu.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/arch/arm/mach-omap2/pmu.c b/arch/arm/mach-omap2/pmu.c index 1de52ed..7c137be 100644 --- a/arch/arm/mach-omap2/pmu.c +++ b/arch/arm/mach-omap2/pmu.c @@ -20,6 +20,7 @@ static char *omap2_pmu_oh_names[] = {"mpu"}; static char *omap3_pmu_oh_names[] = {"mpu", "debugss"}; +static char *omap4430_pmu_oh_names[] = {"l3_main_3", "l3_instr", "debugss"}; static struct platform_device *omap_pmu_dev; /** @@ -28,16 +29,16 @@ static struct platform_device *omap_pmu_dev; * @oh_names: Array of OMAP HWMODS names required to create PMU device * * Uses OMAP HWMOD framework to create and register an ARM PMU device - * from a list of HWMOD names passed. Currently supports OMAP2 and - * OMAP3 devices. + * from a list of HWMOD names passed. Currently supports OMAP2, OMAP3 + * and OMAP4430 devices. */ static int __init omap2_init_pmu(unsigned oh_num, char *oh_names[]) { int i; - struct omap_hwmod *oh[2]; + struct omap_hwmod *oh[3]; char *dev_name = "arm-pmu"; - if ((!oh_num) || (oh_num > 2)) + if ((!oh_num) || (oh_num > 3)) return -EINVAL; for (i = 0; i < oh_num; i++) { @@ -67,6 +68,7 @@ static int __init omap_init_pmu(void) * * OMAP24xx: mpu * OMAP3xxx: mpu, debugss + * OMAP4430: l3_main_3, l3_instr, debugss */ if (cpu_is_omap24xx()) { oh_num = ARRAY_SIZE(omap2_pmu_oh_names); @@ -74,6 +76,9 @@ static int __init omap_init_pmu(void) } else if (cpu_is_omap34xx()) { oh_num = ARRAY_SIZE(omap3_pmu_oh_names); oh_names = omap3_pmu_oh_names; + } else if (cpu_is_omap443x()) { + oh_num = ARRAY_SIZE(omap4430_pmu_oh_names); + oh_names = omap4430_pmu_oh_names; } else { return 0; }