From patchwork Mon Feb 19 07:24:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Stanley X-Patchwork-Id: 128778 Delivered-To: patch@linaro.org Received: by 10.46.124.24 with SMTP id x24csp3200938ljc; Sun, 18 Feb 2018 23:25:03 -0800 (PST) X-Google-Smtp-Source: AH8x226hYyCahYkCUetaKidixUra2qKMAbOz5pWHNs0DE/RfH8PoByzpt9+Kit8/t96u9Sg1Z9u0 X-Received: by 10.101.65.71 with SMTP id x7mr11285919pgp.379.1519025102924; Sun, 18 Feb 2018 23:25:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519025102; cv=none; d=google.com; s=arc-20160816; b=n/qzdiGmXKvK5WIEV/RFiqqBoX1Qu6VWJP4rVGNAKnQnBf/R0X8C1t0GoePXZ10Iv/ TGa6XVKIag+TdQVSk+tYlluaIzvVMvTrZY1lljmZWjDomZRdaJj7573X+LzVwEkQEWCG WlZNEODTYoLpRMnQ3NLmO0NRPFpckk6N+5Ax0wqXVQaXeFpuUWtWB1kS+Q8aD9Yv7LQ+ OPugloy9+T+REKYatfWX3gtpnsiCo3T2LjX8v//THxvb9k62aFSCOBb8j8j2A+/wTJAj pmjdSpxvUHVUmIORInaysAdDHQXOpxSiQ44kkQ72EIDJJe6/q1mzvPZf7xVWoJotjUBm neOQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=NwL7A4hTUadKcUHHkqCgS88GiYok4oil6lnWHhgTt2o=; b=DOSrs8NHYitdBWkjnKLFTX2EE5ymMyY1RerIEftrU9SNxgkpmYy7kUzSG61y4/nRy9 bVeyWPtF4XV2IrJKUwUkbkBsJLW5diLEML7MF5h6ycMkfofwH8cxXTFITzJorW9dF/bR lKQX67lXbgkLFjHLCZGg7qmZGZC1Wtc4puVpub1R4fmoWWLOqEBKIKu9q1b1xrLphIM5 lGrqFpcp+Xuy9aujf3xV/oJ8a20BS3nfd+P2RDXPGC+BrnOkWHbKojNnxBPPlfHxzex8 nNrY1IEkgrrGg5p2HV8oMG4fFx8oxS5EPYrqs3FFU7dYdJA7ce1SmnFfb07oEHVcenPH xx7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=Fzmv25Ok; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o2si5034662pgc.661.2018.02.18.23.25.02; Sun, 18 Feb 2018 23:25:02 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=Fzmv25Ok; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752073AbeBSHZA (ORCPT + 28 others); Mon, 19 Feb 2018 02:25:00 -0500 Received: from mail-pg0-f66.google.com ([74.125.83.66]:46364 "EHLO mail-pg0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751467AbeBSHY5 (ORCPT ); Mon, 19 Feb 2018 02:24:57 -0500 Received: by mail-pg0-f66.google.com with SMTP id m1so1478104pgp.13; Sun, 18 Feb 2018 23:24:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=NwL7A4hTUadKcUHHkqCgS88GiYok4oil6lnWHhgTt2o=; b=Fzmv25OkZy2+a9wj3hjFgRFnViOcmfvFblE7vK9JL+OTQvzixBDffY6bhM6jbofBhl IRpAX4UqDTRF2F+/Aefzwcx01MbYr4+fMTbPNIWIU08JGP4r+9+hMr7iA8U3HXHHchl0 HhhSl1o4BhQrhybasi3ZopNlyf1WwtWTNGXezXpyQzslsOb+Ohnxc8nqi1ORrRc3Jegn AtJaN5/+Gz0Ccdh/aGpijgVvnNvvqDCH3rkLvpSmxbgtmu6zXyl8EaQLoKpiusGtCv3k jHms0aAIrKLioDy5TrswxQSY7sBxXbFFd0LKfBH58/nVYWV7cr31qgLKtDbNThOsa/YG Rb6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=NwL7A4hTUadKcUHHkqCgS88GiYok4oil6lnWHhgTt2o=; b=I6ueypdrnyqMq3I9mMwfBGph4Vex+c6YN3XOiN5yKSC/xa50kOjVFVRdDbD8lOLMZz moro6OF2aqvGlGm6z0rccGcDT27Oi6uynJUih9Cyh4ATpM+bTPaw4EA2fZDx0mSq7/rp E0wEwHXxp7l7HZRsb0wtfv00zXA8SbOTtmFtt2ffwogDC0b8+1RyvU8VrYHM2KaNm8j8 pkYXjGJ+WpaDgSjG6mVDnnhPW2szNmEFrNwX0DxMS+nvXbbgcGk+yozG8MrUxghOwQyq lOpIjNwAQ81OcXmy6U67Xj/+509xXjHPjSXaadMq7J4aXIOXrQpQ8oCHXUtYSaj+rcjT /K/g== X-Gm-Message-State: APf1xPDWCSBw0YJT4ItoZD9XDJn58XyTSLRjTRUyCeMe0dqhuLqckiuA zW5gl005AZR/cyF97mo9Rsk= X-Received: by 10.98.204.69 with SMTP id a66mr6497853pfg.33.1519025096793; Sun, 18 Feb 2018 23:24:56 -0800 (PST) Received: from aurora.jms.id.au ([45.124.203.19]) by smtp.gmail.com with ESMTPSA id n17sm13893843pfj.67.2018.02.18.23.24.50 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sun, 18 Feb 2018 23:24:56 -0800 (PST) Received: by aurora.jms.id.au (sSMTP sendmail emulation); Mon, 19 Feb 2018 17:54:47 +1030 From: Joel Stanley To: Lee Jones , Greg Kroah-Hartman , Rob Herring , Mark Rutland Cc: Arnd Bergmann , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Andrew Jeffery , Cyril Bur , Benjamin Herrenschmidt , Ryan Chen , Lei YU Subject: [PATCH v2 2/3] misc: aspeed-lpc: Request and enable LPC clock Date: Mon, 19 Feb 2018 17:54:21 +1030 Message-Id: <20180219072422.22733-3-joel@jms.id.au> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180219072422.22733-1-joel@jms.id.au> References: <20180219072422.22733-1-joel@jms.id.au> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The LPC device needs to ensure it's clock is enabled before it can do anything. In the past the clock was enabled and left running by u-boot, however Linux now has an upstream clock driver that disables unused clocks. Tested-by: Lei YU Reviewed-by: Andrew Jeffery Signed-off-by: Joel Stanley --- drivers/misc/aspeed-lpc-ctrl.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) -- 2.15.1 diff --git a/drivers/misc/aspeed-lpc-ctrl.c b/drivers/misc/aspeed-lpc-ctrl.c index b5439643f54b..1827b7aa6674 100644 --- a/drivers/misc/aspeed-lpc-ctrl.c +++ b/drivers/misc/aspeed-lpc-ctrl.c @@ -7,6 +7,7 @@ * 2 of the License, or (at your option) any later version. */ +#include #include #include #include @@ -26,6 +27,7 @@ struct aspeed_lpc_ctrl { struct miscdevice miscdev; struct regmap *regmap; + struct clk *clk; phys_addr_t mem_base; resource_size_t mem_size; u32 pnor_size; @@ -221,16 +223,33 @@ static int aspeed_lpc_ctrl_probe(struct platform_device *pdev) return -ENODEV; } + lpc_ctrl->clk = devm_clk_get(dev, NULL); + if (IS_ERR(lpc_ctrl->clk)) { + dev_err(dev, "couldn't get clock\n"); + return PTR_ERR(lpc_ctrl->clk); + } + rc = clk_prepare_enable(lpc_ctrl->clk); + if (rc) { + dev_err(dev, "couldn't enable clock\n"); + return rc; + } + lpc_ctrl->miscdev.minor = MISC_DYNAMIC_MINOR; lpc_ctrl->miscdev.name = DEVICE_NAME; lpc_ctrl->miscdev.fops = &aspeed_lpc_ctrl_fops; lpc_ctrl->miscdev.parent = dev; rc = misc_register(&lpc_ctrl->miscdev); - if (rc) + if (rc) { dev_err(dev, "Unable to register device\n"); - else - dev_info(dev, "Loaded at %pr\n", &resm); + goto err; + } + + dev_info(dev, "Loaded at %pr\n", &resm); + + return 0; +err: + clk_disable_unprepare(lpc_ctrl->clk); return rc; } @@ -239,6 +258,7 @@ static int aspeed_lpc_ctrl_remove(struct platform_device *pdev) struct aspeed_lpc_ctrl *lpc_ctrl = dev_get_drvdata(&pdev->dev); misc_deregister(&lpc_ctrl->miscdev); + clk_disable_unprepare(lpc_ctrl->clk); return 0; }