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

Commit 7d92e8e6 authored by Uwe Kleine-König's avatar Uwe Kleine-König
Browse files

ARM: mx5: dynamically allocate mxc-ehci devices



Additionally make the usb related defines consistent with the other imx
SoCs.

Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
parent b7ca8327
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ config MACH_MX51_BABBAGE
	select IMX_HAVE_PLATFORM_IMX2_WDT
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_MXC_EHCI
	select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
	select IMX_HAVE_PLATFORM_SPI_IMX
	help
@@ -93,6 +94,7 @@ config MACH_EUKREA_CPUIMX51
	select SOC_IMX51
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_MXC_EHCI
	select IMX_HAVE_PLATFORM_MXC_NAND
	select IMX_HAVE_PLATFORM_SPI_IMX
	help
@@ -120,9 +122,10 @@ config MACH_EUKREA_CPUIMX51SD
	bool "Support Eukrea CPUIMX51SD module"
	select SOC_IMX51
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_SPI_IMX
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_MXC_EHCI
	select IMX_HAVE_PLATFORM_MXC_NAND
	select IMX_HAVE_PLATFORM_SPI_IMX
	help
	  Include support for Eukrea CPUIMX51SD platform. This includes
	  specific configurations for the module and its peripherals.
@@ -147,6 +150,7 @@ config MX51_EFIKA_COMMON
	bool
	select SOC_IMX51
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_MXC_EHCI
	select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
	select IMX_HAVE_PLATFORM_SPI_IMX
	select MXC_ULPI if USB_ULPI
+6 −6
Original line number Diff line number Diff line
@@ -167,7 +167,7 @@ static int initialize_otg_port(struct platform_device *pdev)
	void __iomem *usb_base;
	void __iomem *usbother_base;

	usb_base = ioremap(MX51_OTG_BASE_ADDR, SZ_4K);
	usb_base = ioremap(MX51_USB_OTG_BASE_ADDR, SZ_4K);
	if (!usb_base)
		return -ENOMEM;
	usbother_base = usb_base + MX5_USBOTHER_REGS_OFFSET;
@@ -190,7 +190,7 @@ static int initialize_usbh1_port(struct platform_device *pdev)
	void __iomem *usb_base;
	void __iomem *usbother_base;

	usb_base = ioremap(MX51_OTG_BASE_ADDR, SZ_4K);
	usb_base = ioremap(MX51_USB_OTG_BASE_ADDR, SZ_4K);
	if (!usb_base)
		return -ENOMEM;
	usbother_base = usb_base + MX5_USBOTHER_REGS_OFFSET;
@@ -206,7 +206,7 @@ static int initialize_usbh1_port(struct platform_device *pdev)
			MXC_EHCI_ITC_NO_THRESHOLD);
}

static struct mxc_usbh_platform_data dr_utmi_config = {
static const struct mxc_usbh_platform_data dr_utmi_config __initconst = {
	.init		= initialize_otg_port,
	.portsc	= MXC_EHCI_UTMI_16BIT,
};
@@ -216,7 +216,7 @@ static struct fsl_usb2_platform_data usb_pdata = {
	.phy_mode	= FSL_USB2_PHY_UTMI_WIDE,
};

static struct mxc_usbh_platform_data usbh1_config = {
static const struct mxc_usbh_platform_data usbh1_config __initconst = {
	.init		= initialize_usbh1_port,
	.portsc	= MXC_EHCI_MODE_ULPI,
};
@@ -270,12 +270,12 @@ static void __init eukrea_cpuimx51_init(void)
				ARRAY_SIZE(eukrea_cpuimx51_i2c_devices));

	if (otg_mode_host)
		mxc_register_device(&mxc_usbdr_host_device, &dr_utmi_config);
		imx51_add_mxc_ehci_otg(&dr_utmi_config);
	else {
		initialize_otg_port(NULL);
		mxc_register_device(&mxc_usbdr_udc_device, &usb_pdata);
	}
	mxc_register_device(&mxc_usbh1_device, &usbh1_config);
	imx51_add_mxc_ehci_hs(1, &usbh1_config);

#ifdef CONFIG_MACH_EUKREA_MBIMX51_BASEBOARD
	eukrea_mbimx51_baseboard_init();
+6 −6
Original line number Diff line number Diff line
@@ -149,7 +149,7 @@ static int initialize_otg_port(struct platform_device *pdev)
	void __iomem *usb_base;
	void __iomem *usbother_base;

	usb_base = ioremap(MX51_OTG_BASE_ADDR, SZ_4K);
	usb_base = ioremap(MX51_USB_OTG_BASE_ADDR, SZ_4K);
	if (!usb_base)
		return -ENOMEM;
	usbother_base = usb_base + MX5_USBOTHER_REGS_OFFSET;
@@ -172,7 +172,7 @@ static int initialize_usbh1_port(struct platform_device *pdev)
	void __iomem *usb_base;
	void __iomem *usbother_base;

	usb_base = ioremap(MX51_OTG_BASE_ADDR, SZ_4K);
	usb_base = ioremap(MX51_USB_OTG_BASE_ADDR, SZ_4K);
	if (!usb_base)
		return -ENOMEM;
	usbother_base = usb_base + MX5_USBOTHER_REGS_OFFSET;
@@ -189,7 +189,7 @@ static int initialize_usbh1_port(struct platform_device *pdev)
			MXC_EHCI_ITC_NO_THRESHOLD);
}

static struct mxc_usbh_platform_data dr_utmi_config = {
static const struct mxc_usbh_platform_data dr_utmi_config __initconst = {
	.init		= initialize_otg_port,
	.portsc	= MXC_EHCI_UTMI_16BIT,
};
@@ -199,7 +199,7 @@ static struct fsl_usb2_platform_data usb_pdata = {
	.phy_mode	= FSL_USB2_PHY_UTMI_WIDE,
};

static struct mxc_usbh_platform_data usbh1_config = {
static const struct mxc_usbh_platform_data usbh1_config __initconst = {
	.init		= initialize_usbh1_port,
	.portsc	= MXC_EHCI_MODE_ULPI,
};
@@ -303,7 +303,7 @@ static void __init eukrea_cpuimx51sd_init(void)
	platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));

	if (otg_mode_host)
		mxc_register_device(&mxc_usbdr_host_device, &dr_utmi_config);
		imx51_add_mxc_ehci_otg(&dr_utmi_config);
	else {
		initialize_otg_port(NULL);
		mxc_register_device(&mxc_usbdr_udc_device, &usb_pdata);
@@ -313,7 +313,7 @@ static void __init eukrea_cpuimx51sd_init(void)
	gpio_direction_output(USBH1_RST, 0);
	msleep(20);
	gpio_set_value(USBH1_RST, 1);
	mxc_register_device(&mxc_usbh1_device, &usbh1_config);
	imx51_add_mxc_ehci_hs(1, &usbh1_config);

#ifdef CONFIG_MACH_EUKREA_MBIMXSD51_BASEBOARD
	eukrea_mbimxsd51_baseboard_init();
+6 −6
Original line number Diff line number Diff line
@@ -249,7 +249,7 @@ static int initialize_otg_port(struct platform_device *pdev)
	void __iomem *usb_base;
	void __iomem *usbother_base;

	usb_base = ioremap(MX51_OTG_BASE_ADDR, SZ_4K);
	usb_base = ioremap(MX51_USB_OTG_BASE_ADDR, SZ_4K);
	if (!usb_base)
		return -ENOMEM;
	usbother_base = usb_base + MX5_USBOTHER_REGS_OFFSET;
@@ -272,7 +272,7 @@ static int initialize_usbh1_port(struct platform_device *pdev)
	void __iomem *usb_base;
	void __iomem *usbother_base;

	usb_base = ioremap(MX51_OTG_BASE_ADDR, SZ_4K);
	usb_base = ioremap(MX51_USB_OTG_BASE_ADDR, SZ_4K);
	if (!usb_base)
		return -ENOMEM;
	usbother_base = usb_base + MX5_USBOTHER_REGS_OFFSET;
@@ -288,7 +288,7 @@ static int initialize_usbh1_port(struct platform_device *pdev)
			MXC_EHCI_ITC_NO_THRESHOLD);
}

static struct mxc_usbh_platform_data dr_utmi_config = {
static const struct mxc_usbh_platform_data dr_utmi_config __initconst = {
	.init		= initialize_otg_port,
	.portsc	= MXC_EHCI_UTMI_16BIT,
};
@@ -298,7 +298,7 @@ static struct fsl_usb2_platform_data usb_pdata = {
	.phy_mode	= FSL_USB2_PHY_UTMI_WIDE,
};

static struct mxc_usbh_platform_data usbh1_config = {
static const struct mxc_usbh_platform_data usbh1_config __initconst = {
	.init		= initialize_usbh1_port,
	.portsc	= MXC_EHCI_MODE_ULPI,
};
@@ -384,14 +384,14 @@ static void __init mx51_babbage_init(void)
	mxc_register_device(&mxc_hsi2c_device, &babbage_hsi2c_data);

	if (otg_mode_host)
		mxc_register_device(&mxc_usbdr_host_device, &dr_utmi_config);
		imx51_add_mxc_ehci_otg(&dr_utmi_config);
	else {
		initialize_otg_port(NULL);
		mxc_register_device(&mxc_usbdr_udc_device, &usb_pdata);
	}

	gpio_usbh1_active();
	mxc_register_device(&mxc_usbh1_device, &usbh1_config);
	imx51_add_mxc_ehci_hs(1, &usbh1_config);
	/* setback USBH1_STP to be function */
	mxc_iomux_v3_setup_pad(usbh1stp);
	babbage_usbhub_reset();
+2 −3
Original line number Diff line number Diff line
@@ -42,7 +42,6 @@
#include <asm/mach/time.h>

#include "devices-imx51.h"
#include "devices.h"
#include "efika.h"

#define EFIKASB_USBH2_STP	IMX_GPIO_NR(2, 20)
@@ -119,7 +118,7 @@ static int initialize_usbh2_port(struct platform_device *pdev)
	return mx51_initialize_usb_hw(pdev->id, MXC_EHCI_ITC_NO_THRESHOLD);
}

static struct mxc_usbh_platform_data usbh2_config = {
static struct mxc_usbh_platform_data usbh2_config __initdata = {
	.init   = initialize_usbh2_port,
	.portsc = MXC_EHCI_MODE_ULPI,
};
@@ -129,7 +128,7 @@ static void __init mx51_efikasb_usb(void)
	usbh2_config.otg = imx_otg_ulpi_create(ULPI_OTG_DRVVBUS |
			ULPI_OTG_DRVVBUS_EXT | ULPI_OTG_EXTVBUSIND);
	if (usbh2_config.otg)
		mxc_register_device(&mxc_usbh2_device, &usbh2_config);
		imx51_add_mxc_ehci_hs(2, &usbh2_config);
}

static const struct gpio_led mx51_efikasb_leds[] __initconst = {
Loading