Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp4679889rwd; Sun, 11 Jun 2023 12:37:59 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7YMOQXXz62GlUll8WtQdEWzNsiNR0m3XHQeayzdiwnvBEDJsv2uJYFm+ulgFPQU9uE0IMO X-Received: by 2002:a17:903:230f:b0:1b2:4cdc:c4a2 with SMTP id d15-20020a170903230f00b001b24cdcc4a2mr5227630plh.16.1686512278633; Sun, 11 Jun 2023 12:37:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686512278; cv=none; d=google.com; s=arc-20160816; b=JjdNHJlVHhj3UCUxhmATYxn6qm8B4RJQVr6EheJ5drIOVPRGS36X8BKKDzXsQI918P ix9ujQZQPcKQEXwTOoJY58gbk80LsfNA+ud36A6pkZbWRr66IZJZkXF6bJUd1Hs2GGGE ZBXHJclS1rt9zAGSOe40EJaBFPjfHAmoT+rELeuNkIqTCekqFjFzryra57XDv0Mc4K2k ddGA6PkHgWDLv1jAtaqCj22JCsFEDnNWVm1nlDK5pgLBMyIhe8W3zrx4/AifRhOh7rV5 0iM8s000gWsbjHZ28hAhYgqLDjPKGvzuEXaGaWTTyn6bhutWWrnFyqqTntwMK2S1lCbA 9VJw== 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=v33VOm4zfjTZwEnLFPlOWtUaFLaQwVbEHjbLydjEPzquX8t7+bnUGiC72qqdMBX6bF aemXZCWaMUlr4ChNUAypsuMlFQGLKBsK7694YgHHDmp7lm40veuOfX8cZv0gAuurSrAy 4tUNQopLDxB2J7LoAeHYSz9QyGdAAHEi9O/ozupRQBhyYI0rwV6zY97M3h7iY24qwgjz jxBBYEHKUyzTzJ0nVE6Udv+pu3Nm9d4u/O9cEqk/nfG09XaLGrI9ftP8qTPZpE0rNbc1 8HSLQvXRVyAKuwUjeGyOTHFtAVSfoK2+qOmY1o3r1PFTWJkM15BYHbmctLy5uTloUKPj P96A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baikalelectronics.ru header.s=post header.b=hv9wxOp3; 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 iy9-20020a170903130900b001ae6b1c3fb6si5770376plb.470.2023.06.11.12.37.42; Sun, 11 Jun 2023 12:37:58 -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=hv9wxOp3; 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 S233819AbjFKTUi (ORCPT + 99 others); Sun, 11 Jun 2023 15:20:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36960 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233278AbjFKTUP (ORCPT ); Sun, 11 Jun 2023 15:20:15 -0400 Received: from post.baikalelectronics.com (post.baikalelectronics.com [213.79.110.86]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id B9E6EE63; Sun, 11 Jun 2023 12:20:13 -0700 (PDT) Received: from post.baikalelectronics.com (localhost.localdomain [127.0.0.1]) by post.baikalelectronics.com (Proxmox) with ESMTP id D3367E0EAB; Sun, 11 Jun 2023 22:20:12 +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=hv9wxOp3Kuy/ ksNwJPYVMXJ8i31UGuZFfeMeJHDW99AZOWKhwtB1EesR3CGICQUGPsGUinLxZul5 h747oFuDSyUd2CXzSOatyuDLZu8LiVVfRcKULDdDXrFoA0Hi16cQr7P6FC5YtFy+ XASyZO5SZbCh6HvzabQkwonfazmneEc= Received: from mail.baikal.int (mail.baikal.int [192.168.51.25]) by post.baikalelectronics.com (Proxmox) with ESMTP id 993AFE0DE3; Sun, 11 Jun 2023 22:20:12 +0300 (MSK) Received: from localhost (10.8.30.10) by mail (192.168.51.25) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Sun, 11 Jun 2023 22:20:12 +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 v7 07/11] PCI: visconti: Convert to using generic resources getter Date: Sun, 11 Jun 2023 22:20:01 +0300 Message-ID: <20230611192005.25636-8-Sergey.Semin@baikalelectronics.ru> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230611192005.25636-1-Sergey.Semin@baikalelectronics.ru> References: <20230611192005.25636-1-Sergey.Semin@baikalelectronics.ru> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.8.30.10] 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 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