[PATCH v2 3/7] sunxi: Kconfig: rework PHY_USB_SUN4I selection

Sam Edwards cfsworks at gmail.com
Mon Jun 19 05:15:16 CEST 2023



On 6/11/23 17:32, Andre Przywara wrote:
> At the moment we use "select" in each Allwinner SoC's Kconfig section to
> include the USB PHY driver in the build. This means it cannot be disabled
> via Kconfig, although USB is not really a strictly required core
> functionality, and a particular board might not even include USB ports.
> 
> Rework the Kconfig part by removing the "select" lines for each SoC's
> section, and instead letting it default to "y" in the PHY driver section
> itself. We use "depends on !" to exclude the few SoCs we don't support
> (yet). The Allwinner V3s does not enable USB (PHY) support at the moment,
> even though it should work: let the PHY default to "n" to keep the
> current behaviour.
> 
> Signed-off-by: Andre Przywara <andre.przywara at arm.com>
> Reviewed-by: Jernej Skrabec <jernej.skrabec at gmail.com>
> ---
>   arch/arm/mach-sunxi/Kconfig   | 11 -----------
>   drivers/phy/allwinner/Kconfig |  6 +++++-
>   2 files changed, 5 insertions(+), 12 deletions(-)
> 
> diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
> index 6dcbb096f74..e0b1bde35a9 100644
> --- a/arch/arm/mach-sunxi/Kconfig
> +++ b/arch/arm/mach-sunxi/Kconfig
> @@ -207,7 +207,6 @@ endif
>   
>   config MACH_SUNXI_H3_H5
>   	bool
> -	select PHY_SUN4I_USB
>   	select SUNXI_DE2
>   	select SUNXI_DRAM_DW
>   	select SUNXI_DRAM_DW_32BIT
> @@ -236,7 +235,6 @@ config MACH_SUNIV
>   config MACH_SUN4I
>   	bool "sun4i (Allwinner A10)"
>   	select CPU_V7A
> -	select PHY_SUN4I_USB
>   	select DRAM_SUN4I
>   	select SUNXI_GEN_SUN4I
>   	select SUPPORT_SPL
> @@ -247,7 +245,6 @@ config MACH_SUN5I
>   	bool "sun5i (Allwinner A13)"
>   	select CPU_V7A
>   	select DRAM_SUN4I
> -	select PHY_SUN4I_USB
>   	select SUNXI_GEN_SUN4I
>   	select SUPPORT_SPL
>   	imply SPL_SYS_I2C_LEGACY
> @@ -261,7 +258,6 @@ config MACH_SUN6I
>   	select ARCH_SUPPORT_PSCI
>   	select SPL_ARMV7_SET_CORTEX_SMPEN
>   	select DRAM_SUN6I
> -	select PHY_SUN4I_USB
>   	select SPL_I2C
>   	select SUN6I_PRCM
>   	select SUNXI_GEN_SUN6I
> @@ -277,7 +273,6 @@ config MACH_SUN7I
>   	select ARCH_SUPPORT_PSCI
>   	select SPL_ARMV7_SET_CORTEX_SMPEN
>   	select DRAM_SUN4I
> -	select PHY_SUN4I_USB
>   	select SUNXI_GEN_SUN4I
>   	select SUPPORT_SPL
>   	select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
> @@ -291,7 +286,6 @@ config MACH_SUN8I_A23
>   	select CPU_V7_HAS_VIRT
>   	select ARCH_SUPPORT_PSCI
>   	select DRAM_SUN8I_A23
> -	select PHY_SUN4I_USB
>   	select SPL_I2C
>   	select SUNXI_GEN_SUN6I
>   	select SUPPORT_SPL
> @@ -305,7 +299,6 @@ config MACH_SUN8I_A33
>   	select CPU_V7_HAS_VIRT
>   	select ARCH_SUPPORT_PSCI
>   	select DRAM_SUN8I_A33
> -	select PHY_SUN4I_USB
>   	select SPL_I2C
>   	select SUNXI_GEN_SUN6I
>   	select SUPPORT_SPL
> @@ -316,7 +309,6 @@ config MACH_SUN8I_A83T
>   	bool "sun8i (Allwinner A83T)"
>   	select CPU_V7A
>   	select DRAM_SUN8I_A83T
> -	select PHY_SUN4I_USB
>   	select SPL_I2C
>   	select SUNXI_GEN_SUN6I
>   	select MMC_SUNXI_HAS_NEW_MODE
> @@ -344,7 +336,6 @@ config MACH_SUN8I_R40
>   	select SUPPORT_SPL
>   	select SUNXI_DRAM_DW
>   	select SUNXI_DRAM_DW_32BIT
> -	select PHY_SUN4I_USB
>   	imply SPL_SYS_I2C_LEGACY
>   
>   config MACH_SUN8I_V3S
> @@ -372,7 +363,6 @@ config MACH_SUN9I
>   config MACH_SUN50I
>   	bool "sun50i (Allwinner A64)"
>   	select ARM64
> -	select PHY_SUN4I_USB
>   	select SUN6I_PRCM
>   	select SUNXI_DE2
>   	select SUNXI_GEN_SUN6I
> @@ -395,7 +385,6 @@ config MACH_SUN50I_H5
>   config MACH_SUN50I_H6
>   	bool "sun50i (Allwinner H6)"
>   	select ARM64
> -	select PHY_SUN4I_USB
>   	select DRAM_SUN50I_H6
>   	select SUN50I_GEN_H6
>   
> diff --git a/drivers/phy/allwinner/Kconfig b/drivers/phy/allwinner/Kconfig
> index f8f1e99c4f5..565b4617b01 100644
> --- a/drivers/phy/allwinner/Kconfig
> +++ b/drivers/phy/allwinner/Kconfig
> @@ -4,6 +4,10 @@
>   config PHY_SUN4I_USB
>   	bool "Allwinner Sun4I USB PHY driver"
>   	depends on ARCH_SUNXI
> +	depends on !MACH_SUN9I
> +	depends on !MACH_SUN50I_H616
> +	default n if MACH_SUN8I_V3S
> +	default y
>   	select DM_REGULATOR
>   	select PHY
>   	help
> @@ -11,7 +15,7 @@ config PHY_SUN4I_USB
>   	  sunxi SoCs.
>   
>   	  This driver controls the entire USB PHY block, both the USB OTG
> -	  parts, as well as the 2 regular USB 2 host PHYs.
> +	  parts, as well as the regular USB HCI host PHYs.
>   
>   config INITIAL_USB_SCAN_DELAY
>   	int "Delay initial USB scan by x ms to allow builtin devices to init"

This does result in PHY_USB_SUN4I being enabled by default, so I guess:
Tested-by: Sam Edwards <CFSworks at gmail.com>

However, it's now possible to (attempt to) build the mUSB driver with 
PHY_USB_SUN4I switched off, resulting in link errors. Should the proper 
"depends on" be added under USB_MUSB_SUNXI?

Best,
Sam


More information about the U-Boot mailing list