Lines Matching refs:ctrl
32 struct mmphw_ctrl *ctrl = (struct mmphw_ctrl *)dev_id; in ctrl_handle_irq() local
35 isr = readl_relaxed(ctrl->reg_base + SPU_IRQ_ISR); in ctrl_handle_irq()
36 imask = readl_relaxed(ctrl->reg_base + SPU_IRQ_ENA); in ctrl_handle_irq()
40 tmp = readl_relaxed(ctrl->reg_base + SPU_IRQ_ISR); in ctrl_handle_irq()
42 writel_relaxed(~isr, ctrl->reg_base + SPU_IRQ_ISR); in ctrl_handle_irq()
43 } while ((isr = readl_relaxed(ctrl->reg_base + SPU_IRQ_ISR)) & imask); in ctrl_handle_irq()
323 static void ctrl_set_default(struct mmphw_ctrl *ctrl) in ctrl_set_default() argument
331 tmp = readl_relaxed(ctrl->reg_base + LCD_TOP_CTRL); in ctrl_set_default()
333 writel_relaxed(tmp, ctrl->reg_base + LCD_TOP_CTRL); in ctrl_set_default()
339 tmp = readl_relaxed(ctrl->reg_base + SPU_IRQ_ENA); in ctrl_set_default()
342 writel_relaxed(tmp, ctrl->reg_base + SPU_IRQ_ENA); in ctrl_set_default()
398 struct mmphw_ctrl *ctrl = path_plat->ctrl; in path_init() local
402 dev_info(ctrl->dev, "%s: %s\n", __func__, config->name); in path_init()
411 path_info->dev = ctrl->dev; in path_init()
447 struct mmphw_ctrl *ctrl = NULL; in mmphw_probe() local
472 ctrl = devm_kzalloc(&pdev->dev, in mmphw_probe()
473 struct_size(ctrl, path_plats, mi->path_num), in mmphw_probe()
475 if (!ctrl) { in mmphw_probe()
480 ctrl->name = mi->name; in mmphw_probe()
481 ctrl->path_num = mi->path_num; in mmphw_probe()
482 ctrl->dev = &pdev->dev; in mmphw_probe()
483 ctrl->irq = irq; in mmphw_probe()
484 platform_set_drvdata(pdev, ctrl); in mmphw_probe()
485 mutex_init(&ctrl->access_ok); in mmphw_probe()
488 if (!devm_request_mem_region(ctrl->dev, res->start, in mmphw_probe()
489 resource_size(res), ctrl->name)) { in mmphw_probe()
490 dev_err(ctrl->dev, in mmphw_probe()
496 ctrl->reg_base = devm_ioremap(ctrl->dev, in mmphw_probe()
498 if (ctrl->reg_base == NULL) { in mmphw_probe()
499 dev_err(ctrl->dev, "%s: res %pR map failed\n", __func__, res); in mmphw_probe()
505 ret = devm_request_irq(ctrl->dev, ctrl->irq, ctrl_handle_irq, in mmphw_probe()
506 IRQF_SHARED, "lcd_controller", ctrl); in mmphw_probe()
508 dev_err(ctrl->dev, "%s unable to request IRQ %d\n", in mmphw_probe()
509 __func__, ctrl->irq); in mmphw_probe()
515 ctrl->clk = devm_clk_get_enabled(ctrl->dev, mi->clk_name); in mmphw_probe()
516 if (IS_ERR(ctrl->clk)) { in mmphw_probe()
517 ret = PTR_ERR(ctrl->clk); in mmphw_probe()
518 dev_err_probe(ctrl->dev, ret, in mmphw_probe()
524 ctrl_set_default(ctrl); in mmphw_probe()
527 for (i = 0; i < ctrl->path_num; i++) { in mmphw_probe()
529 path_plat = &ctrl->path_plats[i]; in mmphw_probe()
531 path_plat->ctrl = ctrl; in mmphw_probe()
541 ret = lcd_spi_register(ctrl); in mmphw_probe()
546 dev_info(ctrl->dev, "device init done\n"); in mmphw_probe()
551 for (i = 0; i < ctrl->path_num; i++) { in mmphw_probe()
552 path_plat = &ctrl->path_plats[i]; in mmphw_probe()