Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp707025rwd; Wed, 31 May 2023 04:27:46 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6g0wrxXD9sbMAx69Zy2Dud41XAQXBdglNXvY+2H69DBiMUReDrfcL1vzLIZiEEWxKDtkv/ X-Received: by 2002:a05:6358:52cd:b0:121:3a63:1d2a with SMTP id z13-20020a05635852cd00b001213a631d2amr2093944rwz.21.1685532465951; Wed, 31 May 2023 04:27:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685532465; cv=none; d=google.com; s=arc-20160816; b=HxMJbhITxBZU1QgAwtEAPBtBBR/HJokPPs+D8KOxeOr69n9v/6KaJjyGmclb0JLyR5 5DK8p/ZKFpZnvwOMx1qc35mtAG9wbVZ4mL+/9gJBXhunurynJ/A7PZ0BQb+nsOXOh+ae 8/G62MpGhFESHu2eEcbyHUdUwF/PQBHlGs/T82ZBjO+DdjcSq6FK+NhVjgfpYk2lvti1 sZt7jmuc7wkjiow4MEFnKG9ylguLDo2L5UjUIJKEsw5R7gUTJ/mUJ2U/OMUcA1JAR1Op Oc9r3cnB9sqDoNtAk1HIHm+ev/v79eWv7iGMLU93n7yA5hzwJX7+onB2HGRpf2KlbrpV TjFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=jujpaD/xX8Blkm5Xl+fi8XduXPMkAfGnNG8vQw6cqzo=; b=u32LaLjCUMbbItuTpSvsmRCme3fIbaF6ug+UJe7dauzAmu5AfCq7w/5x/Lok+WWe1r aOVTfYAh62stPQcbWjuD2sNvWT/geiqevhrf953kqzFnbcrlw14WiHWWcp8xBPpkvE7r xiEHnqxcqQDVacpkfHkJTdZlpxWRGBLhbNIj18qGlnpnR3NdzspVm0AAseU+lTkn9Sga S/KwKZY1cgzSbKk539em3TsxkyFwVfVQRJR9xUp4G86pdpQ6/3d2mEb+qLie1zBJ9SFJ I/+B4nKuGjgI4HjSVTzcgzrSrSP4nTN9FxqR2oCDNfMLYsFcyQ2b96Tl9fAr9U099f9+ wo9A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baikalelectronics.ru header.s=post header.b=MmJq1ezG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=baikalelectronics.ru Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s7-20020a637707000000b0053fc68bc1b6si844093pgc.42.2023.05.31.04.27.33; Wed, 31 May 2023 04:27:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baikalelectronics.ru header.s=post header.b=MmJq1ezG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=baikalelectronics.ru Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234876AbjEaL0d (ORCPT + 99 others); Wed, 31 May 2023 07:26:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36878 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235371AbjEaL0N (ORCPT ); Wed, 31 May 2023 07:26:13 -0400 Received: from post.baikalelectronics.com (post.baikalelectronics.com [213.79.110.86]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 90F8DE5; Wed, 31 May 2023 04:26:12 -0700 (PDT) Received: from post.baikalelectronics.com (localhost.localdomain [127.0.0.1]) by post.baikalelectronics.com (Proxmox) with ESMTP id BC782E0EA0; Wed, 31 May 2023 14:26:11 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= baikalelectronics.ru; h=cc:cc:content-transfer-encoding :content-type:content-type:date:from:from:in-reply-to:message-id :mime-version:references:reply-to:subject:subject:to:to; s=post; bh=jujpaD/xX8Blkm5Xl+fi8XduXPMkAfGnNG8vQw6cqzo=; b=MmJq1ezGVHlu pMz81WeB421xhy9bOFH9yGr+mTGNqhZnAe4FmxfpB14jnnkD6FtunZOR8wmFrz3j d/Sj8k9BEppmDzux0LcriOOx379EihVe6AokhUohYutGMwgV4EpgwA8nS0Jw2oIu 3H9uMVf35S4AYQZwFjS91CZhUJ/yiBg= Received: from mail.baikal.int (mail.baikal.int [192.168.51.25]) by post.baikalelectronics.com (Proxmox) with ESMTP id 88342E0DE3; Wed, 31 May 2023 14:26:11 +0300 (MSK) Received: from localhost (10.8.30.6) by mail (192.168.51.25) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 31 May 2023 14:26:10 +0300 From: Serge Semin To: Bjorn Helgaas , Lorenzo Pieralisi , Jingoo Han , Gustavo Pimentel , Manivannan Sadhasivam , Yoshihiro Shimoda , Rob Herring , Lorenzo Pieralisi , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Nobuhiro Iwamatsu CC: Serge Semin , Serge Semin , Alexey Malahov , Pavel Parkhomenko , , , Bjorn Helgaas , Subject: [PATCH RESEND v6 07/11] PCI: visconti: Convert to using generic resources getter Date: Wed, 31 May 2023 14:25:58 +0300 Message-ID: <20230531112602.7222-8-Sergey.Semin@baikalelectronics.ru> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230531112602.7222-1-Sergey.Semin@baikalelectronics.ru> References: <20230531112602.7222-1-Sergey.Semin@baikalelectronics.ru> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.8.30.6] X-ClientProxiedBy: MAIL.baikal.int (192.168.51.25) To mail (192.168.51.25) X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The generic resources request infrastructure has been recently added to the DW PCIe core driver. Since the DT-bindings of the Toshibo Visconti PCIe Host controller is fully compatible with the generic names set let's convert the driver to using that infrastructure. It won't take much effort since the low-level device driver implies the resources request only with no additional manipulations involving them. So just drop the locally defined clocks request procedures, activate the generic resources request capability and make sure the mandatory resources have been requested by the DW PCIe core driver. Suggested-by: Bjorn Helgaas Signed-off-by: Serge Semin Acked-by: Manivannan Sadhasivam --- drivers/pci/controller/dwc/pcie-visconti.c | 37 ++++++++++------------ 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-visconti.c b/drivers/pci/controller/dwc/pcie-visconti.c index 71026fefa366..ae1517b52c58 100644 --- a/drivers/pci/controller/dwc/pcie-visconti.c +++ b/drivers/pci/controller/dwc/pcie-visconti.c @@ -29,9 +29,6 @@ struct visconti_pcie { void __iomem *ulreg_base; void __iomem *smu_base; void __iomem *mpu_base; - struct clk *refclk; - struct clk *coreclk; - struct clk *auxclk; }; #define PCIE_UL_REG_S_PCIE_MODE 0x00F4 @@ -198,6 +195,21 @@ static int visconti_pcie_host_init(struct dw_pcie_rp *pp) int err; u32 val; + if (!pcie->pci.core_clks[DW_PCIE_REF_CLK].clk) { + dev_err(pci->dev, "Missing ref clock source\n"); + return -ENOENT; + } + + if (!pcie->pci.core_clks[DW_PCIE_CORE_CLK].clk) { + dev_err(pci->dev, "Missing core clock source\n"); + return -ENOENT; + } + + if (!pcie->pci.core_clks[DW_PCIE_AUX_CLK].clk) { + dev_err(pci->dev, "Missing aux clock source\n"); + return -ENOENT; + } + visconti_smu_writel(pcie, PISMU_CKON_PCIE_AUX_CLK | PISMU_CKON_PCIE_MSTR_ACLK, PISMU_CKON_PCIE); @@ -242,8 +254,6 @@ static const struct dw_pcie_host_ops visconti_pcie_host_ops = { static int visconti_get_resources(struct platform_device *pdev, struct visconti_pcie *pcie) { - struct device *dev = &pdev->dev; - pcie->ulreg_base = devm_platform_ioremap_resource_byname(pdev, "ulreg"); if (IS_ERR(pcie->ulreg_base)) return PTR_ERR(pcie->ulreg_base); @@ -256,21 +266,6 @@ static int visconti_get_resources(struct platform_device *pdev, if (IS_ERR(pcie->mpu_base)) return PTR_ERR(pcie->mpu_base); - pcie->refclk = devm_clk_get(dev, "ref"); - if (IS_ERR(pcie->refclk)) - return dev_err_probe(dev, PTR_ERR(pcie->refclk), - "Failed to get ref clock\n"); - - pcie->coreclk = devm_clk_get(dev, "core"); - if (IS_ERR(pcie->coreclk)) - return dev_err_probe(dev, PTR_ERR(pcie->coreclk), - "Failed to get core clock\n"); - - pcie->auxclk = devm_clk_get(dev, "aux"); - if (IS_ERR(pcie->auxclk)) - return dev_err_probe(dev, PTR_ERR(pcie->auxclk), - "Failed to get aux clock\n"); - return 0; } @@ -304,6 +299,8 @@ static int visconti_pcie_probe(struct platform_device *pdev) pci->dev = dev; pci->ops = &dw_pcie_ops; + dw_pcie_cap_set(pci, REQ_RES); + ret = visconti_get_resources(pdev, pcie); if (ret) return ret; -- 2.40.0