[PATCH v8 0/4] Add ASPEED PCIe PHY support
From: Jacky Chou <jacky_chou@aspeedtech.com>
Date: 2025-12-30 05:58:07
Also in:
linux-arm-kernel, linux-devicetree, linux-phy, lkml
This patch series adds support for the ASPEED PCIe PHY, including device tree bindings and PCIe PHY driver. The patches introduce the necessary device tree nodes. Summary of changes: - Add device tree binding documents for ASPEED PCIe PHY - Update MAINTAINERS for new bindings and driver - Implement ASPEED PCIe PHY driver This series has been tested on AST2600/AST2700 platforms and enables PCIe device enumeration and operation. Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com> --- Changes in v8: - Update the title of cover letter - Remove 'default y' from Kconfig - Change 'PHY:' to 'phy:' in the title of ASPEED PCIe PHY commit. - Remove unnecessary headers from phy-aspeed-pcie.c. - Add ASPEED PCIe PHY MAINTAINERS - Remove applied patches [v7,2/7] dt-bindings: PCI: Add ASPEED PCIe RC support [v7,5/7] PCI: Add FMT, TYPE and CPL status definition for TLP header [v7,6/7] PCI: aspeed: Add ASPEED PCIe RC driver [v7,7/7] MAINTAINERS: Add ASPEED PCIe RC driver - Link to v7: https://lore.kernel.org/r/20251216-upstream_pcie_rc-v7-0-4aeb0f53c4ce@aspeedtech.com (local) Changes in v7: - Add PCIe port into aspeed,ast2600-pci.yaml. - Remove aspeed_pcie_init_ports() and merge aspeed_pcie_port_init() to aspeed_pcie_parse_port() - Refactor aspeed remap pcie addr to aspeed_pcie_map_ranges() - Link to v6: https://lore.kernel.org/r/20251201-upstream_pcie_rc-v6-0-8c8800c56b16@aspeedtech.com (local) Changes in v6: - Refer to pci-cpi-bridge.yaml to update aspeed,ast2600-pcie.yaml and the pcie node of aspeed-g6.dtsi. - 'dt-bindings: pinctrl: aspeed,ast2600-pinctrl: Add PCIe RC PERST# group' have applied, remove it from this version. - Adjust the defnitions in pci.h. - Link to v5: https://lore.kernel.org/r/20251117-upstream_pcie_rc-v5-0-b4a198576acf@aspeedtech.com (local) Changes in v5: - Remove legacy-interrupt-controller and the INTx points to pcie node itself. - Correct bar mapping description and implementation to PCIe address configuration in pcie-aspeed.c driver. - Link to v4: https://lore.kernel.org/r/20251027095825.181161-1-jacky_chou@aspeedtech.com/ (local) Changes in v4: - Remove aspeed,ast2700-pcie-cfg.yaml - Add more descriptions for AST2600 PCIe RC in aspeed,ast2600-pcie.yaml - Change interrupt-controller to legacy-interrupt-controller in yaml and dtsi - Remove msi-parent property in yaml and dtsi - Modify the bus range to starting from 0x00 in aspeed-g6.dtsi - Fixed the typo on MODULE_DEVICE_TABLE() in phy-aspeed-pcie.c - Add PCIE_CPL_STS_SUCCESS definition in pci/pci.h - Add prefix ASPEED_ for register definition in RC driver - Add a flag to indicate clear msi status twice for AST2700 workaround - Remove getting domain number - Remove scanning AST2600 HOST bridge on device number 0 - Remove all codes about CONFIG_PCI_MSI - Get root but number from resouce list by IORESOURCE_BUS - Change module_platform_driver to builtin_platform_driver - Link to v3: https://lore.kernel.org/r/20250901055922.1553550-1-jacky_chou@aspeedtech.com/ (local) Changes in v3: - Add ASPEED PCIe PHY driver - Remove the aspeed,pciecfg property from AST2600 RC node, merged into RC node - Update the binding doc for aspeed,ast2700-pcie-cfg to reflect the changes - Update the binding doc for aspeed,ast2600-pcie to reflect the changes - Update the binding doc for aspeed,ast2600-pinctrl to reflect the changes - Update the device tree source to reflect the changes - Adjusted the use of mutex in RC drivers to use GRAND - Updated from reviewer comments - Link to v2: https://lore.kernel.org/r/20250715034320.2553837-1-jacky_chou@aspeedtech.com/ (local) Changes in v2: - Moved ASPEED PCIe PHY yaml binding to `soc/aspeed` directory and changed it as syscon - Added `MAINTAINERS` entry for the new PCIe RC driver - Updated device tree bindings to reflect the new structure - Refactored configuration read and write functions to main bus and child bus ops - Refactored initialization to implement multiple ports support - Added PCIe FMT and TYPE definitions for TLP header in `include/uapi/linux/pci_regs.h` - Updated from reviewer comments - Link to v1: https://lore.kernel.org/r/20250613033001.3153637-1-jacky_chou@aspeedtech.com/ (local) --- Jacky Chou (4): dt-bindings: phy: aspeed: Add ASPEED PCIe PHY ARM: dts: aspeed-g6: Add PCIe RC and PCIe PHY node phy: aspeed: Add ASPEED PCIe PHY driver MAINTAINERS: Add ASPEED PCIe PHY driver .../bindings/phy/aspeed,ast2600-pcie-phy.yaml | 42 +++++ MAINTAINERS | 8 + arch/arm/boot/dts/aspeed/aspeed-g6-pinctrl.dtsi | 5 + arch/arm/boot/dts/aspeed/aspeed-g6.dtsi | 53 ++++++ drivers/phy/Kconfig | 1 + drivers/phy/Makefile | 1 + drivers/phy/aspeed/Kconfig | 14 ++ drivers/phy/aspeed/Makefile | 2 + drivers/phy/aspeed/phy-aspeed-pcie.c | 194 +++++++++++++++++++++ 9 files changed, 320 insertions(+) --- base-commit: 8640b74557fc8b4c300030f6ccb8cd078f665ec8 change-id: 20251103-upstream_pcie_rc-8445759db813 Best regards, -- Jacky Chou [off-list ref]