Lines Matching refs:ctrl

45 	struct mmphw_ctrl *ctrl = (struct mmphw_ctrl *)dev_id;  in ctrl_handle_irq()  local
48 isr = readl_relaxed(ctrl->reg_base + SPU_IRQ_ISR); in ctrl_handle_irq()
49 imask = readl_relaxed(ctrl->reg_base + SPU_IRQ_ENA); in ctrl_handle_irq()
53 tmp = readl_relaxed(ctrl->reg_base + SPU_IRQ_ISR); in ctrl_handle_irq()
55 writel_relaxed(~isr, ctrl->reg_base + SPU_IRQ_ISR); in ctrl_handle_irq()
56 } while ((isr = readl_relaxed(ctrl->reg_base + SPU_IRQ_ISR)) & imask); in ctrl_handle_irq()
327 static void ctrl_set_default(struct mmphw_ctrl *ctrl) in ctrl_set_default() argument
335 tmp = readl_relaxed(ctrl->reg_base + LCD_TOP_CTRL); in ctrl_set_default()
337 writel_relaxed(tmp, ctrl->reg_base + LCD_TOP_CTRL); in ctrl_set_default()
343 tmp = readl_relaxed(ctrl->reg_base + SPU_IRQ_ENA); in ctrl_set_default()
346 writel_relaxed(tmp, ctrl->reg_base + SPU_IRQ_ENA); in ctrl_set_default()
402 struct mmphw_ctrl *ctrl = path_plat->ctrl; in path_init() local
406 dev_info(ctrl->dev, "%s: %s\n", __func__, config->name); in path_init()
411 dev_err(ctrl->dev, "%s: unable to alloc path_info for %s\n", in path_init()
417 path_info->dev = ctrl->dev; in path_init()
453 struct mmphw_ctrl *ctrl = NULL; in mmphw_probe() local
481 ctrl = devm_kzalloc(&pdev->dev, size, GFP_KERNEL); in mmphw_probe()
482 if (!ctrl) { in mmphw_probe()
487 ctrl->name = mi->name; in mmphw_probe()
488 ctrl->path_num = mi->path_num; in mmphw_probe()
489 ctrl->dev = &pdev->dev; in mmphw_probe()
490 ctrl->irq = irq; in mmphw_probe()
491 platform_set_drvdata(pdev, ctrl); in mmphw_probe()
492 mutex_init(&ctrl->access_ok); in mmphw_probe()
495 if (!devm_request_mem_region(ctrl->dev, res->start, in mmphw_probe()
496 resource_size(res), ctrl->name)) { in mmphw_probe()
497 dev_err(ctrl->dev, in mmphw_probe()
503 ctrl->reg_base = devm_ioremap_nocache(ctrl->dev, in mmphw_probe()
505 if (ctrl->reg_base == NULL) { in mmphw_probe()
506 dev_err(ctrl->dev, "%s: res %x - %x map failed\n", __func__, in mmphw_probe()
513 ret = devm_request_irq(ctrl->dev, ctrl->irq, ctrl_handle_irq, in mmphw_probe()
514 IRQF_SHARED, "lcd_controller", ctrl); in mmphw_probe()
516 dev_err(ctrl->dev, "%s unable to request IRQ %d\n", in mmphw_probe()
517 __func__, ctrl->irq); in mmphw_probe()
523 ctrl->clk = devm_clk_get(ctrl->dev, mi->clk_name); in mmphw_probe()
524 if (IS_ERR(ctrl->clk)) { in mmphw_probe()
525 dev_err(ctrl->dev, "unable to get clk %s\n", mi->clk_name); in mmphw_probe()
529 clk_prepare_enable(ctrl->clk); in mmphw_probe()
532 ctrl_set_default(ctrl); in mmphw_probe()
535 for (i = 0; i < ctrl->path_num; i++) { in mmphw_probe()
537 path_plat = &ctrl->path_plats[i]; in mmphw_probe()
539 path_plat->ctrl = ctrl; in mmphw_probe()
549 ret = lcd_spi_register(ctrl); in mmphw_probe()
554 dev_info(ctrl->dev, "device init done\n"); in mmphw_probe()
559 for (i = 0; i < ctrl->path_num; i++) { in mmphw_probe()
560 path_plat = &ctrl->path_plats[i]; in mmphw_probe()
564 clk_disable_unprepare(ctrl->clk); in mmphw_probe()