forked from rubenslte/android_kernel_samsung_msm8226
Merge "USB: EHCI: msm: Add support for EHCI based Host Controller" into msm-3.0
This commit is contained in:
committed by
QuIC Gerrit Code Review
commit
f314abc159
@@ -42,8 +42,6 @@ VREG_CONSUMERS(L3) = {
|
||||
VREG_CONSUMERS(L4) = {
|
||||
REGULATOR_SUPPLY("8921_l4", NULL),
|
||||
REGULATOR_SUPPLY("HSUSB_1p8", "msm_otg"),
|
||||
REGULATOR_SUPPLY("HSUSB_1p8", "msm_ehci_host.0"),
|
||||
REGULATOR_SUPPLY("HSUSB_1p8", "msm_ehci_host.1"),
|
||||
REGULATOR_SUPPLY("iris_vddxo", "wcnss_wlan.0"),
|
||||
};
|
||||
VREG_CONSUMERS(L5) = {
|
||||
@@ -104,7 +102,8 @@ VREG_CONSUMERS(L23) = {
|
||||
REGULATOR_SUPPLY("8921_l23", NULL),
|
||||
REGULATOR_SUPPLY("pll_vdd", "pil_qdsp6v4.1"),
|
||||
REGULATOR_SUPPLY("pll_vdd", "pil_qdsp6v4.2"),
|
||||
|
||||
REGULATOR_SUPPLY("HSUSB_1p8", "msm_ehci_host.0"),
|
||||
REGULATOR_SUPPLY("HSUSB_1p8", "msm_ehci_host.1"),
|
||||
};
|
||||
VREG_CONSUMERS(L24) = {
|
||||
REGULATOR_SUPPLY("8921_l24", NULL),
|
||||
@@ -219,6 +218,7 @@ VREG_CONSUMERS(8821_S1) = {
|
||||
};
|
||||
VREG_CONSUMERS(EXT_5V) = {
|
||||
REGULATOR_SUPPLY("ext_5v", NULL),
|
||||
REGULATOR_SUPPLY("vbus", "msm_ehci_host.0"),
|
||||
};
|
||||
VREG_CONSUMERS(EXT_MPP8) = {
|
||||
REGULATOR_SUPPLY("ext_mpp8", NULL),
|
||||
|
||||
@@ -475,6 +475,19 @@ static struct msm_otg_platform_data msm_otg_pdata = {
|
||||
.power_budget = 750,
|
||||
};
|
||||
|
||||
static struct msm_usb_host_platform_data msm_ehci_host_pdata = {
|
||||
.power_budget = 500,
|
||||
};
|
||||
|
||||
static void __init apq8064_ehci_host_init(void)
|
||||
{
|
||||
if (machine_is_apq8064_liquid()) {
|
||||
apq8064_device_ehci_host3.dev.platform_data =
|
||||
&msm_ehci_host_pdata;
|
||||
platform_device_register(&apq8064_device_ehci_host3);
|
||||
}
|
||||
}
|
||||
|
||||
#define TABLA_INTERRUPT_BASE (NR_MSM_IRQS + NR_GPIO_IRQS + NR_PM8921_IRQS)
|
||||
|
||||
/* Micbias setting is based on 8660 CDP/MTP/FLUID requirement
|
||||
@@ -1861,6 +1874,7 @@ static void __init apq8064_common_init(void)
|
||||
if (machine_is_apq8064_liquid())
|
||||
msm_otg_pdata.mhl_enable = true;
|
||||
apq8064_device_otg.dev.platform_data = &msm_otg_pdata;
|
||||
apq8064_ehci_host_init();
|
||||
apq8064_init_buses();
|
||||
platform_add_devices(common_devices, ARRAY_SIZE(common_devices));
|
||||
if (machine_is_apq8064_mtp()) {
|
||||
|
||||
@@ -68,6 +68,10 @@
|
||||
#define MSM_HSUSB1_PHYS 0x12500000
|
||||
#define MSM_HSUSB1_SIZE SZ_4K
|
||||
|
||||
/* Address of HS USB3 */
|
||||
#define MSM_HSUSB3_PHYS 0x12520000
|
||||
#define MSM_HSUSB3_SIZE SZ_4K
|
||||
|
||||
static struct msm_watchdog_pdata msm_watchdog_pdata = {
|
||||
.pet_time = 10000,
|
||||
.bark_time = 11000,
|
||||
@@ -650,6 +654,30 @@ struct platform_device apq8064_device_hsic_host = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource resources_ehci_host3[] = {
|
||||
{
|
||||
.start = MSM_HSUSB3_PHYS,
|
||||
.end = MSM_HSUSB3_PHYS + MSM_HSUSB3_SIZE - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
{
|
||||
.start = USB3_HS_IRQ,
|
||||
.end = USB3_HS_IRQ,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
struct platform_device apq8064_device_ehci_host3 = {
|
||||
.name = "msm_ehci_host",
|
||||
.id = 0,
|
||||
.num_resources = ARRAY_SIZE(resources_ehci_host3),
|
||||
.resource = resources_ehci_host3,
|
||||
.dev = {
|
||||
.dma_mask = &dma_mask,
|
||||
.coherent_dma_mask = 0xffffffff,
|
||||
},
|
||||
};
|
||||
|
||||
/* MSM Video core device */
|
||||
#ifdef CONFIG_MSM_BUS_SCALING
|
||||
static struct msm_bus_vectors vidc_init_vectors[] = {
|
||||
|
||||
@@ -110,6 +110,7 @@ extern struct platform_device apq8064_usb_diag_device;
|
||||
extern struct platform_device apq8064_device_gadget_peripheral;
|
||||
extern struct platform_device apq8064_device_hsusb_host;
|
||||
extern struct platform_device apq8064_device_hsic_host;
|
||||
extern struct platform_device apq8064_device_ehci_host3;
|
||||
|
||||
extern struct platform_device msm_device_i2c;
|
||||
|
||||
|
||||
@@ -1274,6 +1274,7 @@ MODULE_LICENSE ("GPL");
|
||||
|
||||
#ifdef CONFIG_USB_EHCI_MSM
|
||||
#include "ehci-msm.c"
|
||||
#include "ehci-msm2.c"
|
||||
#define PLATFORM_DRIVER_PRESENT
|
||||
#endif
|
||||
|
||||
@@ -1391,7 +1392,11 @@ static struct platform_driver *plat_drivers[] = {
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_USB_EHCI_MSM_HSIC
|
||||
&ehci_msm_hsic_driver
|
||||
&ehci_msm_hsic_driver,
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_USB_EHCI_MSM
|
||||
&ehci_msm2_driver,
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -277,6 +277,10 @@ struct msm_hsic_host_platform_data {
|
||||
unsigned hub_reset;
|
||||
};
|
||||
|
||||
struct msm_usb_host_platform_data {
|
||||
unsigned int power_budget;
|
||||
};
|
||||
|
||||
struct usb_bam_pipe_connect {
|
||||
u32 src_phy_addr;
|
||||
int src_pipe_index;
|
||||
|
||||
@@ -145,6 +145,7 @@
|
||||
#define ULPI_INT_SESS_VALID (1 << 2)
|
||||
#define ULPI_INT_SESS_END (1 << 3)
|
||||
#define ULPI_INT_IDGRD (1 << 4)
|
||||
#define ULPI_INT_DP (1 << 7)
|
||||
|
||||
/* Debug */
|
||||
#define ULPI_DEBUG_LINESTATE0 (1 << 0)
|
||||
|
||||
Reference in New Issue
Block a user