Lines Matching refs:omap_ssi

54 	struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi);  in ssi_debug_show()  local
55 void __iomem *sys = omap_ssi->sys; in ssi_debug_show()
69 struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); in ssi_debug_gdd_show() local
70 void __iomem *gdd = omap_ssi->gdd; in ssi_debug_gdd_show()
71 void __iomem *sys = omap_ssi->sys; in ssi_debug_gdd_show()
146 struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); in ssi_debug_add_ctrl() local
150 omap_ssi->dir = debugfs_create_dir(dev_name(&ssi->device), NULL); in ssi_debug_add_ctrl()
151 if (!omap_ssi->dir) in ssi_debug_add_ctrl()
154 debugfs_create_file("regs", S_IRUGO, omap_ssi->dir, ssi, in ssi_debug_add_ctrl()
157 dir = debugfs_create_dir("gdd", omap_ssi->dir); in ssi_debug_add_ctrl()
164 debugfs_remove_recursive(omap_ssi->dir); in ssi_debug_add_ctrl()
171 struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); in ssi_debug_remove_ctrl() local
173 debugfs_remove_recursive(omap_ssi->dir); in ssi_debug_remove_ctrl()
186 struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); in ssi_waketest() local
192 omap_ssi->sys + SSI_SET_WAKE_REG(port->num)); in ssi_waketest()
195 omap_ssi->sys + SSI_CLEAR_WAKE_REG(port->num)); in ssi_waketest()
203 struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); in ssi_gdd_complete() local
204 struct hsi_msg *msg = omap_ssi->gdd_trn[lch].msg; in ssi_gdd_complete()
211 spin_lock(&omap_ssi->lock); in ssi_gdd_complete()
213 val = readl(omap_ssi->sys + SSI_GDD_MPU_IRQ_ENABLE_REG); in ssi_gdd_complete()
215 writel_relaxed(val, omap_ssi->sys + SSI_GDD_MPU_IRQ_ENABLE_REG); in ssi_gdd_complete()
227 csr = readw(omap_ssi->gdd + SSI_GDD_CSR_REG(lch)); in ssi_gdd_complete()
228 omap_ssi->gdd_trn[lch].msg = NULL; /* release GDD lch */ in ssi_gdd_complete()
231 spin_unlock(&omap_ssi->lock); in ssi_gdd_complete()
242 val |= readl(omap_ssi->sys + SSI_MPU_ENABLE_REG(port->num, 0)); in ssi_gdd_complete()
243 writel_relaxed(val, omap_ssi->sys + SSI_MPU_ENABLE_REG(port->num, 0)); in ssi_gdd_complete()
253 struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); in ssi_gdd_tasklet() local
254 void __iomem *sys = omap_ssi->sys; in ssi_gdd_tasklet()
271 tasklet_hi_schedule(&omap_ssi->gdd_tasklet); in ssi_gdd_tasklet()
273 enable_irq(omap_ssi->gdd_irq); in ssi_gdd_tasklet()
279 struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); in ssi_gdd_isr() local
281 tasklet_hi_schedule(&omap_ssi->gdd_tasklet); in ssi_gdd_isr()
289 struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); in ssi_get_clk_rate() local
290 unsigned long rate = clk_get_rate(omap_ssi->fck); in ssi_get_clk_rate()
317 struct omap_ssi_controller *omap_ssi; in ssi_add_controller() local
320 omap_ssi = devm_kzalloc(&ssi->device, sizeof(*omap_ssi), GFP_KERNEL); in ssi_add_controller()
321 if (!omap_ssi) { in ssi_add_controller()
335 hsi_controller_set_drvdata(ssi, omap_ssi); in ssi_add_controller()
336 omap_ssi->dev = &ssi->device; in ssi_add_controller()
337 err = ssi_get_iomem(pd, "sys", &omap_ssi->sys, NULL); in ssi_add_controller()
340 err = ssi_get_iomem(pd, "gdd", &omap_ssi->gdd, NULL); in ssi_add_controller()
348 omap_ssi->gdd_irq = err; in ssi_add_controller()
349 tasklet_init(&omap_ssi->gdd_tasklet, ssi_gdd_tasklet, in ssi_add_controller()
351 err = devm_request_irq(&ssi->device, omap_ssi->gdd_irq, ssi_gdd_isr, in ssi_add_controller()
355 omap_ssi->gdd_irq, err); in ssi_add_controller()
359 omap_ssi->port = devm_kzalloc(&ssi->device, in ssi_add_controller()
361 if (!omap_ssi->port) { in ssi_add_controller()
366 omap_ssi->fck = devm_clk_get(&ssi->device, "ssi_ssr_fck"); in ssi_add_controller()
367 if (IS_ERR(omap_ssi->fck)) { in ssi_add_controller()
369 PTR_ERR(omap_ssi->fck)); in ssi_add_controller()
375 omap_ssi->get_loss = NULL; in ssi_add_controller()
377 omap_ssi->max_speed = UINT_MAX; in ssi_add_controller()
378 spin_lock_init(&omap_ssi->lock); in ssi_add_controller()
393 struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); in ssi_hw_init() local
404 writel_relaxed(SSI_SOFTRESET, omap_ssi->sys + SSI_SYSCONFIG_REG); in ssi_hw_init()
405 val = readl(omap_ssi->sys + SSI_SYSSTATUS_REG); in ssi_hw_init()
408 val = readl(omap_ssi->sys + SSI_SYSSTATUS_REG); in ssi_hw_init()
416 writel_relaxed(SSI_SWRESET, omap_ssi->gdd + SSI_GDD_GRST_REG); in ssi_hw_init()
418 omap_ssi->fck_rate = DIV_ROUND_CLOSEST(ssi_get_clk_rate(ssi), 1000); in ssi_hw_init()
419 dev_dbg(&ssi->device, "SSI fck rate %lu KHz\n", omap_ssi->fck_rate); in ssi_hw_init()
422 writel_relaxed(val, omap_ssi->sys + SSI_SYSCONFIG_REG); in ssi_hw_init()
423 omap_ssi->sysconfig = val; in ssi_hw_init()
424 writel_relaxed(SSI_CLK_AUTOGATING_ON, omap_ssi->sys + SSI_GDD_GCR_REG); in ssi_hw_init()
425 omap_ssi->gdd_gcr = SSI_CLK_AUTOGATING_ON; in ssi_hw_init()
433 struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); in ssi_remove_controller() local
435 tasklet_kill(&omap_ssi->gdd_tasklet); in ssi_remove_controller()
549 struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); in omap_ssi_runtime_suspend() local
553 if (omap_ssi->get_loss) in omap_ssi_runtime_suspend()
554 omap_ssi->loss_count = in omap_ssi_runtime_suspend()
555 omap_ssi->get_loss(ssi->device.parent); in omap_ssi_runtime_suspend()
563 struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); in omap_ssi_runtime_resume() local
567 if ((omap_ssi->get_loss) && (omap_ssi->loss_count == in omap_ssi_runtime_resume()
568 omap_ssi->get_loss(ssi->device.parent))) in omap_ssi_runtime_resume()
571 writel_relaxed(omap_ssi->gdd_gcr, omap_ssi->gdd + SSI_GDD_GCR_REG); in omap_ssi_runtime_resume()