msm: footswitch: Specify footswitch device struct for clk_get()
Use the device names to distinguish between clocks of the same
type rather than the clock name alone.
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
diff --git a/arch/arm/mach-msm/clock-7x30.c b/arch/arm/mach-msm/clock-7x30.c
index 344b354..3e50077 100644
--- a/arch/arm/mach-msm/clock-7x30.c
+++ b/arch/arm/mach-msm/clock-7x30.c
@@ -2760,7 +2760,9 @@
* register (usually the ns register).
*/
OWN(APPS1, 6, "grp_2d_clk", grp_2d_clk, NULL),
+ OWN(APPS1, 6, "core_clk", grp_2d_clk, "footswitch-pcom.0"),
OWN(APPS1, 6, "grp_2d_pclk", grp_2d_p_clk, NULL),
+ OWN(APPS1, 6, "iface_clk", grp_2d_p_clk, "footswitch-pcom.0"),
OWN(APPS1, 31, "hdmi_clk", hdmi_clk, NULL),
OWN(APPS1, 0, "jpeg_clk", jpeg_clk, NULL),
OWN(APPS1, 0, "jpeg_pclk", jpeg_p_clk, NULL),
@@ -2778,18 +2780,25 @@
OWN(APPS1, 26, "sdac_clk", sdac_clk, NULL),
OWN(APPS1, 26, "sdac_m_clk", sdac_m_clk, NULL),
OWN(APPS1, 8, "vfe_clk", vfe_clk, NULL),
+ OWN(APPS1, 8, "core_clk", vfe_clk, "footswitch-pcom.8"),
OWN(APPS1, 8, "vfe_camif_clk", vfe_camif_clk, NULL),
OWN(APPS1, 8, "vfe_mdc_clk", vfe_mdc_clk, NULL),
OWN(APPS1, 8, "vfe_pclk", vfe_p_clk, NULL),
+ OWN(APPS1, 8, "iface_clk", vfe_p_clk, "footswitch-pcom.8"),
OWN(APPS2, 0, "grp_clk", grp_3d_clk, NULL),
+ OWN(APPS2, 0, "core_clk", grp_3d_clk, "footswitch-pcom.2"),
OWN(APPS2, 0, "grp_pclk", grp_3d_p_clk, NULL),
+ OWN(APPS2, 0, "iface_clk", grp_3d_p_clk, "footswitch-pcom.2"),
{ CLK_LOOKUP("grp_src_clk", grp_3d_src_clk.c, NULL),
O(APPS2), BIT(0), &p_grp_3d_clk.c },
+ { CLK_LOOKUP("src_clk", grp_3d_src_clk.c, "footswitch-pcom.2"),
+ O(APPS2), BIT(0), &p_grp_3d_clk.c },
OWN(APPS2, 0, "imem_clk", imem_clk, NULL),
OWN(APPS2, 4, "mdp_lcdc_pad_pclk_clk", mdp_lcdc_pad_pclk_clk, NULL),
OWN(APPS2, 4, "mdp_lcdc_pclk_clk", mdp_lcdc_pclk_clk, NULL),
OWN(APPS2, 4, "mdp_pclk", mdp_p_clk, NULL),
+ OWN(APPS2, 4, "iface_clk", mdp_p_clk, "footswitch-pcom.4"),
OWN(APPS2, 28, "mdp_vsync_clk", mdp_vsync_clk, NULL),
OWN(APPS2, 5, "ref_clk", tsif_ref_clk, "msm_tsif.0"),
OWN(APPS2, 5, "iface_clk", tsif_p_clk, "msm_tsif.0"),
@@ -2838,18 +2847,24 @@
OWN(APPS3, 11, "csi_vfe_clk", csi0_vfe_clk, NULL),
OWN(APPS3, 11, "csi_pclk", csi0_p_clk, NULL),
OWN(APPS3, 0, "mdp_clk", mdp_clk, NULL),
+ OWN(APPS3, 0, "core_clk", mdp_clk, "footswitch-pcom.4"),
OWN(APPS3, 2, "mfc_clk", mfc_clk, NULL),
+ OWN(APPS3, 2, "core_clk", mfc_clk, "footswitch-pcom.5"),
OWN(APPS3, 2, "mfc_div2_clk", mfc_div2_clk, NULL),
OWN(APPS3, 2, "mfc_pclk", mfc_p_clk, NULL),
+ OWN(APPS3, 2, "iface_clk", mfc_p_clk, "footswitch-pcom.5"),
OWN(APPS3, 4, "vpe_clk", vpe_clk, NULL),
+ OWN(APPS3, 4, "core_clk", vpe_clk, "footswitch-pcom.9"),
OWN(GLBL, 8, "core_clk", adm_clk, "msm_dmov"),
{ CLK_LOOKUP("iface_clk", adm_p_clk.c, "msm_dmov"),
O(GLBL), BIT(13), &dummy_clk },
OWN(GLBL, 8, "core_clk", ce_clk, "qce.0"),
OWN(GLBL, 13, "rotator_clk", axi_rotator_clk, NULL),
+ OWN(GLBL, 13, "core_clk", axi_rotator_clk, "footswitch-pcom.6"),
OWN(GLBL, 13, "rotator_imem_clk", rotator_imem_clk, NULL),
OWN(GLBL, 13, "rotator_pclk", rotator_p_clk, NULL),
+ OWN(GLBL, 13, "iface_clk", rotator_p_clk, "footswitch-pcom.6"),
{ CLK_LOOKUP("iface_clk", uart1dm_p_clk.c, "msm_serial_hs.0"),
O(GLBL), BIT(8), &dummy_clk },
{ CLK_LOOKUP("iface_clk", uart2dm_p_clk.c, "msm_serial_hs.1"),
diff --git a/arch/arm/mach-msm/clock-8960.c b/arch/arm/mach-msm/clock-8960.c
index a574875..8cf34cc 100644
--- a/arch/arm/mach-msm/clock-8960.c
+++ b/arch/arm/mach-msm/clock-8960.c
@@ -4626,13 +4626,18 @@
CLK_LOOKUP("dsi_esc_clk", dsi1_esc_clk.c, NULL),
CLK_LOOKUP("dsi_esc_clk", dsi2_esc_clk.c, NULL),
CLK_LOOKUP("gfx2d0_clk", gfx2d0_clk.c, NULL),
+ CLK_LOOKUP("core_clk", gfx2d0_clk.c, "footswitch-8x60.0"),
CLK_LOOKUP("gfx2d1_clk", gfx2d1_clk.c, NULL),
+ CLK_LOOKUP("core_clk", gfx2d1_clk.c, "footswitch-8x60.1"),
CLK_LOOKUP("gfx3d_clk", gfx3d_clk.c, NULL),
- CLK_LOOKUP("ijpeg_axi_clk", ijpeg_axi_clk.c, NULL),
+ CLK_LOOKUP("core_clk", gfx3d_clk.c, "footswitch-8x60.2"),
+ CLK_LOOKUP("bus_clk", ijpeg_axi_clk.c, "footswitch-8x60.3"),
CLK_LOOKUP("imem_axi_clk", imem_axi_clk.c, NULL),
CLK_LOOKUP("ijpeg_clk", ijpeg_clk.c, NULL),
+ CLK_LOOKUP("core_clk", ijpeg_clk.c, "footswitch-8x60.3"),
CLK_LOOKUP("jpegd_clk", jpegd_clk.c, NULL),
CLK_LOOKUP("mdp_clk", mdp_clk.c, NULL),
+ CLK_LOOKUP("core_clk", mdp_clk.c, "footswitch-8x60.4"),
CLK_LOOKUP("mdp_vsync_clk", mdp_vsync_clk.c, NULL),
CLK_LOOKUP("lut_mdp", lut_mdp_clk.c, NULL),
CLK_LOOKUP("qdss_pclk", qdss_p_clk.c, NULL),
@@ -4642,23 +4647,27 @@
CLK_LOOKUP("qdss_tsctr_clk", qdss_tsctr_clk.c, NULL),
CLK_LOOKUP("qdss_stm_clk", qdss_stm_clk.c, NULL),
CLK_LOOKUP("rot_clk", rot_clk.c, NULL),
+ CLK_LOOKUP("core_clk", rot_clk.c, "footswitch-8x60.6"),
CLK_LOOKUP("tv_src_clk", tv_src_clk.c, NULL),
CLK_LOOKUP("tv_enc_clk", tv_enc_clk.c, NULL),
CLK_LOOKUP("tv_dac_clk", tv_dac_clk.c, NULL),
CLK_LOOKUP("vcodec_clk", vcodec_clk.c, NULL),
+ CLK_LOOKUP("core_clk", vcodec_clk.c, "footswitch-8x60.7"),
CLK_LOOKUP("mdp_tv_clk", mdp_tv_clk.c, NULL),
CLK_LOOKUP("hdmi_clk", hdmi_tv_clk.c, NULL),
CLK_LOOKUP("hdmi_app_clk", hdmi_app_clk.c, NULL),
CLK_LOOKUP("vpe_clk", vpe_clk.c, NULL),
+ CLK_LOOKUP("core_clk", vpe_clk.c, "footswitch-8x60.9"),
CLK_LOOKUP("vfe_clk", vfe_clk.c, NULL),
+ CLK_LOOKUP("core_clk", vfe_clk.c, "footswitch-8x60.8"),
CLK_LOOKUP("csi_vfe_clk", csi_vfe_clk.c, NULL),
- CLK_LOOKUP("vfe_axi_clk", vfe_axi_clk.c, NULL),
- CLK_LOOKUP("mdp_axi_clk", mdp_axi_clk.c, NULL),
- CLK_LOOKUP("rot_axi_clk", rot_axi_clk.c, NULL),
- CLK_LOOKUP("vcodec_axi_clk", vcodec_axi_clk.c, NULL),
- CLK_LOOKUP("vcodec_axi_a_clk", vcodec_axi_a_clk.c, NULL),
- CLK_LOOKUP("vcodec_axi_b_clk", vcodec_axi_b_clk.c, NULL),
- CLK_LOOKUP("vpe_axi_clk", vpe_axi_clk.c, NULL),
+ CLK_LOOKUP("bus_clk", vfe_axi_clk.c, "footswitch-8x60.8"),
+ CLK_LOOKUP("bus_clk", mdp_axi_clk.c, "footswitch-8x60.4"),
+ CLK_LOOKUP("bus_clk", rot_axi_clk.c, "footswitch-8x60.6"),
+ CLK_LOOKUP("bus_clk", vcodec_axi_clk.c, "footswitch-8x60.7"),
+ CLK_LOOKUP("bus_a_clk", vcodec_axi_a_clk.c, "footswitch-8x60.7"),
+ CLK_LOOKUP("bus_b_clk", vcodec_axi_b_clk.c, "footswitch-8x60.7"),
+ CLK_LOOKUP("bus_clk", vpe_axi_clk.c, "footswitch-8x60.9"),
CLK_LOOKUP("amp_pclk", amp_p_clk.c, NULL),
CLK_LOOKUP("csi_pclk", csi_p_clk.c, NULL),
CLK_LOOKUP("dsi_m_pclk", dsi1_m_p_clk.c, NULL),
@@ -4666,20 +4675,29 @@
CLK_LOOKUP("dsi_m_pclk", dsi2_m_p_clk.c, NULL),
CLK_LOOKUP("dsi_s_pclk", dsi2_s_p_clk.c, NULL),
CLK_LOOKUP("gfx2d0_pclk", gfx2d0_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", gfx2d0_p_clk.c, "footswitch-8x60.0"),
CLK_LOOKUP("gfx2d1_pclk", gfx2d1_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", gfx2d1_p_clk.c, "footswitch-8x60.1"),
CLK_LOOKUP("gfx3d_pclk", gfx3d_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", gfx3d_p_clk.c, "footswitch-8x60.2"),
CLK_LOOKUP("hdmi_m_pclk", hdmi_m_p_clk.c, NULL),
CLK_LOOKUP("hdmi_s_pclk", hdmi_s_p_clk.c, NULL),
CLK_LOOKUP("ijpeg_pclk", ijpeg_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", ijpeg_p_clk.c, "footswitch-8x60.3"),
CLK_LOOKUP("jpegd_pclk", jpegd_p_clk.c, NULL),
CLK_LOOKUP("imem_pclk", imem_p_clk.c, NULL),
CLK_LOOKUP("mdp_pclk", mdp_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", mdp_p_clk.c, "footswitch-8x60.4"),
CLK_LOOKUP("smmu_pclk", smmu_p_clk.c, NULL),
CLK_LOOKUP("rotator_pclk", rot_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", rot_p_clk.c, "footswitch-8x60.6"),
CLK_LOOKUP("tv_enc_pclk", tv_enc_p_clk.c, NULL),
CLK_LOOKUP("vcodec_pclk", vcodec_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", vcodec_p_clk.c, "footswitch-8x60.7"),
CLK_LOOKUP("vfe_pclk", vfe_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", vfe_p_clk.c, "footswitch-8x60.8"),
CLK_LOOKUP("vpe_pclk", vpe_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", vpe_p_clk.c, "footswitch-8x60.9"),
CLK_LOOKUP("mi2s_bit_clk", mi2s_bit_clk.c, NULL),
CLK_LOOKUP("mi2s_osr_clk", mi2s_osr_clk.c, NULL),
CLK_LOOKUP("i2s_mic_bit_clk", codec_i2s_mic_bit_clk.c, NULL),
diff --git a/arch/arm/mach-msm/clock-8x60.c b/arch/arm/mach-msm/clock-8x60.c
index e85d72a..fbefc47 100644
--- a/arch/arm/mach-msm/clock-8x60.c
+++ b/arch/arm/mach-msm/clock-8x60.c
@@ -3619,36 +3619,45 @@
CLK_LOOKUP("dsi_byte_div_clk", dsi_byte_clk.c, NULL),
CLK_LOOKUP("dsi_esc_clk", dsi_esc_clk.c, NULL),
CLK_LOOKUP("gfx2d0_clk", gfx2d0_clk.c, NULL),
+ CLK_LOOKUP("core_clk", gfx2d0_clk.c, "footswitch-8x60.0"),
CLK_LOOKUP("gfx2d1_clk", gfx2d1_clk.c, NULL),
+ CLK_LOOKUP("core_clk", gfx2d1_clk.c, "footswitch-8x60.1"),
CLK_LOOKUP("gfx3d_clk", gfx3d_clk.c, NULL),
+ CLK_LOOKUP("core_clk", gfx3d_clk.c, "footswitch-8x60.2"),
CLK_LOOKUP("ijpeg_clk", ijpeg_clk.c, NULL),
+ CLK_LOOKUP("core_clk", ijpeg_clk.c, "footswitch-8x60.3"),
CLK_LOOKUP("jpegd_clk", jpegd_clk.c, NULL),
CLK_LOOKUP("mdp_clk", mdp_clk.c, NULL),
+ CLK_LOOKUP("core_clk", mdp_clk.c, "footswitch-8x60.4"),
CLK_LOOKUP("mdp_vsync_clk", mdp_vsync_clk.c, NULL),
CLK_LOOKUP("pixel_lcdc_clk", pixel_lcdc_clk.c, NULL),
CLK_LOOKUP("pixel_mdp_clk", pixel_mdp_clk.c, NULL),
CLK_LOOKUP("rot_clk", rot_clk.c, NULL),
+ CLK_LOOKUP("core_clk", rot_clk.c, "footswitch-8x60.6"),
CLK_LOOKUP("tv_enc_clk", tv_enc_clk.c, NULL),
CLK_LOOKUP("tv_dac_clk", tv_dac_clk.c, NULL),
CLK_LOOKUP("vcodec_clk", vcodec_clk.c, NULL),
+ CLK_LOOKUP("core_clk", vcodec_clk.c, "footswitch-8x60.7"),
CLK_LOOKUP("mdp_tv_clk", mdp_tv_clk.c, NULL),
CLK_LOOKUP("hdmi_clk", hdmi_tv_clk.c, NULL),
CLK_LOOKUP("tv_src_clk", tv_src_clk.c, NULL),
CLK_LOOKUP("hdmi_app_clk", hdmi_app_clk.c, NULL),
CLK_LOOKUP("vpe_clk", vpe_clk.c, NULL),
+ CLK_LOOKUP("core_clk", vpe_clk.c, "footswitch-8x60.9"),
CLK_LOOKUP("csi_vfe_clk", csi0_vfe_clk.c, NULL),
CLK_LOOKUP("csi_vfe_clk", csi1_vfe_clk.c, "msm_camera_ov7692.0"),
CLK_LOOKUP("csi_vfe_clk", csi1_vfe_clk.c, "msm_camera_ov9726.0"),
CLK_LOOKUP("vfe_clk", vfe_clk.c, NULL),
+ CLK_LOOKUP("core_clk", vfe_clk.c, "footswitch-8x60.8"),
CLK_LOOKUP("smmu_jpegd_clk", jpegd_axi_clk.c, NULL),
CLK_LOOKUP("smmu_vfe_clk", vfe_axi_clk.c, NULL),
- CLK_LOOKUP("vfe_axi_clk", vfe_axi_clk.c, NULL),
- CLK_LOOKUP("ijpeg_axi_clk", ijpeg_axi_clk.c, NULL),
+ CLK_LOOKUP("bus_clk", vfe_axi_clk.c, "footswitch-8x60.8"),
+ CLK_LOOKUP("bus_clk", ijpeg_axi_clk.c, "footswitch-8x60.3"),
CLK_LOOKUP("imem_axi_clk", imem_axi_clk.c, NULL),
- CLK_LOOKUP("mdp_axi_clk", mdp_axi_clk.c, NULL),
- CLK_LOOKUP("rot_axi_clk", rot_axi_clk.c, NULL),
- CLK_LOOKUP("vcodec_axi_clk", vcodec_axi_clk.c, NULL),
- CLK_LOOKUP("vpe_axi_clk", vpe_axi_clk.c, NULL),
+ CLK_LOOKUP("bus_clk", mdp_axi_clk.c, "footswitch-8x60.4"),
+ CLK_LOOKUP("bus_clk", rot_axi_clk.c, "footswitch-8x60.6"),
+ CLK_LOOKUP("bus_clk", vcodec_axi_clk.c, "footswitch-8x60.7"),
+ CLK_LOOKUP("bus_clk", vpe_axi_clk.c, "footswitch-8x60.9"),
CLK_LOOKUP("amp_pclk", amp_p_clk.c, NULL),
CLK_LOOKUP("csi_pclk", csi0_p_clk.c, NULL),
CLK_LOOKUP("csi_pclk", csi1_p_clk.c, "msm_camera_ov7692.0"),
@@ -3656,20 +3665,29 @@
CLK_LOOKUP("dsi_m_pclk", dsi_m_p_clk.c, NULL),
CLK_LOOKUP("dsi_s_pclk", dsi_s_p_clk.c, NULL),
CLK_LOOKUP("gfx2d0_pclk", gfx2d0_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", gfx2d0_p_clk.c, "footswitch-8x60.0"),
CLK_LOOKUP("gfx2d1_pclk", gfx2d1_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", gfx2d1_p_clk.c, "footswitch-8x60.1"),
CLK_LOOKUP("gfx3d_pclk", gfx3d_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", gfx3d_p_clk.c, "footswitch-8x60.2"),
CLK_LOOKUP("hdmi_m_pclk", hdmi_m_p_clk.c, NULL),
CLK_LOOKUP("hdmi_s_pclk", hdmi_s_p_clk.c, NULL),
CLK_LOOKUP("ijpeg_pclk", ijpeg_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", ijpeg_p_clk.c, "footswitch-8x60.3"),
CLK_LOOKUP("jpegd_pclk", jpegd_p_clk.c, NULL),
CLK_LOOKUP("imem_pclk", imem_p_clk.c, NULL),
CLK_LOOKUP("mdp_pclk", mdp_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", mdp_p_clk.c, "footswitch-8x60.4"),
CLK_LOOKUP("smmu_pclk", smmu_p_clk.c, NULL),
CLK_LOOKUP("rotator_pclk", rot_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", rot_p_clk.c, "footswitch-8x60.6"),
CLK_LOOKUP("tv_enc_pclk", tv_enc_p_clk.c, NULL),
CLK_LOOKUP("vcodec_pclk", vcodec_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", vcodec_p_clk.c, "footswitch-8x60.7"),
CLK_LOOKUP("vfe_pclk", vfe_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", vfe_p_clk.c, "footswitch-8x60.8"),
CLK_LOOKUP("vpe_pclk", vpe_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", vpe_p_clk.c, "footswitch-8x60.9"),
CLK_LOOKUP("mi2s_osr_clk", mi2s_osr_clk.c, NULL),
CLK_LOOKUP("mi2s_bit_clk", mi2s_bit_clk.c, NULL),
CLK_LOOKUP("i2s_mic_osr_clk", codec_i2s_mic_osr_clk.c, NULL),
diff --git a/arch/arm/mach-msm/clock-pcom-lookup.c b/arch/arm/mach-msm/clock-pcom-lookup.c
index 9e48508..1c378df 100644
--- a/arch/arm/mach-msm/clock-pcom-lookup.c
+++ b/arch/arm/mach-msm/clock-pcom-lookup.c
@@ -198,8 +198,10 @@
CLK_LOOKUP("ecodec_clk", ecodec_clk.c, NULL),
CLK_LOOKUP("gp_clk", gp_clk.c, NULL),
CLK_LOOKUP("grp_clk", grp_3d_clk.c, NULL),
+ CLK_LOOKUP("core_clk", grp_3d_clk.c, "footswitch-pcom.2"),
CLK_LOOKUP("grp_pclk", grp_3d_p_clk.c, NULL),
CLK_LOOKUP("core_clk", i2c_clk.c, "msm_i2c.0"),
+ CLK_LOOKUP("iface_clk", grp_3d_p_clk.c, "footswitch-pcom.2"),
CLK_LOOKUP("icodec_rx_clk", icodec_rx_clk.c, NULL),
CLK_LOOKUP("icodec_tx_clk", icodec_tx_clk.c, NULL),
CLK_LOOKUP("imem_clk", imem_clk.c, NULL),
@@ -232,7 +234,9 @@
CLK_LOOKUP("usb_otg_clk", usb_otg_clk.c, NULL),
CLK_LOOKUP("usb_phy_clk", usb_phy_clk.c, NULL),
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),
+ CLK_LOOKUP("core_clk", vfe_clk.c, "footswitch-pcom.8"),
CLK_LOOKUP("vfe_mdc_clk", vfe_mdc_clk.c, NULL),
CLK_LOOKUP("ebi1_acpu_clk", ebi_acpu_clk.c, NULL),
@@ -271,7 +275,9 @@
CLK_LOOKUP("ecodec_clk", ecodec_clk.c, NULL),
CLK_LOOKUP("gp_clk", gp_clk.c, NULL),
CLK_LOOKUP("grp_clk", grp_3d_clk.c, NULL),
+ CLK_LOOKUP("core_clk", grp_3d_clk.c, "footswitch-pcom.2"),
CLK_LOOKUP("grp_pclk", grp_3d_p_clk.c, NULL),
+ CLK_LOOKUP("iface_clk", grp_3d_p_clk.c, "footswitch-pcom.2"),
CLK_LOOKUP("core_clk", gsbi1_qup_clk.c, "qup_i2c.0"),
CLK_LOOKUP("core_clk", gsbi2_qup_clk.c, "qup_i2c.1"),
CLK_LOOKUP("iface_clk", gsbi1_qup_p_clk.c, "qup_i2c.0"),
@@ -308,7 +314,9 @@
CLK_LOOKUP("usb_hs_pclk", usb_hs_p_clk.c, NULL),
CLK_LOOKUP("usb_phy_clk", usb_phy_clk.c, NULL),
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),
+ CLK_LOOKUP("core_clk", vfe_clk.c, "footswitch-pcom.8"),
CLK_LOOKUP("vfe_mdc_clk", vfe_mdc_clk.c, NULL),
CLK_LOOKUP("ebi1_acpu_clk", ebi_acpu_clk.c, NULL),
diff --git a/arch/arm/mach-msm/footswitch-8x60.c b/arch/arm/mach-msm/footswitch-8x60.c
index 8bb2576..6ece538 100644
--- a/arch/arm/mach-msm/footswitch-8x60.c
+++ b/arch/arm/mach-msm/footswitch-8x60.c
@@ -70,9 +70,7 @@
int bus_port1, bus_port2;
bool is_enabled;
bool is_claimed;
- const char *core_clk_name;
- const char *ahb_clk_name;
- const char *axi_clk_name;
+ const bool has_axi_clk;
struct clk *core_clk;
struct clk *ahb_clk;
struct clk *axi_clk;
@@ -94,9 +92,8 @@
int rate = fs->reset_rate ? fs->reset_rate : DEFAULT_CLK_RATE;
rc = clk_set_rate(fs->core_clk, rate);
if (rc) {
- pr_err("%s: Failed to set %s rate to %d Hz.\n",
- __func__, fs->core_clk_name,
- fs->reset_rate);
+ pr_err("%s: Failed to set core_clk rate to %d Hz.\n",
+ __func__, fs->reset_rate);
return rc;
}
}
@@ -124,8 +121,8 @@
clk_disable(fs->core_clk);
if (fs->clk_state.core_clk_rate) {
if (clk_set_rate(fs->core_clk, fs->clk_state.core_clk_rate))
- pr_err("%s: Failed to restore %s rate.\n",
- __func__, fs->core_clk_name);
+ pr_err("%s: Failed to restore core_clk rate.\n",
+ __func__);
}
}
@@ -425,8 +422,8 @@
.disable = gfx2d_footswitch_disable,
};
-#define FOOTSWITCH(_id, _name, _ops, _gfs_ctl_reg, _dc, _bp1, _bp2, \
- _core_clk, _ahb_clk, _axi_clk, _reset_rate) \
+#define FOOTSWITCH(_id, _name, _ops, _gfs_ctl_reg, _dc, _axi_clk, \
+ _reset_rate, _bp1, _bp2) \
[(_id)] = { \
.desc = { \
.id = (_id), \
@@ -439,50 +436,39 @@
.gfs_delay_cnt = (_dc), \
.bus_port1 = (_bp1), \
.bus_port2 = (_bp2), \
- .core_clk_name = (_core_clk), \
- .ahb_clk_name = (_ahb_clk), \
- .axi_clk_name = (_axi_clk), \
+ .has_axi_clk = (_axi_clk), \
.reset_rate = (_reset_rate), \
}
static struct footswitch footswitches[] = {
FOOTSWITCH(FS_GFX2D0, "fs_gfx2d0", &gfx2d_fs_ops,
- GFX2D0_GFS_CTL_REG, 31,
- MSM_BUS_MASTER_GRAPHICS_2D_CORE0, 0,
- "gfx2d0_clk", "gfx2d0_pclk", NULL, 0),
+ GFX2D0_GFS_CTL_REG, 31, false, 0,
+ MSM_BUS_MASTER_GRAPHICS_2D_CORE0, 0),
FOOTSWITCH(FS_GFX2D1, "fs_gfx2d1", &gfx2d_fs_ops,
- GFX2D1_GFS_CTL_REG, 31,
- MSM_BUS_MASTER_GRAPHICS_2D_CORE1, 0,
- "gfx2d1_clk", "gfx2d1_pclk", NULL, 0),
+ GFX2D1_GFS_CTL_REG, 31, false, 0,
+ MSM_BUS_MASTER_GRAPHICS_2D_CORE1, 0),
FOOTSWITCH(FS_GFX3D, "fs_gfx3d", &standard_fs_ops,
- GFX3D_GFS_CTL_REG, 31,
- MSM_BUS_MASTER_GRAPHICS_3D, 0,
- "gfx3d_clk", "gfx3d_pclk", NULL, 27000000),
+ GFX3D_GFS_CTL_REG, 31, false, 27000000,
+ MSM_BUS_MASTER_GRAPHICS_3D, 0),
FOOTSWITCH(FS_IJPEG, "fs_ijpeg", &standard_fs_ops,
- GEMINI_GFS_CTL_REG, 31,
- MSM_BUS_MASTER_JPEG_ENC, 0,
- "ijpeg_clk", "ijpeg_pclk", "ijpeg_axi_clk", 0),
+ GEMINI_GFS_CTL_REG, 31, true, 0,
+ MSM_BUS_MASTER_JPEG_ENC, 0),
FOOTSWITCH(FS_MDP, "fs_mdp", &standard_fs_ops,
- MDP_GFS_CTL_REG, 31,
+ MDP_GFS_CTL_REG, 31, true, 0,
MSM_BUS_MASTER_MDP_PORT0,
- MSM_BUS_MASTER_MDP_PORT1,
- "mdp_clk", "mdp_pclk", "mdp_axi_clk", 0),
+ MSM_BUS_MASTER_MDP_PORT1),
FOOTSWITCH(FS_ROT, "fs_rot", &standard_fs_ops,
- ROT_GFS_CTL_REG, 31,
- MSM_BUS_MASTER_ROTATOR, 0,
- "rot_clk", "rotator_pclk", "rot_axi_clk", 0),
+ ROT_GFS_CTL_REG, 31, true, 0,
+ MSM_BUS_MASTER_ROTATOR, 0),
FOOTSWITCH(FS_VED, "fs_ved", &standard_fs_ops,
- VED_GFS_CTL_REG, 31,
+ VED_GFS_CTL_REG, 31, true, 0,
MSM_BUS_MASTER_HD_CODEC_PORT0,
- MSM_BUS_MASTER_HD_CODEC_PORT1,
- "vcodec_clk", "vcodec_pclk", "vcodec_axi_clk", 0),
+ MSM_BUS_MASTER_HD_CODEC_PORT1),
FOOTSWITCH(FS_VFE, "fs_vfe", &standard_fs_ops,
- VFE_GFS_CTL_REG, 31,
- MSM_BUS_MASTER_VFE, 0,
- "vfe_clk", "vfe_pclk", "vfe_axi_clk", 0),
+ VFE_GFS_CTL_REG, 31, true, 0,
+ MSM_BUS_MASTER_VFE, 0),
FOOTSWITCH(FS_VPE, "fs_vpe", &standard_fs_ops,
- VPE_GFS_CTL_REG, 31,
- MSM_BUS_MASTER_VPE, 0,
- "vpe_clk", "vpe_pclk", "vpe_axi_clk", 0),
+ VPE_GFS_CTL_REG, 31, true, 0,
+ MSM_BUS_MASTER_VPE, 0),
};
static int footswitch_probe(struct platform_device *pdev)
@@ -501,29 +487,26 @@
init_data = pdev->dev.platform_data;
/* Setup core clock. */
- fs->core_clk = clk_get(NULL, fs->core_clk_name);
+ fs->core_clk = clk_get(&pdev->dev, "core_clk");
if (IS_ERR(fs->core_clk)) {
- pr_err("%s: clk_get(\"%s\") failed\n", __func__,
- fs->core_clk_name);
+ pr_err("%s: clk_get(core_clk) failed\n", __func__);
rc = PTR_ERR(fs->core_clk);
goto err_core_clk;
}
/* Setup AHB clock. */
- fs->ahb_clk = clk_get(NULL, fs->ahb_clk_name);
+ fs->ahb_clk = clk_get(&pdev->dev, "iface_clk");
if (IS_ERR(fs->ahb_clk)) {
- pr_err("%s: clk_get(\"%s\") failed\n", __func__,
- fs->ahb_clk_name);
+ pr_err("%s: clk_get(iface_clk) failed\n", __func__);
rc = PTR_ERR(fs->ahb_clk);
goto err_ahb_clk;
}
/* Setup AXI clock. */
- if (fs->axi_clk_name) {
- fs->axi_clk = clk_get(NULL, fs->axi_clk_name);
+ if (fs->has_axi_clk) {
+ fs->axi_clk = clk_get(&pdev->dev, "bus_clk");
if (IS_ERR(fs->axi_clk)) {
- pr_err("%s: clk_get(\"%s\") failed\n", __func__,
- fs->axi_clk_name);
+ pr_err("%s: clk_get(bus_clk) failed\n", __func__);
rc = PTR_ERR(fs->axi_clk);
goto err_axi_clk;
}
@@ -550,7 +533,7 @@
return 0;
err_register:
- if (fs->axi_clk_name)
+ if (fs->has_axi_clk)
clk_put(fs->axi_clk);
err_axi_clk:
clk_put(fs->ahb_clk);
@@ -578,7 +561,7 @@
.probe = footswitch_probe,
.remove = __devexit_p(footswitch_remove),
.driver = {
- .name = "footswitch-msm8x60",
+ .name = "footswitch-8x60",
.owner = THIS_MODULE,
},
};
diff --git a/arch/arm/mach-msm/footswitch-pcom.c b/arch/arm/mach-msm/footswitch-pcom.c
index 2fffedc..8eec807 100644
--- a/arch/arm/mach-msm/footswitch-pcom.c
+++ b/arch/arm/mach-msm/footswitch-pcom.c
@@ -41,14 +41,13 @@
* @pcom_id: Proc-comm ID of the footswitch
* @is_enabled: Flag set when footswitch is enabled
* @is_manual: Flag set when footswitch is in manual proc-comm mode
- * @core_clk_name: String name of core clock for footswitch power domain
- * @set_clk_name: String name of clock used to set the core clocks's rate
- * @ahb_clk_name: String name of AHB clock for footswitch power domain
- * @core_clk: Clock with name core_clk_name
- * @set_clk: Clock with name set_clk_name
- * @abh_clk: Clock with name ahb_clk_name
- * @set_clk_init_rate: Rate to use for set_clk to if one has not yet been set
- * @is_rate_set: Flag set if the core clock's rate has been set
+ * @has_ahb_clk: Flag set if footswitched core has an ahb_clk
+ * @has_src_clk: Flag set if footswitched core has a src_clk
+ * @src_clk: Controls the core clock's rate
+ * @core_clk: Clocks the core
+ * @ahb_clk: Clocks the core's register interface
+ * @src_clk_init_rate: Rate to use for src_clk if it has not been set yet
+ * @is_rate_set: Flag set if core_clk's rate has been set
*/
struct footswitch {
struct regulator_dev *rdev;
@@ -57,13 +56,12 @@
unsigned pcom_id;
bool is_enabled;
bool is_manual;
- const char *core_clk_name;
- const char *set_clk_name;
- const char *ahb_clk_name;
+ struct clk *src_clk;
struct clk *core_clk;
- struct clk *set_clk;
struct clk *ahb_clk;
- const int set_clk_init_rate;
+ const bool has_ahb_clk;
+ const bool has_src_clk;
+ const int src_clk_init_rate;
bool is_rate_set;
};
@@ -91,9 +89,9 @@
static int enable_clocks(struct footswitch *fs)
{
- fs->is_rate_set = !!(clk_get_rate(fs->set_clk));
+ fs->is_rate_set = !!(clk_get_rate(fs->src_clk));
if (!fs->is_rate_set)
- clk_set_rate(fs->set_clk, fs->set_clk_init_rate);
+ clk_set_rate(fs->src_clk, fs->src_clk_init_rate);
clk_enable(fs->core_clk);
if (fs->ahb_clk)
@@ -158,7 +156,7 @@
.disable = footswitch_disable,
};
-#define FOOTSWITCH(_id, _pcom_id, _name, _core_clk, _set_clk, _rate, _ahb_clk) \
+#define FOOTSWITCH(_id, _pcom_id, _name, _src_clk, _rate, _ahb_clk) \
[_id] = { \
.desc = { \
.id = _id, \
@@ -168,29 +166,28 @@
.owner = THIS_MODULE, \
}, \
.pcom_id = _pcom_id, \
- .core_clk_name = _core_clk, \
- .set_clk_name = _set_clk, \
- .set_clk_init_rate = _rate, \
- .ahb_clk_name = _ahb_clk, \
+ .has_src_clk = _src_clk, \
+ .src_clk_init_rate = _rate, \
+ .has_ahb_clk = _ahb_clk, \
}
static struct footswitch footswitches[] = {
- FOOTSWITCH(FS_GFX3D, PCOM_FS_GRP, "fs_gfx3d",
- "grp_clk", "grp_src_clk", 24576000, "grp_pclk"),
- FOOTSWITCH(FS_GFX2D0, PCOM_FS_GRP_2D, "fs_gfx2d0",
- "grp_2d_clk", NULL, 24576000, "grp_2d_pclk"),
- FOOTSWITCH(FS_MDP, PCOM_FS_MDP, "fs_mdp",
- "mdp_clk", NULL, 24576000, "mdp_pclk"),
- FOOTSWITCH(FS_MFC, PCOM_FS_MFC, "fs_mfc",
- "mfc_clk", NULL, 24576000, "mfc_pclk"),
- FOOTSWITCH(FS_ROT, PCOM_FS_ROTATOR, "fs_rot",
- "rotator_clk", NULL, 0, "rotator_pclk"),
- FOOTSWITCH(FS_VFE, PCOM_FS_VFE, "fs_vfe",
- "vfe_clk", NULL, 24576000, "vfe_pclk"),
- FOOTSWITCH(FS_VPE, PCOM_FS_VPE, "fs_vpe",
- "vpe_clk", NULL, 24576000, NULL),
+ FOOTSWITCH(FS_GFX3D, PCOM_FS_GRP,
+ "fs_gfx3d", true, 24576000, true),
+ FOOTSWITCH(FS_GFX2D0, PCOM_FS_GRP_2D,
+ "fs_gfx2d0", false, 24576000, true),
+ FOOTSWITCH(FS_MDP, PCOM_FS_MDP,
+ "fs_mdp", false, 24576000, true),
+ FOOTSWITCH(FS_MFC, PCOM_FS_MFC,
+ "fs_mfc", false, 24576000, true),
+ FOOTSWITCH(FS_ROT, PCOM_FS_ROTATOR,
+ "fs_rot", false, 0, true),
+ FOOTSWITCH(FS_VFE, PCOM_FS_VFE,
+ "fs_vfe", false, 24576000, true),
+ FOOTSWITCH(FS_VPE, PCOM_FS_VPE,
+ "fs_vpe", false, 24576000, false),
};
-static int get_clocks(struct footswitch *fs)
+static int get_clocks(struct device *dev, struct footswitch *fs)
{
int rc;
@@ -199,33 +196,30 @@
* If one can't be found, try to use the core clock for
* rate-setting instead.
*/
- if (fs->set_clk_name) {
- fs->set_clk = clk_get(NULL, fs->set_clk_name);
- if (IS_ERR(fs->set_clk)) {
- fs->set_clk = clk_get(NULL, fs->core_clk_name);
- fs->set_clk_name = fs->core_clk_name;
- }
+ if (fs->has_src_clk) {
+ fs->src_clk = clk_get(dev, "src_clk");
+ if (IS_ERR(fs->src_clk))
+ fs->src_clk = clk_get(dev, "core_clk");
} else {
- fs->set_clk = clk_get(NULL, fs->core_clk_name);
- fs->set_clk_name = fs->core_clk_name;
+ fs->src_clk = clk_get(dev, "core_clk");
}
- if (IS_ERR(fs->set_clk)) {
- pr_err("clk_get(%s) failed\n", fs->set_clk_name);
- rc = PTR_ERR(fs->set_clk);
- goto err_set_clk;
+ if (IS_ERR(fs->src_clk)) {
+ pr_err("clk_get(src_clk) failed\n");
+ rc = PTR_ERR(fs->src_clk);
+ goto err_src_clk;
}
- fs->core_clk = clk_get(NULL, fs->core_clk_name);
+ fs->core_clk = clk_get(dev, "core_clk");
if (IS_ERR(fs->core_clk)) {
- pr_err("clk_get(%s) failed\n", fs->core_clk_name);
+ pr_err("clk_get(core_clk) failed\n");
rc = PTR_ERR(fs->core_clk);
goto err_core_clk;
}
- if (fs->ahb_clk_name) {
- fs->ahb_clk = clk_get(NULL, fs->ahb_clk_name);
+ if (fs->has_ahb_clk) {
+ fs->ahb_clk = clk_get(dev, "iface_clk");
if (IS_ERR(fs->ahb_clk)) {
- pr_err("clk_get(%s) failed\n", fs->ahb_clk_name);
+ pr_err("clk_get(iface_clk) failed\n");
rc = PTR_ERR(fs->ahb_clk);
goto err_ahb_clk;
}
@@ -236,14 +230,14 @@
err_ahb_clk:
clk_put(fs->core_clk);
err_core_clk:
- clk_put(fs->set_clk);
-err_set_clk:
+ clk_put(fs->src_clk);
+err_src_clk:
return rc;
}
static void put_clocks(struct footswitch *fs)
{
- clk_put(fs->set_clk);
+ clk_put(fs->src_clk);
clk_put(fs->core_clk);
clk_put(fs->ahb_clk);
}
@@ -267,7 +261,7 @@
}
init_data = pdev->dev.platform_data;
- rc = get_clocks(fs);
+ rc = get_clocks(&pdev->dev, fs);
if (rc)
return rc;
diff --git a/arch/arm/mach-msm/footswitch.h b/arch/arm/mach-msm/footswitch.h
index 0780ca4..06b7c79 100644
--- a/arch/arm/mach-msm/footswitch.h
+++ b/arch/arm/mach-msm/footswitch.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2010-2011 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
@@ -16,21 +16,18 @@
#include <linux/regulator/machine.h>
-enum fs_ids {
- FS_GFX2D0 = 0,
- FS_GFX2D1,
- FS_GFX3D,
- FS_IJPEG,
- FS_MDP,
- FS_MFC,
- FS_ROT,
- FS_VED,
- FS_VFE,
- FS_VPE,
- MAX_FS
-};
-
-#endif
+/* Device IDs */
+#define FS_GFX2D0 0
+#define FS_GFX2D1 1
+#define FS_GFX3D 2
+#define FS_IJPEG 3
+#define FS_MDP 4
+#define FS_MFC 5
+#define FS_ROT 6
+#define FS_VED 7
+#define FS_VFE 8
+#define FS_VPE 9
+#define MAX_FS 10
#define FS_GENERIC(_drv_name, _id, _name) (&(struct platform_device){ \
.name = (_drv_name), \
@@ -48,5 +45,7 @@
} \
}, \
})
-#define FS_PCOM(_id, _name) FS_GENERIC("footswitch-pcom", (_id), (_name))
-#define FS_8X60(_id, _name) FS_GENERIC("footswitch-msm8x60", (_id), (_name))
+#define FS_PCOM(_id, _name) FS_GENERIC("footswitch-pcom", (_id), (_name))
+#define FS_8X60(_id, _name) FS_GENERIC("footswitch-8x60", (_id), (_name))
+
+#endif