[PATCH v3 5/6] ARM: mxs: add usb phy operations
Lothar Waßmann
LW at KARO-electronics.de
Wed Jul 27 04:48:25 EDT 2011
Hi,
Tony Lin writes:
> add usb phy register definitions and functions
> usb host driver will use these callback functions
> to initialize usb phy and change working mode
>
> Signed-off-by: Tony Lin <tony.lin at freescale.com>
> ---
> arch/arm/mach-mxs/Kconfig | 1 +
> arch/arm/mach-mxs/Makefile | 1 +
> arch/arm/mach-mxs/mxs_usb.c | 288 +++++++++++++++++++++++++++++++++++
> arch/arm/mach-mxs/regs-usbphy-mxs.h | 240 +++++++++++++++++++++++++++++
> 4 files changed, 530 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-mxs/Kconfig b/arch/arm/mach-mxs/Kconfig
> index 4cd0231..1c4264f 100644
> --- a/arch/arm/mach-mxs/Kconfig
> +++ b/arch/arm/mach-mxs/Kconfig
> @@ -49,6 +49,7 @@ config MACH_MX28EVK
> select MXS_HAVE_PLATFORM_MXS_MMC
> select MXS_HAVE_PLATFORM_MXSFB
> select MXS_OCOTP
> + select USB_ARCH_HAS_EHCI
> help
> Include support for MX28EVK platform. This includes specific
> configurations for the board and its peripherals.
> diff --git a/arch/arm/mach-mxs/Makefile b/arch/arm/mach-mxs/Makefile
> index 6c38262..726c49f 100644
> --- a/arch/arm/mach-mxs/Makefile
> +++ b/arch/arm/mach-mxs/Makefile
> @@ -12,5 +12,6 @@ obj-$(CONFIG_MACH_MX23EVK) += mach-mx23evk.o
> obj-$(CONFIG_MACH_MX28EVK) += mach-mx28evk.o
> obj-$(CONFIG_MODULE_TX28) += module-tx28.o
> obj-$(CONFIG_MACH_TX28) += mach-tx28.o
> +obj-$(CONFIG_USB_EHCI_MXC) += mxs_usb.o
>
> obj-y += devices/
> diff --git a/arch/arm/mach-mxs/mxs_usb.c b/arch/arm/mach-mxs/mxs_usb.c
> new file mode 100644
> index 0000000..9acc611
> --- /dev/null
> +++ b/arch/arm/mach-mxs/mxs_usb.c
[...]
> +static struct mxs_usb_private_date usbh_private = {
> + .internal_phy_clk_already_on = 0,
> +};
> +
> +static struct mxc_usbh_platform_data usbh_config = {
> + .init = fsl_usb_host_init,
> + .exit = fsl_usb_host_uninit,
> + .portsc = MXC_EHCI_MODE_ULPI,
> + .otg = NULL,
> + .plt_irq_handler = fsl_plt_usbh_irq_handler,
> + .ppriv = &usbh_private,
^^^^^^^^^^^^^^^^^^^^^^^
This is an abuse of the platform_data. platform_data is meant to
convey platform specific information to a driver, not for drivers
storing their internal state. It should be handled read-only by
drivers.
If you want to associate driver internal data with a platform_device
you should use platform_set_drvdata()/platform_get_drvdata() to
store/retrieve a pointer to the driver's internal data.
Lothar Waßmann
--
___________________________________________________________
Ka-Ro electronics GmbH | Pascalstraße 22 | D - 52076 Aachen
Phone: +49 2408 1402-0 | Fax: +49 2408 1402-10
Geschäftsführer: Matthias Kaussen
Handelsregistereintrag: Amtsgericht Aachen, HRB 4996
www.karo-electronics.de | info at karo-electronics.de
___________________________________________________________
More information about the linux-arm-kernel
mailing list