Commit 627fb3b9 authored by javier Martin's avatar javier Martin Committed by Sascha Hauer
Browse files

MX27: Add USB platform devices and resources



This adds clocks and resources for usb in i.mx27 SoC.

Signed-off-by: default avatarJavier Martin <javier.martin@vista-silicon.com>
Signed-off-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
parent 88e29a8d
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -643,7 +643,14 @@ static struct clk_lookup lookups[] = {
	_REGISTER_CLOCK(NULL, "cspi3", cspi3_clk)
	_REGISTER_CLOCK("imx-fb.0", NULL, lcdc_clk)
	_REGISTER_CLOCK(NULL, "csi", csi_clk)
	_REGISTER_CLOCK(NULL, "usb", usb_clk)
	_REGISTER_CLOCK("fsl-usb2-udc", "usb", usb_clk)
	_REGISTER_CLOCK("fsl-usb2-udc", "usb_ahb", usb_clk1)
	_REGISTER_CLOCK("mxc-ehci.0", "usb", usb_clk)
	_REGISTER_CLOCK("mxc-ehci.0", "usb_ahb", usb_clk1)
	_REGISTER_CLOCK("mxc-ehci.1", "usb", usb_clk)
	_REGISTER_CLOCK("mxc-ehci.1", "usb_ahb", usb_clk1)
	_REGISTER_CLOCK("mxc-ehci.2", "usb", usb_clk)
	_REGISTER_CLOCK("mxc-ehci.2", "usb_ahb", usb_clk1)
	_REGISTER_CLOCK(NULL, "ssi1", ssi1_clk)
	_REGISTER_CLOCK(NULL, "ssi2", ssi2_clk)
	_REGISTER_CLOCK("mxc_nand.0", NULL, nfc_clk)
+92 −0
Original line number Diff line number Diff line
@@ -369,6 +369,98 @@ struct platform_device mxc_sdhc_device1 = {
       .resource       = mxc_sdhc2_resources,
};

static struct resource otg_resources[] = {
	{
		.start	= OTG_BASE_ADDR,
		.end	= OTG_BASE_ADDR + 0x1ff,
		.flags	= IORESOURCE_MEM,
	}, {
		.start	= MXC_INT_USB3,
		.end	= MXC_INT_USB3,
		.flags	= IORESOURCE_IRQ,
	},
};

static u64 otg_dmamask = 0xffffffffUL;

/* OTG gadget device */
struct platform_device mxc_otg_udc_device = {
	.name		= "fsl-usb2-udc",
	.id		= -1,
	.dev		= {
		.dma_mask		= &otg_dmamask,
		.coherent_dma_mask	= 0xffffffffUL,
	},
	.resource	= otg_resources,
	.num_resources	= ARRAY_SIZE(otg_resources),
};

/* OTG host */
struct platform_device mxc_otg_host = {
	.name = "mxc-ehci",
	.id = 0,
	.dev = {
		.coherent_dma_mask = 0xffffffff,
		.dma_mask = &otg_dmamask,
	},
	.resource = otg_resources,
	.num_resources = ARRAY_SIZE(otg_resources),
};

/* USB host 1 */

static u64 usbh1_dmamask = 0xffffffffUL;

static struct resource mxc_usbh1_resources[] = {
	{
		.start = OTG_BASE_ADDR + 0x200,
		.end = OTG_BASE_ADDR + 0x3ff,
		.flags = IORESOURCE_MEM,
	}, {
		.start = MXC_INT_USB1,
		.end = MXC_INT_USB1,
		.flags = IORESOURCE_IRQ,
	},
};

struct platform_device mxc_usbh1 = {
	.name = "mxc-ehci",
	.id = 1,
	.dev = {
		.coherent_dma_mask = 0xffffffff,
		.dma_mask = &usbh1_dmamask,
	},
	.resource = mxc_usbh1_resources,
	.num_resources = ARRAY_SIZE(mxc_usbh1_resources),
};

/* USB host 2 */
static u64 usbh2_dmamask = 0xffffffffUL;

static struct resource mxc_usbh2_resources[] = {
	{
		.start = OTG_BASE_ADDR + 0x400,
		.end = OTG_BASE_ADDR + 0x5ff,
		.flags = IORESOURCE_MEM,
	}, {
		.start = MXC_INT_USB2,
		.end = MXC_INT_USB2,
		.flags = IORESOURCE_IRQ,
	},
};

struct platform_device mxc_usbh2 = {
	.name = "mxc-ehci",
	.id = 2,
	.dev = {
		.coherent_dma_mask = 0xffffffff,
		.dma_mask = &usbh2_dmamask,
	},
	.resource = mxc_usbh2_resources,
	.num_resources = ARRAY_SIZE(mxc_usbh2_resources),
};


/* GPIO port description */
static struct mxc_gpio_port imx_gpio_ports[] = {
	{
+4 −0
Original line number Diff line number Diff line
@@ -19,3 +19,7 @@ extern struct platform_device mxc_i2c_device0;
extern struct platform_device mxc_i2c_device1;
extern struct platform_device mxc_sdhc_device0;
extern struct platform_device mxc_sdhc_device1;
extern struct platform_device mxc_otg_udc_device;
extern struct platform_device mxc_otg_host;
extern struct platform_device mxc_usbh1;
extern struct platform_device mxc_usbh2;