From patchwork Sun Feb 15 15:46:22 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yoshihiro Kaneko X-Patchwork-Id: 439882 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id A2C65140216 for ; Mon, 16 Feb 2015 02:46:55 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755032AbbBOPqy (ORCPT ); Sun, 15 Feb 2015 10:46:54 -0500 Received: from mail-pd0-f178.google.com ([209.85.192.178]:45266 "EHLO mail-pd0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755019AbbBOPqx (ORCPT ); Sun, 15 Feb 2015 10:46:53 -0500 Received: by pdjz10 with SMTP id z10so29767419pdj.12; Sun, 15 Feb 2015 07:46:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=MrKG0fAayeGnkHStaFhhM13mVaKbufasp00u+fDntyY=; b=Bxz3cw5KHPhsPngP+X2AkyAsmIG81HN6CNY1lp8ofv84MSqPMm79y1KVh3ronMqGoU q3x0OJzA9W1B/RLkt1qU6Za2ieN+opo3E5kqwZzhN5OnHqnhaTd48DXqxZYWX8w9oIfY Qe51cf1T5IG5TItEVlWLs1+/simVK/++hNcFBdym7ua7mC93wLzCqjw35wX2NpPv/RpO 5SuG79fk8WnnyrKj1V5tbK4+Ex2m+XbCS1RZZu0Y3NkxhUMLeLo7eVMoMRBsfo05RAl9 kHvEwPmS5DTPlI/fCJQqwqtIFd7XuiDZr9b2ViHJ2vekiIzj9xJZ6wFUuv3lhyqY7b3b cQ6A== X-Received: by 10.68.111.227 with SMTP id il3mr32215962pbb.46.1424015212919; Sun, 15 Feb 2015 07:46:52 -0800 (PST) Received: from localhost.localdomain (KD118152108246.ppp-bb.dion.ne.jp. [118.152.108.246]) by mx.google.com with ESMTPSA id go1sm12062190pbd.75.2015.02.15.07.46.49 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 15 Feb 2015 07:46:51 -0800 (PST) From: Yoshihiro Kaneko To: linux-gpio@vger.kernel.org Cc: Linus Walleij , Alexandre Courbot , Simon Horman , Magnus Damm , linux-sh@vger.kernel.org Subject: [PATCH/RFC] gpio: rcar: Add clock support Date: Mon, 16 Feb 2015 00:46:22 +0900 Message-Id: <1424015182-20447-1-git-send-email-ykaneko0929@gmail.com> X-Mailer: git-send-email 1.9.1 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Koji Matsuoka The clock of GPIO is an initial value of enable. However, since correction which sets the clock to disable was added by the boot loader, the clock control was added. Signed-off-by: Koji Matsuoka Signed-off-by: Yoshihiro Kaneko --- This patch is based on for-next branch of Linus Walleij's gpio tree. drivers/gpio/gpio-rcar.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c index c49522e..6d4a0bc 100644 --- a/drivers/gpio/gpio-rcar.c +++ b/drivers/gpio/gpio-rcar.c @@ -14,6 +14,7 @@ * GNU General Public License for more details. */ +#include #include #include #include @@ -37,6 +38,7 @@ struct gpio_rcar_priv { struct platform_device *pdev; struct gpio_chip gpio_chip; struct irq_chip irq_chip; + struct clk *clk; }; #define IOINTSEL 0x00 @@ -367,6 +369,13 @@ static int gpio_rcar_probe(struct platform_device *pdev) platform_set_drvdata(pdev, p); + p->clk = devm_clk_get(&pdev->dev, NULL); + if (IS_ERR(p->clk)) { + dev_err(&pdev->dev, "failed to get access to GPIO clock\n"); + return PTR_ERR(p->clk); + } + clk_prepare_enable(p->clk); + pm_runtime_enable(dev); pm_runtime_get_sync(dev); @@ -449,6 +458,7 @@ static int gpio_rcar_probe(struct platform_device *pdev) err1: gpiochip_remove(&p->gpio_chip); err0: + clk_disable_unprepare(p->clk); pm_runtime_put(dev); pm_runtime_disable(dev); return ret; @@ -460,6 +470,7 @@ static int gpio_rcar_remove(struct platform_device *pdev) gpiochip_remove(&p->gpio_chip); + clk_disable_unprepare(p->clk); pm_runtime_put(&pdev->dev); pm_runtime_disable(&pdev->dev); return 0;