Lines Matching refs:drvdata
51 static void funnel_enable_hw(struct funnel_drvdata *drvdata, int port) in funnel_enable_hw() argument
55 CS_UNLOCK(drvdata->base); in funnel_enable_hw()
57 functl = readl_relaxed(drvdata->base + FUNNEL_FUNCTL); in funnel_enable_hw()
61 writel_relaxed(functl, drvdata->base + FUNNEL_FUNCTL); in funnel_enable_hw()
62 writel_relaxed(drvdata->priority, drvdata->base + FUNNEL_PRICTL); in funnel_enable_hw()
64 CS_LOCK(drvdata->base); in funnel_enable_hw()
70 struct funnel_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); in funnel_enable() local
72 pm_runtime_get_sync(drvdata->dev); in funnel_enable()
73 funnel_enable_hw(drvdata, inport); in funnel_enable()
75 dev_info(drvdata->dev, "FUNNEL inport %d enabled\n", inport); in funnel_enable()
79 static void funnel_disable_hw(struct funnel_drvdata *drvdata, int inport) in funnel_disable_hw() argument
83 CS_UNLOCK(drvdata->base); in funnel_disable_hw()
85 functl = readl_relaxed(drvdata->base + FUNNEL_FUNCTL); in funnel_disable_hw()
87 writel_relaxed(functl, drvdata->base + FUNNEL_FUNCTL); in funnel_disable_hw()
89 CS_LOCK(drvdata->base); in funnel_disable_hw()
95 struct funnel_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); in funnel_disable() local
97 funnel_disable_hw(drvdata, inport); in funnel_disable()
98 pm_runtime_put(drvdata->dev); in funnel_disable()
100 dev_info(drvdata->dev, "FUNNEL inport %d disabled\n", inport); in funnel_disable()
115 struct funnel_drvdata *drvdata = dev_get_drvdata(dev->parent); in priority_show() local
116 unsigned long val = drvdata->priority; in priority_show()
127 struct funnel_drvdata *drvdata = dev_get_drvdata(dev->parent); in priority_store() local
133 drvdata->priority = val; in priority_store()
138 static u32 get_funnel_ctrl_hw(struct funnel_drvdata *drvdata) in get_funnel_ctrl_hw() argument
142 CS_UNLOCK(drvdata->base); in get_funnel_ctrl_hw()
143 functl = readl_relaxed(drvdata->base + FUNNEL_FUNCTL); in get_funnel_ctrl_hw()
144 CS_LOCK(drvdata->base); in get_funnel_ctrl_hw()
153 struct funnel_drvdata *drvdata = dev_get_drvdata(dev->parent); in funnel_ctrl_show() local
155 pm_runtime_get_sync(drvdata->dev); in funnel_ctrl_show()
157 val = get_funnel_ctrl_hw(drvdata); in funnel_ctrl_show()
159 pm_runtime_put(drvdata->dev); in funnel_ctrl_show()
178 struct funnel_drvdata *drvdata; in funnel_probe() local
190 drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); in funnel_probe()
191 if (!drvdata) in funnel_probe()
194 drvdata->dev = &adev->dev; in funnel_probe()
195 drvdata->atclk = devm_clk_get(&adev->dev, "atclk"); /* optional */ in funnel_probe()
196 if (!IS_ERR(drvdata->atclk)) { in funnel_probe()
197 ret = clk_prepare_enable(drvdata->atclk); in funnel_probe()
201 dev_set_drvdata(dev, drvdata); in funnel_probe()
208 drvdata->base = base; in funnel_probe()
221 drvdata->csdev = coresight_register(desc); in funnel_probe()
222 if (IS_ERR(drvdata->csdev)) in funnel_probe()
223 return PTR_ERR(drvdata->csdev); in funnel_probe()
231 struct funnel_drvdata *drvdata = amba_get_drvdata(adev); in funnel_remove() local
233 coresight_unregister(drvdata->csdev); in funnel_remove()
240 struct funnel_drvdata *drvdata = dev_get_drvdata(dev); in funnel_runtime_suspend() local
242 if (drvdata && !IS_ERR(drvdata->atclk)) in funnel_runtime_suspend()
243 clk_disable_unprepare(drvdata->atclk); in funnel_runtime_suspend()
250 struct funnel_drvdata *drvdata = dev_get_drvdata(dev); in funnel_runtime_resume() local
252 if (drvdata && !IS_ERR(drvdata->atclk)) in funnel_runtime_resume()
253 clk_prepare_enable(drvdata->atclk); in funnel_runtime_resume()