Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f0ea8834 authored by Peter Chen's avatar Peter Chen Committed by Felipe Balbi
Browse files

usb: gadget: fsl-mxc-udc: replace cpu_is_xxx() with platform_device_id



As mach/hardware.h is deleted, we need to use platform_device_id to
differentiate SoCs. Besides, one cpu_is_mx35 is useless as it has
already used pdata to differentiate runtime

Meanwhile we update the platform code accordingly.

Signed-off-by: default avatarPeter Chen <peter.chen@freescale.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 091a62c9
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ struct platform_device *__init imx_add_flexcan(

#include <linux/fsl_devices.h>
struct imx_fsl_usb2_udc_data {
	const char *devid;
	resource_size_t iobase;
	resource_size_t irq;
};
+8 −7
Original line number Diff line number Diff line
@@ -11,35 +11,36 @@
#include "../hardware.h"
#include "devices-common.h"

#define imx_fsl_usb2_udc_data_entry_single(soc)				\
#define imx_fsl_usb2_udc_data_entry_single(soc, _devid)			\
	{								\
		.devid = _devid,					\
		.iobase = soc ## _USB_OTG_BASE_ADDR,			\
		.irq = soc ## _INT_USB_OTG,				\
	}

#ifdef CONFIG_SOC_IMX25
const struct imx_fsl_usb2_udc_data imx25_fsl_usb2_udc_data __initconst =
	imx_fsl_usb2_udc_data_entry_single(MX25);
	imx_fsl_usb2_udc_data_entry_single(MX25, "imx-udc-mx27");
#endif /* ifdef CONFIG_SOC_IMX25 */

#ifdef CONFIG_SOC_IMX27
const struct imx_fsl_usb2_udc_data imx27_fsl_usb2_udc_data __initconst =
	imx_fsl_usb2_udc_data_entry_single(MX27);
	imx_fsl_usb2_udc_data_entry_single(MX27, "imx-udc-mx27");
#endif /* ifdef CONFIG_SOC_IMX27 */

#ifdef CONFIG_SOC_IMX31
const struct imx_fsl_usb2_udc_data imx31_fsl_usb2_udc_data __initconst =
	imx_fsl_usb2_udc_data_entry_single(MX31);
	imx_fsl_usb2_udc_data_entry_single(MX31, "imx-udc-mx27");
#endif /* ifdef CONFIG_SOC_IMX31 */

#ifdef CONFIG_SOC_IMX35
const struct imx_fsl_usb2_udc_data imx35_fsl_usb2_udc_data __initconst =
	imx_fsl_usb2_udc_data_entry_single(MX35);
	imx_fsl_usb2_udc_data_entry_single(MX35, "imx-udc-mx27");
#endif /* ifdef CONFIG_SOC_IMX35 */

#ifdef CONFIG_SOC_IMX51
const struct imx_fsl_usb2_udc_data imx51_fsl_usb2_udc_data __initconst =
	imx_fsl_usb2_udc_data_entry_single(MX51);
	imx_fsl_usb2_udc_data_entry_single(MX51, "imx-udc-mx51");
#endif

struct platform_device *__init imx_add_fsl_usb2_udc(
@@ -57,7 +58,7 @@ struct platform_device *__init imx_add_fsl_usb2_udc(
			.flags = IORESOURCE_IRQ,
		},
	};
	return imx_add_platform_device_dmamask("fsl-usb2-udc", -1,
	return imx_add_platform_device_dmamask(data->devid, -1,
			res, ARRAY_SIZE(res),
			pdata, sizeof(*pdata), DMA_BIT_MASK(32));
}
+10 −14
Original line number Diff line number Diff line
@@ -18,8 +18,6 @@
#include <linux/platform_device.h>
#include <linux/io.h>

#include <mach/hardware.h>

static struct clk *mxc_ahb_clk;
static struct clk *mxc_per_clk;
static struct clk *mxc_ipg_clk;
@@ -59,7 +57,7 @@ int fsl_udc_clk_init(struct platform_device *pdev)
	clk_prepare_enable(mxc_per_clk);

	/* make sure USB_CLK is running at 60 MHz +/- 1000 Hz */
	if (!cpu_is_mx51()) {
	if (!strcmp(pdev->id_entry->name, "imx-udc-mx27")) {
		freq = clk_get_rate(mxc_per_clk);
		if (pdata->phy_mode != FSL_USB2_PHY_ULPI &&
		    (freq < 59999000 || freq > 60001000)) {
@@ -82,7 +80,6 @@ eclkrate:
void fsl_udc_clk_finalize(struct platform_device *pdev)
{
	struct fsl_usb2_platform_data *pdata = pdev->dev.platform_data;
	if (cpu_is_mx35()) {
	unsigned int v;

	/* workaround ENGcm09152 for i.MX35 */
@@ -93,7 +90,6 @@ void fsl_udc_clk_finalize(struct platform_device *pdev)
			MX35_IO_ADDRESS(MX35_USB_BASE_ADDR +
				USBPHYCTRL_OTGBASE_OFFSET));
	}
	}

	/* ULPI transceivers don't need usbpll */
	if (pdata->phy_mode == FSL_USB2_PHY_ULPI) {
+22 −16
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@
#include <linux/fsl_devices.h>
#include <linux/dmapool.h>
#include <linux/delay.h>
#include <linux/of_device.h>

#include <asm/byteorder.h>
#include <asm/io.h>
@@ -2438,11 +2439,6 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
	unsigned int i;
	u32 dccparams;

	if (strcmp(pdev->name, driver_name)) {
		VDBG("Wrong device");
		return -ENODEV;
	}

	udc_controller = kzalloc(sizeof(struct fsl_udc), GFP_KERNEL);
	if (udc_controller == NULL) {
		ERR("malloc udc failed\n");
@@ -2756,13 +2752,23 @@ static int fsl_udc_otg_resume(struct device *dev)

	return fsl_udc_resume(NULL);
}

/*-------------------------------------------------------------------------
	Register entry point for the peripheral controller driver
--------------------------------------------------------------------------*/

static const struct platform_device_id fsl_udc_devtype[] = {
	{
		.name = "imx-udc-mx27",
	}, {
		.name = "imx-udc-mx51",
	}, {
		/* sentinel */
	}
};
MODULE_DEVICE_TABLE(platform, fsl_udc_devtype);
static struct platform_driver udc_driver = {
	.remove		= __exit_p(fsl_udc_remove),
	/* Just for FSL i.mx SoC currently */
	.id_table	= fsl_udc_devtype,
	/* these suspend and resume are not usb suspend and resume */
	.suspend	= fsl_udc_suspend,
	.resume		= fsl_udc_resume,