Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp3273898rwl; Thu, 13 Apr 2023 19:21:27 -0700 (PDT) X-Google-Smtp-Source: AKy350aZ21ebaa8TRdLpJAfU1iBzVxLvB5pE4yEjSBJ6T8i1KtQvSDCKXNPqODwD7G1RfSrwW7XA X-Received: by 2002:a17:90a:c78f:b0:23e:f8e2:9ed3 with SMTP id gn15-20020a17090ac78f00b0023ef8e29ed3mr3817306pjb.43.1681438887704; Thu, 13 Apr 2023 19:21:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681438887; cv=none; d=google.com; s=arc-20160816; b=TBGWUY9YTrszRPoIJ8frnvXFl0vy18dpToZ+sb9sentL7oXagE3R2guc3KEnx4QzX+ YeQI2jWPehe30e+Enpg4gkgTL2Sl3jD1HduQYaytErqPpm8vsgxVWkn9+CqXGiNKOMgG qYGyFpATX5syfaB1FGP54gCzqKsqrGZIuL0uXJElq+hX3InPI8p9QtAZz8u+QUcNfqam tnoiSs8V4A+aadP1w7VI0mZxXkCJEeVEeptIQQy4Pm+c+SWhrzEdidlqYwzA7j3lW/3/ 05Fh9IQNpoRjxopb/AQ/8RS3S3DBDukNdD6fobqjxhl7/ugrGxakGH1QNQ5+h4J0Ld/1 k/oQ== 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=d/QSf+X1jxlRwJ4H1HhnS7rI3y4ANDeQKarksGhbPl8=; b=bXR7ZctiBzFRKsPIOmkkPcLetTO0gsV/Uy+UWvfDVAgWWQ0EbKf10XltE2GYN38AGg GLnRkX+BYaxH0Qvsu13mwUlspZkEAyiptRvCbtWfIg5m0P8c/Jz9wUNHJyJcx1le6sQR YStaGxH91dQQSDZoKKd7V74pPnA61tTIxqHEU8w0JI8jz8F5P4x4dZs2g0LWtV15hCsV R1lGtGw5rn4XEcazGb7cMPBiUQhouwwBbgYSelzFfHl1UkCJWfxOt31byAMJ5aQHCzwg O5tS7luPHWWSr7QuBtwkpNgE17EfMBDG0iYT/3T6+qD3mcNE2Vw70B38BDMERxrAjq3l eiXA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baikalelectronics.ru header.s=post header.b=RaQGHcbg; 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 6-20020a630d46000000b004fb8f5e1a8dsi3228982pgn.111.2023.04.13.19.21.13; Thu, 13 Apr 2023 19:21:27 -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=RaQGHcbg; 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 S230111AbjDNCTq (ORCPT + 99 others); Thu, 13 Apr 2023 22:19:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44808 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229930AbjDNCT1 (ORCPT ); Thu, 13 Apr 2023 22:19:27 -0400 Received: from post.baikalelectronics.com (post.baikalelectronics.com [213.79.110.86]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 6662F449B; Thu, 13 Apr 2023 19:19:15 -0700 (PDT) Received: from post.baikalelectronics.com (localhost.localdomain [127.0.0.1]) by post.baikalelectronics.com (Proxmox) with ESMTP id 082B4E0EB2; Fri, 14 Apr 2023 05:19:03 +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=d/QSf+X1jxlRwJ4H1HhnS7rI3y4ANDeQKarksGhbPl8=; b=RaQGHcbg0qom TN8L5h1oIcw/y/r9tJmhk7oeeGmsb1T7wtNouVmZGoGKaAOBQgPB18BcQuovA42p 21FI68ZbRumPw6TSi9vvOPewUMdZ+4rdj5+s2wjGS65giV8xE2YgrzM2dp/cMOA8 dUjygWtizQfZc3KMKABOgP5enEAsw/U= Received: from mail.baikal.int (mail.baikal.int [192.168.51.25]) by post.baikalelectronics.com (Proxmox) with ESMTP id E53CDE0E1D; Fri, 14 Apr 2023 05:19:02 +0300 (MSK) Received: from localhost (10.8.30.14) by mail (192.168.51.25) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 14 Apr 2023 05:19:02 +0300 From: Serge Semin To: Bjorn Helgaas , Lorenzo Pieralisi , Cai Huoqing , Jingoo Han , Gustavo Pimentel , Vinod Koul , 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 v4 07/14] PCI: visconti: Convert to using generic resources getter Date: Fri, 14 Apr 2023 05:18:25 +0300 Message-ID: <20230414021832.13167-8-Sergey.Semin@baikalelectronics.ru> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230414021832.13167-1-Sergey.Semin@baikalelectronics.ru> References: <20230414021832.13167-1-Sergey.Semin@baikalelectronics.ru> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.8.30.14] 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 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 --- 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