[PATCH v2] usb: gadget: fsl: Re-enable driver for ARM SoCs

Joel Stanley joel at jms.id.au
Thu Jun 10 19:01:12 PDT 2021


On Thu, 10 Jun 2021 at 03:50, Joel Stanley <joel at jms.id.au> wrote:
>
> The commit a390bef7db1f ("usb: gadget: fsl_mxc_udc: Remove the driver")
> dropped the ARCH_MXC dependency from USB_FSL_USB2, leaving it depending
> solely on FSL_SOC.
>
> FSL_SOC is powerpc only; it was briefly available on ARM in 2014 but was
> removed by commit cfd074ad8600 ("ARM: imx: temporarily remove
> CONFIG_SOC_FSL from LS1021A"). Therefore the driver can no longer be
> enabled on ARM platforms.
>
> This appears to be a mistake as arm64's ARCH_LAYERSCAPE and arm32
> SOC_LS1021A SoCs use this symbol. It's enabled in these defconfigs:
>
> arch/arm/configs/imx_v6_v7_defconfig:CONFIG_USB_FSL_USB2=y
> arch/arm/configs/multi_v7_defconfig:CONFIG_USB_FSL_USB2=y
> arch/powerpc/configs/mgcoge_defconfig:CONFIG_USB_FSL_USB2=y
> arch/powerpc/configs/mpc512x_defconfig:CONFIG_USB_FSL_USB2=y
>
> To fix, expand the dependencies so USB_FSL_USB2 can be enabled on the
> ARM platforms, and with COMPILE_TEST.

This didn't work out, as there's some missing clock initialisation
calls that were removed when fsl_mxc_udc was deleted:

arm-linux-gnueabi-ld: drivers/usb/gadget/udc/fsl_udc_core.o: in
function `fsl_udc_remove':
fsl_udc_core.c:(.text+0xc88): undefined reference to `fsl_udc_clk_release'
arm-linux-gnueabi-ld: drivers/usb/gadget/udc/fsl_udc_core.o: in
function `fsl_udc_probe':
fsl_udc_core.c:(.text+0x1c44): undefined reference to `fsl_udc_clk_init'
arm-linux-gnueabi-ld: fsl_udc_core.c:(.text+0x1dcc): undefined
reference to `fsl_udc_clk_finalize'
arm-linux-gnueabi-ld: fsl_udc_core.c:(.text+0x1fe8): undefined
reference to `fsl_udc_clk_release'

We could add them back, but it's not clear if this driver is still
maintained. I'm looking to the NXP people for input here.

Stephen has dropped the patch from today's -next. I suggest we drop
(or revert?) this patch from the USB tree while a solution is found.

Cheers,

Joel

>
> Fixes: a390bef7db1f ("usb: gadget: fsl_mxc_udc: Remove the driver")
> Signed-off-by: Joel Stanley <joel at jms.id.au>
> ---
> v2: Fix spelling of ARCH_LAYERSCAPE
> ---
>  drivers/usb/gadget/udc/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/gadget/udc/Kconfig b/drivers/usb/gadget/udc/Kconfig
> index 8c614bb86c66..7348acbdc560 100644
> --- a/drivers/usb/gadget/udc/Kconfig
> +++ b/drivers/usb/gadget/udc/Kconfig
> @@ -90,7 +90,7 @@ config USB_BCM63XX_UDC
>
>  config USB_FSL_USB2
>         tristate "Freescale Highspeed USB DR Peripheral Controller"
> -       depends on FSL_SOC
> +       depends on FSL_SOC || ARCH_LAYERSCAPE || SOC_LS1021A || COMPILE_TEST
>         help
>            Some of Freescale PowerPC and i.MX processors have a High Speed
>            Dual-Role(DR) USB controller, which supports device mode.
> --
> 2.30.2
>



More information about the linux-arm-kernel mailing list