Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp1500431img; Tue, 19 Mar 2019 08:56:28 -0700 (PDT) X-Google-Smtp-Source: APXvYqwbavOWDIwCRemk/ISC8TQHS9gPeZzRDILmsI3ZWYY0zEO22SQwkPgVpIyt7SHWJTHHVfNy X-Received: by 2002:a65:6119:: with SMTP id z25mr11590962pgu.402.1553010988693; Tue, 19 Mar 2019 08:56:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553010988; cv=none; d=google.com; s=arc-20160816; b=fV+CcxWw9MZ8DT6beNP9bFD6yFY5KJuFn2kO+bx2rHWXwfYxI1ZfGFp0LSQ2DS/aUw h4EkgLYTdyrJyXY+i2ON3QuGt+uY96TM6jp8WhPF54VWuefSQM7DNMMEWpGf1fuRhe60 7xc2SH8g5xsHGvg5wbj5h4E2g12AHC8PCK5m4TWdLFJPvLLy7xeFhBQsRjGa4MLRoqcI hoAD/dhXtQUDUkWRBrLCbBSP2a268x9D3MW/IWPyM0Z8P5zMYZmHvEnlEhjpGYD6ygPa w6aGSfrZfbkpuabpxxE/CsllcfnDe2xVuhIEioISzqHoziUsh62sITZJ63Da2Pk9PPbg fbOw== 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; bh=JqhdFMmJrsNkZwJ+O2aVKnPglTpHibPc/8kxv18RF1I=; b=Kqnd8bP67ZVQoXiO58o9AIvgALVArz0S8bJXaBfRCUf4NjUrqL9jgOlfs/2N5cpuza S/pPvRiG3yEyME5+WV8jkV2oNlP+8MxzIsjy84DBF66UnCfrH/UXqKhHB3G0CXwwhBmD jHLEmvv4hdVzVqy4xlqCV+tgd71I60+PK48gTbZuvt8xhnH8NHcAy+Vvg8MptSiqrA2l 2zWXn8d25Y45+tABzrQ56MggW5oEfa64i3drIj3EVAf0IiCfNrUrma2Ycd0L5weqzccB +iONVGPodzr3zEaNC7rjA5ToU92weSwTLxr35I9p1PbtKzCkPjf7+Etcl3HGiwtrx0Iq vkgA== ARC-Authentication-Results: i=1; mx.google.com; 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 x9si12038007pfm.59.2019.03.19.08.56.13; Tue, 19 Mar 2019 08:56:28 -0700 (PDT) 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; 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 S1727833AbfCSPzO (ORCPT + 99 others); Tue, 19 Mar 2019 11:55:14 -0400 Received: from relmlor2.renesas.com ([210.160.252.172]:55228 "EHLO relmlie6.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726579AbfCSPzN (ORCPT ); Tue, 19 Mar 2019 11:55:13 -0400 X-IronPort-AV: E=Sophos;i="5.58,498,1544454000"; d="scan'208";a="10591201" Received: from unknown (HELO relmlir5.idc.renesas.com) ([10.200.68.151]) by relmlie6.idc.renesas.com with ESMTP; 20 Mar 2019 00:55:11 +0900 Received: from renesas-VirtualBox.ree.adwin.renesas.com (unknown [10.226.37.56]) by relmlir5.idc.renesas.com (Postfix) with ESMTP id 596E5400F023; Wed, 20 Mar 2019 00:55:10 +0900 (JST) From: Gareth Williams To: Mark Brown Cc: Phil Edworthy , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Gareth Williams Subject: [PATCH v2 3/3] spi: dw: Add support for an optional interface clock Date: Tue, 19 Mar 2019 15:52:07 +0000 Message-Id: <1553010727-23157-4-git-send-email-gareth.williams.jx@renesas.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1553010727-23157-1-git-send-email-gareth.williams.jx@renesas.com> References: <1553010727-23157-1-git-send-email-gareth.williams.jx@renesas.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Phil Edworthy The Synopsys SSI Controller has an interface clock, but most SoCs hide this away. However, on some SoCs you need to explicitly enable the interface clock in order to access the registers. Therefore, add support for an optional interface clock. Signed-off-by: Phil Edworthy Signed-off-by: Gareth Williams --- v2: - Added dependancy information to patch notes. - Expanded on optional clock comment for clarity Depends on commit 60b8f0ddf1a ("clk: Add (devm_)clk_get_optional() functions") --- drivers/spi/spi-dw-mmio.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/spi/spi-dw-mmio.c b/drivers/spi/spi-dw-mmio.c index 4bd59a9..de952b1 100644 --- a/drivers/spi/spi-dw-mmio.c +++ b/drivers/spi/spi-dw-mmio.c @@ -30,6 +30,7 @@ struct dw_spi_mmio { struct dw_spi dws; struct clk *clk; + struct clk *pclk; void *priv; }; @@ -172,6 +173,14 @@ static int dw_spi_mmio_probe(struct platform_device *pdev) if (ret) return ret; + /* Optional clock needed to access the registers */ + dwsmmio->pclk = devm_clk_get_optional(&pdev->dev, "pclk"); + if (IS_ERR(dwsmmio->pclk)) + return PTR_ERR(dwsmmio->pclk); + ret = clk_prepare_enable(dwsmmio->pclk); + if (ret) + goto out_clk; + dws->bus_num = pdev->id; dws->max_freq = clk_get_rate(dwsmmio->clk); @@ -199,6 +208,8 @@ static int dw_spi_mmio_probe(struct platform_device *pdev) return 0; out: + clk_disable_unprepare(dwsmmio->pclk); +out_clk: clk_disable_unprepare(dwsmmio->clk); return ret; } @@ -208,6 +219,7 @@ static int dw_spi_mmio_remove(struct platform_device *pdev) struct dw_spi_mmio *dwsmmio = platform_get_drvdata(pdev); dw_spi_remove_host(&dwsmmio->dws); + clk_disable_unprepare(dwsmmio->pclk); clk_disable_unprepare(dwsmmio->clk); return 0; -- 2.7.4