mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 18:35:42 +01:00 
			
		
		
		
	Add initial support for i.MX8M{M/P} PCIe PHY. On i.MX8M{M/P} SoCs PCIe
PHY initialization moved to this standalone PHY driver.
Inspired from counterpart Linux kernel v6.8-rc3 driver:
drivers/phy/freescale/phy-fsl-imx8m-pcie.c. Use last Linux kernel driver
reference commit 7559e7572c03 ("phy: Explicitly include correct DT
includes").
Tested-by: Tim Harvey <tharvey@gateworks.com> #imx8mp-venice*
Tested-by: Adam Ford <aford173@gmail.com> #imx8mp-beacon-kit
Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
		
	
		
			
				
	
	
		
			312 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			312 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | |
| menu "PHY Subsystem"
 | |
| 
 | |
| config PHY
 | |
| 	bool "PHY Core"
 | |
| 	depends on DM
 | |
| 	help
 | |
| 	  PHY support.
 | |
| 
 | |
| 	  This framework is designed to provide a generic interface for PHY
 | |
| 	  devices. PHY devices are dedicated hardware that handle the physical
 | |
| 	  layer of the protocols in the OSI model.
 | |
| 	  PHYs are commonly used for high speed interfaces such as Serial-ATA
 | |
| 	  or PCI express.
 | |
| 	  The API provides functions to initialize/deinitialize the
 | |
| 	  PHY, power on/off the PHY, and reset the PHY. It's meant to be as
 | |
| 	  compatible as possible with the equivalent framework found in the
 | |
| 	  linux kernel.
 | |
| 
 | |
| config SPL_PHY
 | |
| 	bool "PHY Core in SPL"
 | |
| 	depends on DM && SPL
 | |
| 	help
 | |
| 	  PHY support in SPL.
 | |
| 
 | |
| 	  This framework is designed to provide a generic interface for PHY
 | |
| 	  devices. PHY devices are dedicated hardware that handle the physical
 | |
| 	  layer of the protocols (https://en.wikipedia.org/wiki/OSI_model).
 | |
| 	  PHYs are commonly used for high speed interfaces such as Serial-ATA
 | |
| 	  or PCI express.
 | |
| 	  The API provides functions to initialize/deinitialize the
 | |
| 	  PHY, power on/off the PHY, and reset the PHY. It's meant to be as
 | |
| 	  compatible as possible with the equivalent framework found in the
 | |
| 	  linux kernel.
 | |
| 
 | |
| config PHY_SANDBOX
 | |
| 	bool "Sandbox PHY support"
 | |
| 	depends on SANDBOX
 | |
| 	depends on PHY
 | |
| 	help
 | |
| 	  This select a dummy sandbox PHY driver. It used only to implement
 | |
| 	  the unit tests for the phy framework
 | |
| 
 | |
| config NOP_PHY
 | |
| 	bool "NOP PHY driver"
 | |
| 	depends on PHY
 | |
| 	help
 | |
| 	  Support for a no-op PHY driver (stubbed PHY driver).
 | |
| 
 | |
| 	  This is useful when a driver uses the PHY framework but no real PHY
 | |
| 	  hardware exists.
 | |
| 
 | |
| config SPL_NOP_PHY
 | |
| 	bool "NOP PHY driver in SPL"
 | |
| 	depends on SPL_PHY
 | |
| 	help
 | |
| 	  Support for a no-op PHY driver (stubbed PHY driver) in the SPL.
 | |
| 
 | |
| 	  This is useful when a driver uses the PHY framework but no real PHY
 | |
| 	  hardware exists.
 | |
| 
 | |
| config MIPI_DPHY_HELPERS
 | |
| 	bool "MIPI D-PHY support helpers"
 | |
| 	help
 | |
| 	  Provides a number of helpers a core functions for MIPI D-PHY drivers.
 | |
| 
 | |
| config AB8500_USB_PHY
 | |
| 	bool "AB8500 USB PHY Driver"
 | |
| 	depends on PHY && PMIC_AB8500
 | |
| 	help
 | |
| 	  Support for the USB OTG PHY in ST-Ericsson AB8500.
 | |
| 
 | |
| config APPLE_ATCPHY
 | |
|        bool "Apple Type-C PHY Driver"
 | |
|        depends on PHY && ARCH_APPLE
 | |
|        default y
 | |
|        help
 | |
|          Support for the Apple Type-C PHY.
 | |
| 
 | |
| 	 This is a dummy driver since the PHY is initialized
 | |
| 	 sufficiently by previous stage firmware.
 | |
| 
 | |
| config BCM6318_USBH_PHY
 | |
| 	bool "BCM6318 USBH PHY support"
 | |
| 	depends on PHY && ARCH_BMIPS
 | |
| 	select POWER_DOMAIN
 | |
| 	help
 | |
| 	  Support for the Broadcom MIPS BCM6318 USBH PHY.
 | |
| 
 | |
| config BCM6348_USBH_PHY
 | |
| 	bool "BCM6348 USBH PHY support"
 | |
| 	depends on PHY && ARCH_BMIPS
 | |
| 	help
 | |
| 	  Support for the Broadcom MIPS BCM6348 USBH PHY.
 | |
| 
 | |
| config BCM6358_USBH_PHY
 | |
| 	bool "BCM6358 USBH PHY support"
 | |
| 	depends on PHY && ARCH_BMIPS
 | |
| 	help
 | |
| 	  Support for the Broadcom MIPS BCM6358 USBH PHY.
 | |
| 
 | |
| config BCM6368_USBH_PHY
 | |
| 	bool "BCM6368 USBH PHY support"
 | |
| 	depends on PHY && ARCH_BMIPS
 | |
| 	help
 | |
| 	  Support for the Broadcom MIPS BCM6368 USBH PHY.
 | |
| 
 | |
| config BCM_SR_PCIE_PHY
 | |
| 	bool "Broadcom Stingray PCIe PHY driver"
 | |
| 	depends on PHY
 | |
| 	help
 | |
| 	  Enable this to support the Broadcom Stingray PCIe PHY
 | |
| 	  If unsure, say N.
 | |
| 
 | |
| config PHY_DA8XX_USB
 | |
| 	tristate "TI DA8xx USB PHY Driver"
 | |
| 	depends on PHY && ARCH_DAVINCI
 | |
| 	help
 | |
| 	  Enable this to support the USB PHY on DA8xx SoCs.
 | |
| 
 | |
| config PIPE3_PHY
 | |
| 	bool "Support omap's PIPE3 PHY"
 | |
| 	depends on PHY && ARCH_OMAP2PLUS
 | |
| 	help
 | |
| 	  Support for the omap PIPE3 phy for sata
 | |
| 
 | |
| 	  This PHY is found on omap devices supporting SATA such as dra7, am57x
 | |
| 	  and omap5
 | |
| 
 | |
| config SPL_PIPE3_PHY
 | |
| 	bool "Support omap's PIPE3 PHY in SPL"
 | |
| 	depends on SPL_PHY && ARCH_OMAP2PLUS
 | |
| 	help
 | |
| 	  Support for the omap PIPE3 phy for sata in SPL
 | |
| 
 | |
| 	  This PHY is found on omap devices supporting SATA such as dra7, am57x
 | |
| 	  and omap5
 | |
| 
 | |
| config AM654_PHY
 | |
| 	tristate "TI AM654 SERDES support"
 | |
| 	depends on PHY && ARCH_K3
 | |
| 	select REGMAP
 | |
| 	select SYSCON
 | |
| 	help
 | |
| 	  This option enables support for TI AM654 SerDes PHY used for
 | |
| 	  PCIe.
 | |
| 
 | |
| config STI_USB_PHY
 | |
| 	bool "STMicroelectronics USB2 picoPHY driver for STiH407 family"
 | |
| 	depends on PHY && ARCH_STI
 | |
| 	help
 | |
| 	  This is the generic phy driver for the picoPHY ports
 | |
| 	  used by USB2 and USB3 Host controllers available on
 | |
| 	  STiH407 SoC families.
 | |
| 
 | |
| config PHY_RCAR_GEN2
 | |
| 	tristate "Renesas R-Car Gen2 USB PHY"
 | |
| 	depends on PHY && RCAR_GEN2
 | |
| 	help
 | |
| 	  Support for the Renesas R-Car Gen2 USB PHY. This driver operates the
 | |
| 	  PHY connected to USBHS module, PCI EHCI module and USB3.0 module and
 | |
| 	  allows configuring the module multiplexing.
 | |
| 
 | |
| config PHY_RCAR_GEN3
 | |
| 	tristate "Renesas R-Car Gen3 USB PHY"
 | |
| 	depends on PHY && RCAR_GEN3 && CLK && DM_REGULATOR
 | |
| 	default y if RCAR_GEN3
 | |
| 	help
 | |
| 	  Support for the Renesas R-Car Gen3 USB PHY. This driver operates the
 | |
| 	  PHY connected to EHCI USB module and controls USB OTG operation.
 | |
| 
 | |
| config PHY_STM32_USBPHYC
 | |
| 	tristate "STMicroelectronics STM32 SoC USB HS PHY driver"
 | |
| 	depends on PHY && ARCH_STM32MP
 | |
| 	help
 | |
| 	  Enable this to support the High-Speed USB transceiver that is part of
 | |
| 	  STMicroelectronics STM32 SoCs.
 | |
| 
 | |
| 	  This driver controls the entire USB PHY block: the USB PHY controller
 | |
| 	  (USBPHYC) and the two 8-bit wide UTMI+ interface. First interface is
 | |
| 	  used by an HS USB Host controller, and the second one is shared
 | |
| 	  between an HS USB OTG controller and an HS USB Host controller,
 | |
| 	  selected by an USB switch.
 | |
| 
 | |
| config MESON_GXBB_USB_PHY
 | |
| 	bool "Amlogic Meson GXBB USB PHY"
 | |
| 	depends on PHY && ARCH_MESON && MESON_GXBB
 | |
| 	imply REGMAP
 | |
| 	help
 | |
| 	  This is the generic phy driver for the Amlogic Meson GXBB
 | |
| 	  USB2 PHY.
 | |
| 
 | |
| config MESON_GXL_USB_PHY
 | |
| 	bool "Amlogic Meson GXL USB PHYs"
 | |
| 	depends on PHY && ARCH_MESON && (MESON_GXL || MESON_GXM || MESON_AXG)
 | |
| 	imply REGMAP
 | |
| 	help
 | |
| 	  This is the generic phy driver for the Amlogic Meson GXL
 | |
| 	  USB2 and USB3 PHYS.
 | |
| 
 | |
| config MESON_G12A_USB_PHY
 | |
| 	bool "Amlogic Meson G12A USB PHYs"
 | |
| 	depends on PHY && ARCH_MESON && (MESON_G12A || MESON_A1)
 | |
| 	imply REGMAP
 | |
| 	help
 | |
| 	  This is the generic phy driver for the Amlogic Meson G12A
 | |
| 	  USB2 and USB3 PHYS.
 | |
| 
 | |
| config MESON_AXG_MIPI_DPHY
 | |
| 	bool "Amlogic Meson AXG MIPI D-PHY"
 | |
| 	depends on PHY && ARCH_MESON && MESON_AXG
 | |
| 	select MIPI_DPHY_HELPERS
 | |
| 	imply REGMAP
 | |
| 	help
 | |
| 	  This is the generic phy driver for the Amlogic Meson AXG
 | |
| 	  MIPI D-PHY.
 | |
| 
 | |
| config MESON_AXG_MIPI_PCIE_ANALOG_PHY
 | |
| 	bool "Amlogic Meson AXG MIPI PCIe Analog PHY"
 | |
| 	depends on PHY && ARCH_MESON && MESON_AXG
 | |
| 	select MIPI_DPHY_HELPERS
 | |
| 	imply REGMAP
 | |
| 	help
 | |
| 	  This is the generic phy driver for the Amlogic Meson AXG
 | |
| 	  MIPI PCIe Analog PHY.
 | |
| 
 | |
| config OMAP_USB2_PHY
 | |
| 	bool "Support OMAP's USB2 PHY"
 | |
| 	depends on PHY
 | |
| 	depends on SYSCON
 | |
| 	help
 | |
| 	  Support for the OMAP's USB2 PHY.
 | |
| 
 | |
| 	  This PHY is found on OMAP devices supporting USB2.
 | |
| 
 | |
| 
 | |
| config KEYSTONE_USB_PHY
 | |
| 	bool "Support TI Keystone USB PHY"
 | |
| 	depends on PHY
 | |
| 	depends on ARCH_KEYSTONE
 | |
| 	help
 | |
| 	  Support for the USB PHY found on some Keystone (k2) processors
 | |
| 
 | |
| 	  This PHY is found on some Keystone (K2) devices supporting USB.
 | |
| 
 | |
| config MT7620_USB_PHY
 | |
| 	bool "MediaTek MT7620 USB PHY support"
 | |
| 	depends on PHY
 | |
| 	depends on SOC_MT7620
 | |
| 	help
 | |
|           Support the intergated USB PHY in MediaTek MT7620 SoC
 | |
| 
 | |
| config MT76X8_USB_PHY
 | |
| 	bool "MediaTek MT76x8 (7628/88) USB PHY support"
 | |
| 	depends on PHY
 | |
| 	depends on SOC_MT7628
 | |
| 	help
 | |
|           Support the USB PHY in MT76x8 SoCs
 | |
| 
 | |
| 	  This PHY is found on MT76x8 devices supporting USB.
 | |
| 
 | |
| config PHY_MTK_TPHY
 | |
| 	bool "MediaTek T-PHY Driver"
 | |
| 	depends on PHY
 | |
| 	depends on ARCH_MEDIATEK || SOC_MT7621
 | |
| 	help
 | |
| 	  MediaTek T-PHY driver supports usb2.0, usb3.0 ports, PCIe and
 | |
| 	  SATA, and meanwhile supports two version T-PHY which have
 | |
| 	  different banks layout, the T-PHY with shared banks between
 | |
| 	  multi-ports is first version, otherwise is second veriosn,
 | |
| 	  so you can easily distinguish them by banks layout.
 | |
| 
 | |
| config PHY_NPCM_USB
 | |
| 	bool "Nuvoton NPCM USB PHY support"
 | |
| 	depends on PHY
 | |
| 	depends on ARCH_NPCM
 | |
| 	help
 | |
| 	  Support the USB PHY in NPCM SoCs
 | |
| 
 | |
| config PHY_IMX8MQ_USB
 | |
| 	bool "NXP i.MX8MQ/i.MX8MP USB PHY Driver"
 | |
| 	depends on PHY
 | |
| 	depends on IMX8MQ || IMX8MP
 | |
| 	help
 | |
| 	  Support the USB3.0 PHY in NXP i.MX8MQ or i.MX8MP SoC
 | |
| 
 | |
| config PHY_IMX8M_PCIE
 | |
| 	bool "NXP i.MX8MM/i.MX8MP PCIe PHY Driver"
 | |
| 	depends on PHY
 | |
| 	depends on IMX8MM || IMX8MP
 | |
| 	select REGMAP
 | |
| 	select SYSCON
 | |
| 	help
 | |
| 	  Support the PCIe PHY in NXP i.MX8MM or i.MX8MP SoC
 | |
| 
 | |
| 	  This PHY is found on i.MX8M devices supporting PCIe.
 | |
| 
 | |
| config PHY_XILINX_ZYNQMP
 | |
| 	tristate "Xilinx ZynqMP PHY driver"
 | |
| 	depends on PHY && ARCH_ZYNQMP
 | |
| 	help
 | |
| 	  Enable this to support ZynqMP High Speed Gigabit Transceiver
 | |
| 	  that is part of ZynqMP SoC.
 | |
| 
 | |
| source "drivers/phy/rockchip/Kconfig"
 | |
| source "drivers/phy/cadence/Kconfig"
 | |
| source "drivers/phy/ti/Kconfig"
 | |
| source "drivers/phy/qcom/Kconfig"
 | |
| source "drivers/phy/renesas/Kconfig"
 | |
| 
 | |
| endmenu
 |