From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (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 A1B23325707 for ; Sat, 2 May 2026 10:13:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777716831; cv=none; b=J/P94BTn9Uq421h4/RC070a/2dV5GDFmY9c5P4SiaIEC3OGvrjDw3GXhuugxFXE3YBzkc55c6rUV3kY7ZQXUaMXctZNY9DY7HlLTrD29cUg68xmMW5vXTMbgasu6djeMRgOwxzMMvtlbrgMh5VCM9ULg17Yxt4c1CZhhjy4A1YU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777716831; c=relaxed/simple; bh=3pw1bdZuuXwrz+VnxjRJOnM0J5m0J5qcFaU9OOGALKg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZsOPiu0O/dSgbVMpk9ykbRLwM3eaZT7Qa3PC7+Zc1a0+uozgsFSl0Yo0B2s5d1hS5+OGBAoR9nl+/fBj2fcstad1EOyKr1F/t2VC/DrKSozhxxjyEnCU87XLZ3INgK1s74ZTJaz1JJ1V9/Mky/kE6lQElYT40wWhI/3is6hA5Ys= 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=iTWVdTtO; arc=none smtp.client-ip=209.85.214.177 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="iTWVdTtO" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-2b9fcf7c91bso2367145ad.0 for ; Sat, 02 May 2026 03:13:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777716826; x=1778321626; 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=KmMzz9kPOMJ2V6hEeqZMS4vdi4snOlkMyKNu1sYiAzY=; b=iTWVdTtOX5ZK62LXFvK4n1MwikrAxtRgCiAvF3VfshdeoXq69dmuzZbMWT5Uuq9vw7 4OnDMilqRcS+9vFFm+fOLJKlgk8ONlCuj62Qd2aGU2jg7xeazqIvZ5l5t6Z1qXb3kma7 HylTwmpK1lpxHdYSAxaIHjbMjgN3gn7WobDqQlziA9u86tTkpaCPEpy3/zpZPqcr0Ixr hQIDNZs9pFLSpJu5uG1wHS7bVU+1a3g0o3lZrUZ4SVqnlIpH4e39ShWXxTpFzB/wnDvY rIxUudTHtAlmQgKoUSOsHAgCBV5qDqjgkY1CiCYLYO1Wz+sWl+iwle5wG7///5OajFDY WDkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777716826; x=1778321626; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=KmMzz9kPOMJ2V6hEeqZMS4vdi4snOlkMyKNu1sYiAzY=; b=KFQkslLElCOwXHuNlW4TwBRrY0XrFg3aFoKbzFTagQkaNhox/UV08iU9rdRcJDqFUU ZczjfsnOq7E3O0GzlEEGpnL4op/EiXTPNeQfZOupxA9ZQXRJf6oit75PWFB9snkvhBuV tUIKtYBYcveDh0xqhXIbND9HktbItdVwBEePuSM9kkFjF5EPU5cF/NYDDQp0HS5R6nPH ojs9c2UIAw1M4xtri0nvmfQ3ca0GzQZYBLV8tnqxCBZiR0wZIoelHLX0verfFg02D1LC uwNQaminZIZk2MzY+gE4W3bhpbDwgcyCMJoGNzcf770uoVTvrJ73kZGmgiKGPLHCWFZr RWmQ== X-Forwarded-Encrypted: i=1; AFNElJ/0SOX046K1wPnKVJ3LweGdg7X7Dx5TzYuPitNFzY0vL0ZJUhSYweltCxXeie679hDtAVYTbNSyIjyZgRc=@vger.kernel.org X-Gm-Message-State: AOJu0YzpGiOPLRQOZN2KM/OPwuoq4WNWQ6VZwwRKEDblPhGxyi7ZUZo9 p3Jc17yEwjvWQovgqk1l19cUpPhlq4zCMDnno/15o4B9iMuW9kvJOgsO X-Gm-Gg: AeBDietvbIlZXH7qmH9ryLDjD614/ZH+nPfGiz7Wt2fTb/o8M9dziuOmLU/jUrAJTMe 1VJVP9KeT73PYh+7f5PzVEWHLGSicV4BnM8aOst2jWibz8wYGCzR+ZsBNYvL1tItnzBpnyjQ5TA qNeLJHlEuqLj5Fl7/k6wVPyMmVggO36GvjoXLz/Wki6h6cq0eOPF2e7yRzE/Fzk+Bx4WFn1V6hE p3M2VfBi1Lf0MTOBPW62cFsgzwDJuNd1zYvrFu3SJw4bzmtAWHn72/ljniaroR5OOqOEFKdAVsi 7nJ6444O9rA/jRQJ6kqB3xgOOZZIuyN2z3JD41vIDumj7LrZibV3FC4dKWQRKMzzp7MRI8nOYqq rw9Q/5dVNAv2bOBiw4W3y2AVUM4uok8/EAwizZC6TkYMzryXjJcm/lxxW6Ap6BgyuTGZJQ9xnX1 3r7t/ohYnN6Gzjq71o6MtzTLDglJkKrDNxSQ== X-Received: by 2002:a17:903:3d4c:b0:2b7:ade8:2407 with SMTP id d9443c01a7336-2b9f25e8353mr15599855ad.19.1777716826438; Sat, 02 May 2026 03:13:46 -0700 (PDT) Received: from localhost ([2001:19f0:8001:1b2d:5400:5ff:fefa:a95d]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b9caaadb1esm48776715ad.20.2026.05.02.03.13.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 03:13:46 -0700 (PDT) From: Inochi Amaoto To: Jingoo Han , Manivannan Sadhasivam , Bjorn Helgaas , Lorenzo Pieralisi , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Inochi Amaoto , Alex Elder , Gustavo Pimentel Cc: linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, Yixun Lan , Longbin Li Subject: [PATCH 2/5] PCI: spacemit-k1: Add multiple phy handles support Date: Sat, 2 May 2026 18:13:15 +0800 Message-ID: <20260502101319.2364052-3-inochiama@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260502101319.2364052-1-inochiama@gmail.com> References: <20260502101319.2364052-1-inochiama@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: 8bit The PCIe controller on Spacemit K3 may use multiple phys at the same time. The feature is not support by the current driver. So extend the phy definition to support multiple phy handles. Signed-off-by: Inochi Amaoto --- drivers/pci/controller/dwc/pcie-spacemit-k1.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-spacemit-k1.c b/drivers/pci/controller/dwc/pcie-spacemit-k1.c index cd3cd038ad2b..f2a722e5edb5 100644 --- a/drivers/pci/controller/dwc/pcie-spacemit-k1.c +++ b/drivers/pci/controller/dwc/pcie-spacemit-k1.c @@ -51,7 +51,8 @@ struct k1_pcie { struct dw_pcie pci; - struct phy *phy; + struct phy **phy; + int phy_count; void __iomem *link; struct regmap *pmu; /* Errors ignored; MMIO-backed regmap */ u32 pmu_off; @@ -172,7 +173,7 @@ static int k1_pcie_init(struct dw_pcie_rp *pp) */ regmap_set_bits(k1->pmu, reset_ctrl, DEVICE_TYPE_RC | PCIE_AUX_PWR_DET); - ret = phy_init(k1->phy); + ret = phy_init(k1->phy[0]); if (ret) { k1_pcie_disable_resources(k1); @@ -192,12 +193,14 @@ static void k1_pcie_deinit(struct dw_pcie_rp *pp) { struct dw_pcie *pci = to_dw_pcie_from_pp(pp); struct k1_pcie *k1 = to_k1_pcie(pci); + int i; /* Assert fundamental reset (drive PERST# low) */ regmap_set_bits(k1->pmu, k1->pmu_off + PCIE_CLK_RESET_CONTROL, PCIE_RC_PERST); - phy_exit(k1->phy); + for (i = 0; i < k1->phy_count; i++) + phy_exit(k1->phy[i]); k1_pcie_disable_resources(k1); } @@ -278,7 +281,12 @@ static int k1_pcie_parse_port(struct k1_pcie *k1) if (IS_ERR(phy)) return PTR_ERR(phy); - k1->phy = phy; + k1->phy = devm_kmalloc_array(dev, sizeof(*k1->phy), 1, GFP_KERNEL); + if (IS_ERR(k1->phy)) + return PTR_ERR(k1->phy); + + k1->phy[0] = phy; + k1->phy_count = 1; return 0; } -- 2.54.0