Lines Matching +full:himax83102 +full:- +full:j02
1 // SPDX-License-Identifier: GPL-2.0
5 * - Starry 10.51" WUXGA MIPI-DSI panel
7 * Based on drivers/gpu/drm/panel/panel-himax-hx8394.c
97 struct mipi_dsi_multi_context dsi_ctx = { .dsi = ctx->dsi }; in starry_himax83102_j02_init()
194 struct mipi_dsi_multi_context dsi_ctx = { .dsi = ctx->dsi }; in boe_nv110wum_init()
299 struct mipi_dsi_multi_context dsi_ctx = { .dsi = ctx->dsi }; in csot_pna957qt1_1_init()
396 struct mipi_dsi_multi_context dsi_ctx = { .dsi = ctx->dsi }; in ivo_t109nw41_init()
501 struct mipi_dsi_multi_context dsi_ctx = { .dsi = ctx->dsi }; in kingdisplay_kd110n11_51ie_init()
591 struct mipi_dsi_multi_context dsi_ctx = { .dsi = ctx->dsi }; in starry_2082109qfh040022_50e_init()
845 struct mipi_dsi_device *dsi = ctx->dsi; in hx83102_disable()
848 dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; in hx83102_disable()
862 gpiod_set_value(ctx->enable_gpio, 0); in hx83102_unprepare()
864 regulator_disable(ctx->avee); in hx83102_unprepare()
865 regulator_disable(ctx->avdd); in hx83102_unprepare()
867 regulator_disable(ctx->pp1800); in hx83102_unprepare()
875 struct mipi_dsi_device *dsi = ctx->dsi; in hx83102_prepare()
878 gpiod_set_value(ctx->enable_gpio, 0); in hx83102_prepare()
881 dsi_ctx.accum_err = regulator_enable(ctx->pp1800); in hx83102_prepare()
887 dsi_ctx.accum_err = regulator_enable(ctx->avdd); in hx83102_prepare()
890 dsi_ctx.accum_err = regulator_enable(ctx->avee); in hx83102_prepare()
902 gpiod_set_value(ctx->enable_gpio, 1); in hx83102_prepare()
904 gpiod_set_value(ctx->enable_gpio, 0); in hx83102_prepare()
906 gpiod_set_value(ctx->enable_gpio, 1); in hx83102_prepare()
909 dsi_ctx.accum_err = ctx->desc->init(ctx); in hx83102_prepare()
920 gpiod_set_value(ctx->enable_gpio, 0); in hx83102_prepare()
921 regulator_disable(ctx->avee); in hx83102_prepare()
923 regulator_disable(ctx->avdd); in hx83102_prepare()
926 regulator_disable(ctx->pp1800); in hx83102_prepare()
935 const struct drm_display_mode *m = ctx->desc->modes; in hx83102_get_modes()
938 mode = drm_mode_duplicate(connector->dev, m); in hx83102_get_modes()
940 return -ENOMEM; in hx83102_get_modes()
942 mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; in hx83102_get_modes()
946 connector->display_info.width_mm = ctx->desc->size.width_mm; in hx83102_get_modes()
947 connector->display_info.height_mm = ctx->desc->size.height_mm; in hx83102_get_modes()
948 connector->display_info.bpc = 8; in hx83102_get_modes()
957 return ctx->orientation; in hx83102_get_orientation()
971 struct device *dev = &ctx->dsi->dev; in hx83102_panel_add()
974 ctx->avdd = devm_regulator_get(dev, "avdd"); in hx83102_panel_add()
975 if (IS_ERR(ctx->avdd)) in hx83102_panel_add()
976 return PTR_ERR(ctx->avdd); in hx83102_panel_add()
978 ctx->avee = devm_regulator_get(dev, "avee"); in hx83102_panel_add()
979 if (IS_ERR(ctx->avee)) in hx83102_panel_add()
980 return PTR_ERR(ctx->avee); in hx83102_panel_add()
982 ctx->pp1800 = devm_regulator_get(dev, "pp1800"); in hx83102_panel_add()
983 if (IS_ERR(ctx->pp1800)) in hx83102_panel_add()
984 return PTR_ERR(ctx->pp1800); in hx83102_panel_add()
986 ctx->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW); in hx83102_panel_add()
987 if (IS_ERR(ctx->enable_gpio)) in hx83102_panel_add()
988 return dev_err_probe(dev, PTR_ERR(ctx->enable_gpio), "Cannot get enable GPIO\n"); in hx83102_panel_add()
990 ctx->base.prepare_prev_first = true; in hx83102_panel_add()
992 err = of_drm_get_panel_orientation(dev->of_node, &ctx->orientation); in hx83102_panel_add()
996 err = drm_panel_of_backlight(&ctx->base); in hx83102_panel_add()
1000 ctx->base.funcs = &hx83102_drm_funcs; in hx83102_panel_add()
1001 ctx->base.dev = &ctx->dsi->dev; in hx83102_panel_add()
1003 drm_panel_add(&ctx->base); in hx83102_panel_add()
1014 ctx = devm_drm_panel_alloc(&dsi->dev, __typeof(*ctx), base, in hx83102_probe()
1020 desc = of_device_get_match_data(&dsi->dev); in hx83102_probe()
1021 dsi->lanes = 4; in hx83102_probe()
1022 dsi->format = MIPI_DSI_FMT_RGB888; in hx83102_probe()
1023 dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE | in hx83102_probe()
1025 ctx->desc = desc; in hx83102_probe()
1026 ctx->dsi = dsi; in hx83102_probe()
1035 drm_panel_remove(&ctx->base); in hx83102_probe()
1047 dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", ret); in hx83102_remove()
1049 if (ctx->base.dev) in hx83102_remove()
1050 drm_panel_remove(&ctx->base); in hx83102_remove()
1054 { .compatible = "boe,nv110wum-l60",
1057 { .compatible = "csot,pna957qt1-1",
1063 { .compatible = "kingdisplay,kd110n11-51ie",
1066 { .compatible = "starry,2082109qfh040022-50e",
1069 { .compatible = "starry,himax83102-j02",
1080 .name = "panel-himax-hx83102",
1086 MODULE_AUTHOR("Cong Yang <yangcong5@huaqin.corp-partner.google.com>");