Lines Matching refs:ci

17 #include "ci.h"
37 struct platform_device *ci;
79 static int ci_hdrc_msm_notify_event(struct ci_hdrc *ci, unsigned event)
81 struct device *dev = ci->dev->parent;
89 hw_phymode_configure(ci);
96 ret = phy_init(ci->phy);
100 ret = phy_power_on(ci->phy);
102 phy_exit(ci->phy);
107 hw_write_id_reg(ci, HS_PHY_AHB_MODE, 0xffffffff, 0x8);
110 hw_write_id_reg(ci, HS_PHY_GENCONFIG,
114 hw_write_id_reg(ci, HS_PHY_GENCONFIG_2,
117 if (!IS_ERR(ci->platdata->vbus_extcon.edev) || ci->role_switch) {
118 hw_write_id_reg(ci, HS_PHY_GENCONFIG_2,
121 hw_write(ci, OP_USBCMD, HSPHY_SESS_VLD_CTRL,
128 phy_power_off(ci->phy);
129 phy_exit(ci->phy);
139 static int ci_hdrc_msm_mux_phy(struct ci_hdrc_msm *ci,
162 ci->secondary_phy = !!args.args[1];
163 if (ci->secondary_phy) {
164 val = readl_relaxed(ci->base + HS_PHY_SEC_CTRL);
166 writel_relaxed(val, ci->base + HS_PHY_SEC_CTRL);
174 struct ci_hdrc_msm *ci;
183 ci = devm_kzalloc(&pdev->dev, sizeof(*ci), GFP_KERNEL);
184 if (!ci)
186 platform_set_drvdata(pdev, ci);
188 ci->pdata.name = "ci_hdrc_msm";
189 ci->pdata.capoffset = DEF_CAPOFFSET;
190 ci->pdata.flags = CI_HDRC_REGS_SHARED | CI_HDRC_DISABLE_STREAMING |
193 ci->pdata.notify_event = ci_hdrc_msm_notify_event;
199 ci->core_clk = clk = devm_clk_get(&pdev->dev, "core");
203 ci->iface_clk = clk = devm_clk_get(&pdev->dev, "iface");
207 ci->fs_clk = clk = devm_clk_get_optional(&pdev->dev, "fs");
211 ci->base = devm_platform_ioremap_resource(pdev, 1);
212 if (IS_ERR(ci->base))
213 return PTR_ERR(ci->base);
215 ci->rcdev.owner = THIS_MODULE;
216 ci->rcdev.ops = &ci_hdrc_msm_reset_ops;
217 ci->rcdev.of_node = pdev->dev.of_node;
218 ci->rcdev.nr_resets = 2;
219 ret = devm_reset_controller_register(&pdev->dev, &ci->rcdev);
223 ret = clk_prepare_enable(ci->fs_clk);
231 clk_disable_unprepare(ci->fs_clk);
233 ret = clk_prepare_enable(ci->core_clk);
237 ret = clk_prepare_enable(ci->iface_clk);
241 ret = ci_hdrc_msm_mux_phy(ci, pdev);
248 ci->hsic = of_device_is_compatible(phy_node, "qcom,usb-hsic-phy");
254 pdev->num_resources, &ci->pdata);
262 ci->ci = plat_ci;
271 clk_disable_unprepare(ci->iface_clk);
273 clk_disable_unprepare(ci->core_clk);
279 struct ci_hdrc_msm *ci = platform_get_drvdata(pdev);
282 ci_hdrc_remove_device(ci->ci);
283 clk_disable_unprepare(ci->iface_clk);
284 clk_disable_unprepare(ci->core_clk);
288 { .compatible = "qcom,ci-hdrc", },