Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.8.
 1/*
 2 * Copyright (C) 2010 Pengutronix
 3 * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
 4 *
 5 * This program is free software; you can redistribute it and/or modify it under
 6 * the terms of the GNU General Public License version 2 as published by the
 7 * Free Software Foundation.
 8 */
 9#include <linux/dma-mapping.h>
10
11#include "../hardware.h"
12#include "devices-common.h"
13
14#define imx_fsl_usb2_udc_data_entry_single(soc, _devid)			\
15	{								\
16		.devid = _devid,					\
17		.iobase = soc ## _USB_OTG_BASE_ADDR,			\
18		.irq = soc ## _INT_USB_OTG,				\
19	}
20
21#ifdef CONFIG_SOC_IMX27
22const struct imx_fsl_usb2_udc_data imx27_fsl_usb2_udc_data __initconst =
23	imx_fsl_usb2_udc_data_entry_single(MX27, "imx-udc-mx27");
24#endif /* ifdef CONFIG_SOC_IMX27 */
25
26#ifdef CONFIG_SOC_IMX31
27const struct imx_fsl_usb2_udc_data imx31_fsl_usb2_udc_data __initconst =
28	imx_fsl_usb2_udc_data_entry_single(MX31, "imx-udc-mx27");
29#endif /* ifdef CONFIG_SOC_IMX31 */
30
31#ifdef CONFIG_SOC_IMX35
32const struct imx_fsl_usb2_udc_data imx35_fsl_usb2_udc_data __initconst =
33	imx_fsl_usb2_udc_data_entry_single(MX35, "imx-udc-mx27");
34#endif /* ifdef CONFIG_SOC_IMX35 */
35
36struct platform_device *__init imx_add_fsl_usb2_udc(
37		const struct imx_fsl_usb2_udc_data *data,
38		const struct fsl_usb2_platform_data *pdata)
39{
40	struct resource res[] = {
41		{
42			.start = data->iobase,
43			.end = data->iobase + SZ_512 - 1,
44			.flags = IORESOURCE_MEM,
45		}, {
46			.start = data->irq,
47			.end = data->irq,
48			.flags = IORESOURCE_IRQ,
49		},
50	};
51	return imx_add_platform_device_dmamask(data->devid, -1,
52			res, ARRAY_SIZE(res),
53			pdata, sizeof(*pdata), DMA_BIT_MASK(32));
54}