* [PATCH 0/3] phy: aspeed: Add ASPEED PCIe PHY support
@ 2026-10-08 11:28 Jacky Chou
2026-10-08 11:28 ` [PATCH 1/3] dt-bindings: phy: aspeed: Add ASPEED PCIe PHY Jacky Chou
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Jacky Chou @ 2026-10-08 11:28 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Joel Stanley, Andrew Jeffery, Manivannan Sadhasivam,
Ryan Chen, Billy Tsai
Cc: linux-aspeed, linux-phy, devicetree, linux-arm-kernel,
linux-kernel, Jacky Chou
Add the ASPEED PCIe PHY binding and driver for AST2600 and AST2700
SoCs. The PHY provides the physical layer used by the PCIe controller
when it is configured to run in root complex mode.
The driver registers an ASPEED PCIe PHY provider through the generic PHY
framework and programs the SoC-specific PEHR registers from set_mode().
For AST2600 this selects the root complex port type. For AST2700 this
also configures the posted/completion credit values, local scaling,
device type, internal reset selection, and downstream port setting
needed by the controller.
This series also adds the devicetree binding for the PHY provider and a
MAINTAINERS entry for the ASPEED PCIe PHY driver.
Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
---
Jacky Chou (3):
dt-bindings: phy: aspeed: Add ASPEED PCIe PHY
phy: aspeed: Add ASPEED PCIe PHY driver
MAINTAINERS: Add ASPEED PCIe PHY driver
.../bindings/phy/aspeed,ast2600-pcie-phy.yaml | 49 +++++
MAINTAINERS | 8 +
drivers/phy/aspeed/Kconfig | 12 +-
drivers/phy/aspeed/Makefile | 1 +
drivers/phy/aspeed/phy-aspeed-pcie.c | 237 +++++++++++++++++++++
5 files changed, 306 insertions(+), 1 deletion(-)
---
base-commit: ea01f446f0682a5e7bd7a275889a890b7e0c6e02
change-id: 20260630-aspeed_pcie_phy-34161b03863e
Best regards,
--
Jacky Chou <jacky_chou@aspeedtech.com>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/3] dt-bindings: phy: aspeed: Add ASPEED PCIe PHY
2026-10-08 11:28 [PATCH 0/3] phy: aspeed: Add ASPEED PCIe PHY support Jacky Chou
@ 2026-10-08 11:28 ` Jacky Chou
2026-10-09 10:31 ` Krzysztof Kozlowski
2026-10-08 11:28 ` [PATCH 2/3] phy: aspeed: Add ASPEED PCIe PHY driver Jacky Chou
` (2 subsequent siblings)
3 siblings, 1 reply; 10+ messages in thread
From: Jacky Chou @ 2026-10-08 11:28 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Joel Stanley, Andrew Jeffery, Manivannan Sadhasivam,
Ryan Chen, Billy Tsai
Cc: linux-aspeed, linux-phy, devicetree, linux-arm-kernel,
linux-kernel, Jacky Chou
Introduce device-binding for ASPEED AST2600/2700 PCIe PHY.
The PHY provides the physical layer used by the PCIe
controller when operating in root complex mode.
Describe the compatible strings, register range, clocks and
phy-cells value required by the PHY provider.
Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
---
.../bindings/phy/aspeed,ast2600-pcie-phy.yaml | 49 ++++++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/Documentation/devicetree/bindings/phy/aspeed,ast2600-pcie-phy.yaml b/Documentation/devicetree/bindings/phy/aspeed,ast2600-pcie-phy.yaml
new file mode 100644
index 000000000000..686b2e3d9457
--- /dev/null
+++ b/Documentation/devicetree/bindings/phy/aspeed,ast2600-pcie-phy.yaml
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/aspeed,ast2600-pcie-phy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ASPEED PCIe PHY
+
+maintainers:
+ - Jacky Chou <jacky_chou@aspeedtech.com>
+
+description:
+ The ASPEED PCIe PHY provides the physical layer functionality for PCIe
+ controllers in the SoC.
+
+properties:
+ compatible:
+ items:
+ - enum:
+ - aspeed,ast2600-pcie-phy
+ - aspeed,ast2700-pcie-phy
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ maxItems: 1
+ description:
+ Fixed 100MHz reference clock provided on the board.
+
+ "#phy-cells":
+ const: 0
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - "#phy-cells"
+
+additionalProperties: false
+
+examples:
+ - |
+ phy@1e6ed200 {
+ compatible = "aspeed,ast2600-pcie-phy";
+ reg = <0x1e6ed200 0x100>;
+ clocks = <&pcie_refclk>;
+ #phy-cells = <0>;
+ };
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/3] phy: aspeed: Add ASPEED PCIe PHY driver
2026-10-08 11:28 [PATCH 0/3] phy: aspeed: Add ASPEED PCIe PHY support Jacky Chou
2026-10-08 11:28 ` [PATCH 1/3] dt-bindings: phy: aspeed: Add ASPEED PCIe PHY Jacky Chou
@ 2026-10-08 11:28 ` Jacky Chou
2026-10-08 11:39 ` sashiko-bot
` (3 more replies)
2026-10-08 11:28 ` [PATCH 3/3] MAINTAINERS: " Jacky Chou
2026-10-09 10:32 ` [PATCH 0/3] phy: aspeed: Add ASPEED PCIe PHY support Krzysztof Kozlowski
3 siblings, 4 replies; 10+ messages in thread
From: Jacky Chou @ 2026-10-08 11:28 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Joel Stanley, Andrew Jeffery, Manivannan Sadhasivam,
Ryan Chen, Billy Tsai
Cc: linux-aspeed, linux-phy, devicetree, linux-arm-kernel,
linux-kernel, Jacky Chou
Introduce support for Aspeed PCIe PHY controller available in
AST2600/2700.
Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
---
drivers/phy/aspeed/Kconfig | 12 +-
drivers/phy/aspeed/Makefile | 1 +
drivers/phy/aspeed/phy-aspeed-pcie.c | 237 +++++++++++++++++++++++++++++++++++
3 files changed, 249 insertions(+), 1 deletion(-)
diff --git a/drivers/phy/aspeed/Kconfig b/drivers/phy/aspeed/Kconfig
index 7b5f48db2be8..b5903cf06268 100644
--- a/drivers/phy/aspeed/Kconfig
+++ b/drivers/phy/aspeed/Kconfig
@@ -1,9 +1,19 @@
# SPDX-License-Identifier: GPL-2.0-only
-
#
# PHY drivers for ASPEED
#
+config PHY_ASPEED_PCIE
+ tristate "ASPEED PCIe PHY driver"
+ select GENERIC_PHY
+ depends on (ARCH_ASPEED || COMPILE_TEST)
+ help
+ This option enables support for the ASPEED PCIe PHY driver.
+ The driver provides the necessary interface to control and
+ configure the PCIe PHY hardware found on ASPEED SoCs.
+ It is required for proper operation of PCIe devices on
+ platforms using ASPEED chips.
+
config PHY_ASPEED_USB3
tristate "ASPEED USB3 PHY driver"
select GENERIC_PHY
diff --git a/drivers/phy/aspeed/Makefile b/drivers/phy/aspeed/Makefile
index d96d9d73a009..9d43790fdda8 100644
--- a/drivers/phy/aspeed/Makefile
+++ b/drivers/phy/aspeed/Makefile
@@ -1,2 +1,3 @@
# SPDX-License-Identifier: GPL-2.0
+obj-$(CONFIG_PHY_ASPEED_PCIE) += phy-aspeed-pcie.o
obj-$(CONFIG_PHY_ASPEED_USB3) += phy-aspeed-usb3.o
diff --git a/drivers/phy/aspeed/phy-aspeed-pcie.c b/drivers/phy/aspeed/phy-aspeed-pcie.c
new file mode 100644
index 000000000000..eb300887b644
--- /dev/null
+++ b/drivers/phy/aspeed/phy-aspeed-pcie.c
@@ -0,0 +1,237 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2025 Aspeed Technology Inc.
+ */
+
+#include <linux/clk.h>
+#include <linux/err.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/phy/pcie.h>
+#include <linux/phy/phy.h>
+
+/* AST2600 PCIe Host Controller Registers */
+#define PEHR_GLOBAL 0x30
+#define AST2600_PORT_TYPE_MASK GENMASK(5, 4)
+#define AST2600_PORT_TYPE(x) FIELD_PREP(AST2600_PORT_TYPE_MASK, x)
+#define PEHR_LOCK 0x7c
+#define PCIE_UNLOCK 0xa8
+
+/* AST2700 PEHR */
+#define PEHR_MISC_58 0x58
+#define LOCAL_SCALE_SUP BIT(0)
+#define PEHR_MISC_5C 0x5c
+#define CONFIG_RC_DEVICE BIT(30)
+#define PEHR_MISC_60 0x60
+#define AST2700_PORT_TYPE_MASK GENMASK(7, 4)
+#define PORT_TYPE_ROOT 0x4
+#define PEHR_MISC_70 0x70
+#define POSTED_DATA_CREDITS(x) FIELD_PREP(GENMASK(15, 0), x)
+#define POSTED_HEADER_CREDITS(x) FIELD_PREP(GENMASK(27, 16), x)
+#define PEHR_MISC_78 0x78
+#define COMPLETION_DATA_CREDITS(x) FIELD_PREP(GENMASK(15, 0), x)
+#define COMPLETION_HEADER_CREDITS(x) FIELD_PREP(GENMASK(27, 16), x)
+#define PEHR_MISC_278 0x278
+#define SET_TO_DOWNSTREAM BIT(22)
+#define ASSERT_INTERNAL_RESET BIT(31)
+#define PEHR_MISC_280 0x280
+#define SEL_INTERNAL_RESET BIT(0)
+
+/**
+ * struct aspeed_pcie_phy - PCIe PHY information
+ * @dev: pointer to device structure
+ * @reg: PCIe host register base address
+ * @clk: PCIe reference clock
+ * @phy: pointer to PHY structure
+ * @platform: platform specific information
+ */
+struct aspeed_pcie_phy {
+ struct device *dev;
+ void __iomem *reg;
+ struct clk *clk;
+ struct phy *phy;
+ const struct aspeed_pcie_phy_platform *platform;
+};
+
+/**
+ * struct aspeed_pcie_phy_platform - Platform information
+ * @phy_ops: phy operations
+ */
+struct aspeed_pcie_phy_platform {
+ const struct phy_ops *phy_ops;
+};
+
+static int ast2600_phy_init(struct phy *phy)
+{
+ struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
+ int ret;
+
+ ret = clk_prepare_enable(pcie_phy->clk);
+ if (ret)
+ return ret;
+
+ writel(PCIE_UNLOCK, pcie_phy->reg + PEHR_LOCK);
+
+ return 0;
+}
+
+static int ast2600_phy_exit(struct phy *phy)
+{
+ struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
+
+ clk_disable_unprepare(pcie_phy->clk);
+
+ return 0;
+}
+
+static int ast2600_phy_set_mode(struct phy *phy, enum phy_mode mode,
+ int submode)
+{
+ struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
+
+ switch (submode) {
+ case PHY_MODE_PCIE_RC:
+ writel(AST2600_PORT_TYPE(0x3), pcie_phy->reg + PEHR_GLOBAL);
+ break;
+ default:
+ dev_err(&phy->dev, "Unsupported submode %d\n", submode);
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+static const struct phy_ops ast2600_phy_ops = {
+ .init = ast2600_phy_init,
+ .exit = ast2600_phy_exit,
+ .set_mode = ast2600_phy_set_mode,
+ .owner = THIS_MODULE,
+};
+
+static int ast2700_phy_init(struct phy *phy)
+{
+ struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
+
+ return clk_prepare_enable(pcie_phy->clk);
+}
+
+static int ast2700_phy_exit(struct phy *phy)
+{
+ struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
+
+ clk_disable_unprepare(pcie_phy->clk);
+
+ return 0;
+}
+
+static int ast2700_phy_set_mode(struct phy *phy, enum phy_mode mode,
+ int submode)
+{
+ struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
+ u32 cfg_val;
+
+ switch (submode) {
+ case PHY_MODE_PCIE_RC:
+ writel(0, pcie_phy->reg + PEHR_MISC_278);
+ writel(SEL_INTERNAL_RESET, pcie_phy->reg + PEHR_MISC_280);
+ writel(POSTED_DATA_CREDITS(0xc0) | POSTED_HEADER_CREDITS(0xa),
+ pcie_phy->reg + PEHR_MISC_70);
+ writel(COMPLETION_DATA_CREDITS(0x30) | COMPLETION_HEADER_CREDITS(0x8),
+ pcie_phy->reg + PEHR_MISC_78);
+ writel(LOCAL_SCALE_SUP, pcie_phy->reg + PEHR_MISC_58);
+ writel(CONFIG_RC_DEVICE, pcie_phy->reg + PEHR_MISC_5C);
+ cfg_val = readl(pcie_phy->reg + PEHR_MISC_60);
+ FIELD_MODIFY(AST2700_PORT_TYPE_MASK, &cfg_val,
+ PORT_TYPE_ROOT);
+ writel(cfg_val, pcie_phy->reg + PEHR_MISC_60);
+ writel(ASSERT_INTERNAL_RESET | SET_TO_DOWNSTREAM,
+ pcie_phy->reg + PEHR_MISC_278);
+ break;
+ default:
+ dev_err(&phy->dev, "Unsupported submode %d\n", submode);
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+static const struct phy_ops ast2700_phy_ops = {
+ .init = ast2700_phy_init,
+ .exit = ast2700_phy_exit,
+ .set_mode = ast2700_phy_set_mode,
+ .owner = THIS_MODULE,
+};
+
+static const struct aspeed_pcie_phy_platform pcie_phy_ast2600 = {
+ .phy_ops = &ast2600_phy_ops,
+};
+
+static const struct aspeed_pcie_phy_platform pcie_phy_ast2700 = {
+ .phy_ops = &ast2700_phy_ops,
+};
+
+static int aspeed_pcie_phy_probe(struct platform_device *pdev)
+{
+ struct device *dev = &pdev->dev;
+ struct phy_provider *phy_provider;
+ struct aspeed_pcie_phy *pcie_phy;
+ const struct aspeed_pcie_phy_platform *md;
+
+ md = of_device_get_match_data(dev);
+ if (!md)
+ return -ENODEV;
+
+ pcie_phy = devm_kzalloc(dev, sizeof(*pcie_phy), GFP_KERNEL);
+ if (!pcie_phy)
+ return -ENOMEM;
+
+ pcie_phy->reg = devm_platform_ioremap_resource(pdev, 0);
+ if (IS_ERR(pcie_phy->reg))
+ return PTR_ERR(pcie_phy->reg);
+
+ pcie_phy->clk = devm_clk_get(dev, NULL);
+ if (IS_ERR(pcie_phy->clk))
+ return dev_err_probe(dev, PTR_ERR(pcie_phy->clk),
+ "failed to get clock\n");
+
+ pcie_phy->dev = dev;
+ pcie_phy->platform = md;
+
+ pcie_phy->phy = devm_phy_create(dev, dev->of_node,
+ pcie_phy->platform->phy_ops);
+ if (IS_ERR(pcie_phy->phy))
+ return dev_err_probe(dev, PTR_ERR(pcie_phy->phy),
+ "failed to create PHY\n");
+
+ phy_set_drvdata(pcie_phy->phy, pcie_phy);
+ phy_provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate);
+
+ return PTR_ERR_OR_ZERO(phy_provider);
+}
+
+static const struct of_device_id aspeed_pcie_phy_of_match_table[] = {
+ {
+ .compatible = "aspeed,ast2600-pcie-phy",
+ .data = &pcie_phy_ast2600,
+ },
+ {
+ .compatible = "aspeed,ast2700-pcie-phy",
+ .data = &pcie_phy_ast2700,
+ },
+ { },
+};
+MODULE_DEVICE_TABLE(of, aspeed_pcie_phy_of_match_table);
+
+static struct platform_driver aspeed_pcie_driver = {
+ .probe = aspeed_pcie_phy_probe,
+ .driver = {
+ .name = "aspeed-pcie-phy",
+ .of_match_table = aspeed_pcie_phy_of_match_table,
+ },
+};
+
+module_platform_driver(aspeed_pcie_driver);
+
+MODULE_AUTHOR("Jacky Chou <jacky_chou@aspeedtech.com>");
+MODULE_DESCRIPTION("ASPEED PCIe PHY");
+MODULE_LICENSE("GPL");
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/3] MAINTAINERS: Add ASPEED PCIe PHY driver
2026-10-08 11:28 [PATCH 0/3] phy: aspeed: Add ASPEED PCIe PHY support Jacky Chou
2026-10-08 11:28 ` [PATCH 1/3] dt-bindings: phy: aspeed: Add ASPEED PCIe PHY Jacky Chou
2026-10-08 11:28 ` [PATCH 2/3] phy: aspeed: Add ASPEED PCIe PHY driver Jacky Chou
@ 2026-10-08 11:28 ` Jacky Chou
2026-10-09 10:32 ` [PATCH 0/3] phy: aspeed: Add ASPEED PCIe PHY support Krzysztof Kozlowski
3 siblings, 0 replies; 10+ messages in thread
From: Jacky Chou @ 2026-10-08 11:28 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Joel Stanley, Andrew Jeffery, Manivannan Sadhasivam,
Ryan Chen, Billy Tsai
Cc: linux-aspeed, linux-phy, devicetree, linux-arm-kernel,
linux-kernel, Jacky Chou
Add maintainer entry for ASPEED PCIe PHY driver.
Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
---
MAINTAINERS | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 0570815ee980..33a0336110a7 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -4044,6 +4044,14 @@ S: Maintained
F: Documentation/devicetree/bindings/crypto/aspeed,*
F: drivers/crypto/aspeed/
+ASPEED PCIE PHY DRIVER
+M: Jacky Chou <jacky_chou@aspeedtech.com>
+L: linux-aspeed@lists.ozlabs.org (moderated for non-subscribers)
+L: linux-phy@lists.infradead.org
+S: Maintained
+F: Documentation/devicetree/bindings/phy/aspeed,ast2600-pcie-phy.yaml
+F: drivers/phy/aspeed/phy-aspeed-pcie.c
+
ASPEED PECI CONTROLLER
M: Iwona Winiarska <iwona.winiarska@intel.com>
L: linux-aspeed@lists.ozlabs.org (moderated for non-subscribers)
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] phy: aspeed: Add ASPEED PCIe PHY driver
2026-10-08 11:28 ` [PATCH 2/3] phy: aspeed: Add ASPEED PCIe PHY driver Jacky Chou
@ 2026-10-08 11:39 ` sashiko-bot
2026-10-08 21:40 ` kernel test robot
` (2 subsequent siblings)
3 siblings, 0 replies; 10+ messages in thread
From: sashiko-bot @ 2026-10-08 11:39 UTC (permalink / raw)
To: Jacky Chou
Cc: linux-phy, neil.armstrong, robh, conor+dt, devicetree, vkoul,
olteanv
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] phy: aspeed: Destructive overwrite of PEHR_GLOBAL and PEHR_MISC_5C registers
- [Low] build: missing <linux/bitfield.h> and <linux/io.h> causes COMPILE_TEST failures
--
commit d6c687af08f52ce8c5106883a0ada373528fe1b8
Author: Jacky Chou <jacky_chou@aspeedtech.com>
phy: aspeed: Add ASPEED PCIe PHY driver
This commit introduces the Aspeed PCIe PHY controller driver for
AST2600/2700 platforms. It adds Kconfig and Makefile changes alongside
the main driver code implementing PHY operations.
> diff --git a/drivers/phy/aspeed/phy-aspeed-pcie.c b/drivers/phy/aspeed/phy-aspeed-pcie.c
> new file mode 100644
> index 0000000000000..eb300887b6441
> --- /dev/null
> +++ b/drivers/phy/aspeed/phy-aspeed-pcie.c
> @@ -0,0 +1,237 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright 2025 Aspeed Technology Inc.
> + */
> +
> +#include <linux/clk.h>
> +#include <linux/err.h>
> +#include <linux/module.h>
> +#include <linux/platform_device.h>
> +#include <linux/phy/pcie.h>
> +#include <linux/phy/phy.h>
[Severity: Low]
Can this cause build failures when COMPILE_TEST is enabled on architectures
that do not implicitly include <linux/bitfield.h> and <linux/io.h>?
The FIELD_PREP, FIELD_MODIFY, readl, and writel macros and functions are
used throughout this file, but their headers are not explicitly included.
[ ... ]
> +static int ast2600_phy_set_mode(struct phy *phy, enum phy_mode mode,
> + int submode)
> +{
> + struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
> +
> + switch (submode) {
> + case PHY_MODE_PCIE_RC:
> + writel(AST2600_PORT_TYPE(0x3), pcie_phy->reg + PEHR_GLOBAL);
[Severity: Medium]
Could this write unintentionally clear other configuration bits in PEHR_GLOBAL?
It overwrites the entire register instead of performing a read-modify-write
operation.
> + break;
> + default:
> + dev_err(&phy->dev, "Unsupported submode %d\n", submode);
> + return -EINVAL;
> + }
> +
> + return 0;
> +}
[ ... ]
> +static int ast2700_phy_set_mode(struct phy *phy, enum phy_mode mode,
> + int submode)
> +{
> + struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
> + u32 cfg_val;
> +
> + switch (submode) {
> + case PHY_MODE_PCIE_RC:
> + writel(0, pcie_phy->reg + PEHR_MISC_278);
> + writel(SEL_INTERNAL_RESET, pcie_phy->reg + PEHR_MISC_280);
> + writel(POSTED_DATA_CREDITS(0xc0) | POSTED_HEADER_CREDITS(0xa),
> + pcie_phy->reg + PEHR_MISC_70);
> + writel(COMPLETION_DATA_CREDITS(0x30) | COMPLETION_HEADER_CREDITS(0x8),
> + pcie_phy->reg + PEHR_MISC_78);
> + writel(LOCAL_SCALE_SUP, pcie_phy->reg + PEHR_MISC_58);
> + writel(CONFIG_RC_DEVICE, pcie_phy->reg + PEHR_MISC_5C);
[Severity: Medium]
Does writing CONFIG_RC_DEVICE directly to PEHR_MISC_5C risk zeroing out other
bits in this register?
A read-modify-write pattern might be needed here, similar to how PEHR_MISC_60
is handled just below this.
> + cfg_val = readl(pcie_phy->reg + PEHR_MISC_60);
> + FIELD_MODIFY(AST2700_PORT_TYPE_MASK, &cfg_val,
> + PORT_TYPE_ROOT);
> + writel(cfg_val, pcie_phy->reg + PEHR_MISC_60);
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261008-aspeed_pcie_phy-v1-0-96764937aef0@aspeedtech.com?part=2
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] phy: aspeed: Add ASPEED PCIe PHY driver
2026-10-08 11:28 ` [PATCH 2/3] phy: aspeed: Add ASPEED PCIe PHY driver Jacky Chou
2026-10-08 11:39 ` sashiko-bot
@ 2026-10-08 21:40 ` kernel test robot
2026-10-09 6:52 ` kernel test robot
2026-10-09 10:33 ` Krzysztof Kozlowski
3 siblings, 0 replies; 10+ messages in thread
From: kernel test robot @ 2026-10-08 21:40 UTC (permalink / raw)
To: Jacky Chou, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Joel Stanley, Andrew Jeffery,
Manivannan Sadhasivam, Ryan Chen, Billy Tsai
Cc: oe-kbuild-all, linux-aspeed, linux-phy, devicetree,
linux-arm-kernel, linux-kernel, Jacky Chou
Hi Jacky,
kernel test robot noticed the following build errors:
[auto build test ERROR on ea01f446f0682a5e7bd7a275889a890b7e0c6e02]
url: https://github.com/intel-lab-lkp/linux/commits/Jacky-Chou/dt-bindings-phy-aspeed-Add-ASPEED-PCIe-PHY/20261008-192819
base: ea01f446f0682a5e7bd7a275889a890b7e0c6e02
patch link: https://lore.kernel.org/r/20261008-aspeed_pcie_phy-v1-2-96764937aef0%40aspeedtech.com
patch subject: [PATCH 2/3] phy: aspeed: Add ASPEED PCIe PHY driver
config: csky-randconfig-1000-20261009 (https://download.01.org/0day-ci/archive/20261009/202610090555.gWYlVYEL-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261009/202610090555.gWYlVYEL-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202610090555.gWYlVYEL-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from include/linux/io.h:12,
from include/linux/irq.h:20,
from include/asm-generic/hardirq.h:17,
from ./arch/csky/include/generated/asm/hardirq.h:1,
from include/linux/hardirq.h:11,
from include/linux/interrupt.h:11,
from include/linux/kernel_stat.h:8,
from include/linux/cgroup.h:27,
from include/linux/memcontrol.h:13,
from include/linux/swap.h:9,
from include/linux/suspend.h:5,
from include/linux/regulator/consumer.h:35,
from include/linux/phy/phy.h:17,
from drivers/phy/aspeed/phy-aspeed-pcie.c:11:
drivers/phy/aspeed/phy-aspeed-pcie.c: In function 'ast2600_phy_set_mode':
>> drivers/phy/aspeed/phy-aspeed-pcie.c:16:41: error: implicit declaration of function 'FIELD_PREP' [-Wimplicit-function-declaration]
16 | #define AST2600_PORT_TYPE(x) FIELD_PREP(AST2600_PORT_TYPE_MASK, x)
| ^~~~~~~~~~
arch/csky/include/asm/io.h:31:59: note: in definition of macro 'writel'
31 | #define writel(v,c) ({ wmb(); writel_relaxed((v),(c)); mb(); })
| ^
drivers/phy/aspeed/phy-aspeed-pcie.c:94:24: note: in expansion of macro 'AST2600_PORT_TYPE'
94 | writel(AST2600_PORT_TYPE(0x3), pcie_phy->reg + PEHR_GLOBAL);
| ^~~~~~~~~~~~~~~~~
drivers/phy/aspeed/phy-aspeed-pcie.c: In function 'ast2700_phy_set_mode':
>> drivers/phy/aspeed/phy-aspeed-pcie.c:144:17: error: implicit declaration of function 'FIELD_MODIFY' [-Wimplicit-function-declaration]
144 | FIELD_MODIFY(AST2700_PORT_TYPE_MASK, &cfg_val,
| ^~~~~~~~~~~~
vim +/FIELD_PREP +16 drivers/phy/aspeed/phy-aspeed-pcie.c
12
13 /* AST2600 PCIe Host Controller Registers */
14 #define PEHR_GLOBAL 0x30
15 #define AST2600_PORT_TYPE_MASK GENMASK(5, 4)
> 16 #define AST2600_PORT_TYPE(x) FIELD_PREP(AST2600_PORT_TYPE_MASK, x)
17 #define PEHR_LOCK 0x7c
18 #define PCIE_UNLOCK 0xa8
19
20 /* AST2700 PEHR */
21 #define PEHR_MISC_58 0x58
22 #define LOCAL_SCALE_SUP BIT(0)
23 #define PEHR_MISC_5C 0x5c
24 #define CONFIG_RC_DEVICE BIT(30)
25 #define PEHR_MISC_60 0x60
26 #define AST2700_PORT_TYPE_MASK GENMASK(7, 4)
27 #define PORT_TYPE_ROOT 0x4
28 #define PEHR_MISC_70 0x70
29 #define POSTED_DATA_CREDITS(x) FIELD_PREP(GENMASK(15, 0), x)
30 #define POSTED_HEADER_CREDITS(x) FIELD_PREP(GENMASK(27, 16), x)
31 #define PEHR_MISC_78 0x78
32 #define COMPLETION_DATA_CREDITS(x) FIELD_PREP(GENMASK(15, 0), x)
33 #define COMPLETION_HEADER_CREDITS(x) FIELD_PREP(GENMASK(27, 16), x)
34 #define PEHR_MISC_278 0x278
35 #define SET_TO_DOWNSTREAM BIT(22)
36 #define ASSERT_INTERNAL_RESET BIT(31)
37 #define PEHR_MISC_280 0x280
38 #define SEL_INTERNAL_RESET BIT(0)
39
40 /**
41 * struct aspeed_pcie_phy - PCIe PHY information
42 * @dev: pointer to device structure
43 * @reg: PCIe host register base address
44 * @clk: PCIe reference clock
45 * @phy: pointer to PHY structure
46 * @platform: platform specific information
47 */
48 struct aspeed_pcie_phy {
49 struct device *dev;
50 void __iomem *reg;
51 struct clk *clk;
52 struct phy *phy;
53 const struct aspeed_pcie_phy_platform *platform;
54 };
55
56 /**
57 * struct aspeed_pcie_phy_platform - Platform information
58 * @phy_ops: phy operations
59 */
60 struct aspeed_pcie_phy_platform {
61 const struct phy_ops *phy_ops;
62 };
63
64 static int ast2600_phy_init(struct phy *phy)
65 {
66 struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
67 int ret;
68
69 ret = clk_prepare_enable(pcie_phy->clk);
70 if (ret)
71 return ret;
72
73 writel(PCIE_UNLOCK, pcie_phy->reg + PEHR_LOCK);
74
75 return 0;
76 }
77
78 static int ast2600_phy_exit(struct phy *phy)
79 {
80 struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
81
82 clk_disable_unprepare(pcie_phy->clk);
83
84 return 0;
85 }
86
87 static int ast2600_phy_set_mode(struct phy *phy, enum phy_mode mode,
88 int submode)
89 {
90 struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
91
92 switch (submode) {
93 case PHY_MODE_PCIE_RC:
94 writel(AST2600_PORT_TYPE(0x3), pcie_phy->reg + PEHR_GLOBAL);
95 break;
96 default:
97 dev_err(&phy->dev, "Unsupported submode %d\n", submode);
98 return -EINVAL;
99 }
100
101 return 0;
102 }
103
104 static const struct phy_ops ast2600_phy_ops = {
105 .init = ast2600_phy_init,
106 .exit = ast2600_phy_exit,
107 .set_mode = ast2600_phy_set_mode,
108 .owner = THIS_MODULE,
109 };
110
111 static int ast2700_phy_init(struct phy *phy)
112 {
113 struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
114
115 return clk_prepare_enable(pcie_phy->clk);
116 }
117
118 static int ast2700_phy_exit(struct phy *phy)
119 {
120 struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
121
122 clk_disable_unprepare(pcie_phy->clk);
123
124 return 0;
125 }
126
127 static int ast2700_phy_set_mode(struct phy *phy, enum phy_mode mode,
128 int submode)
129 {
130 struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
131 u32 cfg_val;
132
133 switch (submode) {
134 case PHY_MODE_PCIE_RC:
135 writel(0, pcie_phy->reg + PEHR_MISC_278);
136 writel(SEL_INTERNAL_RESET, pcie_phy->reg + PEHR_MISC_280);
137 writel(POSTED_DATA_CREDITS(0xc0) | POSTED_HEADER_CREDITS(0xa),
138 pcie_phy->reg + PEHR_MISC_70);
139 writel(COMPLETION_DATA_CREDITS(0x30) | COMPLETION_HEADER_CREDITS(0x8),
140 pcie_phy->reg + PEHR_MISC_78);
141 writel(LOCAL_SCALE_SUP, pcie_phy->reg + PEHR_MISC_58);
142 writel(CONFIG_RC_DEVICE, pcie_phy->reg + PEHR_MISC_5C);
143 cfg_val = readl(pcie_phy->reg + PEHR_MISC_60);
> 144 FIELD_MODIFY(AST2700_PORT_TYPE_MASK, &cfg_val,
145 PORT_TYPE_ROOT);
146 writel(cfg_val, pcie_phy->reg + PEHR_MISC_60);
147 writel(ASSERT_INTERNAL_RESET | SET_TO_DOWNSTREAM,
148 pcie_phy->reg + PEHR_MISC_278);
149 break;
150 default:
151 dev_err(&phy->dev, "Unsupported submode %d\n", submode);
152 return -EINVAL;
153 }
154
155 return 0;
156 }
157
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] phy: aspeed: Add ASPEED PCIe PHY driver
2026-10-08 11:28 ` [PATCH 2/3] phy: aspeed: Add ASPEED PCIe PHY driver Jacky Chou
2026-10-08 11:39 ` sashiko-bot
2026-10-08 21:40 ` kernel test robot
@ 2026-10-09 6:52 ` kernel test robot
2026-10-09 10:33 ` Krzysztof Kozlowski
3 siblings, 0 replies; 10+ messages in thread
From: kernel test robot @ 2026-10-09 6:52 UTC (permalink / raw)
To: Jacky Chou, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Joel Stanley, Andrew Jeffery,
Manivannan Sadhasivam, Ryan Chen, Billy Tsai
Cc: llvm, oe-kbuild-all, linux-aspeed, linux-phy, devicetree,
linux-arm-kernel, linux-kernel, Jacky Chou
Hi Jacky,
kernel test robot noticed the following build errors:
[auto build test ERROR on ea01f446f0682a5e7bd7a275889a890b7e0c6e02]
url: https://github.com/intel-lab-lkp/linux/commits/Jacky-Chou/dt-bindings-phy-aspeed-Add-ASPEED-PCIe-PHY/20261008-192819
base: ea01f446f0682a5e7bd7a275889a890b7e0c6e02
patch link: https://lore.kernel.org/r/20261008-aspeed_pcie_phy-v1-2-96764937aef0%40aspeedtech.com
patch subject: [PATCH 2/3] phy: aspeed: Add ASPEED PCIe PHY driver
config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20261009/202610091411.PPpH2lr3-lkp@intel.com/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 242243a5814307de825db3428662d67b064e2cbc)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261009/202610091411.PPpH2lr3-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202610091411.PPpH2lr3-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/phy/aspeed/phy-aspeed-pcie.c:73:2: error: call to undeclared function 'writel'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
73 | writel(PCIE_UNLOCK, pcie_phy->reg + PEHR_LOCK);
| ^
drivers/phy/aspeed/phy-aspeed-pcie.c:94:3: error: call to undeclared function 'writel'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
94 | writel(AST2600_PORT_TYPE(0x3), pcie_phy->reg + PEHR_GLOBAL);
| ^
drivers/phy/aspeed/phy-aspeed-pcie.c:94:10: error: call to undeclared function 'FIELD_PREP'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
94 | writel(AST2600_PORT_TYPE(0x3), pcie_phy->reg + PEHR_GLOBAL);
| ^
drivers/phy/aspeed/phy-aspeed-pcie.c:16:32: note: expanded from macro 'AST2600_PORT_TYPE'
16 | #define AST2600_PORT_TYPE(x) FIELD_PREP(AST2600_PORT_TYPE_MASK, x)
| ^
drivers/phy/aspeed/phy-aspeed-pcie.c:135:3: error: call to undeclared function 'writel'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
135 | writel(0, pcie_phy->reg + PEHR_MISC_278);
| ^
drivers/phy/aspeed/phy-aspeed-pcie.c:137:10: error: call to undeclared function 'FIELD_PREP'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
137 | writel(POSTED_DATA_CREDITS(0xc0) | POSTED_HEADER_CREDITS(0xa),
| ^
drivers/phy/aspeed/phy-aspeed-pcie.c:29:34: note: expanded from macro 'POSTED_DATA_CREDITS'
29 | #define POSTED_DATA_CREDITS(x) FIELD_PREP(GENMASK(15, 0), x)
| ^
>> drivers/phy/aspeed/phy-aspeed-pcie.c:143:13: error: call to undeclared function 'readl'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
143 | cfg_val = readl(pcie_phy->reg + PEHR_MISC_60);
| ^
drivers/phy/aspeed/phy-aspeed-pcie.c:144:3: error: call to undeclared function 'FIELD_MODIFY'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
144 | FIELD_MODIFY(AST2700_PORT_TYPE_MASK, &cfg_val,
| ^
7 errors generated.
vim +/writel +73 drivers/phy/aspeed/phy-aspeed-pcie.c
63
64 static int ast2600_phy_init(struct phy *phy)
65 {
66 struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
67 int ret;
68
69 ret = clk_prepare_enable(pcie_phy->clk);
70 if (ret)
71 return ret;
72
> 73 writel(PCIE_UNLOCK, pcie_phy->reg + PEHR_LOCK);
74
75 return 0;
76 }
77
78 static int ast2600_phy_exit(struct phy *phy)
79 {
80 struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
81
82 clk_disable_unprepare(pcie_phy->clk);
83
84 return 0;
85 }
86
87 static int ast2600_phy_set_mode(struct phy *phy, enum phy_mode mode,
88 int submode)
89 {
90 struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
91
92 switch (submode) {
93 case PHY_MODE_PCIE_RC:
94 writel(AST2600_PORT_TYPE(0x3), pcie_phy->reg + PEHR_GLOBAL);
95 break;
96 default:
97 dev_err(&phy->dev, "Unsupported submode %d\n", submode);
98 return -EINVAL;
99 }
100
101 return 0;
102 }
103
104 static const struct phy_ops ast2600_phy_ops = {
105 .init = ast2600_phy_init,
106 .exit = ast2600_phy_exit,
107 .set_mode = ast2600_phy_set_mode,
108 .owner = THIS_MODULE,
109 };
110
111 static int ast2700_phy_init(struct phy *phy)
112 {
113 struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
114
115 return clk_prepare_enable(pcie_phy->clk);
116 }
117
118 static int ast2700_phy_exit(struct phy *phy)
119 {
120 struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
121
122 clk_disable_unprepare(pcie_phy->clk);
123
124 return 0;
125 }
126
127 static int ast2700_phy_set_mode(struct phy *phy, enum phy_mode mode,
128 int submode)
129 {
130 struct aspeed_pcie_phy *pcie_phy = phy_get_drvdata(phy);
131 u32 cfg_val;
132
133 switch (submode) {
134 case PHY_MODE_PCIE_RC:
135 writel(0, pcie_phy->reg + PEHR_MISC_278);
136 writel(SEL_INTERNAL_RESET, pcie_phy->reg + PEHR_MISC_280);
137 writel(POSTED_DATA_CREDITS(0xc0) | POSTED_HEADER_CREDITS(0xa),
138 pcie_phy->reg + PEHR_MISC_70);
139 writel(COMPLETION_DATA_CREDITS(0x30) | COMPLETION_HEADER_CREDITS(0x8),
140 pcie_phy->reg + PEHR_MISC_78);
141 writel(LOCAL_SCALE_SUP, pcie_phy->reg + PEHR_MISC_58);
142 writel(CONFIG_RC_DEVICE, pcie_phy->reg + PEHR_MISC_5C);
> 143 cfg_val = readl(pcie_phy->reg + PEHR_MISC_60);
144 FIELD_MODIFY(AST2700_PORT_TYPE_MASK, &cfg_val,
145 PORT_TYPE_ROOT);
146 writel(cfg_val, pcie_phy->reg + PEHR_MISC_60);
147 writel(ASSERT_INTERNAL_RESET | SET_TO_DOWNSTREAM,
148 pcie_phy->reg + PEHR_MISC_278);
149 break;
150 default:
151 dev_err(&phy->dev, "Unsupported submode %d\n", submode);
152 return -EINVAL;
153 }
154
155 return 0;
156 }
157
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] dt-bindings: phy: aspeed: Add ASPEED PCIe PHY
2026-10-08 11:28 ` [PATCH 1/3] dt-bindings: phy: aspeed: Add ASPEED PCIe PHY Jacky Chou
@ 2026-10-09 10:31 ` Krzysztof Kozlowski
0 siblings, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2026-10-09 10:31 UTC (permalink / raw)
To: Jacky Chou
Cc: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Joel Stanley, Andrew Jeffery, Manivannan Sadhasivam,
Ryan Chen, Billy Tsai, linux-aspeed, linux-phy, devicetree,
linux-arm-kernel, linux-kernel
On Thu, Oct 08, 2026 at 07:28:19PM +0800, Jacky Chou wrote:
> Introduce device-binding for ASPEED AST2600/2700 PCIe PHY.
> The PHY provides the physical layer used by the PCIe
> controller when operating in root complex mode.
>
> Describe the compatible strings, register range, clocks and
> phy-cells value required by the PHY provider.
>
> Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
> ---
> .../bindings/phy/aspeed,ast2600-pcie-phy.yaml | 49 ++++++++++++++++++++++
> 1 file changed, 49 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/phy/aspeed,ast2600-pcie-phy.yaml b/Documentation/devicetree/bindings/phy/aspeed,ast2600-pcie-phy.yaml
> new file mode 100644
> index 000000000000..686b2e3d9457
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/phy/aspeed,ast2600-pcie-phy.yaml
What? v9 here:
https://lore.kernel.org/all/20260115-upstream_pcie_rc-v9-1-d6c82a1556a7@aspeedtech.com/
from the same person, reviewed, but you ask us to do the same work
second time? Really?
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/3] phy: aspeed: Add ASPEED PCIe PHY support
2026-10-08 11:28 [PATCH 0/3] phy: aspeed: Add ASPEED PCIe PHY support Jacky Chou
` (2 preceding siblings ...)
2026-10-08 11:28 ` [PATCH 3/3] MAINTAINERS: " Jacky Chou
@ 2026-10-09 10:32 ` Krzysztof Kozlowski
3 siblings, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2026-10-09 10:32 UTC (permalink / raw)
To: Jacky Chou
Cc: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Joel Stanley, Andrew Jeffery, Manivannan Sadhasivam,
Ryan Chen, Billy Tsai, linux-aspeed, linux-phy, devicetree,
linux-arm-kernel, linux-kernel
On Thu, Oct 08, 2026 at 07:28:18PM +0800, Jacky Chou wrote:
> Add the ASPEED PCIe PHY binding and driver for AST2600 and AST2700
> SoCs. The PHY provides the physical layer used by the PCIe controller
> when it is configured to run in root complex mode.
>
> The driver registers an ASPEED PCIe PHY provider through the generic PHY
> framework and programs the SoC-specific PEHR registers from set_mode().
> For AST2600 this selects the root complex port type. For AST2700 this
> also configures the posted/completion credit values, local scaling,
> device type, internal reset selection, and downstream port setting
> needed by the controller.
>
> This series also adds the devicetree binding for the PHY provider and a
> MAINTAINERS entry for the ASPEED PCIe PHY driver.
>
> Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
> ---
> Jacky Chou (3):
> dt-bindings: phy: aspeed: Add ASPEED PCIe PHY
> phy: aspeed: Add ASPEED PCIe PHY driver
> MAINTAINERS: Add ASPEED PCIe PHY driver
And changelog plus versioning are completely missing.
People sometimes wonder why maintainers are grumpy. Easy answer: you
do not respect their time.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] phy: aspeed: Add ASPEED PCIe PHY driver
2026-10-08 11:28 ` [PATCH 2/3] phy: aspeed: Add ASPEED PCIe PHY driver Jacky Chou
` (2 preceding siblings ...)
2026-10-09 6:52 ` kernel test robot
@ 2026-10-09 10:33 ` Krzysztof Kozlowski
3 siblings, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2026-10-09 10:33 UTC (permalink / raw)
To: Jacky Chou
Cc: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Joel Stanley, Andrew Jeffery, Manivannan Sadhasivam,
Ryan Chen, Billy Tsai, linux-aspeed, linux-phy, devicetree,
linux-arm-kernel, linux-kernel
On Thu, Oct 08, 2026 at 07:28:20PM +0800, Jacky Chou wrote:
> Introduce support for Aspeed PCIe PHY controller available in
> AST2600/2700.
>
> Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
> ---
> drivers/phy/aspeed/Kconfig | 12 +-
> drivers/phy/aspeed/Makefile | 1 +
> drivers/phy/aspeed/phy-aspeed-pcie.c | 237 +++++++++++++++++++++++++++++++++++
And unlike 10 previous versions, this wasn't even built!
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-10-09 10:33 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-08 11:28 [PATCH 0/3] phy: aspeed: Add ASPEED PCIe PHY support Jacky Chou
2026-10-08 11:28 ` [PATCH 1/3] dt-bindings: phy: aspeed: Add ASPEED PCIe PHY Jacky Chou
2026-10-09 10:31 ` Krzysztof Kozlowski
2026-10-08 11:28 ` [PATCH 2/3] phy: aspeed: Add ASPEED PCIe PHY driver Jacky Chou
2026-10-08 11:39 ` sashiko-bot
2026-10-08 21:40 ` kernel test robot
2026-10-09 6:52 ` kernel test robot
2026-10-09 10:33 ` Krzysztof Kozlowski
2026-10-08 11:28 ` [PATCH 3/3] MAINTAINERS: " Jacky Chou
2026-10-09 10:32 ` [PATCH 0/3] phy: aspeed: Add ASPEED PCIe PHY support Krzysztof Kozlowski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox