Lines Matching refs:mipi
78 static int sh_mipi_send_short(struct sh_mipi *mipi, u8 dsi_cmd, in sh_mipi_send_short() argument
85 iowrite32(1 | data, mipi->linkbase + CMTSRTCTR); in sh_mipi_send_short()
86 iowrite32(1, mipi->linkbase + CMTSRTREQ); in sh_mipi_send_short()
88 while ((ioread32(mipi->linkbase + CMTSRTREQ) & 1) && --cnt) in sh_mipi_send_short()
99 struct sh_mipi *mipi = sh_mipi_by_handle(LCD_CHAN2MIPI(handle)); in sh_mipi_dcs() local
100 if (!mipi) in sh_mipi_dcs()
102 return sh_mipi_send_short(mipi, MIPI_DSI_DCS_SHORT_WRITE, cmd, 0); in sh_mipi_dcs()
107 struct sh_mipi *mipi = sh_mipi_by_handle(LCD_CHAN2MIPI(handle)); in sh_mipi_dcs_param() local
108 if (!mipi) in sh_mipi_dcs_param()
110 return sh_mipi_send_short(mipi, MIPI_DSI_DCS_SHORT_WRITE_PARAM, cmd, in sh_mipi_dcs_param()
114 static void sh_mipi_dsi_enable(struct sh_mipi *mipi, bool enable) in sh_mipi_dsi_enable() argument
120 iowrite32(0x00000002 | enable, mipi->linkbase + DTCTR); in sh_mipi_dsi_enable()
125 struct sh_mipi *mipi = to_sh_mipi(platform_get_drvdata(pdev)); in sh_mipi_shutdown() local
127 sh_mipi_dsi_enable(mipi, false); in sh_mipi_shutdown()
130 static int sh_mipi_setup(struct sh_mipi *mipi, const struct fb_videomode *mode) in sh_mipi_setup() argument
132 void __iomem *base = mipi->base; in sh_mipi_setup()
133 struct sh_mipi_dsi_info *pdata = mipi->pdev->dev.platform_data; in sh_mipi_setup()
277 iowrite32(0x00000006, mipi->linkbase + DTCTR); in sh_mipi_setup()
281 mipi->linkbase + VMCTR1); in sh_mipi_setup()
302 iowrite32(vmctr2, mipi->linkbase + VMCTR2); in sh_mipi_setup()
314 iowrite32(top | bottom , mipi->linkbase + VMLEN1); in sh_mipi_setup()
348 iowrite32(top | (bottom + delay) , mipi->linkbase + VMLEN2); in sh_mipi_setup()
381 struct sh_mipi *mipi = to_sh_mipi(entity); in mipi_display_on() local
382 struct sh_mipi_dsi_info *pdata = mipi->pdev->dev.platform_data; in mipi_display_on()
385 pm_runtime_get_sync(&mipi->pdev->dev); in mipi_display_on()
387 ret = pdata->set_dot_clock(mipi->pdev, mipi->base, 1); in mipi_display_on()
391 ret = sh_mipi_setup(mipi, &entity->def_mode); in mipi_display_on()
395 sh_mipi_dsi_enable(mipi, true); in mipi_display_on()
400 pm_runtime_put_sync(&mipi->pdev->dev); in mipi_display_on()
402 pdata->set_dot_clock(mipi->pdev, mipi->base, 0); in mipi_display_on()
409 struct sh_mipi *mipi = to_sh_mipi(entity); in mipi_display_off() local
410 struct sh_mipi_dsi_info *pdata = mipi->pdev->dev.platform_data; in mipi_display_off()
412 sh_mipi_dsi_enable(mipi, false); in mipi_display_off()
414 pdata->set_dot_clock(mipi->pdev, mipi->base, 0); in mipi_display_off()
416 pm_runtime_put_sync(&mipi->pdev->dev); in mipi_display_off()
426 struct sh_mipi *mipi; in sh_mipi_probe() local
449 mipi = kzalloc(sizeof(*mipi), GFP_KERNEL); in sh_mipi_probe()
450 if (!mipi) { in sh_mipi_probe()
455 mipi->entity.owner = THIS_MODULE; in sh_mipi_probe()
456 mipi->entity.ops = &mipi_ops; in sh_mipi_probe()
464 mipi->base = ioremap(res->start, resource_size(res)); in sh_mipi_probe()
465 if (!mipi->base) { in sh_mipi_probe()
476 mipi->linkbase = ioremap(res2->start, resource_size(res2)); in sh_mipi_probe()
477 if (!mipi->linkbase) { in sh_mipi_probe()
482 mipi->pdev = pdev; in sh_mipi_probe()
484 mipi->dsit_clk = clk_get(&pdev->dev, "dsit_clk"); in sh_mipi_probe()
485 if (IS_ERR(mipi->dsit_clk)) { in sh_mipi_probe()
486 ret = PTR_ERR(mipi->dsit_clk); in sh_mipi_probe()
490 f_current = clk_get_rate(mipi->dsit_clk); in sh_mipi_probe()
492 rate = clk_round_rate(mipi->dsit_clk, 80000000); in sh_mipi_probe()
494 ret = clk_set_rate(mipi->dsit_clk, rate); in sh_mipi_probe()
502 ret = clk_enable(mipi->dsit_clk); in sh_mipi_probe()
506 mipi_dsi[idx] = mipi; in sh_mipi_probe()
512 platform_set_drvdata(pdev, &mipi->entity); in sh_mipi_probe()
518 clk_put(mipi->dsit_clk); in sh_mipi_probe()
520 iounmap(mipi->linkbase); in sh_mipi_probe()
524 iounmap(mipi->base); in sh_mipi_probe()
528 kfree(mipi); in sh_mipi_probe()
540 struct sh_mipi *mipi = to_sh_mipi(platform_get_drvdata(pdev)); in sh_mipi_remove() local
545 for (i = 0; i < ARRAY_SIZE(mipi_dsi) && mipi_dsi[i] != mipi; i++) in sh_mipi_remove()
561 clk_disable(mipi->dsit_clk); in sh_mipi_remove()
562 clk_put(mipi->dsit_clk); in sh_mipi_remove()
564 iounmap(mipi->linkbase); in sh_mipi_remove()
567 iounmap(mipi->base); in sh_mipi_remove()
570 kfree(mipi); in sh_mipi_remove()