All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: linuxarm@huawei.com, mauro.chehab@huawei.com,
	"Mauro Carvalho Chehab" <mchehab+huawei@kernel.org>,
	"Krzysztof Wilczyński" <kw@linux.com>,
	"Binghui Wang" <wangbinghui@hisilicon.com>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Rob Herring" <robh@kernel.org>,
	"Xiaowei Song" <songxiaowei@hisilicon.com>,
	linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org
Subject: [PATCH v15 09/13] PCI: kirin: Add power_off support for Kirin 960 PHY
Date: Thu, 21 Oct 2021 11:45:16 +0100	[thread overview]
Message-ID: <b095818b0d7fadae4cae200f481caf7a66e61fb4.1634812676.git.mchehab+huawei@kernel.org> (raw)
In-Reply-To: <cover.1634812676.git.mchehab+huawei@kernel.org>

In order to prepare for module unload, add a power_off method
for HiKey 960.

Acked-by: Xiaowei Song <songxiaowei@hisilicon.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
---

To mailbombing on a large number of people, only mailing lists were C/C on the cover.
See [PATCH v15 00/13] at: https://lore.kernel.org/all/cover.1634812676.git.mchehab+huawei@kernel.org/

 drivers/pci/controller/dwc/pcie-kirin.c | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/drivers/pci/controller/dwc/pcie-kirin.c b/drivers/pci/controller/dwc/pcie-kirin.c
index b55830d2a19b..64221a204db2 100644
--- a/drivers/pci/controller/dwc/pcie-kirin.c
+++ b/drivers/pci/controller/dwc/pcie-kirin.c
@@ -343,6 +343,18 @@ static int hi3660_pcie_phy_init(struct platform_device *pdev,
 	return hi3660_pcie_phy_get_resource(phy);
 }
 
+static int hi3660_pcie_phy_power_off(struct kirin_pcie *pcie)
+{
+	struct hi3660_pcie_phy *phy = pcie->phy_priv;
+
+	/* Drop power supply for Host */
+	regmap_write(phy->sysctrl, SCTRL_PCIE_CMOS_OFFSET, 0x00);
+
+	hi3660_pcie_phy_clk_ctrl(phy, false);
+
+	return 0;
+}
+
 /*
  * The non-PHY part starts here
  */
@@ -560,7 +572,6 @@ static int kirin_pcie_add_bus(struct pci_bus *bus)
 	return 0;
 }
 
-
 static struct pci_ops kirin_pci_ops = {
 	.read = kirin_pcie_rd_own_conf,
 	.write = kirin_pcie_wr_own_conf,
@@ -714,8 +725,12 @@ static int kirin_pcie_power_on(struct platform_device *pdev,
 
 	return 0;
 err:
-	if (kirin_pcie->type != PCIE_KIRIN_INTERNAL_PHY)
+	if (kirin_pcie->type == PCIE_KIRIN_INTERNAL_PHY) {
+		hi3660_pcie_phy_power_off(kirin_pcie);
+	} else {
+		phy_power_off(kirin_pcie->phy);
 		phy_exit(kirin_pcie->phy);
+	}
 
 	return ret;
 }
@@ -725,7 +740,7 @@ static int __exit kirin_pcie_remove(struct platform_device *pdev)
 	struct kirin_pcie *kirin_pcie = platform_get_drvdata(pdev);
 
 	if (kirin_pcie->type == PCIE_KIRIN_INTERNAL_PHY)
-		return 0;
+		return hi3660_pcie_phy_power_off(kirin_pcie);
 
 	phy_power_off(kirin_pcie->phy);
 	phy_exit(kirin_pcie->phy);
-- 
2.31.1


  parent reply	other threads:[~2021-10-21 10:46 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-21 10:45 [PATCH v15 00/13] Add support for Hikey 970 PCIe Mauro Carvalho Chehab
2021-10-21 10:45 ` [PATCH v15 01/13] PCI: kirin: Reorganize the PHY logic inside the driver Mauro Carvalho Chehab
2021-11-04 21:48   ` Bjorn Helgaas
2021-10-21 10:45 ` [PATCH v15 02/13] PCI: kirin: Add support for a PHY layer Mauro Carvalho Chehab
2021-10-25  8:14   ` Kishon Vijay Abraham I
2021-10-25  8:52     ` Mauro Carvalho Chehab
2021-10-25  8:56       ` Kishon Vijay Abraham I
2021-10-21 10:45 ` [PATCH v15 03/13] PCI: kirin: Use regmap for APB registers Mauro Carvalho Chehab
2021-10-21 10:45 ` [PATCH v15 04/13] PCI: kirin: Add support for bridge slot DT schema Mauro Carvalho Chehab
2021-11-02 16:06   ` Bjorn Helgaas
2021-11-02 17:44     ` Mauro Carvalho Chehab
2021-11-02 22:08       ` Pali Rohár
2021-11-04 15:36       ` Rob Herring
2021-11-04 17:27         ` Mauro Carvalho Chehab
2021-10-21 10:45 ` [PATCH v15 05/13] PCI: kirin: Give more time for PERST# reset to finish Mauro Carvalho Chehab
2021-10-21 10:45 ` [PATCH v15 06/13] PCI: kirin: Add Kirin 970 compatible Mauro Carvalho Chehab
2021-10-21 10:45 ` [PATCH v15 07/13] PCI: kirin: Add MODULE_* macros Mauro Carvalho Chehab
2021-10-21 10:45 ` [PATCH v15 08/13] PCI: kirin: Allow building it as a module Mauro Carvalho Chehab
2021-10-21 10:45 ` Mauro Carvalho Chehab [this message]
2021-10-21 10:45 ` [PATCH v15 10/13] PCI: kirin: Move the power-off code to a common routine Mauro Carvalho Chehab
2021-10-21 10:45 ` [PATCH v15 11/13] PCI: kirin: Disable clkreq during poweroff sequence Mauro Carvalho Chehab
2021-10-21 10:45 ` [PATCH v15 12/13] PCI: kirin: De-init the dwc driver Mauro Carvalho Chehab
2021-10-21 10:45 ` [PATCH v15 13/13] PCI: kirin: Allow removing the driver Mauro Carvalho Chehab
2021-10-31 20:55   ` Pali Rohár
2021-10-21 12:17 ` [PATCH v15 00/13] Add support for Hikey 970 PCIe Lorenzo Pieralisi
2021-10-26 17:17 ` Lorenzo Pieralisi
2021-10-27  7:24   ` Mauro Carvalho Chehab

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b095818b0d7fadae4cae200f481caf7a66e61fb4.1634812676.git.mchehab+huawei@kernel.org \
    --to=mchehab+huawei@kernel.org \
    --cc=bhelgaas@google.com \
    --cc=kw@linux.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linuxarm@huawei.com \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=mauro.chehab@huawei.com \
    --cc=robh@kernel.org \
    --cc=songxiaowei@hisilicon.com \
    --cc=wangbinghui@hisilicon.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.