Lines Matching +full:s6e88a0 +full:- +full:ams427ap24
1 // SPDX-License-Identifier: GPL-2.0-only
3 * Samsung AMS427AP24 panel with S6E88A0 controller
454 struct mipi_dsi_device *dsi = ctx->dsi; in s6e88a0_ams427ap24_set_brightness()
456 struct device *dev = &dsi->dev; in s6e88a0_ams427ap24_set_brightness()
457 int brightness = bd->props.brightness; in s6e88a0_ams427ap24_set_brightness()
487 return -EINVAL; in s6e88a0_ams427ap24_set_brightness()
497 s6e88a0_ams427ap24_elvss[candela_enum - CANDELA_111CD], in s6e88a0_ams427ap24_set_brightness()
521 gpiod_set_value_cansleep(ctx->reset_gpio, 0); in s6e88a0_ams427ap24_reset()
523 gpiod_set_value_cansleep(ctx->reset_gpio, 1); in s6e88a0_ams427ap24_reset()
525 gpiod_set_value_cansleep(ctx->reset_gpio, 0); in s6e88a0_ams427ap24_reset()
531 struct mipi_dsi_device *dsi = ctx->dsi; in s6e88a0_ams427ap24_on()
533 struct device *dev = &dsi->dev; in s6e88a0_ams427ap24_on()
536 dsi->mode_flags |= MIPI_DSI_MODE_LPM; in s6e88a0_ams427ap24_on()
555 if (ctx->flip_horizontal) in s6e88a0_ams427ap24_on()
561 ret = s6e88a0_ams427ap24_set_brightness(ctx->bl_dev); in s6e88a0_ams427ap24_on()
574 struct mipi_dsi_device *dsi = ctx->dsi; in s6e88a0_ams427ap24_off()
577 dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; in s6e88a0_ams427ap24_off()
589 struct device *dev = &ctx->dsi->dev; in s6e88a0_ams427ap24_prepare()
593 ctx->supplies); in s6e88a0_ams427ap24_prepare()
604 gpiod_set_value_cansleep(ctx->reset_gpio, 1); in s6e88a0_ams427ap24_prepare()
606 ctx->supplies); in s6e88a0_ams427ap24_prepare()
616 struct device *dev = &ctx->dsi->dev; in s6e88a0_ams427ap24_unprepare()
621 dev_err(dev, "Failed to un-initialize panel: %d\n", ret); in s6e88a0_ams427ap24_unprepare()
623 gpiod_set_value_cansleep(ctx->reset_gpio, 1); in s6e88a0_ams427ap24_unprepare()
625 ctx->supplies); in s6e88a0_ams427ap24_unprepare()
669 struct mipi_dsi_device *dsi = ctx->dsi; in s6e88a0_ams427ap24_register_backlight()
670 struct device *dev = &dsi->dev; in s6e88a0_ams427ap24_register_backlight()
673 ctx->bl_dev = devm_backlight_device_register(dev, dev_name(dev), dev, ctx, in s6e88a0_ams427ap24_register_backlight()
676 if (IS_ERR(ctx->bl_dev)) { in s6e88a0_ams427ap24_register_backlight()
677 ret = PTR_ERR(ctx->bl_dev); in s6e88a0_ams427ap24_register_backlight()
686 struct device *dev = &dsi->dev; in s6e88a0_ams427ap24_probe()
692 return -ENOMEM; in s6e88a0_ams427ap24_probe()
697 &ctx->supplies); in s6e88a0_ams427ap24_probe()
701 ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH); in s6e88a0_ams427ap24_probe()
702 if (IS_ERR(ctx->reset_gpio)) in s6e88a0_ams427ap24_probe()
703 return dev_err_probe(dev, PTR_ERR(ctx->reset_gpio), in s6e88a0_ams427ap24_probe()
704 "Failed to get reset-gpios\n"); in s6e88a0_ams427ap24_probe()
706 ctx->dsi = dsi; in s6e88a0_ams427ap24_probe()
709 dsi->lanes = 2; in s6e88a0_ams427ap24_probe()
710 dsi->format = MIPI_DSI_FMT_RGB888; in s6e88a0_ams427ap24_probe()
711 dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | in s6e88a0_ams427ap24_probe()
714 drm_panel_init(&ctx->panel, dev, &s6e88a0_ams427ap24_panel_funcs, in s6e88a0_ams427ap24_probe()
716 ctx->panel.prepare_prev_first = true; in s6e88a0_ams427ap24_probe()
718 ctx->flip_horizontal = device_property_read_bool(dev, "flip-horizontal"); in s6e88a0_ams427ap24_probe()
724 drm_panel_add(&ctx->panel); in s6e88a0_ams427ap24_probe()
729 drm_panel_remove(&ctx->panel); in s6e88a0_ams427ap24_probe()
743 dev_err(&dsi->dev, "Failed to detach from DSI host: %d\n", ret); in s6e88a0_ams427ap24_remove()
745 drm_panel_remove(&ctx->panel); in s6e88a0_ams427ap24_remove()
749 { .compatible = "samsung,s6e88a0-ams427ap24" },
758 .name = "panel-s6e88a0-ams427ap24",
765 MODULE_DESCRIPTION("Samsung AMS427AP24 panel with S6E88A0 controller");