From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f182.google.com (mail-pg1-f182.google.com [209.85.215.182]) (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 CBB7D30CDB6 for ; Sun, 17 May 2026 01:49:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.182 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778982562; cv=none; b=CKvWe5CkIylGy7ifQ8u3Dixxqmbent2KpDEVJqgpdSiQhN5Zq/I26MgB4rDV0Son0KEkqT3+Rr4mkOYQWyvfnBXwy3Ut7IKmUeNs39srf11NwM9F731b7bsA4m09vK2MJnJBGgZG4BsPp7Yle9pomCJTaKQZKPMK8ZMd6yv8TSI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778982562; c=relaxed/simple; bh=7xXazUW++/Ihl/B9YC+Gc9/dkyUHgTw/pMGMhxHIGmI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MlDvASc/7nzUMC1GMv5DCFt3ybrXdcTpufQ39YYWF6L7ARDWgpeym+hX6ngj/6yV2iv//eswPNvrXKnfllOFERQtFEkUyxy+nFNlP8TOXWn8wqOfMf3Ch0SJ2tu7OxXH0gK2SlyhwTQMw1fjsYm9/463zjNi9NEGlxU1neH2Jzw= 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=QyREupKY; arc=none smtp.client-ip=209.85.215.182 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="QyREupKY" Received: by mail-pg1-f182.google.com with SMTP id 41be03b00d2f7-c8021c8c42fso353173a12.3 for ; Sat, 16 May 2026 18:49:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778982560; x=1779587360; 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=soU3PERBuMP9kXvFqB8tDnXdMIQE2fWpQSLyN/x1tn8=; b=QyREupKYPNmrCerLbQWbbxZQMYkt2XXXfU6efpmrCdeLneDR8Lbpa3r6W9KSdqZA+J uQR0mhpnp58MYiUaQI5J8uaQMAbsi31EzGEG/mLiYBKp5TZC+KckhT+q4Z9VMG8BedJl Ajiyt6haXa6ft/z4mCpHSICt9mbO2ltAzgcQ8dlshn+Mpv6ekIkCJR0whvq+9KllC7uq RFffdZwmMp4vFfnhjZW5bPZLdH891rZ4DzfmF8A3Ouh6Kw0vuOU7rH04YPMXV2HV/kor 5/N538riu7ziFTMUsWCpcSqWx+k2vZNI3mmDuujQ9jN1PjtrMgxd8VvZu6v0i8dvm1Bw ivig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778982560; x=1779587360; 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=soU3PERBuMP9kXvFqB8tDnXdMIQE2fWpQSLyN/x1tn8=; b=ZgBoe0CpA7hfzFik5V9ohyWk8P1kQgOdYcvQsRG5ZRHZnNdl3jII8zSw654dahYuEf S4s4gVSnbBDavPLb1jWTuujthbji6DVuU7blTzgpqxY13qUUFz9eNboA/MQg2nD0t7Mr PVMvTDgOsognpcmjvaaHCX9cXV0jTWINYGnfg2aaRmLfiS6wpB86bQBSAV2w8YY0zhgA DDRfSOJordcHrXdk0GbfPCva3k8RNZfWg0rUeL8pVMN6qp91y8xyoOACGZgteaAiNFXr WfBjp3/Namu0YfTmElcL9rSE/t5A2GCEV/XA0FivpDkKmJtPE26NOv7YvssEVL7jO/KI r0lw== X-Forwarded-Encrypted: i=1; AFNElJ99UlFc+3wHzXPuHrXwxdhwtIFgeGLNNYg7I7IcPrDOyFGExY97hzFLcq7NiCljCGEF0JRp1rTjh9yQYhA=@vger.kernel.org X-Gm-Message-State: AOJu0Yz2bW+svzKCRVTfK9f7/LBGZCdgErV+Yeu5liqaWpAq4Vf84V8m 3q++MtGN3gGKDnVprfvSOQWNJegv0w7f9d7PdLsn+y0KUJxHg+IPUv3L X-Gm-Gg: Acq92OFfHDkfDQbWmWpF2TfFAX3izWreebeHYgX0nI+xTS/XJyEZadwI8smk5p3R+ZK TDV+GecaZf+d7HzzrIEyPi1iK+dfZLgfH/cND7njd8P2pVw0JQowNRV2tK+31EzVj00w32XuzNA aghxYKjHInmBN2YlXLwE8UyvoNo4a5yZxGONQAbm3nru2VpiTQCqKCdmIWJLzd23svM1Z9Kw+IA hF3lukFBwP96lNxry0h+B06nR/9YPYk2N4EFct3sfgdC1vSfqkWInBkTg5Ejm5U1w6tcRArkp5V iKDqPOxiIwDV2kF1U37JgGFRBBa2+kdKQWbHR/PUqyelxp1/AAKEsgUs1S9Qxne5FH0KBHOKD5W s7peR9ew63FkPavQPcl+N25UK9EoM3/70RjtnWk6EpuT0L3hlW5kidMGTYuAHc7Qz10p4bdyfMY wDAsYK4Hvh9cpelQY1rAztiKs= X-Received: by 2002:a05:6a00:a1b:b0:81e:f1c3:89df with SMTP id d2e1a72fcca58-83f33de1258mr9305811b3a.50.1778982559999; Sat, 16 May 2026 18:49:19 -0700 (PDT) Received: from localhost ([2001:19f0:8001:1b2d:5400:5ff:fefa:a95d]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83f19778ad1sm10531320b3a.17.2026.05.16.18.49.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 May 2026 18:49:19 -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 , Christian Bruel , Vincent Guittot , Senchuan Zhang , Alex Elder , Nam Cao , Siddharth Vadapalli , Randolph Lin , Andy Shevchenko , Vidya Sagar , Neil Armstrong , 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 v2 2/5] PCI: spacemit-k1: Add multiple PHY handles support Date: Sun, 17 May 2026 09:48:37 +0800 Message-ID: <20260517014841.254085-3-inochiama@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260517014841.254085-1-inochiama@gmail.com> References: <20260517014841.254085-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 1b519d49dcc0..7f6f1df31cd8 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; @@ -171,7 +172,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); @@ -191,12 +192,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); } @@ -277,7 +280,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, 1, sizeof(*k1->phy), GFP_KERNEL); + if (!k1->phy) + return -ENOMEM; + + k1->phy[0] = phy; + k1->phy_count = 1; return 0; } -- 2.54.0