From patchwork Thu Apr 17 18:40:52 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Soren Brinkmann X-Patchwork-Id: 4010341 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 8EEE4BFF02 for ; Thu, 17 Apr 2014 18:44:04 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id B3ED0202FF for ; Thu, 17 Apr 2014 18:44:03 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F2D62202FE for ; Thu, 17 Apr 2014 18:44:02 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1WarG0-00068y-Am; Thu, 17 Apr 2014 18:41:56 +0000 Received: from mail-qc0-x22a.google.com ([2607:f8b0:400d:c01::22a]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1WarFy-0005Xz-3f for linux-arm-kernel@lists.infradead.org; Thu, 17 Apr 2014 18:41:54 +0000 Received: by mail-qc0-f170.google.com with SMTP id x13so839145qcv.15 for ; Thu, 17 Apr 2014 11:41:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id; bh=kbr4vN+VOv8eg50I+Kr0Wi3HSQGc9AoGwIOQ/yFpaYQ=; b=OaaO7S8blJD+DkXdymHZa2DZ6w7SKy7XVNFN0AM4fjnY7qNI7bcSDC+wRMPPQ3aZ+X Y6C4bvFgu8PTxgWOH1RCyAh5M2e/0ey1ZzOPygfyxeipdp195wtzWh5gQe5n5cDHx/Z1 PpodqveC/cDhIeqPsEBm1EfnBMAHmDDEO8TbEzo5LMlXy1rakc6jTbyOr2k8BtNa1j5H 0RQTWSU6mCDZjlo0qAL6HIQxAOnu1DA6PTKa7Q7TLs0EYtykY/dYh2wahQMwDfh+VOXy JjNqR+LrHO6csqc5nUotWpf3vv6jSllZTLHSmlHiEUUOblbnwNEpawCzQ3vwrXfrwKs2 ShEg== X-Received: by 10.224.76.74 with SMTP id b10mr15358120qak.49.1397760087698; Thu, 17 Apr 2014 11:41:27 -0700 (PDT) Received: from localhost ([149.199.62.254]) by mx.google.com with ESMTPSA id u7sm50995522qap.5.2014.04.17.11.41.26 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Thu, 17 Apr 2014 11:41:26 -0700 (PDT) From: Soren Brinkmann To: Mike Turquette , Michal Simek Subject: [PATCH] clk: zynq: Leave debug clocks in bootup state Date: Thu, 17 Apr 2014 11:40:52 -0700 Message-Id: <1397760052-3310-1-git-send-email-soren.brinkmann@xilinx.com> X-Mailer: git-send-email 1.9.2.1.g06c4abd X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20140417_114154_223128_B470152D X-CRM114-Status: UNSURE ( 9.84 ) X-CRM114-Notice: Please train this message. X-Spam-Score: 0.0 (/) Cc: James Hogan , Stephen Warren , Stephen Boyd , linux-kernel@vger.kernel.org, =?UTF-8?q?S=C3=B6ren=20Brinkmann?= , Felipe Pena , linux-arm-kernel@lists.infradead.org, git@xilinx.com X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-2.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Make sure debug clocks stay enabled if the bootloader enabled them. Otherwise debug HW may crash due to bus-hangs caused by stopped clocks. Signed-off-by: Soren Brinkmann --- drivers/clk/zynq/clkc.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/clk/zynq/clkc.c b/drivers/clk/zynq/clkc.c index 52c09afdcfb7..246cf1226eaa 100644 --- a/drivers/clk/zynq/clkc.c +++ b/drivers/clk/zynq/clkc.c @@ -53,6 +53,9 @@ static void __iomem *zynq_clkc_base; #define NUM_MIO_PINS 54 +#define DBG_CLK_CTRL_CLKACT_TRC BIT(0) +#define DBG_CLK_CTRL_CPU_1XCLKACT BIT(1) + enum zynq_clk { armpll, ddrpll, iopll, cpu_6or4x, cpu_3or2x, cpu_2x, cpu_1x, @@ -499,6 +502,15 @@ static void __init zynq_clk_setup(struct device_node *np) clk_output_name[cpu_1x], 0, SLCR_DBG_CLK_CTRL, 1, 0, &dbgclk_lock); + /* leave debug clocks in the state the bootloader set them up to */ + tmp = clk_readl(SLCR_DBG_CLK_CTRL); + if (tmp & DBG_CLK_CTRL_CLKACT_TRC) + if (clk_prepare_enable(clks[dbg_trc])) + pr_warn("%s: trace clk enable failed\n", __func__); + if (tmp & DBG_CLK_CTRL_CPU_1XCLKACT) + if (clk_prepare_enable(clks[dbg_apb])) + pr_warn("%s: debug APB clk enable failed\n", __func__); + /* One gated clock for all APER clocks. */ clks[dma] = clk_register_gate(NULL, clk_output_name[dma], clk_output_name[cpu_2x], 0, SLCR_APER_CLK_CTRL, 0, 0,