msm: clock: Use device names to distinguish between USB clocks
Drivers should now use their device names to distinguish between
clocks of the same type rather than the clock name. Clock names
are updated to match the new naming convention.
CRs-Fixed: 327559
Change-Id: I78757806589e037a0655a63e7ee20c935214c99d
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
diff --git a/arch/arm/mach-msm/board-8064.c b/arch/arm/mach-msm/board-8064.c
index f14381d..9f66e5d 100644
--- a/arch/arm/mach-msm/board-8064.c
+++ b/arch/arm/mach-msm/board-8064.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2011, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2011-2012, Code Aurora Forum. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -215,7 +215,6 @@
.mode = USB_PERIPHERAL,
.otg_control = OTG_PHY_CONTROL,
.phy_type = SNPS_28NM_INTEGRATED_PHY,
- .pclk_src_name = "dfab_usb_hs_clk",
};
#define TABLA_INTERRUPT_BASE (NR_MSM_IRQS + NR_GPIO_IRQS + NR_PM8921_IRQS)
diff --git a/arch/arm/mach-msm/board-8930.c b/arch/arm/mach-msm/board-8930.c
index fa548aa..53f8621 100644
--- a/arch/arm/mach-msm/board-8930.c
+++ b/arch/arm/mach-msm/board-8930.c
@@ -785,7 +785,6 @@
.mode = USB_OTG,
.otg_control = OTG_PMIC_CONTROL,
.phy_type = SNPS_28NM_INTEGRATED_PHY,
- .pclk_src_name = "dfab_usb_hs_clk",
.pmic_id_irq = PM8038_USB_ID_IN_IRQ(PM8038_IRQ_BASE),
.power_budget = 750,
};
diff --git a/arch/arm/mach-msm/board-8960.c b/arch/arm/mach-msm/board-8960.c
index 109ab9c..15a3829 100644
--- a/arch/arm/mach-msm/board-8960.c
+++ b/arch/arm/mach-msm/board-8960.c
@@ -890,7 +890,6 @@
.mode = USB_OTG,
.otg_control = OTG_PMIC_CONTROL,
.phy_type = SNPS_28NM_INTEGRATED_PHY,
- .pclk_src_name = "dfab_usb_hs_clk",
.pmic_id_irq = PM8921_USB_ID_IN_IRQ(PM8921_IRQ_BASE),
.power_budget = 750,
};
diff --git a/arch/arm/mach-msm/board-9615.c b/arch/arm/mach-msm/board-9615.c
index c404045..93e8fdf 100644
--- a/arch/arm/mach-msm/board-9615.c
+++ b/arch/arm/mach-msm/board-9615.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2011, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2011-2012, Code Aurora Forum. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -337,7 +337,6 @@
.mode = USB_OTG,
.otg_control = OTG_PHY_CONTROL,
.phy_type = SNPS_28NM_INTEGRATED_PHY,
- .pclk_src_name = "dfab_usb_hs_clk",
.vbus_power = msm_hsusb_vbus_power,
.disable_reset_on_disconnect = true,
};
diff --git a/arch/arm/mach-msm/board-msm7x27.c b/arch/arm/mach-msm/board-msm7x27.c
index 53ea8c1..e84417c 100644
--- a/arch/arm/mach-msm/board-msm7x27.c
+++ b/arch/arm/mach-msm/board-msm7x27.c
@@ -242,7 +242,6 @@
#endif
.ldo_init = msm_hsusb_ldo_init,
.pclk_required_during_lpm = 1,
- .pclk_src_name = "ebi1_usb_clk",
};
#ifdef CONFIG_USB_GADGET
diff --git a/arch/arm/mach-msm/board-msm7x27a.c b/arch/arm/mach-msm/board-msm7x27a.c
index 389b071..9a6f1e1 100644
--- a/arch/arm/mach-msm/board-msm7x27a.c
+++ b/arch/arm/mach-msm/board-msm7x27a.c
@@ -342,7 +342,6 @@
.vbus_power = msm_hsusb_vbus_power,
#endif
.rpc_connect = hsusb_rpc_connect,
- .core_clk = 1,
.pemp_level = PRE_EMPHASIS_WITH_20_PERCENT,
.cdr_autoreset = CDR_AUTO_RESET_DISABLE,
.drv_ampl = HS_DRV_AMPLITUDE_DEFAULT,
diff --git a/arch/arm/mach-msm/board-msm7x30.c b/arch/arm/mach-msm/board-msm7x30.c
index 883404f..a3f9ccd 100644
--- a/arch/arm/mach-msm/board-msm7x30.c
+++ b/arch/arm/mach-msm/board-msm7x30.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2009-2011, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -3214,7 +3214,6 @@
#else
.vbus_power = msm_hsusb_vbus_power,
#endif
- .core_clk = 1,
.pemp_level = PRE_EMPHASIS_WITH_20_PERCENT,
.cdr_autoreset = CDR_AUTO_RESET_DISABLE,
.drv_ampl = HS_DRV_AMPLITUDE_DEFAULT,
diff --git a/arch/arm/mach-msm/board-msm8x60.c b/arch/arm/mach-msm/board-msm8x60.c
index b5a06bd..11b70ee 100644
--- a/arch/arm/mach-msm/board-msm8x60.c
+++ b/arch/arm/mach-msm/board-msm8x60.c
@@ -1435,7 +1435,6 @@
* usb pclk as dayatona fabric clock will be
* used instead
*/
- .pclk_src_name = "dfab_usb_hs_clk",
.pemp_level = PRE_EMPHASIS_WITH_20_PERCENT,
.cdr_autoreset = CDR_AUTO_RESET_DISABLE,
.se1_gating = SE1_GATING_DISABLE,
diff --git a/arch/arm/mach-msm/board-qrd7627a.c b/arch/arm/mach-msm/board-qrd7627a.c
index 08ec05e..8a7fe5b 100644
--- a/arch/arm/mach-msm/board-qrd7627a.c
+++ b/arch/arm/mach-msm/board-qrd7627a.c
@@ -395,7 +395,6 @@
.vbus_power = msm_hsusb_vbus_power,
#endif
.rpc_connect = hsusb_rpc_connect,
- .core_clk = 1,
.pemp_level = PRE_EMPHASIS_WITH_20_PERCENT,
.cdr_autoreset = CDR_AUTO_RESET_DISABLE,
.drv_ampl = HS_DRV_AMPLITUDE_DEFAULT,
diff --git a/arch/arm/mach-msm/board-qsd8x50.c b/arch/arm/mach-msm/board-qsd8x50.c
index 10432a0..5a77333 100644
--- a/arch/arm/mach-msm/board-qsd8x50.c
+++ b/arch/arm/mach-msm/board-qsd8x50.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2008-2011, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2008-2012, Code Aurora Forum. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -1767,7 +1767,6 @@
.phy_can_powercollapse = 1,
.ldo_init = msm_hsusb_ldo_init,
.ldo_enable = msm_hsusb_ldo_enable,
- .pclk_src_name = "ebi1_usb_clk",
};
static struct msm_hsusb_gadget_platform_data msm_gadget_pdata;
diff --git a/arch/arm/mach-msm/clock-7x30.c b/arch/arm/mach-msm/clock-7x30.c
index e716b25..9170842 100644
--- a/arch/arm/mach-msm/clock-7x30.c
+++ b/arch/arm/mach-msm/clock-7x30.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2009-2011, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -2754,7 +2754,7 @@
{ CLK_LOOKUP("ecodec_clk", ecodec_clk.c, NULL) },
{ CLK_LOOKUP("core_clk", gp_clk.c, NULL) },
{ CLK_LOOKUP("core_clk", uart3_clk.c, "msm_serial.2") },
- { CLK_LOOKUP("usb_phy_clk", usb_phy_clk.c, NULL) },
+ { CLK_LOOKUP("phy_clk", usb_phy_clk.c, "msm_otg") },
/* Voters */
{ CLK_LOOKUP("ebi1_dtv_clk", ebi_dtv_clk.c, NULL) },
@@ -2836,12 +2836,12 @@
OWN(ROW1, 29, "core_clk", sdc4_clk, "msm_sdcc.4"),
OWN(ROW1, 29, "iface_clk", sdc4_p_clk, "msm_sdcc.4"),
OWN(ROW1, 0, "core_clk", uart2_clk, "msm_serial.1"),
- OWN(ROW1, 2, "usb_hs2_clk", usb_hs2_clk, NULL),
- OWN(ROW1, 2, "usb_hs2_core_clk", usb_hs2_core_clk, NULL),
- OWN(ROW1, 2, "usb_hs2_pclk", usb_hs2_p_clk, NULL),
- OWN(ROW1, 4, "usb_hs3_clk", usb_hs3_clk, NULL),
- OWN(ROW1, 4, "usb_hs3_core_clk", usb_hs3_core_clk, NULL),
- OWN(ROW1, 4, "usb_hs3_pclk", usb_hs3_p_clk, NULL),
+ OWN(ROW1, 2, "alt_core_clk", usb_hs2_clk, "msm_hsusb_host.0"),
+ OWN(ROW1, 2, "core_clk", usb_hs2_core_clk, "msm_hsusb_host.0"),
+ OWN(ROW1, 2, "iface_clk", usb_hs2_p_clk, "msm_hsusb_host.0"),
+ OWN(ROW1, 4, "alt_core_clk", usb_hs3_clk, NULL),
+ OWN(ROW1, 4, "core_clk", usb_hs3_core_clk, NULL),
+ OWN(ROW1, 4, "iface_clk", usb_hs3_p_clk, NULL),
OWN(ROW2, 3, "core_clk", qup_i2c_clk, "qup_i2c.4"),
OWN(ROW2, 1, "core_clk", spi_clk, "spi_qsd.0"),
@@ -2849,9 +2849,9 @@
OWN(ROW2, 9, "core_clk", uart1_clk, "msm_serial.0"),
OWN(ROW2, 6, "core_clk", uart1dm_clk, "msm_serial_hs.0"),
OWN(ROW2, 8, "core_clk", uart2dm_clk, "msm_serial_hs.1"),
- OWN(ROW2, 11, "usb_hs_clk", usb_hs_clk, NULL),
- OWN(ROW2, 11, "usb_hs_core_clk", usb_hs_core_clk, NULL),
- OWN(ROW2, 11, "usb_hs_pclk", usb_hs_p_clk, NULL),
+ OWN(ROW2, 11, "alt_core_clk", usb_hs_clk, "msm_otg"),
+ OWN(ROW2, 11, "core_clk", usb_hs_core_clk, "msm_otg"),
+ OWN(ROW2, 11, "iface_clk", usb_hs_p_clk, "msm_otg"),
OWN(APPS3, 6, "cam_m_clk", cam_m_clk, NULL),
OWN(APPS3, 6, "camif_pad_pclk", camif_pad_p_clk, NULL),
diff --git a/arch/arm/mach-msm/clock-8960.c b/arch/arm/mach-msm/clock-8960.c
index 95c93ad..8152ff2 100644
--- a/arch/arm/mach-msm/clock-8960.c
+++ b/arch/arm/mach-msm/clock-8960.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2009-2011, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -5208,12 +5208,12 @@
CLK_LOOKUP("core_clk", sdc4_clk.c, "msm_sdcc.4"),
CLK_LOOKUP("ref_clk", tsif_ref_clk.c, NULL),
CLK_LOOKUP("core_clk", tssc_clk.c, NULL),
- CLK_LOOKUP("usb_hs_clk", usb_hs1_xcvr_clk.c, NULL),
- CLK_LOOKUP("core_clk", usb_hs3_xcvr_clk.c, "msm_ehci_host.0"),
- CLK_LOOKUP("core_clk", usb_hs4_xcvr_clk.c, "msm_ehci_host.1"),
- CLK_LOOKUP("usb_fs_src_clk", usb_fs1_src_clk.c, NULL),
- CLK_LOOKUP("usb_fs_clk", usb_fs1_xcvr_clk.c, NULL),
- CLK_LOOKUP("usb_fs_sys_clk", usb_fs1_sys_clk.c, NULL),
+ CLK_LOOKUP("alt_core_clk", usb_hs1_xcvr_clk.c, "msm_otg"),
+ CLK_LOOKUP("alt_core_clk", usb_hs3_xcvr_clk.c, "msm_ehci_host.0"),
+ CLK_LOOKUP("alt_core_clk", usb_hs4_xcvr_clk.c, "msm_ehci_host.1"),
+ CLK_LOOKUP("src_clk", usb_fs1_src_clk.c, NULL),
+ CLK_LOOKUP("alt_core_clk", usb_fs1_xcvr_clk.c, NULL),
+ CLK_LOOKUP("sys_clk", usb_fs1_sys_clk.c, NULL),
CLK_LOOKUP("iface_clk", ce1_p_clk.c, NULL),
CLK_LOOKUP("core_clk", ce1_core_clk.c, NULL),
CLK_LOOKUP("ref_clk", sata_phy_ref_clk.c, NULL),
@@ -5233,8 +5233,8 @@
CLK_LOOKUP("iface_clk", gsbi6_p_clk.c, NULL),
CLK_LOOKUP("iface_clk", gsbi7_p_clk.c, NULL),
CLK_LOOKUP("iface_clk", tsif_p_clk.c, NULL),
- CLK_LOOKUP("usb_fs_pclk", usb_fs1_p_clk.c, NULL),
- CLK_LOOKUP("usb_hs_pclk", usb_hs1_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", usb_fs1_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", usb_hs1_p_clk.c, "msm_otg"),
CLK_LOOKUP("iface_clk", usb_hs3_p_clk.c, "msm_ehci_host.0"),
CLK_LOOKUP("iface_clk", usb_hs4_p_clk.c, "msm_ehci_host.1"),
CLK_LOOKUP("iface_clk", sdc1_p_clk.c, "msm_sdcc.1"),
@@ -5371,20 +5371,20 @@
CLK_LOOKUP("core_clk", vcodec_axi_b_clk.c, NULL),
CLK_LOOKUP("core_clk", gfx3d_axi_clk.c, NULL),
CLK_DUMMY("dfab_dsps_clk", DFAB_DSPS_CLK, NULL, 0),
- CLK_DUMMY("dfab_usb_hs_clk", DFAB_USB_HS_CLK, NULL, 0),
- CLK_DUMMY("bus_clk", DFAB_USB_HS3_CLK, "msm_ehci_host.0", 0),
- CLK_DUMMY("bus_clk", DFAB_USB_HS4_CLK, "msm_ehci_host.1", 0),
+ CLK_DUMMY("core_clk", DFAB_USB_HS_CLK, "msm_otg", 0),
+ CLK_DUMMY("core_clk", DFAB_USB_HS3_CLK, "msm_ehci_host.0", 0),
+ CLK_DUMMY("core_clk", DFAB_USB_HS4_CLK, "msm_ehci_host.1", 0),
CLK_DUMMY("bus_clk", DFAB_SDC1_CLK, NULL, 0),
CLK_DUMMY("bus_clk", DFAB_SDC2_CLK, NULL, 0),
CLK_DUMMY("bus_clk", DFAB_SDC3_CLK, NULL, 0),
CLK_DUMMY("bus_clk", DFAB_SDC4_CLK, NULL, 0),
CLK_DUMMY("dfab_clk", DFAB_CLK, NULL, 0),
CLK_DUMMY("bus_clk", DFAB_SCM_CLK, "scm", 0),
- CLK_LOOKUP("usb_hsic_xcvr_fs_clk", usb_hsic_xcvr_fs_clk.c, NULL),
- CLK_LOOKUP("usb_hsic_hsic_clk", usb_hsic_hsic_clk.c, NULL),
- CLK_LOOKUP("usb_hsic_hsio_cal_clk", usb_hsic_hsio_cal_clk.c, NULL),
- CLK_LOOKUP("usb_hsic_system_clk", usb_hsic_system_clk.c, NULL),
- CLK_LOOKUP("usb_hsic_p_clk", usb_hsic_p_clk.c, NULL),
+ CLK_LOOKUP("alt_core_clk", usb_hsic_xcvr_fs_clk.c, "msm_hsic_host"),
+ CLK_LOOKUP("phy_clk", usb_hsic_hsic_clk.c, "msm_hsic_host"),
+ CLK_LOOKUP("cal_clk", usb_hsic_hsio_cal_clk.c, "msm_hsic_host"),
+ CLK_LOOKUP("core_clk", usb_hsic_system_clk.c, "msm_hsic_host"),
+ CLK_LOOKUP("iface_clk", usb_hsic_p_clk.c, "msm_hsic_host"),
CLK_LOOKUP("mem_clk", ebi1_adm_clk.c, "msm_dmov"),
@@ -5458,14 +5458,14 @@
CLK_LOOKUP("slimbus_xo_src_clk", slimbus_xo_src_clk.c, NULL),
CLK_LOOKUP("ref_clk", tsif_ref_clk.c, NULL),
CLK_LOOKUP("core_clk", tssc_clk.c, NULL),
- CLK_LOOKUP("usb_hs_clk", usb_hs1_xcvr_clk.c, NULL),
- CLK_LOOKUP("usb_phy_clk", usb_phy0_clk.c, NULL),
- CLK_LOOKUP("usb_fs_clk", usb_fs1_xcvr_clk.c, NULL),
- CLK_LOOKUP("usb_fs_sys_clk", usb_fs1_sys_clk.c, NULL),
- CLK_LOOKUP("usb_fs_src_clk", usb_fs1_src_clk.c, NULL),
- CLK_LOOKUP("usb_fs_clk", usb_fs2_xcvr_clk.c, NULL),
- CLK_LOOKUP("usb_fs_sys_clk", usb_fs2_sys_clk.c, NULL),
- CLK_LOOKUP("usb_fs_src_clk", usb_fs2_src_clk.c, NULL),
+ CLK_LOOKUP("alt_core_clk", usb_hs1_xcvr_clk.c, "msm_otg"),
+ CLK_LOOKUP("phy_clk", usb_phy0_clk.c, "msm_otg"),
+ CLK_LOOKUP("alt_core_clk", usb_fs1_xcvr_clk.c, NULL),
+ CLK_LOOKUP("sys_clk", usb_fs1_sys_clk.c, NULL),
+ CLK_LOOKUP("src_clk", usb_fs1_src_clk.c, NULL),
+ CLK_LOOKUP("alt_core_clk", usb_fs2_xcvr_clk.c, NULL),
+ CLK_LOOKUP("sys_clk", usb_fs2_sys_clk.c, NULL),
+ CLK_LOOKUP("src_clk", usb_fs2_src_clk.c, NULL),
CLK_LOOKUP("iface_clk", ce1_p_clk.c, "qce.0"),
CLK_LOOKUP("iface_clk", ce1_p_clk.c, "qcrypto.0"),
CLK_LOOKUP("core_clk", ce1_core_clk.c, "qce.0"),
@@ -5484,9 +5484,9 @@
CLK_LOOKUP("iface_clk", gsbi11_p_clk.c, NULL),
CLK_LOOKUP("iface_clk", gsbi12_p_clk.c, "qup_i2c.12"),
CLK_LOOKUP("iface_clk", tsif_p_clk.c, NULL),
- CLK_LOOKUP("usb_fs_pclk", usb_fs1_p_clk.c, NULL),
- CLK_LOOKUP("usb_fs_pclk", usb_fs2_p_clk.c, NULL),
- CLK_LOOKUP("usb_hs_pclk", usb_hs1_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", usb_fs1_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", usb_fs2_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", usb_hs1_p_clk.c, "msm_otg"),
CLK_LOOKUP("iface_clk", sdc1_p_clk.c, "msm_sdcc.1"),
CLK_LOOKUP("iface_clk", sdc2_p_clk.c, "msm_sdcc.2"),
CLK_LOOKUP("iface_clk", sdc3_p_clk.c, "msm_sdcc.3"),
@@ -5624,7 +5624,7 @@
CLK_LOOKUP("core_clk", gfx2d0_clk.c, "msm_iommu.10"),
CLK_LOOKUP("core_clk", gfx2d1_clk.c, "msm_iommu.11"),
CLK_LOOKUP("dfab_dsps_clk", dfab_dsps_clk.c, NULL),
- CLK_LOOKUP("dfab_usb_hs_clk", dfab_usb_hs_clk.c, NULL),
+ CLK_LOOKUP("core_clk", dfab_usb_hs_clk.c, "msm_otg"),
CLK_LOOKUP("bus_clk", dfab_sdc1_clk.c, "msm_sdcc.1"),
CLK_LOOKUP("bus_clk", dfab_sdc2_clk.c, "msm_sdcc.2"),
CLK_LOOKUP("bus_clk", dfab_sdc3_clk.c, "msm_sdcc.3"),
@@ -5653,11 +5653,11 @@
CLK_LOOKUP("csi_rdi2_clk", csi_rdi2_clk.c, "msm_ispif.0"),
CLK_LOOKUP("csi_phy_clk", csi2_phy_clk.c, NULL),
CLK_LOOKUP("csi2phy_timer_clk", csi2phy_timer_clk.c, NULL),
- CLK_LOOKUP("usb_hsic_xcvr_fs_clk", usb_hsic_xcvr_fs_clk.c, NULL),
- CLK_LOOKUP("usb_hsic_hsic_clk", usb_hsic_hsic_clk.c, NULL),
- CLK_LOOKUP("usb_hsic_hsio_cal_clk", usb_hsic_hsio_cal_clk.c, NULL),
- CLK_LOOKUP("usb_hsic_system_clk", usb_hsic_system_clk.c, NULL),
- CLK_LOOKUP("usb_hsic_p_clk", usb_hsic_p_clk.c, NULL),
+ CLK_LOOKUP("alt_core_clk", usb_hsic_xcvr_fs_clk.c, "msm_hsic_host"),
+ CLK_LOOKUP("phy_clk", usb_hsic_hsic_clk.c, "msm_hsic_host"),
+ CLK_LOOKUP("cal_clk", usb_hsic_hsio_cal_clk.c, "msm_hsic_host"),
+ CLK_LOOKUP("core_clk", usb_hsic_system_clk.c, "msm_hsic_host"),
+ CLK_LOOKUP("iface_clk", usb_hsic_p_clk.c, "msm_hsic_host"),
};
/* Add v2 clocks dynamically at runtime */
diff --git a/arch/arm/mach-msm/clock-8x60.c b/arch/arm/mach-msm/clock-8x60.c
index 9da8bb4..d61547fa 100644
--- a/arch/arm/mach-msm/clock-8x60.c
+++ b/arch/arm/mach-msm/clock-8x60.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2009-2011, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -3635,14 +3635,14 @@
CLK_LOOKUP("ref_clk", tsif_ref_clk.c, "msm_tsif.0"),
CLK_LOOKUP("ref_clk", tsif_ref_clk.c, "msm_tsif.1"),
CLK_LOOKUP("core_clk", tssc_clk.c, NULL),
- CLK_LOOKUP("usb_hs_clk", usb_hs1_xcvr_clk.c, NULL),
- CLK_LOOKUP("usb_phy_clk", usb_phy0_clk.c, NULL),
- CLK_LOOKUP("usb_fs_clk", usb_fs1_xcvr_clk.c, NULL),
- CLK_LOOKUP("usb_fs_sys_clk", usb_fs1_sys_clk.c, NULL),
- CLK_LOOKUP("usb_fs_src_clk", usb_fs1_src_clk.c, NULL),
- CLK_LOOKUP("usb_fs_clk", usb_fs2_xcvr_clk.c, NULL),
- CLK_LOOKUP("usb_fs_sys_clk", usb_fs2_sys_clk.c, NULL),
- CLK_LOOKUP("usb_fs_src_clk", usb_fs2_src_clk.c, NULL),
+ CLK_LOOKUP("alt_core_clk", usb_hs1_xcvr_clk.c, "msm_otg"),
+ CLK_LOOKUP("phy_clk", usb_phy0_clk.c, "msm_otg"),
+ CLK_LOOKUP("alt_core_clk", usb_fs1_xcvr_clk.c, NULL),
+ CLK_LOOKUP("sys_clk", usb_fs1_sys_clk.c, NULL),
+ CLK_LOOKUP("src_clk", usb_fs1_src_clk.c, NULL),
+ CLK_LOOKUP("alt_core_clk", usb_fs2_xcvr_clk.c, NULL),
+ CLK_LOOKUP("sys_clk", usb_fs2_sys_clk.c, NULL),
+ CLK_LOOKUP("src_clk", usb_fs2_src_clk.c, NULL),
CLK_LOOKUP("core_clk", ce2_p_clk.c, "qce.0"),
CLK_LOOKUP("core_clk", ce2_p_clk.c, "qcrypto.0"),
CLK_LOOKUP("iface_clk", gsbi1_p_clk.c, "spi_qsd.0"),
@@ -3664,9 +3664,9 @@
CLK_LOOKUP("ppss_pclk", ppss_p_clk.c, NULL),
CLK_LOOKUP("iface_clk", tsif_p_clk.c, "msm_tsif.0"),
CLK_LOOKUP("iface_clk", tsif_p_clk.c, "msm_tsif.1"),
- CLK_LOOKUP("usb_fs_pclk", usb_fs1_p_clk.c, NULL),
- CLK_LOOKUP("usb_fs_pclk", usb_fs2_p_clk.c, NULL),
- CLK_LOOKUP("usb_hs_pclk", usb_hs1_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", usb_fs1_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", usb_fs2_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", usb_hs1_p_clk.c, "msm_otg"),
CLK_LOOKUP("iface_clk", sdc1_p_clk.c, "msm_sdcc.1"),
CLK_LOOKUP("iface_clk", sdc2_p_clk.c, "msm_sdcc.2"),
CLK_LOOKUP("iface_clk", sdc3_p_clk.c, "msm_sdcc.3"),
@@ -3788,7 +3788,7 @@
CLK_LOOKUP("core_clk", gfx2d1_clk.c, "msm_iommu.11"),
CLK_LOOKUP("dfab_dsps_clk", dfab_dsps_clk.c, NULL),
- CLK_LOOKUP("dfab_usb_hs_clk", dfab_usb_hs_clk.c, NULL),
+ CLK_LOOKUP("core_clk", dfab_usb_hs_clk.c, "msm_otg"),
CLK_LOOKUP("bus_clk", dfab_sdc1_clk.c, "msm_sdcc.1"),
CLK_LOOKUP("bus_clk", dfab_sdc2_clk.c, "msm_sdcc.2"),
CLK_LOOKUP("bus_clk", dfab_sdc3_clk.c, "msm_sdcc.3"),
diff --git a/arch/arm/mach-msm/clock-9615.c b/arch/arm/mach-msm/clock-9615.c
index a6f5607..76219ab 100644
--- a/arch/arm/mach-msm/clock-9615.c
+++ b/arch/arm/mach-msm/clock-9615.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2009-2011, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -1670,14 +1670,14 @@
CLK_LOOKUP("iface_clk", gsbi4_p_clk.c, "msm_serial_hsl.0"),
CLK_LOOKUP("iface_clk", gsbi5_p_clk.c, "qup_i2c.0"),
- CLK_LOOKUP("usb_hs_pclk", usb_hs1_p_clk.c, NULL),
- CLK_LOOKUP("usb_hs_system_clk", usb_hs1_sys_clk.c, NULL),
- CLK_LOOKUP("usb_hs_clk", usb_hs1_xcvr_clk.c, NULL),
- CLK_LOOKUP("usb_hsic_xcvr_clk", usb_hsic_xcvr_clk.c, NULL),
- CLK_LOOKUP("usb_hsic_hsio_cal_clk", usb_hsic_hsio_cal_clk.c, NULL),
- CLK_LOOKUP("usb_hsic_sys_clk", usb_hsic_sys_clk.c, NULL),
- CLK_LOOKUP("usb_hsic_p_clk", usb_hsic_p_clk.c, NULL),
- CLK_LOOKUP("usb_hsic_clk", usb_hsic_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", usb_hs1_p_clk.c, "msm_otg"),
+ CLK_LOOKUP("core_clk", usb_hs1_sys_clk.c, "msm_otg"),
+ CLK_LOOKUP("alt_core_clk", usb_hs1_xcvr_clk.c, "msm_otg"),
+ CLK_LOOKUP("alt_core_clk", usb_hsic_xcvr_clk.c, "msm_hsic_host"),
+ CLK_LOOKUP("cal_clk", usb_hsic_hsio_cal_clk.c, "msm_hsic_host"),
+ CLK_LOOKUP("core_clk", usb_hsic_sys_clk.c, "msm_hsic_host"),
+ CLK_LOOKUP("iface_clk", usb_hsic_p_clk.c, "msm_hsic_host"),
+ CLK_LOOKUP("phy_clk", usb_hsic_clk.c, "msm_hsic_host"),
CLK_LOOKUP("iface_clk", sdc1_p_clk.c, "msm_sdcc.1"),
CLK_LOOKUP("iface_clk", sdc2_p_clk.c, "msm_sdcc.2"),
@@ -1702,7 +1702,7 @@
CLK_LOOKUP("sps_slimbus_clk", sps_slimbus_clk.c, NULL),
CLK_LOOKUP("audio_slimbus_clk", audio_slimbus_clk.c, NULL),
- CLK_LOOKUP("dfab_usb_hs_clk", dfab_usb_hs_clk.c, NULL),
+ CLK_LOOKUP("core_clk", dfab_usb_hs_clk.c, "msm_otg"),
CLK_LOOKUP("bus_clk", dfab_sdc1_clk.c, "msm_sdcc.1"),
CLK_LOOKUP("bus_clk", dfab_sdc2_clk.c, "msm_sdcc.2"),
CLK_LOOKUP("dfab_clk", dfab_sps_clk.c, "msm_sps"),
diff --git a/arch/arm/mach-msm/clock-pcom-lookup.c b/arch/arm/mach-msm/clock-pcom-lookup.c
index dd31bd7..7a3f49e 100644
--- a/arch/arm/mach-msm/clock-pcom-lookup.c
+++ b/arch/arm/mach-msm/clock-pcom-lookup.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2011, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2011-2012, Code Aurora Forum. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -178,9 +178,13 @@
CLK_LOOKUP("core_clk", uart3_clk.c, "msm_serial.2"),
CLK_LOOKUP("core_clk", uart1dm_clk.c, "msm_serial_hs.0"),
CLK_LOOKUP("core_clk", uart2dm_clk.c, "msm_serial_hs.1"),
- CLK_LOOKUP("usb_hs_clk", usb_hs_clk.c, "msm_otg"),
- CLK_LOOKUP("usb_hs_pclk", usb_hs_p_clk.c, "msm_otg"),
- CLK_LOOKUP("usb_otg_clk", usb_otg_clk.c, NULL),
+ CLK_LOOKUP("alt_core_clk", usb_hs_clk.c, "msm_otg"),
+ CLK_LOOKUP("iface_clk", usb_hs_p_clk.c, "msm_otg"),
+ CLK_LOOKUP("alt_core_clk", usb_hs_clk.c, "msm_hsusb_otg"),
+ CLK_LOOKUP("iface_clk", usb_hs_p_clk.c, "msm_hsusb_otg"),
+ CLK_LOOKUP("alt_core_clk", usb_hs_clk.c, "msm_hsusb_peripheral"),
+ CLK_LOOKUP("iface_clk", usb_hs_p_clk.c, "msm_hsusb_peripheral"),
+ CLK_LOOKUP("alt_core_clk", usb_otg_clk.c, NULL),
CLK_LOOKUP("vdc_clk", vdc_clk.c, NULL),
CLK_LOOKUP("vfe_clk", vfe_clk.c, NULL),
CLK_LOOKUP("vfe_mdc_clk", vfe_mdc_clk.c, NULL),
@@ -230,10 +234,10 @@
CLK_LOOKUP("core_clk", uart2_clk.c, "msm_serial.1"),
CLK_LOOKUP("core_clk", uart1dm_clk.c, "msm_serial_hs.0"),
CLK_LOOKUP("core_clk", uart2dm_clk.c, "msm_serial_hs.1"),
- CLK_LOOKUP("usb_hs_clk", usb_hs_clk.c, NULL),
- CLK_LOOKUP("usb_hs_pclk", usb_hs_p_clk.c, NULL),
- CLK_LOOKUP("usb_otg_clk", usb_otg_clk.c, NULL),
- CLK_LOOKUP("usb_phy_clk", usb_phy_clk.c, NULL),
+ CLK_LOOKUP("alt_core_clk", usb_hs_clk.c, "msm_otg"),
+ CLK_LOOKUP("iface_clk", usb_hs_p_clk.c, "msm_otg"),
+ CLK_LOOKUP("alt_core_clk", usb_otg_clk.c, NULL),
+ CLK_LOOKUP("phy_clk", usb_phy_clk.c, "msm_otg"),
CLK_LOOKUP("vdc_clk", vdc_clk.c, NULL),
CLK_LOOKUP("core_clk", vdc_clk.c, "footswitch-pcom.7"),
CLK_LOOKUP("vfe_clk", vfe_clk.c, NULL),
@@ -244,7 +248,7 @@
CLK_LOOKUP("bus_clk", ebi_grp_3d_clk.c, "kgsl-3d0.0"),
CLK_LOOKUP("ebi1_lcdc_clk", ebi_lcdc_clk.c, NULL),
CLK_LOOKUP("ebi1_mddi_clk", ebi_mddi_clk.c, NULL),
- CLK_LOOKUP("ebi1_usb_clk", ebi_usb_clk.c, NULL),
+ CLK_LOOKUP("core_clk", ebi_usb_clk.c, "msm_otg"),
CLK_LOOKUP("ebi1_vfe_clk", ebi_vfe_clk.c, NULL),
CLK_LOOKUP("mem_clk", ebi_adm_clk.c, "msm_dmov"),
};
@@ -312,11 +316,11 @@
CLK_LOOKUP("core_clk", uart2_clk.c, "msm_serial.1"),
CLK_LOOKUP("core_clk", uart1dm_clk.c, "msm_serial_hs.0"),
CLK_LOOKUP("core_clk", uart2dm_clk.c, "msm_serial_hsl.0"),
- CLK_LOOKUP("usb_hs_core_clk", usb_hs_core_clk.c, NULL),
- CLK_LOOKUP("usb_hs2_clk", usb_hs2_clk.c, NULL),
- CLK_LOOKUP("usb_hs_clk", usb_hs_clk.c, NULL),
- CLK_LOOKUP("usb_hs_pclk", usb_hs_p_clk.c, NULL),
- CLK_LOOKUP("usb_phy_clk", usb_phy_clk.c, NULL),
+ CLK_LOOKUP("core_clk", usb_hs_core_clk.c, "msm_otg"),
+ CLK_LOOKUP("alt_core_clk", usb_hs_clk.c, "msm_otg"),
+ CLK_LOOKUP("iface_clk", usb_hs_p_clk.c, "msm_otg"),
+ CLK_LOOKUP("phy_clk", usb_phy_clk.c, "msm_otg"),
+ CLK_LOOKUP("alt_core_clk", usb_hs2_clk.c, "msm_hsusb_host.0"),
CLK_LOOKUP("vdc_clk", vdc_clk.c, NULL),
CLK_LOOKUP("core_clk", vdc_clk.c, "footswitch-pcom.7"),
CLK_LOOKUP("vfe_clk", vfe_clk.c, NULL),
@@ -327,7 +331,6 @@
CLK_LOOKUP("bus_clk", ebi_grp_3d_clk.c, "kgsl-3d0.0"),
CLK_LOOKUP("ebi1_lcdc_clk", ebi_lcdc_clk.c, NULL),
CLK_LOOKUP("ebi1_mddi_clk", ebi_mddi_clk.c, NULL),
- CLK_LOOKUP("ebi1_usb_clk", ebi_usb_clk.c, NULL),
CLK_LOOKUP("ebi1_vfe_clk", ebi_vfe_clk.c, NULL),
CLK_LOOKUP("mem_clk", ebi_adm_clk.c, "msm_dmov"),
};
@@ -378,18 +381,18 @@
CLK_LOOKUP("core_clk", uart3_clk.c, "msm_serial.2"),
CLK_LOOKUP("core_clk", uart1dm_clk.c, "msm_serial_hs.0"),
CLK_LOOKUP("core_clk", uart2dm_clk.c, "msm_serial_hs.1"),
- CLK_LOOKUP("usb_hs_clk", usb_hs_clk.c, NULL),
- CLK_LOOKUP("usb_hs_pclk", usb_hs_p_clk.c, NULL),
- CLK_LOOKUP("usb_otg_clk", usb_otg_clk.c, NULL),
+ CLK_LOOKUP("alt_core_clk", usb_hs_clk.c, "msm_otg"),
+ CLK_LOOKUP("iface_clk", usb_hs_p_clk.c, "msm_otg"),
+ CLK_LOOKUP("alt_core_clk", usb_otg_clk.c, NULL),
CLK_LOOKUP("vdc_clk", vdc_clk.c, NULL),
CLK_LOOKUP("vfe_clk", vfe_clk.c, NULL),
CLK_LOOKUP("vfe_mdc_clk", vfe_mdc_clk.c, NULL),
CLK_LOOKUP("vfe_axi_clk", vfe_axi_clk.c, NULL),
- CLK_LOOKUP("usb_hs2_clk", usb_hs2_clk.c, NULL),
- CLK_LOOKUP("usb_hs2_pclk", usb_hs2_p_clk.c, NULL),
- CLK_LOOKUP("usb_hs3_clk", usb_hs3_clk.c, NULL),
- CLK_LOOKUP("usb_hs3_pclk", usb_hs3_p_clk.c, NULL),
- CLK_LOOKUP("usb_phy_clk", usb_phy_clk.c, NULL),
+ CLK_LOOKUP("alt_core_clk", usb_hs2_clk.c, "msm_hsusb_host.0"),
+ CLK_LOOKUP("iface_clk", usb_hs2_p_clk.c, "msm_hsusb_host.0"),
+ CLK_LOOKUP("alt_core_clk", usb_hs3_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", usb_hs3_p_clk.c, NULL),
+ CLK_LOOKUP("phy_clk", usb_phy_clk.c, "msm_otg"),
CLK_LOOKUP("ebi1_acpu_clk", ebi_acpu_clk.c, NULL),
CLK_LOOKUP("bus_clk", ebi_grp_3d_clk.c, "kgsl-3d0.0"),
@@ -397,7 +400,8 @@
CLK_LOOKUP("ebi1_lcdc_clk", ebi_lcdc_clk.c, NULL),
CLK_LOOKUP("ebi1_mddi_clk", ebi_mddi_clk.c, NULL),
CLK_LOOKUP("ebi1_tv_clk", ebi_tv_clk.c, NULL),
- CLK_LOOKUP("ebi1_usb_clk", ebi_usb_clk.c, NULL),
+ CLK_LOOKUP("core_clk", ebi_usb_clk.c, "msm_otg"),
+ CLK_LOOKUP("core_clk", ebi_usb_clk.c, "msm_hsusb_host.0"),
CLK_LOOKUP("ebi1_vfe_clk", ebi_vfe_clk.c, NULL),
CLK_LOOKUP("mem_clk", ebi_adm_clk.c, "msm_dmov"),
diff --git a/arch/arm/mach-msm/devices-8064.c b/arch/arm/mach-msm/devices-8064.c
index b0f4c9f..12a00e6 100644
--- a/arch/arm/mach-msm/devices-8064.c
+++ b/arch/arm/mach-msm/devices-8064.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2011, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2011-2012, Code Aurora Forum. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -779,13 +779,13 @@
CLK_DUMMY("core_clk", SDC4_CLK, NULL, OFF),
CLK_DUMMY("ref_clk", TSIF_REF_CLK, NULL, OFF),
CLK_DUMMY("core_clk", TSSC_CLK, NULL, OFF),
- CLK_DUMMY("usb_hs_clk", USB_HS1_XCVR_CLK, NULL, OFF),
- CLK_DUMMY("usb_hs_clk", USB_HS3_XCVR_CLK, NULL, OFF),
- CLK_DUMMY("usb_hs_clk", USB_HS4_XCVR_CLK, NULL, OFF),
- CLK_DUMMY("usb_phy_clk", USB_PHY0_CLK, NULL, OFF),
- CLK_DUMMY("usb_fs_src_clk", USB_FS1_SRC_CLK, NULL, OFF),
- CLK_DUMMY("usb_fs_clk", USB_FS1_XCVR_CLK, NULL, OFF),
- CLK_DUMMY("usb_fs_sys_clk", USB_FS1_SYS_CLK, NULL, OFF),
+ CLK_DUMMY("alt_core_clk", USB_HS1_XCVR_CLK, NULL, OFF),
+ CLK_DUMMY("alt_core_clk", USB_HS3_XCVR_CLK, NULL, OFF),
+ CLK_DUMMY("alt_core_clk", USB_HS4_XCVR_CLK, NULL, OFF),
+ CLK_DUMMY("phy_clk", USB_PHY0_CLK, NULL, OFF),
+ CLK_DUMMY("src_clk", USB_FS1_SRC_CLK, NULL, OFF),
+ CLK_DUMMY("alt_core_clk", USB_FS1_XCVR_CLK, NULL, OFF),
+ CLK_DUMMY("sys_clk", USB_FS1_SYS_CLK, NULL, OFF),
CLK_DUMMY("core_clk", CE2_CLK, NULL, OFF),
CLK_DUMMY("core_clk", CE1_CORE_CLK, NULL, OFF),
CLK_DUMMY("core_clk", CE3_CORE_CLK, NULL, OFF),
@@ -803,10 +803,10 @@
CLK_DUMMY("iface_clk", GSBI6_P_CLK, NULL, OFF),
CLK_DUMMY("iface_clk", GSBI7_P_CLK, NULL, OFF),
CLK_DUMMY("iface_clk", TSIF_P_CLK, NULL, OFF),
- CLK_DUMMY("usb_fs_pclk", USB_FS1_P_CLK, NULL, OFF),
- CLK_DUMMY("usb_hs_pclk", USB_HS1_P_CLK, NULL, OFF),
- CLK_DUMMY("usb_hs_pclk", USB_HS3_P_CLK, NULL, OFF),
- CLK_DUMMY("usb_hs_pclk", USB_HS4_P_CLK, NULL, OFF),
+ CLK_DUMMY("iface_clk", USB_FS1_P_CLK, NULL, OFF),
+ CLK_DUMMY("iface_clk", USB_HS1_P_CLK, NULL, OFF),
+ CLK_DUMMY("iface_clk", USB_HS3_P_CLK, NULL, OFF),
+ CLK_DUMMY("iface_clk", USB_HS4_P_CLK, NULL, OFF),
CLK_DUMMY("iface_clk", SDC1_P_CLK, NULL, OFF),
CLK_DUMMY("iface_clk", SDC2_P_CLK, NULL, OFF),
CLK_DUMMY("iface_clk", SDC3_P_CLK, NULL, OFF),
@@ -900,7 +900,7 @@
CLK_DUMMY("audio_slimbus_clk", AUDIO_SLIMBUS_CLK, NULL, OFF),
CLK_DUMMY("dfab_dsps_clk", DFAB_DSPS_CLK, NULL, 0),
- CLK_DUMMY("dfab_usb_hs_clk", DFAB_USB_HS_CLK, NULL, 0),
+ CLK_DUMMY("core_clk", DFAB_USB_HS_CLK, NULL, 0),
CLK_DUMMY("bus_clk", DFAB_SDC1_CLK, NULL, 0),
CLK_DUMMY("bus_clk", DFAB_SDC2_CLK, NULL, 0),
CLK_DUMMY("bus_clk", DFAB_SDC3_CLK, NULL, 0),
diff --git a/arch/arm/mach-msm/devices-8960.c b/arch/arm/mach-msm/devices-8960.c
index e14d4c0..7f92bbe 100644
--- a/arch/arm/mach-msm/devices-8960.c
+++ b/arch/arm/mach-msm/devices-8960.c
@@ -1865,14 +1865,14 @@
CLK_DUMMY("core_clk", SDC5_CLK, NULL, OFF),
CLK_DUMMY("core_clk", TSIF_REF_CLK, NULL, OFF),
CLK_DUMMY("core_clk", TSSC_CLK, NULL, OFF),
- CLK_DUMMY("usb_hs_clk", USB_HS1_XCVR_CLK, NULL, OFF),
- CLK_DUMMY("usb_phy_clk", USB_PHY0_CLK, NULL, OFF),
- CLK_DUMMY("usb_fs_src_clk", USB_FS1_SRC_CLK, NULL, OFF),
- CLK_DUMMY("usb_fs_clk", USB_FS1_XCVR_CLK, NULL, OFF),
- CLK_DUMMY("usb_fs_sys_clk", USB_FS1_SYS_CLK, NULL, OFF),
- CLK_DUMMY("usb_fs_src_clk", USB_FS2_SRC_CLK, NULL, OFF),
- CLK_DUMMY("usb_fs_clk", USB_FS2_XCVR_CLK, NULL, OFF),
- CLK_DUMMY("usb_fs_sys_clk", USB_FS2_SYS_CLK, NULL, OFF),
+ CLK_DUMMY("alt_core_clk", USB_HS1_XCVR_CLK, NULL, OFF),
+ CLK_DUMMY("phy_clk", USB_PHY0_CLK, NULL, OFF),
+ CLK_DUMMY("src_clk", USB_FS1_SRC_CLK, NULL, OFF),
+ CLK_DUMMY("alt_core_clk", USB_FS1_XCVR_CLK, NULL, OFF),
+ CLK_DUMMY("sys_clk", USB_FS1_SYS_CLK, NULL, OFF),
+ CLK_DUMMY("src_clk", USB_FS2_SRC_CLK, NULL, OFF),
+ CLK_DUMMY("alt_core_clk", USB_FS2_XCVR_CLK, NULL, OFF),
+ CLK_DUMMY("sys_clk", USB_FS2_SYS_CLK, NULL, OFF),
CLK_DUMMY("iface_clk", CE2_CLK, "qce.0", OFF),
CLK_DUMMY("core_clk", CE1_CORE_CLK, "qce.0", OFF),
CLK_DUMMY("iface_clk", GSBI1_P_CLK, "spi_qsd.0", OFF),
@@ -1890,9 +1890,9 @@
CLK_DUMMY("iface_clk", GSBI12_P_CLK, NULL, OFF),
CLK_DUMMY("iface_clk", GSBI12_P_CLK, NULL, OFF),
CLK_DUMMY("iface_clk", TSIF_P_CLK, NULL, OFF),
- CLK_DUMMY("usb_fs_pclk", USB_FS1_P_CLK, NULL, OFF),
- CLK_DUMMY("usb_fs_pclk", USB_FS2_P_CLK, NULL, OFF),
- CLK_DUMMY("usb_hs_pclk", USB_HS1_P_CLK, NULL, OFF),
+ CLK_DUMMY("iface_clk", USB_FS1_P_CLK, NULL, OFF),
+ CLK_DUMMY("iface_clk", USB_FS2_P_CLK, NULL, OFF),
+ CLK_DUMMY("iface_clk", USB_HS1_P_CLK, NULL, OFF),
CLK_DUMMY("iface_clk", SDC1_P_CLK, NULL, OFF),
CLK_DUMMY("iface_clk", SDC2_P_CLK, NULL, OFF),
CLK_DUMMY("iface_clk", SDC3_P_CLK, NULL, OFF),
@@ -1988,7 +1988,7 @@
CLK_DUMMY("core_clk", GFX2D1_CLK, NULL, 0),
CLK_DUMMY("dfab_dsps_clk", DFAB_DSPS_CLK, NULL, 0),
- CLK_DUMMY("dfab_usb_hs_clk", DFAB_USB_HS_CLK, NULL, 0),
+ CLK_DUMMY("core_clk", DFAB_USB_HS_CLK, "msm_otg", NULL),
CLK_DUMMY("bus_clk", DFAB_SDC1_CLK, "msm_sdcc.1", 0),
CLK_DUMMY("bus_clk", DFAB_SDC2_CLK, "msm_sdcc.2", 0),
CLK_DUMMY("bus_clk", DFAB_SDC3_CLK, "msm_sdcc.3", 0),
diff --git a/arch/arm/mach-msm/devices-msm7x25.c b/arch/arm/mach-msm/devices-msm7x25.c
index 71b57b4..2be7d5e 100644
--- a/arch/arm/mach-msm/devices-msm7x25.c
+++ b/arch/arm/mach-msm/devices-msm7x25.c
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2008 Google, Inc.
- * Copyright (c) 2008-2011, Code Aurora Forum. All rights reserved.
+ * Copyright (c) 2008-2012, Code Aurora Forum. All rights reserved.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
@@ -968,9 +968,11 @@
CLK_LOOKUP("core_clk", uart3_clk.c, "msm_serial.2"),
CLK_LOOKUP("core_clk", uart1dm_clk.c, "msm_serial_hs.0"),
CLK_LOOKUP("core_clk", uart2dm_clk.c, "msm_serial_hs.1"),
- CLK_LOOKUP("usb_hs_clk", usb_hs_clk.c, NULL),
- CLK_LOOKUP("usb_hs_pclk", usb_hs_p_clk.c, NULL),
- CLK_LOOKUP("usb_otg_clk", usb_otg_clk.c, NULL),
+ CLK_LOOKUP("alt_core_clk", usb_hs_clk.c, "msm_otg"),
+ CLK_LOOKUP("iface_clk", usb_hs_p_clk.c, "msm_otg"),
+ CLK_LOOKUP("alt_core_clk", usb_hs_clk.c, "msm_hsusb_peripheral"),
+ CLK_LOOKUP("iface_clk", usb_hs_p_clk.c, "msm_hsusb_peripheral"),
+ CLK_LOOKUP("alt_core_clk", usb_otg_clk.c, NULL),
CLK_LOOKUP("vdc_clk", vdc_clk.c, NULL),
CLK_LOOKUP("vfe_clk", vfe_clk.c, NULL),
CLK_LOOKUP("vfe_mdc_clk", vfe_mdc_clk.c, NULL),
diff --git a/arch/arm/mach-msm/include/mach/msm72k_otg.h b/arch/arm/mach-msm/include/mach/msm72k_otg.h
index 4509dad..e928278 100644
--- a/arch/arm/mach-msm/include/mach/msm72k_otg.h
+++ b/arch/arm/mach-msm/include/mach/msm72k_otg.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2009-2011, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -113,12 +113,9 @@
struct otg_transceiver otg;
/* usb clocks */
- struct clk *hs_clk;
- struct clk *hs_pclk;
- struct clk *hs_cclk;
-
- /* pclk source for voting */
- struct clk *pclk_src;
+ struct clk *alt_core_clk;
+ struct clk *iface_clk;
+ struct clk *core_clk;
/* clk regime has created dummy clock id for phy so
* that generic clk_reset api can be used to reset phy
@@ -163,21 +160,6 @@
#endif
};
-static inline int pclk_requires_voting(struct otg_transceiver *xceiv)
-{
- struct msm_otg *dev;
-
- if (!xceiv)
- return 0;
-
- dev = container_of(xceiv, struct msm_otg, otg);
-
- if (dev->pdata->pclk_src_name)
- return 1;
- else
- return 0;
-}
-
static inline int can_phy_power_collapse(struct msm_otg *dev)
{
if (!dev || !dev->pdata)
diff --git a/arch/arm/mach-msm/include/mach/msm_hsusb.h b/arch/arm/mach-msm/include/mach/msm_hsusb.h
index 3e8ab55..8dd761c 100644
--- a/arch/arm/mach-msm/include/mach/msm_hsusb.h
+++ b/arch/arm/mach-msm/include/mach/msm_hsusb.h
@@ -1,7 +1,7 @@
/* linux/include/mach/hsusb.h
*
* Copyright (C) 2008 Google, Inc.
- * Copyright (c) 2009-2011, Code Aurora Forum. All rights reserved.
+ * Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved.
* Author: Brian Swetland <swetland@google.com>
*
* This software is licensed under the terms of the GNU General Public
@@ -126,7 +126,6 @@
struct msm_otg_platform_data {
int (*rpc_connect)(int);
int (*phy_reset)(void __iomem *);
- unsigned int core_clk;
int pmic_vbus_irq;
int pmic_id_irq;
/* if usb link is in sps there is no need for
@@ -148,7 +147,6 @@
* now being disabled because of H/w issues
*/
int pclk_is_hw_gated;
- char *pclk_src_name;
int (*ldo_init) (int init);
int (*ldo_enable) (int enable);
diff --git a/drivers/usb/host/ehci-msm-hsic.c b/drivers/usb/host/ehci-msm-hsic.c
index eb0b203..af7f2cf 100644
--- a/drivers/usb/host/ehci-msm-hsic.c
+++ b/drivers/usb/host/ehci-msm-hsic.c
@@ -1,6 +1,6 @@
/* ehci-msm-hsic.c - HSUSB Host Controller Driver Implementation
*
- * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
+ * Copyright (c) 2011-2012, Code Aurora Forum. All rights reserved.
*
* Partly derived from ehci-fsl.c and ehci-hcd.c
* Copyright (c) 2000-2004 by David Brownell
@@ -43,9 +43,9 @@
struct ehci_hcd ehci;
struct device *dev;
struct clk *ahb_clk;
- struct clk *sys_clk;
- struct clk *fs_xcvr_clk;
- struct clk *hsic_clk;
+ struct clk *core_clk;
+ struct clk *alt_core_clk;
+ struct clk *phy_clk;
struct clk *cal_clk;
struct regulator *hsic_vddcx;
bool async_int;
@@ -270,18 +270,18 @@
{
int ret;
- clk_enable(mehci->fs_xcvr_clk);
+ clk_enable(mehci->alt_core_clk);
- ret = clk_reset(mehci->sys_clk, CLK_RESET_ASSERT);
+ ret = clk_reset(mehci->core_clk, CLK_RESET_ASSERT);
if (ret) {
- clk_disable(mehci->fs_xcvr_clk);
+ clk_disable(mehci->alt_core_clk);
dev_err(mehci->dev, "usb phy clk assert failed\n");
return ret;
}
usleep_range(10000, 12000);
- clk_disable(mehci->fs_xcvr_clk);
+ clk_disable(mehci->alt_core_clk);
- ret = clk_reset(mehci->sys_clk, CLK_RESET_DEASSERT);
+ ret = clk_reset(mehci->core_clk, CLK_RESET_DEASSERT);
if (ret)
dev_err(mehci->dev, "usb phy clk deassert failed\n");
@@ -423,8 +423,8 @@
*/
mb();
- clk_disable(mehci->sys_clk);
- clk_disable(mehci->hsic_clk);
+ clk_disable(mehci->core_clk);
+ clk_disable(mehci->phy_clk);
clk_disable(mehci->cal_clk);
clk_disable(mehci->ahb_clk);
pdata = mehci->dev->platform_data;
@@ -477,8 +477,8 @@
pr_err("%s failed to vote for"
"TCXO D1 buffer%d\n", __func__, ret);
}
- clk_enable(mehci->sys_clk);
- clk_enable(mehci->hsic_clk);
+ clk_enable(mehci->core_clk);
+ clk_enable(mehci->phy_clk);
clk_enable(mehci->cal_clk);
clk_enable(mehci->ahb_clk);
@@ -634,71 +634,71 @@
if (!init)
goto put_clocks;
- /*sys_clk is required for LINK protocol engine,it should be at 60MHz */
- mehci->sys_clk = clk_get(mehci->dev, "usb_hsic_system_clk");
- if (IS_ERR(mehci->sys_clk)) {
- dev_err(mehci->dev, "failed to get hsic_sys_clk\n");
- ret = PTR_ERR(mehci->sys_clk);
+ /*core_clk is required for LINK protocol engine,it should be at 60MHz */
+ mehci->core_clk = clk_get(mehci->dev, "core_clk");
+ if (IS_ERR(mehci->core_clk)) {
+ dev_err(mehci->dev, "failed to get core_clk\n");
+ ret = PTR_ERR(mehci->core_clk);
return ret;
}
- clk_set_rate(mehci->sys_clk, 60000000);
+ clk_set_rate(mehci->core_clk, 60000000);
- /* 60MHz fs_xcvr_clk is for LINK to be used during PHY RESET */
- mehci->fs_xcvr_clk = clk_get(mehci->dev, "usb_hsic_xcvr_fs_clk");
- if (IS_ERR(mehci->fs_xcvr_clk)) {
- dev_err(mehci->dev, "failed to get fs_xcvr_clk\n");
- ret = PTR_ERR(mehci->fs_xcvr_clk);
- goto put_sys_clk;
+ /* 60MHz alt_core_clk is for LINK to be used during PHY RESET */
+ mehci->alt_core_clk = clk_get(mehci->dev, "alt_core_clk");
+ if (IS_ERR(mehci->alt_core_clk)) {
+ dev_err(mehci->dev, "failed to core_clk\n");
+ ret = PTR_ERR(mehci->alt_core_clk);
+ goto put_core_clk;
}
- clk_set_rate(mehci->fs_xcvr_clk, 60000000);
+ clk_set_rate(mehci->alt_core_clk, 60000000);
- /* 480MHz hsic_clk is required for HSIC PHY operation */
- mehci->hsic_clk = clk_get(mehci->dev, "usb_hsic_hsic_clk");
- if (IS_ERR(mehci->hsic_clk)) {
- dev_err(mehci->dev, "failed to get hsic_clk\n");
- ret = PTR_ERR(mehci->hsic_clk);
- goto put_fs_xcvr_clk;
+ /* 480MHz phy_clk is required for HSIC PHY operation */
+ mehci->phy_clk = clk_get(mehci->dev, "phy_clk");
+ if (IS_ERR(mehci->phy_clk)) {
+ dev_err(mehci->dev, "failed to get phy_clk\n");
+ ret = PTR_ERR(mehci->phy_clk);
+ goto put_alt_core_clk;
}
- clk_set_rate(mehci->hsic_clk, 480000000);
+ clk_set_rate(mehci->phy_clk, 480000000);
/* 10MHz cal_clk is required for calibration of I/O pads */
- mehci->cal_clk = clk_get(mehci->dev, "usb_hsic_hsio_cal_clk");
+ mehci->cal_clk = clk_get(mehci->dev, "cal_clk");
if (IS_ERR(mehci->cal_clk)) {
- dev_err(mehci->dev, "failed to get hsic_cal_clk\n");
+ dev_err(mehci->dev, "failed to get cal_clk\n");
ret = PTR_ERR(mehci->cal_clk);
- goto put_hsic_clk;
+ goto put_phy_clk;
}
clk_set_rate(mehci->cal_clk, 10000000);
/* ahb_clk is required for data transfers */
- mehci->ahb_clk = clk_get(mehci->dev, "usb_hsic_p_clk");
+ mehci->ahb_clk = clk_get(mehci->dev, "iface_clk");
if (IS_ERR(mehci->ahb_clk)) {
- dev_err(mehci->dev, "failed to get hsic_ahb_clk\n");
+ dev_err(mehci->dev, "failed to get iface_clk\n");
ret = PTR_ERR(mehci->ahb_clk);
goto put_cal_clk;
}
- clk_enable(mehci->sys_clk);
- clk_enable(mehci->hsic_clk);
+ clk_enable(mehci->core_clk);
+ clk_enable(mehci->phy_clk);
clk_enable(mehci->cal_clk);
clk_enable(mehci->ahb_clk);
return 0;
put_clocks:
- clk_disable(mehci->sys_clk);
- clk_disable(mehci->hsic_clk);
+ clk_disable(mehci->core_clk);
+ clk_disable(mehci->phy_clk);
clk_disable(mehci->cal_clk);
clk_disable(mehci->ahb_clk);
clk_put(mehci->ahb_clk);
put_cal_clk:
clk_put(mehci->cal_clk);
-put_hsic_clk:
- clk_put(mehci->hsic_clk);
-put_fs_xcvr_clk:
- clk_put(mehci->fs_xcvr_clk);
-put_sys_clk:
- clk_put(mehci->sys_clk);
+put_phy_clk:
+ clk_put(mehci->phy_clk);
+put_alt_core_clk:
+ clk_put(mehci->alt_core_clk);
+put_core_clk:
+ clk_put(mehci->core_clk);
return ret;
}
diff --git a/drivers/usb/host/ehci-msm72k.c b/drivers/usb/host/ehci-msm72k.c
index e550e2b..87c75e7 100644
--- a/drivers/usb/host/ehci-msm72k.c
+++ b/drivers/usb/host/ehci-msm72k.c
@@ -1,6 +1,6 @@
/* ehci-msm.c - HSUSB Host Controller Driver Implementation
*
- * Copyright (c) 2008-2010, Code Aurora Forum. All rights reserved.
+ * Copyright (c) 2008-2012, Code Aurora Forum. All rights reserved.
*
* Partly derived from ehci-fsl.c and ehci-hcd.c
* Copyright (c) 2000-2004 by David Brownell
@@ -43,8 +43,8 @@
struct msmusb_hcd {
struct ehci_hcd ehci;
- struct clk *clk;
- struct clk *pclk;
+ struct clk *alt_core_clk;
+ struct clk *iface_clk;
unsigned in_lpm;
struct work_struct lpm_exit_work;
spinlock_t lock;
@@ -96,11 +96,11 @@
/* OTG driver takes care of clock management */
break;
case USB_PHY_SERIAL_PMIC:
- clk_enable(mhcd->clk);
- clk_enable(mhcd->pclk);
+ clk_enable(mhcd->alt_core_clk);
+ clk_enable(mhcd->iface_clk);
break;
default:
- pr_err("%s: undefined phy type ( %X ) \n", __func__,
+ pr_err("%s: undefined phy type ( %X )\n", __func__,
pdata->phy_info);
return;
}
@@ -119,11 +119,11 @@
/* OTG driver takes care of clock management */
break;
case USB_PHY_SERIAL_PMIC:
- clk_disable(mhcd->clk);
- clk_disable(mhcd->pclk);
+ clk_disable(mhcd->alt_core_clk);
+ clk_disable(mhcd->iface_clk);
break;
default:
- pr_err("%s: undefined phy type ( %X ) \n", __func__,
+ pr_err("%s: undefined phy type ( %X )\n", __func__,
pdata->phy_info);
return;
}
@@ -618,7 +618,8 @@
#define ehci_msm_start_hnp NULL
#endif
-static int msm_xusb_init_host(struct msmusb_hcd *mhcd)
+static int msm_xusb_init_host(struct platform_device *pdev,
+ struct msmusb_hcd *mhcd)
{
int ret = 0;
struct msm_otg *otg;
@@ -654,25 +655,25 @@
if (!hcd->regs)
return -EFAULT;
/* get usb clocks */
- mhcd->clk = clk_get(NULL, "usb_hs2_clk");
- if (IS_ERR(mhcd->clk)) {
+ mhcd->alt_core_clk = clk_get(&pdev->dev, "alt_core_clk");
+ if (IS_ERR(mhcd->alt_core_clk)) {
iounmap(hcd->regs);
- return PTR_ERR(mhcd->clk);
+ return PTR_ERR(mhcd->alt_core_clk);
}
- mhcd->pclk = clk_get(NULL, "usb_hs2_pclk");
- if (IS_ERR(mhcd->pclk)) {
+ mhcd->iface_clk = clk_get(&pdev->dev, "iface_clk");
+ if (IS_ERR(mhcd->iface_clk)) {
iounmap(hcd->regs);
- clk_put(mhcd->clk);
- return PTR_ERR(mhcd->pclk);
+ clk_put(mhcd->alt_core_clk);
+ return PTR_ERR(mhcd->iface_clk);
}
mhcd->otg_ops.request = msm_hsusb_request_host;
mhcd->otg_ops.handle = (void *) mhcd;
ret = msm_xusb_init_phy(mhcd);
if (ret < 0) {
iounmap(hcd->regs);
- clk_put(mhcd->clk);
- clk_put(mhcd->pclk);
+ clk_put(mhcd->alt_core_clk);
+ clk_put(mhcd->iface_clk);
}
break;
default:
@@ -724,13 +725,13 @@
INIT_WORK(&mhcd->lpm_exit_work, usb_lpm_exit_w);
wake_lock_init(&mhcd->wlock, WAKE_LOCK_SUSPEND, dev_name(&pdev->dev));
- pdata->ebi1_clk = clk_get(NULL, "ebi1_usb_clk");
+ pdata->ebi1_clk = clk_get(&pdev->dev, "core_clk");
if (IS_ERR(pdata->ebi1_clk))
pdata->ebi1_clk = NULL;
else
clk_set_rate(pdata->ebi1_clk, INT_MAX);
- retval = msm_xusb_init_host(mhcd);
+ retval = msm_xusb_init_host(pdev, mhcd);
if (retval < 0) {
wake_lock_destroy(&mhcd->wlock);
@@ -758,8 +759,8 @@
break;
case USB_PHY_SERIAL_PMIC:
iounmap(hcd->regs);
- clk_put(mhcd->clk);
- clk_put(mhcd->pclk);
+ clk_put(mhcd->alt_core_clk);
+ clk_put(mhcd->iface_clk);
msm_fsusb_reset_phy();
msm_fsusb_rpc_deinit();
break;
diff --git a/drivers/usb/otg/msm72k_otg.c b/drivers/usb/otg/msm72k_otg.c
index be3a279d..59d9769 100644
--- a/drivers/usb/otg/msm72k_otg.c
+++ b/drivers/usb/otg/msm72k_otg.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2009-2011, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -369,22 +369,6 @@
PM_QOS_DEFAULT_VALUE);
}
-/* If USB Core is running its protocol engine based on PCLK,
- * PCLK must be running at >60Mhz for correct HSUSB operation and
- * USB core cannot tolerate frequency changes on PCLK. For such
- * USB cores, vote for maximum clk frequency on pclk source
- */
-static void msm_otg_vote_for_pclk_source(struct msm_otg *dev, int vote)
-{
- if (dev->pclk_src && pclk_requires_voting(&dev->otg)) {
-
- if (vote)
- clk_enable(dev->pclk_src);
- else
- clk_disable(dev->pclk_src);
- }
-}
-
/* Controller gives interrupt for every 1 mesc if 1MSIE is set in OTGSC.
* This interrupt can be used as a timer source and OTG timers can be
* implemented. But hrtimers on MSM hardware can give atleast 1/32 KHZ
@@ -578,9 +562,9 @@
if (on)
/* enable clocks */
- clk_enable(dev->hs_clk);
+ clk_enable(dev->alt_core_clk);
else
- clk_disable(dev->hs_clk);
+ clk_disable(dev->alt_core_clk);
return 0;
}
@@ -605,7 +589,7 @@
* low power mode routine
*/
if (dev->pdata->pclk_required_during_lpm)
- clk_enable(dev->hs_pclk);
+ clk_enable(dev->iface_clk);
usb_gadget_vbus_connect(xceiv->gadget);
} else {
@@ -617,7 +601,7 @@
* low power mode routine
*/
if (dev->pdata->pclk_required_during_lpm)
- clk_disable(dev->hs_pclk);
+ clk_disable(dev->iface_clk);
otg_pm_qos_update_latency(dev, 0);
if (pdata->setup_gpio)
@@ -644,9 +628,9 @@
*/
if (dev->pdata->pclk_required_during_lpm) {
if (on)
- clk_enable(dev->hs_pclk);
+ clk_enable(dev->iface_clk);
else
- clk_disable(dev->hs_pclk);
+ clk_disable(dev->iface_clk);
}
dev->start_host(xceiv->host, on);
@@ -774,10 +758,10 @@
/* Ensure that above operation is completed before turning off clocks */
mb();
- if (dev->hs_pclk)
- clk_disable(dev->hs_pclk);
- if (dev->hs_cclk)
- clk_disable(dev->hs_cclk);
+ if (dev->iface_clk)
+ clk_disable(dev->iface_clk);
+
+ clk_disable(dev->core_clk);
/* usb phy no more require TCXO clock, hence vote for TCXO disable*/
ret = msm_xo_mode_vote(dev->xo_handle, MSM_XO_MODE_OFF);
if (ret)
@@ -792,8 +776,6 @@
enable_irq_wake(dev->id_irq);
}
- msm_otg_vote_for_pclk_source(dev, 0);
-
atomic_set(&dev->in_lpm, 1);
/*
@@ -853,12 +835,10 @@
pr_err("%s failed to vote for"
"TCXO D1 buffer%d\n", __func__, ret);
- msm_otg_vote_for_pclk_source(dev, 1);
+ clk_enable(dev->core_clk);
- if (dev->hs_pclk)
- clk_enable(dev->hs_pclk);
- if (dev->hs_cclk)
- clk_enable(dev->hs_cclk);
+ if (dev->iface_clk)
+ clk_enable(dev->iface_clk);
temp = readl(USB_USBCMD);
temp &= ~ASYNC_INTR_CTRL;
@@ -1503,7 +1483,7 @@
unsigned temp;
unsigned long timeout;
- rc = clk_reset(dev->hs_clk, CLK_RESET_ASSERT);
+ rc = clk_reset(dev->alt_core_clk, CLK_RESET_ASSERT);
if (rc) {
pr_err("%s: usb hs clk assert failed\n", __func__);
return -1;
@@ -1511,7 +1491,7 @@
phy_clk_reset(dev);
- rc = clk_reset(dev->hs_clk, CLK_RESET_DEASSERT);
+ rc = clk_reset(dev->alt_core_clk, CLK_RESET_DEASSERT);
if (rc) {
pr_err("%s: usb hs clk deassert failed\n", __func__);
return -1;
@@ -1570,7 +1550,7 @@
unsigned long timeout;
u32 mode, work = 0;
- clk_enable(dev->hs_clk);
+ clk_enable(dev->alt_core_clk);
if (!phy_reset)
goto reset_link;
@@ -1616,7 +1596,7 @@
/* Ensure that RESET operation is completed before turning off clock */
mb();
- clk_disable(dev->hs_clk);
+ clk_disable(dev->alt_core_clk);
if ((xceiv->gadget && xceiv->gadget->is_a_peripheral) ||
test_bit(ID, &dev->inputs))
@@ -2518,30 +2498,26 @@
"Charger Type: %d\n"
"PMIC VBUS Support: %u\n"
"PMIC ID Support: %u\n"
- "Core Clock: %u\n"
"USB In SPS: %d\n"
"pre_emphasis_level: 0x%x\n"
"cdr_auto_reset: 0x%x\n"
"hs_drv_amplitude: 0x%x\n"
"se1_gate_state: 0x%x\n"
"swfi_latency: 0x%x\n"
- "PHY Powercollapse: 0x%x\n"
- "PCLK Voting: 0x%x\n",
+ "PHY Powercollapse: 0x%x\n",
state_string(dev->otg.state),
dev->pdata->otg_mode,
dev->inputs,
atomic_read(&dev->chg_type),
dev->pmic_vbus_notif_supp,
dev->pmic_id_notif_supp,
- dev->pdata->core_clk,
dev->pdata->usb_in_sps,
dev->pdata->pemp_level,
dev->pdata->cdr_autoreset,
dev->pdata->drv_ampl,
dev->pdata->se1_gating,
dev->pdata->swfi_latency,
- dev->pdata->phy_can_powercollapse,
- pclk_requires_voting(&dev->otg));
+ dev->pdata->phy_can_powercollapse);
ret = simple_read_from_buffer(ubuf, count, ppos, buf, temp);
@@ -2646,57 +2622,48 @@
}
}
- dev->hs_clk = clk_get(&pdev->dev, "usb_hs_clk");
- if (IS_ERR(dev->hs_clk)) {
- pr_err("%s: failed to get usb_hs_clk\n", __func__);
- ret = PTR_ERR(dev->hs_clk);
+ dev->alt_core_clk = clk_get(&pdev->dev, "alt_core_clk");
+ if (IS_ERR(dev->alt_core_clk)) {
+ pr_err("%s: failed to get alt_core_clk\n", __func__);
+ ret = PTR_ERR(dev->alt_core_clk);
goto rpc_fail;
}
- clk_set_rate(dev->hs_clk, 60000000);
+ clk_set_rate(dev->alt_core_clk, 60000000);
/* pm qos request to prevent apps idle power collapse */
pm_qos_add_request(&dev->pdata->pm_qos_req_dma, PM_QOS_CPU_DMA_LATENCY,
PM_QOS_DEFAULT_VALUE);
- /* If USB Core is running its protocol engine based on PCLK,
- * PCLK must be running at >60Mhz for correct HSUSB operation and
- * USB core cannot tolerate frequency changes on PCLK. For such
- * USB cores, vote for maximum clk frequency on pclk source
- */
- if (dev->pdata->pclk_src_name) {
- dev->pclk_src = clk_get(0, dev->pdata->pclk_src_name);
- if (IS_ERR(dev->pclk_src))
- goto put_hs_clk;
- clk_set_rate(dev->pclk_src, INT_MAX);
- msm_otg_vote_for_pclk_source(dev, 1);
+ dev->core_clk = clk_get(&pdev->dev, "core_clk");
+ if (IS_ERR(dev->core_clk)) {
+ pr_err("%s: failed to get core_clk\n", __func__);
+ ret = PTR_ERR(dev->core_clk);
+ goto put_alt_core_clk;
}
+ /* CORE clk must be running at >60Mhz for correct HSUSB operation
+ * and USB core cannot tolerate frequency changes on CORE CLK.
+ * Vote for maximum clk frequency for CORE clock.
+ */
+ clk_set_rate(dev->core_clk, INT_MAX);
+
+ clk_enable(dev->core_clk);
if (!dev->pdata->pclk_is_hw_gated) {
- dev->hs_pclk = clk_get(&pdev->dev, "usb_hs_pclk");
- if (IS_ERR(dev->hs_pclk)) {
- pr_err("%s: failed to get usb_hs_pclk\n", __func__);
- ret = PTR_ERR(dev->hs_pclk);
- goto put_pclk_src;
+ dev->iface_clk = clk_get(&pdev->dev, "iface_clk");
+ if (IS_ERR(dev->iface_clk)) {
+ pr_err("%s: failed to get abh_clk\n", __func__);
+ ret = PTR_ERR(dev->iface_clk);
+ goto put_core_clk;
}
- clk_enable(dev->hs_pclk);
- }
-
- if (dev->pdata->core_clk) {
- dev->hs_cclk = clk_get(&pdev->dev, "usb_hs_core_clk");
- if (IS_ERR(dev->hs_cclk)) {
- pr_err("%s: failed to get usb_hs_core_clk\n", __func__);
- ret = PTR_ERR(dev->hs_cclk);
- goto put_hs_pclk;
- }
- clk_enable(dev->hs_cclk);
+ clk_enable(dev->iface_clk);
}
if (!dev->pdata->phy_reset) {
- dev->phy_reset_clk = clk_get(&pdev->dev, "usb_phy_clk");
+ dev->phy_reset_clk = clk_get(&pdev->dev, "phy_clk");
if (IS_ERR(dev->phy_reset_clk)) {
- pr_err("%s: failed to get usb_phy_clk\n", __func__);
+ pr_err("%s: failed to get phy_clk\n", __func__);
ret = PTR_ERR(dev->phy_reset_clk);
- goto put_hs_cclk;
+ goto put_iface_clk;
}
}
@@ -2919,24 +2886,16 @@
put_phy_clk:
if (dev->phy_reset_clk)
clk_put(dev->phy_reset_clk);
-put_hs_cclk:
- if (dev->hs_cclk) {
- clk_disable(dev->hs_cclk);
- clk_put(dev->hs_cclk);
+put_iface_clk:
+ if (dev->iface_clk) {
+ clk_disable(dev->iface_clk);
+ clk_put(dev->iface_clk);
}
-put_hs_pclk:
- if (dev->hs_pclk) {
- clk_disable(dev->hs_pclk);
- clk_put(dev->hs_pclk);
- }
-put_pclk_src:
- if (dev->pclk_src) {
- msm_otg_vote_for_pclk_source(dev, 0);
- clk_put(dev->pclk_src);
- }
-put_hs_clk:
- if (dev->hs_clk)
- clk_put(dev->hs_clk);
+put_core_clk:
+ clk_disable(dev->core_clk);
+ clk_put(dev->core_clk);
+put_alt_core_clk:
+ clk_put(dev->alt_core_clk);
rpc_fail:
if (dev->pdata->rpc_connect)
dev->pdata->rpc_connect(0);
@@ -2983,24 +2942,18 @@
dev->pdata->chg_init(0);
free_irq(dev->irq, pdev);
iounmap(dev->regs);
- if (dev->hs_cclk) {
- clk_disable(dev->hs_cclk);
- clk_put(dev->hs_cclk);
+ clk_disable(dev->core_clk);
+ clk_put(dev->core_clk);
+ if (dev->iface_clk) {
+ clk_disable(dev->iface_clk);
+ clk_put(dev->iface_clk);
}
- if (dev->hs_pclk) {
- clk_disable(dev->hs_pclk);
- clk_put(dev->hs_pclk);
- }
- if (dev->hs_clk)
- clk_put(dev->hs_clk);
+ if (dev->alt_core_clk)
+ clk_put(dev->alt_core_clk);
if (dev->phy_reset_clk)
clk_put(dev->phy_reset_clk);
if (dev->pdata->rpc_connect)
dev->pdata->rpc_connect(0);
- if (dev->pclk_src) {
- msm_otg_vote_for_pclk_source(dev, 0);
- clk_put(dev->pclk_src);
- }
msm_xo_put(dev->xo_handle);
pm_qos_remove_request(&dev->pdata->pm_qos_req_dma);
diff --git a/drivers/usb/otg/msm_otg.c b/drivers/usb/otg/msm_otg.c
index 4932551..f2279be 100644
--- a/drivers/usb/otg/msm_otg.c
+++ b/drivers/usb/otg/msm_otg.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2009-2011, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -702,14 +702,7 @@
/* Ensure that above operation is completed before turning off clocks */
mb();
clk_disable(motg->pclk);
- if (motg->core_clk)
- clk_disable(motg->core_clk);
-
- if (!IS_ERR(motg->system_clk))
- clk_disable(motg->system_clk);
-
- if (!IS_ERR(motg->pclk_src))
- clk_disable(motg->pclk_src);
+ clk_disable(motg->core_clk);
/* usb phy no more require TCXO clock, hence vote for TCXO disable */
ret = msm_xo_mode_vote(motg->xo_handle, MSM_XO_MODE_OFF);
@@ -764,15 +757,9 @@
dev_err(otg->dev, "%s failed to vote for "
"TCXO D0 buffer%d\n", __func__, ret);
- if (!IS_ERR(motg->pclk_src))
- clk_enable(motg->pclk_src);
-
- if (!IS_ERR(motg->system_clk))
- clk_enable(motg->system_clk);
+ clk_enable(motg->core_clk);
clk_enable(motg->pclk);
- if (motg->core_clk)
- clk_enable(motg->core_clk);
if (motg->lpm_flags & PHY_PWR_COLLAPSED) {
msm_hsusb_ldo_enable(motg, 1);
@@ -2291,8 +2278,6 @@
&pdata->phy_type);
of_property_read_u32(node, "qcom,hsusb-otg-pmic-id-irq",
&pdata->pmic_id_irq);
- of_property_read_string(node, "qcom,hsusb-otg-pclk-src-name",
- &pdata->pclk_src_name);
return pdata;
}
@@ -2349,13 +2334,13 @@
motg->reset_counter = 0;
/* Some targets don't support PHY clock. */
- motg->phy_reset_clk = clk_get(&pdev->dev, "usb_phy_clk");
+ motg->phy_reset_clk = clk_get(&pdev->dev, "phy_clk");
if (IS_ERR(motg->phy_reset_clk))
- dev_err(&pdev->dev, "failed to get usb_phy_clk\n");
+ dev_err(&pdev->dev, "failed to get phy_clk\n");
- motg->clk = clk_get(&pdev->dev, "usb_hs_clk");
+ motg->clk = clk_get(&pdev->dev, "alt_core_clk");
if (IS_ERR(motg->clk)) {
- dev_err(&pdev->dev, "failed to get usb_hs_clk\n");
+ dev_err(&pdev->dev, "failed to get alt_core_clk\n");
ret = PTR_ERR(motg->clk);
goto put_phy_reset_clk;
}
@@ -2365,55 +2350,42 @@
if (motg->pdata->swfi_latency)
pm_qos_add_request(&motg->pm_qos_req_dma,
PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE);
+
/*
- * If USB Core is running its protocol engine based on CORE CLK,
+ * USB Core is running its protocol engine based on CORE CLK,
* CORE CLK must be running at >55Mhz for correct HSUSB
* operation and USB core cannot tolerate frequency changes on
* CORE CLK. For such USB cores, vote for maximum clk frequency
* on pclk source
*/
- if (motg->pdata->pclk_src_name) {
- motg->pclk_src = clk_get(&pdev->dev,
- motg->pdata->pclk_src_name);
- if (IS_ERR(motg->pclk_src))
- goto put_clk;
- clk_set_rate(motg->pclk_src, INT_MAX);
- clk_enable(motg->pclk_src);
- } else
- motg->pclk_src = ERR_PTR(-ENOENT);
-
- motg->pclk = clk_get(&pdev->dev, "usb_hs_pclk");
- if (IS_ERR(motg->pclk)) {
- dev_err(&pdev->dev, "failed to get usb_hs_pclk\n");
- ret = PTR_ERR(motg->pclk);
- goto put_pclk_src;
- }
-
- motg->system_clk = clk_get(&pdev->dev, "usb_hs_system_clk");
- if (!IS_ERR(motg->system_clk))
- clk_enable(motg->system_clk);
-
- /*
- * USB core clock is not present on all MSM chips. This
- * clock is introduced to remove the dependency on AXI
- * bus frequency.
- */
- motg->core_clk = clk_get(&pdev->dev, "usb_hs_core_clk");
- if (IS_ERR(motg->core_clk))
+ motg->core_clk = clk_get(&pdev->dev, "core_clk");
+ if (IS_ERR(motg->core_clk)) {
motg->core_clk = NULL;
+ dev_err(&pdev->dev, "failed to get core_clk\n");
+ ret = PTR_ERR(motg->clk);
+ goto put_clk;
+ }
+ clk_set_rate(motg->core_clk, INT_MAX);
+
+ motg->pclk = clk_get(&pdev->dev, "iface_clk");
+ if (IS_ERR(motg->pclk)) {
+ dev_err(&pdev->dev, "failed to get iface_clk\n");
+ ret = PTR_ERR(motg->pclk);
+ goto put_core_clk;
+ }
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res) {
dev_err(&pdev->dev, "failed to get platform resource mem\n");
ret = -ENODEV;
- goto put_core_clk;
+ goto put_pclk;
}
motg->regs = ioremap(res->start, resource_size(res));
if (!motg->regs) {
dev_err(&pdev->dev, "ioremap failed\n");
ret = -ENOMEM;
- goto put_core_clk;
+ goto put_pclk;
}
dev_info(&pdev->dev, "OTG regs = %p\n", motg->regs);
@@ -2464,9 +2436,7 @@
dev_err(&pdev->dev, "hsusb vreg enable failed\n");
goto free_ldo_init;
}
-
- if (motg->core_clk)
- clk_enable(motg->core_clk);
+ clk_enable(motg->core_clk);
writel(0, USB_USBINTR);
writel(0, USB_OTGSC);
@@ -2554,31 +2524,23 @@
free_irq(motg->irq, motg);
destroy_wlock:
wake_lock_destroy(&motg->wlock);
- clk_disable(motg->pclk);
+ clk_disable(motg->core_clk);
msm_hsusb_ldo_enable(motg, 0);
free_ldo_init:
msm_hsusb_ldo_init(motg, 0);
free_init_vddcx:
msm_hsusb_init_vddcx(motg, 0);
devote_xo_handle:
+ clk_disable(motg->pclk);
msm_xo_mode_vote(motg->xo_handle, MSM_XO_MODE_OFF);
free_xo_handle:
msm_xo_put(motg->xo_handle);
free_regs:
iounmap(motg->regs);
+put_pclk:
+ clk_put(motg->pclk);
put_core_clk:
- if (motg->core_clk)
- clk_put(motg->core_clk);
-
- if (!IS_ERR(motg->system_clk)) {
- clk_disable(motg->system_clk);
- clk_put(motg->system_clk);
- }
-put_pclk_src:
- if (!IS_ERR(motg->pclk_src)) {
- clk_disable(motg->pclk_src);
- clk_put(motg->pclk_src);
- }
+ clk_put(motg->core_clk);
put_clk:
clk_put(motg->clk);
put_phy_reset_clk:
@@ -2637,14 +2599,7 @@
dev_err(otg->dev, "Unable to suspend PHY\n");
clk_disable(motg->pclk);
- if (motg->core_clk)
- clk_disable(motg->core_clk);
- if (!IS_ERR(motg->system_clk))
- clk_disable(motg->system_clk);
- if (!IS_ERR(motg->pclk_src)) {
- clk_disable(motg->pclk_src);
- clk_put(motg->pclk_src);
- }
+ clk_disable(motg->core_clk);
msm_xo_put(motg->xo_handle);
msm_hsusb_ldo_enable(motg, 0);
msm_hsusb_ldo_init(motg, 0);
@@ -2657,10 +2612,7 @@
clk_put(motg->phy_reset_clk);
clk_put(motg->pclk);
clk_put(motg->clk);
- if (motg->core_clk)
- clk_put(motg->core_clk);
- if (!IS_ERR(motg->system_clk))
- clk_put(motg->system_clk);
+ clk_put(motg->core_clk);
if (motg->pdata->swfi_latency)
pm_qos_remove_request(&motg->pm_qos_req_dma);
diff --git a/include/linux/usb/msm_hsusb.h b/include/linux/usb/msm_hsusb.h
index 409e697..9373064 100644
--- a/include/linux/usb/msm_hsusb.h
+++ b/include/linux/usb/msm_hsusb.h
@@ -2,7 +2,7 @@
*
* Copyright (C) 2008 Google, Inc.
* Author: Brian Swetland <swetland@google.com>
- * Copyright (c) 2009-2011, Code Aurora Forum. All rights reserved.
+ * Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
@@ -155,8 +155,6 @@
* @otg_control: OTG switch controlled by user/Id pin
* @default_mode: Default operational mode. Applicable only if
* OTG switch is controller by user.
- * @pclk_src_name: pclk is derived from ebi1_usb_clk in case of 7x27 and 8k
- * dfab_usb_hs_clk in case of 8660 and 8960.
* @pmic_id_irq: IRQ number assigned for PMIC USB ID line.
* @mhl_enable: indicates MHL connector or not.
* @disable_reset_on_disconnect: perform USB PHY and LINK reset
@@ -172,7 +170,6 @@
enum usb_mode_type default_mode;
enum msm_usb_phy_type phy_type;
void (*setup_gpio)(enum usb_otg_state state);
- const char *pclk_src_name;
int pmic_id_irq;
bool mhl_enable;
bool disable_reset_on_disconnect;
@@ -184,12 +181,10 @@
* @otg: USB OTG Transceiver structure.
* @pdata: otg device platform data.
* @irq: IRQ number assigned for HSUSB controller.
- * @clk: clock struct of usb_hs_clk.
- * @pclk: clock struct of usb_hs_pclk.
- * @pclk_src: pclk source for voting.
- * @phy_reset_clk: clock struct of usb_phy_clk.
- * @core_clk: clock struct of usb_hs_core_clk.
- * @system_clk: clock struct of usb_system_clk.
+ * @clk: clock struct of alt_core_clk.
+ * @pclk: clock struct of iface_clk.
+ * @phy_reset_clk: clock struct of phy_clk.
+ * @core_clk: clock struct of core_bus_clk.
* @regs: ioremapped register base address.
* @inputs: OTG state machine inputs(Id, SessValid etc).
* @sm_work: OTG state machine work.
@@ -218,10 +213,8 @@
int irq;
struct clk *clk;
struct clk *pclk;
- struct clk *pclk_src;
struct clk *phy_reset_clk;
struct clk *core_clk;
- struct clk *system_clk;
void __iomem *regs;
#define ID 0
#define B_SESS_VLD 1