From nobody Fri Dec 19 20:35:53 2025 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 661F630CDA5 for ; Tue, 14 Oct 2025 11:26:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760441184; cv=none; b=SKSKlMdMzpJykAs4qAVqjW5Xl0jkTcgTzxEoaotiUG3nOIJ2XcZVN9rlPZ4SH1d/Y3ZjKs4Y/azx64LADLP9GbAi5U3fyiwvNAH2w+iS/K7Cd/8bt08iEtLRXQpO9GMEK5yGjicrs3oGUIGre4q/CCktDcc0+8K0vZBxQo1aNEU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760441184; c=relaxed/simple; bh=WBNPAOl1IiO5eOs4BLPmth1N0JvusJem9fVKugbEi0w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pQcGjFLUtXRBptQXvzOxxwNAjhAmmHtNb8mwkdsngAub16AGP6AhJWx9e6E5IgGitc/v57db7hekWRwj2Aa9kXNIyv9ta8DI90jf2t2Ya5n5ul/S4NvjZRppp6/1fzMXRmMpkn2vb62iQeP3vYSNZJmRkae6NyqNa2vaVD5Rklo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=WfRUCQeJ; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WfRUCQeJ" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-46e4f2696bdso52598855e9.0 for ; Tue, 14 Oct 2025 04:26:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760441181; x=1761045981; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=EbYmHynLeWlw8u23NecrRWs1rFP/nnkTB1+gQnuvcng=; b=WfRUCQeJz/EQhr0GFi0+c8JpNb5W1PvgyGqLwmPyxI6XKo/Fh21ZWEgYBTEgy8eazz XkTsIoivhJzCbrm2BKaCLOUzY6v40vViafiTFxHf/LnJTkmOBy1eQlIIc/uj3Tke27Ev R8eSuYCNbGVaVq4b+t4GuRm/20UFZxUl1/UQ9JEsTl0WwMSEh3AuOEujAokfemtHbbCP r6Zx+VprRTQU+lSlLzLVaT8JaEiHg6wZBilGITHZViclqJcKGWcfyYrra0SmqZXokS15 BZ5XmAd2MrSXb0hn/L6q+uSafm3FuHl7V+AhqSisMhU2NFaWMcRthYo/Zbxj+Proj4OD JYHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760441181; x=1761045981; 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:message-id:reply-to; bh=EbYmHynLeWlw8u23NecrRWs1rFP/nnkTB1+gQnuvcng=; b=ublKxmQ6AKlvJLbLoGS52h+o0cjko+UfV3PMc1c4PfJp/bT0H/VHw+vCqI+vZW0f+U CKq1K33gSWWI2Yr2THP47y6VOoqbeWDa+aywGXy3RmDElScjD5vo4b1cqzFReOttLx23 BlwaSLI5T0UTgZ8yFMbGyyDswxgY3A/KL6E563ra/afmqUFzpoPHav1Zlj4ch2VqOplf bhUUDwUNIONnj5Wwe1LCefQVJmFpz7XBQdsCYpCOhxSq9SkpCd0Mz3LWOAaTy0xXdbQ6 RM1qc8SA/hELpXWkaJ/ptWMESOqIh7+DlGr3/OeZqrRgNmmRReMhacfr0y+HrifdzJS+ 1Q+g== X-Forwarded-Encrypted: i=1; AJvYcCUQRGZmDsTO/GZsB2gBmeaH3xcBsJCs1g4suF5G8QbhdsHeHAISDNWbHzKvj1CIK2qJi3f7Ng21U1inf38=@vger.kernel.org X-Gm-Message-State: AOJu0Yw2LvGNAA0GB6VDEyndxN9HVt/WS4mhYot/AfpYHKo+S8QSB6F5 nKNxbHRfYBmmc/0CFcXtHY/r5TmvlzEXBs2fqFFg7mNwxFGBHAr/dP4C X-Gm-Gg: ASbGncty1OzqBSAeP4b4nxT92/ntZtiTXLfIjFt89s2evo0ZGxwJ8pCFfnBB103fNZx XuNfRbgAbJ1hx79QUtue1+tSpdTc0d9Renuff8F+C0BC+LY/Ik3DfuOq1YkDxbj5ySwPIQM61UT /9cQFCcqgQyQ3kd5pxLUYYvVx2h+4I572esSrkK4T0kNSqCToAw59CAkivXF1+mhSo7+WS2ny/d exWjx0fOS5Tyr2OOCLizV0MhtEpuBF4VcAtMpbT+SUT2nk3K8c2iPHZfYSS91WSpV9lflVbKNnn ymUwfGpEvxybDTcZbA4Gk665v55vZq8wfRpn92p/f529hPPetX4R47BwZ+pmApwZaojPaGweEd9 w4WCf8zYrRxy5jiMjETfiD8J66/GVysrXoK/5YeLUI1OTMSmxpcADKClkhg== X-Google-Smtp-Source: AGHT+IFO2uKjeUaYUKbnwXbbO+Xo/HgCqYDDA6YUTOMYT5kkkih/xh4BWfPVSZJs7SLyBcg2m31Icw== X-Received: by 2002:a05:600c:4745:b0:46d:cfc9:1d0f with SMTP id 5b1f17b1804b1-46fa9af30e5mr188941035e9.19.1760441180577; Tue, 14 Oct 2025 04:26:20 -0700 (PDT) Received: from vitor-nb (bl19-170-125.dsl.telepac.pt. [2.80.170.125]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-46fb492e6ddsm265829845e9.0.2025.10.14.04.26.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 04:26:20 -0700 (PDT) From: Vitor Soares To: Vignesh Raghavendra , Siddharth Vadapalli , Lorenzo Pieralisi , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Bjorn Helgaas Cc: Vitor Soares , linux-omap@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, ivitro@gmail.com Subject: [PATCH v1 2/2] PCI: j721e: Add support for optional regulator supplies Date: Tue, 14 Oct 2025 12:25:49 +0100 Message-ID: <20251014112553.398845-3-ivitro@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251014112553.398845-1-ivitro@gmail.com> References: <20251014112553.398845-1-ivitro@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Vitor Soares Some boards require external regulators to power PCIe endpoints. Add support for optional 1.5V, 3.3V, and 12V supplies, which may be defined in the device tree as vpcie1v5-supply, vpcie3v3-supply, and vpcie12v-supply. Use devm_regulator_get_enable_optional() to obtain and enable each supply, so it will be automatically disabled when the driver is removed. Signed-off-by: Vitor Soares --- drivers/pci/controller/cadence/pci-j721e.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/pci/controller/cadence/pci-j721e.c b/drivers/pci/contr= oller/cadence/pci-j721e.c index 5bc5ab20aa6d..f29ce2aef04e 100644 --- a/drivers/pci/controller/cadence/pci-j721e.c +++ b/drivers/pci/controller/cadence/pci-j721e.c @@ -21,6 +21,7 @@ #include #include #include +#include =20 #include "../../pci.h" #include "pcie-cadence.h" @@ -467,6 +468,10 @@ static const struct of_device_id of_j721e_pcie_match[]= =3D { }; MODULE_DEVICE_TABLE(of, of_j721e_pcie_match); =20 +static const char * const j721e_pcie_supplies[] =3D { + "vpcie12v", "vpcie3v3", "vpcie1v5" +}; + static int j721e_pcie_probe(struct platform_device *pdev) { struct device *dev =3D &pdev->dev; @@ -480,6 +485,7 @@ static int j721e_pcie_probe(struct platform_device *pde= v) struct gpio_desc *gpiod; void __iomem *base; struct clk *clk; + unsigned int i; u32 num_lanes; u32 mode; int ret; @@ -565,6 +571,13 @@ static int j721e_pcie_probe(struct platform_device *pd= ev) if (irq < 0) return irq; =20 + for (i =3D 0; i < ARRAY_SIZE(j721e_pcie_supplies); i++) { + ret =3D devm_regulator_get_enable_optional(dev, j721e_pcie_supplies[i]); + if (ret < 0 && ret !=3D -ENODEV) + return dev_err_probe(dev, ret, "can't enable regulator %s\n", + j721e_pcie_supplies[i]); + } + dev_set_drvdata(dev, pcie); pm_runtime_enable(dev); ret =3D pm_runtime_get_sync(dev); --=20 2.51.0