Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp6002371yba; Mon, 13 May 2019 23:16:45 -0700 (PDT) X-Google-Smtp-Source: APXvYqx8c5VX2sx0Dzuj3x0QnZNrJN3Z7jbJnNmK2jrz6VoP27dyQlD6OMEe1QSsrdsdtTzPKBIf X-Received: by 2002:a65:5241:: with SMTP id q1mr35583728pgp.298.1557814604945; Mon, 13 May 2019 23:16:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557814604; cv=none; d=google.com; s=arc-20160816; b=PV/nx87nUgSPWK5chbajtysHYrh4Zhf0hYizVlZ27qwQB9es50w4sR36AFP7vpII1b I3W2l/mPI6njf0swCgJvhU/TL/hENSBBYWo4V1IUwc0ZiWCGXs5tF+6aAF0LipJBf18/ TKk/5SrHiiQiXkmCyGdiUPubdUfSDYiGMaSz8siAcd3Y8VPZCtDTN866wcW/DqiRkdAt M1yNCe0YiXJ9JlhJPCvHti6Lzghp5JRZBNnpVlue1KyAEyf3vc+9pf8uAxZAHaKT5TZ4 zQP6WcmqIFYQlCIGFhZtP/NgZYjEvzS8NitNaaQyy5DdnpYmKE9ZQeczYCSJRoo+tAqA 5W6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=3otulhSaxJAl/aurtdEIfwbZnYTrd9q4nNTUBN9/D9s=; b=zeHZZKh1ia6ilUhvcrX/UldLmI5HcpQsbaa19TqCLdYED0eYRgznGmLxFQJdxTkBTq GhqH9PUGJwFHeb6ASDGkVkas6PrWFuUuNyXknOxrNh6LCD2FqmBjPPpWsxwN0grfKBpK F6Mnpzm9dWkyRkthGSysocAzx75+hJGfd/6jQq8Mz8yigTu53cBcsXm/ZTf08JfUlu8C 0J2p9knetsm/Iwk0au+RDcAe8tQMYQUL6wZnQ0cXs9/6pLZOquYAeGuy4FhQi0/OuaHJ SuPY9ozFZLNsp6a17ncXriBf9PgicVpETR73fE+HNBeZ6C5y8H4V6k4JEjy2Xc00JCkO oong== 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 d40si19373469pla.87.2019.05.13.23.16.29; Mon, 13 May 2019 23:16:44 -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 S1726775AbfENGPK (ORCPT + 99 others); Tue, 14 May 2019 02:15:10 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:60154 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726357AbfENGOJ (ORCPT ); Tue, 14 May 2019 02:14:09 -0400 X-UUID: d96cabae677348a59eab058c683aa192-20190514 X-UUID: d96cabae677348a59eab058c683aa192-20190514 Received: from mtkcas08.mediatek.inc [(172.21.101.126)] by mailgw01.mediatek.com (envelope-from ) (mhqrelay.mediatek.com ESMTP with TLS) with ESMTP id 1032790830; Tue, 14 May 2019 14:13:56 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs03n1.mediatek.inc (172.21.101.181) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 14 May 2019 14:13:54 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Tue, 14 May 2019 14:13:54 +0800 From: Stu Hsieh To: Mauro Carvalho Chehab , Rob Herring , CK Hu CC: Mark Rutland , Matthias Brugger , Stu Hsieh , , , , , , Subject: [PATCH v3 07/13] [media] mtk-mipicsi: enable/disable ana clk Date: Tue, 14 May 2019 14:13:44 +0800 Message-ID: <1557814430-9675-8-git-send-email-stu.hsieh@mediatek.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1557814430-9675-1-git-send-email-stu.hsieh@mediatek.com> References: <1557814430-9675-1-git-send-email-stu.hsieh@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch enable/disable ana clk when power on/off Signed-off-by: Stu Hsieh --- .../media/platform/mtk-mipicsi/mtk_mipicsi.c | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/drivers/media/platform/mtk-mipicsi/mtk_mipicsi.c b/drivers/media/platform/mtk-mipicsi/mtk_mipicsi.c index 117eb1939014..f9123765ebbd 100644 --- a/drivers/media/platform/mtk-mipicsi/mtk_mipicsi.c +++ b/drivers/media/platform/mtk-mipicsi/mtk_mipicsi.c @@ -152,6 +152,41 @@ struct mtk_mipicsi_dev { V4L2_MBUS_PCLK_SAMPLE_FALLING | \ V4L2_MBUS_DATA_ACTIVE_HIGH) +static void mtk_mipicsi_ana_clk_enable(void __iomem *base, bool enable) +{ + if (enable) { + writel(1UL | readl(base + MIPI_RX_ANA00_CSI), + base + MIPI_RX_ANA00_CSI); + writel(1UL | readl(base + MIPI_RX_ANA04_CSI), + base + MIPI_RX_ANA04_CSI); + writel(1UL | readl(base + MIPI_RX_ANA08_CSI), + base + MIPI_RX_ANA08_CSI); + writel(1UL | readl(base + MIPI_RX_ANA0C_CSI), + base + MIPI_RX_ANA0C_CSI); + writel(1UL | readl(base + MIPI_RX_ANA10_CSI), + base + MIPI_RX_ANA10_CSI); + writel(1UL | readl(base + MIPI_RX_ANA20_CSI), + base + MIPI_RX_ANA20_CSI); + writel(1UL | readl(base + MIPI_RX_ANA24_CSI), + base + MIPI_RX_ANA24_CSI); + } else { + writel(~1UL & readl(base + MIPI_RX_ANA00_CSI), + base + MIPI_RX_ANA00_CSI); + writel(~1UL & readl(base + MIPI_RX_ANA04_CSI), + base + MIPI_RX_ANA04_CSI); + writel(~1UL & readl(base + MIPI_RX_ANA08_CSI), + base + MIPI_RX_ANA08_CSI); + writel(~1UL & readl(base + MIPI_RX_ANA0C_CSI), + base + MIPI_RX_ANA0C_CSI); + writel(~1UL & readl(base + MIPI_RX_ANA10_CSI), + base + MIPI_RX_ANA10_CSI); + writel(~1UL & readl(base + MIPI_RX_ANA20_CSI), + base + MIPI_RX_ANA20_CSI); + writel(~1UL & readl(base + MIPI_RX_ANA24_CSI), + base + MIPI_RX_ANA24_CSI); + } +} + static int get_subdev_register(const struct soc_camera_device *icd, struct v4l2_dbg_register *reg) { @@ -776,6 +811,8 @@ static int mtk_mipicsi_pm_suspend(struct device *dev) for (i = 0; i < mipicsi->clk_num; ++i) clk_disable_unprepare(mipicsi->clk[i]); + mtk_mipicsi_ana_clk_enable(mipicsi->ana, false); + if (mipicsi->larb_pdev != NULL) mtk_smi_larb_put(mipicsi->larb_pdev); @@ -811,6 +848,8 @@ static int mtk_mipicsi_pm_resume(struct device *dev) return ret; } + mtk_mipicsi_ana_clk_enable(mipicsi->ana, true); + /* enable digtal clock */ for (i = 0; i < mipicsi->clk_num; ++i) (void)clk_prepare_enable(mipicsi->clk[i]); -- 2.18.0