Lines Matching +full:s6e88a0 +full:- +full:ams452ef01
1 // SPDX-License-Identifier: GPL-2.0-only
31 gpiod_set_value_cansleep(ctx->reset_gpio, 1);
33 gpiod_set_value_cansleep(ctx->reset_gpio, 0);
35 gpiod_set_value_cansleep(ctx->reset_gpio, 1);
41 struct mipi_dsi_device *dsi = ctx->dsi;
44 dsi->mode_flags |= MIPI_DSI_MODE_LPM;
78 struct mipi_dsi_device *dsi = ctx->dsi;
81 dsi->mode_flags &= ~MIPI_DSI_MODE_LPM;
94 ret = regulator_bulk_enable(ARRAY_SIZE(ctx->supplies), ctx->supplies);
102 gpiod_set_value_cansleep(ctx->reset_gpio, 0);
103 regulator_bulk_disable(ARRAY_SIZE(ctx->supplies),
104 ctx->supplies);
117 gpiod_set_value_cansleep(ctx->reset_gpio, 0);
118 regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies);
142 mode = drm_mode_duplicate(connector->dev, &s6e88a0_ams452ef01_mode);
144 return -ENOMEM;
148 mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
149 connector->display_info.width_mm = mode->width_mm;
150 connector->display_info.height_mm = mode->height_mm;
164 struct device *dev = &dsi->dev;
174 ctx->supplies[0].supply = "vdd3";
175 ctx->supplies[1].supply = "vci";
176 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(ctx->supplies),
177 ctx->supplies);
183 ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
184 if (IS_ERR(ctx->reset_gpio)) {
185 ret = PTR_ERR(ctx->reset_gpio);
186 dev_err(dev, "Failed to get reset-gpios: %d\n", ret);
190 ctx->dsi = dsi;
193 dsi->lanes = 2;
194 dsi->format = MIPI_DSI_FMT_RGB888;
195 dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST;
197 drm_panel_add(&ctx->panel);
202 drm_panel_remove(&ctx->panel);
216 dev_err(&dsi->dev, "Failed to detach from DSI host: %d\n", ret);
218 drm_panel_remove(&ctx->panel);
222 { .compatible = "samsung,s6e88a0-ams452ef01" },
231 .name = "panel-s6e88a0-ams452ef01",
238 MODULE_DESCRIPTION("MIPI-DSI based Panel Driver for AMS452EF01 AMOLED LCD with a S6E88A0 controller");