Received: by 2002:a05:6358:489b:b0:bb:da1:e618 with SMTP id x27csp2904778rwn; Sat, 10 Sep 2022 00:55:46 -0700 (PDT) X-Google-Smtp-Source: AA6agR4UvPyzVMoS7RUwt8Icle0OIwsUiaoo6mR8z4zTyuSWGBbSU9IyUxnX6SFPFcvJc4KbCFVN X-Received: by 2002:a17:907:2cf1:b0:77b:2dd9:7cc2 with SMTP id hz17-20020a1709072cf100b0077b2dd97cc2mr1314583ejc.121.1662796545998; Sat, 10 Sep 2022 00:55:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662796545; cv=none; d=google.com; s=arc-20160816; b=tBCmDL6u6yP2yvRgXCx+1NtP3fW0dos2zu7VB0ND7HL6e0Q3iWhwNPUfNnW5BxM2W+ 0/OW9T+HuGbEIYI2H16lNsJFrtoh1UgogDxtba+IgdIjLTE/6WlxD+CYpxLSkVD6xsVz lfefG6KP9b4XljLulzFTXFh7QzwJ8lalWCyfKri+Fhnnci18NlRUGPr1CsTGE9KzpXvh qqJsGnLpP5KX+px4irEiW2Oo3WHPt/9mmd3Kp7f6gGN1VMVrYHqsFkr2WE6e7wn3oUTi OyHTICNHYXNzpQ+n3eVKIBMXgz3mnKoSZqdDn5x+TPlq4mhNcQ4EoTCwPMZ72RkFX0T5 TcIg== 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=26/uwpg877kUcP36OEZ2fnl1A+0pDTFxJzbD+WiV7CI=; b=LiYGEqkBcn/iuTAO1GHcR24BeRs7j9mja+vzsg0ANGIiOgnHboPu0qQ562mVpXYYBB e8xjzTA8aMirEQj4WNMyI+94VMZI4imFOr45rUZQWpT2WDrptaLRI7KoRlcxcbtWHJOC yp7JU62XfN8pYBI0oVGIRqwwho46pzHic3ob34j16/Lo+7w3pQjMCL0XS0SmZuuwhtuC OS/4xI8zK9b8Jn21XeAmgnXrn30TmjPq94A1+GnIvu1nl8ZnvaxOvGK1W8yzwGv5Va6o Kkl5E/djG4zUEeBFADAiOM6ttFe0glYKWGVyphuz/Hvh6L/l4Egjf6G9QxAO7RN+1U/6 MBkg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=FzZlz3yN; 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=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id lu2-20020a170906fac200b007419233c247si2229908ejb.547.2022.09.10.00.55.19; Sat, 10 Sep 2022 00:55: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=@linaro.org header.s=google header.b=FzZlz3yN; 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=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229978AbiIJGba (ORCPT + 99 others); Sat, 10 Sep 2022 02:31:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44648 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229955AbiIJGb3 (ORCPT ); Sat, 10 Sep 2022 02:31:29 -0400 Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0B614A026C for ; Fri, 9 Sep 2022 23:31:20 -0700 (PDT) Received: by mail-wm1-x329.google.com with SMTP id d12-20020a05600c34cc00b003a83d20812fso3223965wmq.1 for ; Fri, 09 Sep 2022 23:31:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date; bh=26/uwpg877kUcP36OEZ2fnl1A+0pDTFxJzbD+WiV7CI=; b=FzZlz3yNsH4nAO27cG6JX1X9/Iz0rM4otNc9g1k1HgNBlCE+6JbdeMYLRfXWaTSMyK gbqW/ur2AeaieoW1gQOP/+3C9v1ASV+Wy7tserxclG4ChCwGMh1zm3NDij6Vb7o9YP5Z Lw1x10Bttln8pfggX+nIG8ifmnh+TYK7lx6fLSMAk8FvUwMt2E95Gdc5zUSRMybCN89V bYLovBm89Pk2bqvoZvv4CucYi1WchYDloA0dyg1ZSUsxtCgyU8D60Bm6KyDEEacjP5xP BptD0pwfJ8YxkAmAnPQzUQcTL3P8z+NuOh+YsD+dS6JaL5BT3AwsWizHUhvy4rXUccYv 6a6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date; bh=26/uwpg877kUcP36OEZ2fnl1A+0pDTFxJzbD+WiV7CI=; b=VRXDnFQIJk1WkYJFUJToRBIP/U1ZbjgwTdk3LSFyH+9Gcsg+AezZWjmGavcVdISrRC iVkXvTTtzHsMAZQ1qBUF8pN8tZPUOeKQPHKKdkqDfnup5QnaMCKciyqz2dPtnqyDHWCK sQkkLO/uf9KwOTcz1H40gvrkdY87tuKAfwaPf/tyUlLWDkAPQ/w2xdwVXPIUzh6GMjtp l7AIqMrAA5ClNzggtVvG26lNCIAK3q+V/m9YBYWQeXA2/+ziODuLYavv581UkRYpDQZe 8VhqB7cVkt7WZp2BuXE7XHMERjsNIHaJuCW1GUCUCUNpjy42HRD8IXruB6a95rIkqu3b /ycQ== X-Gm-Message-State: ACgBeo1qYk79R0P9+rtCey3cB+/d5Y1vLMKE2uv5ry7ug7JO6a6wC0lT 6K3/ETtPDoh5ABw7M6pPv8ok X-Received: by 2002:a7b:c34b:0:b0:3a6:8516:a729 with SMTP id l11-20020a7bc34b000000b003a68516a729mr7702925wmj.83.1662791478442; Fri, 09 Sep 2022 23:31:18 -0700 (PDT) Received: from localhost.localdomain ([117.217.182.47]) by smtp.gmail.com with ESMTPSA id n16-20020a05600c4f9000b003a5c7a942edsm2828122wmq.28.2022.09.09.23.31.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Sep 2022 23:31:17 -0700 (PDT) From: Manivannan Sadhasivam To: lpieralisi@kernel.org, robh@kernel.org, andersson@kernel.org Cc: kw@linux.com, bhelgaas@google.com, linux-pci@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, konrad.dybcio@somainline.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, devicetree@vger.kernel.org, dmitry.baryshkov@linaro.org, Manivannan Sadhasivam Subject: [PATCH v3 02/12] PCI: qcom-ep: Do not use hardcoded clks in driver Date: Sat, 10 Sep 2022 12:00:35 +0530 Message-Id: <20220910063045.16648-3-manivannan.sadhasivam@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220910063045.16648-1-manivannan.sadhasivam@linaro.org> References: <20220910063045.16648-1-manivannan.sadhasivam@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable 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 Generally, device drivers should just rely on the platform data like devicetree to supply the clocks required for the functioning of the peripheral. There is no need to hardcode the clk info in the driver. So get rid of the static clk info and obtain the platform supplied clks. The total number of clocks supplied is obtained using the devm_clk_bulk_get_all() API and used for the rest of the clk_bulk_ APIs. Signed-off-by: Manivannan Sadhasivam --- drivers/pci/controller/dwc/pcie-qcom-ep.c | 33 +++++++++-------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-qcom-ep.c b/drivers/pci/controller/dwc/pcie-qcom-ep.c index 27b7c9710b5f..34c498d581de 100644 --- a/drivers/pci/controller/dwc/pcie-qcom-ep.c +++ b/drivers/pci/controller/dwc/pcie-qcom-ep.c @@ -130,16 +130,6 @@ enum qcom_pcie_ep_link_status { QCOM_PCIE_EP_LINK_DOWN, }; -static struct clk_bulk_data qcom_pcie_ep_clks[] = { - { .id = "cfg" }, - { .id = "aux" }, - { .id = "bus_master" }, - { .id = "bus_slave" }, - { .id = "ref" }, - { .id = "sleep" }, - { .id = "slave_q2a" }, -}; - /** * struct qcom_pcie_ep - Qualcomm PCIe Endpoint Controller * @pci: Designware PCIe controller struct @@ -151,6 +141,8 @@ static struct clk_bulk_data qcom_pcie_ep_clks[] = { * @reset: PERST# GPIO * @wake: WAKE# GPIO * @phy: PHY controller block + * @clks: PCIe clocks + * @num_clks: PCIe clocks count * @perst_en: Flag for PERST enable * @perst_sep_en: Flag for PERST separation enable * @link_status: PCIe Link status @@ -170,6 +162,9 @@ struct qcom_pcie_ep { struct gpio_desc *wake; struct phy *phy; + struct clk_bulk_data *clks; + int num_clks; + u32 perst_en; u32 perst_sep_en; @@ -244,8 +239,7 @@ static int qcom_pcie_enable_resources(struct qcom_pcie_ep *pcie_ep) { int ret; - ret = clk_bulk_prepare_enable(ARRAY_SIZE(qcom_pcie_ep_clks), - qcom_pcie_ep_clks); + ret = clk_bulk_prepare_enable(pcie_ep->num_clks, pcie_ep->clks); if (ret) return ret; @@ -266,8 +260,7 @@ static int qcom_pcie_enable_resources(struct qcom_pcie_ep *pcie_ep) err_phy_exit: phy_exit(pcie_ep->phy); err_disable_clk: - clk_bulk_disable_unprepare(ARRAY_SIZE(qcom_pcie_ep_clks), - qcom_pcie_ep_clks); + clk_bulk_disable_unprepare(pcie_ep->num_clks, pcie_ep->clks); return ret; } @@ -276,8 +269,7 @@ static void qcom_pcie_disable_resources(struct qcom_pcie_ep *pcie_ep) { phy_power_off(pcie_ep->phy); phy_exit(pcie_ep->phy); - clk_bulk_disable_unprepare(ARRAY_SIZE(qcom_pcie_ep_clks), - qcom_pcie_ep_clks); + clk_bulk_disable_unprepare(pcie_ep->num_clks, pcie_ep->clks); } static int qcom_pcie_perst_deassert(struct dw_pcie *pci) @@ -495,10 +487,11 @@ static int qcom_pcie_ep_get_resources(struct platform_device *pdev, return ret; } - ret = devm_clk_bulk_get(dev, ARRAY_SIZE(qcom_pcie_ep_clks), - qcom_pcie_ep_clks); - if (ret) - return ret; + pcie_ep->num_clks = devm_clk_bulk_get_all(dev, &pcie_ep->clks); + if (pcie_ep->num_clks < 0) { + dev_err(dev, "Failed to get clocks\n"); + return pcie_ep->num_clks; + } pcie_ep->core_reset = devm_reset_control_get_exclusive(dev, "core"); if (IS_ERR(pcie_ep->core_reset)) -- 2.25.1