Lines Matching refs:ctx
472 static int ili9881c_switch_page(struct ili9881c *ctx, u8 page)
477 ret = mipi_dsi_dcs_write_buffer(ctx->dsi, buf, sizeof(buf));
484 static int ili9881c_send_cmd_data(struct ili9881c *ctx, u8 cmd, u8 data)
489 ret = mipi_dsi_dcs_write_buffer(ctx->dsi, buf, sizeof(buf));
498 struct ili9881c *ctx = panel_to_ili9881c(panel);
503 ret = regulator_enable(ctx->power);
509 gpiod_set_value(ctx->reset, 1);
512 gpiod_set_value(ctx->reset, 0);
515 for (i = 0; i < ctx->desc->init_length; i++) {
516 const struct ili9881c_instr *instr = &ctx->desc->init[i];
519 ret = ili9881c_switch_page(ctx, instr->arg.page);
521 ret = ili9881c_send_cmd_data(ctx, instr->arg.cmd.cmd,
528 ret = ili9881c_switch_page(ctx, 0);
532 ret = mipi_dsi_dcs_set_tear_on(ctx->dsi, MIPI_DSI_DCS_TEAR_MODE_VBLANK);
536 ret = mipi_dsi_dcs_exit_sleep_mode(ctx->dsi);
545 struct ili9881c *ctx = panel_to_ili9881c(panel);
549 mipi_dsi_dcs_set_display_on(ctx->dsi);
556 struct ili9881c *ctx = panel_to_ili9881c(panel);
558 return mipi_dsi_dcs_set_display_off(ctx->dsi);
563 struct ili9881c *ctx = panel_to_ili9881c(panel);
565 mipi_dsi_dcs_enter_sleep_mode(ctx->dsi);
566 regulator_disable(ctx->power);
567 gpiod_set_value(ctx->reset, 1);
609 struct ili9881c *ctx = panel_to_ili9881c(panel);
612 mode = drm_mode_duplicate(connector->dev, ctx->desc->mode);
614 dev_err(&ctx->dsi->dev, "failed to add mode %ux%ux@%u\n",
615 ctx->desc->mode->hdisplay,
616 ctx->desc->mode->vdisplay,
617 drm_mode_vrefresh(ctx->desc->mode));
642 struct ili9881c *ctx;
645 ctx = devm_kzalloc(&dsi->dev, sizeof(*ctx), GFP_KERNEL);
646 if (!ctx)
648 mipi_dsi_set_drvdata(dsi, ctx);
649 ctx->dsi = dsi;
650 ctx->desc = of_device_get_match_data(&dsi->dev);
652 drm_panel_init(&ctx->panel, &dsi->dev, &ili9881c_funcs,
655 ctx->power = devm_regulator_get(&dsi->dev, "power");
656 if (IS_ERR(ctx->power)) {
658 return PTR_ERR(ctx->power);
661 ctx->reset = devm_gpiod_get(&dsi->dev, "reset", GPIOD_OUT_LOW);
662 if (IS_ERR(ctx->reset)) {
664 return PTR_ERR(ctx->reset);
667 ret = drm_panel_of_backlight(&ctx->panel);
671 drm_panel_add(&ctx->panel);
682 struct ili9881c *ctx = mipi_dsi_get_drvdata(dsi);
685 drm_panel_remove(&ctx->panel);