Lines Matching +full:0 +full:- +full:1023
1 // SPDX-License-Identifier: GPL-2.0-only
5 * Copyright (c) 2022-2024, The Linux Foundation. All rights reserved.
6 * Generated with linux-mdss-dsi-panel-driver-generator from vendor device tree:
35 gpiod_set_value_cansleep(ctx->reset_gpio, 1); in s6e3fa7_panel_reset()
37 gpiod_set_value_cansleep(ctx->reset_gpio, 0); in s6e3fa7_panel_reset()
49 mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xf0, 0x5a, 0x5a); in s6e3fa7_panel_on()
50 mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xf4, in s6e3fa7_panel_on()
51 0xbb, 0x23, 0x19, 0x3a, 0x9f, 0x0f, 0x09, 0xc0, in s6e3fa7_panel_on()
52 0x00, 0xb4, 0x37, 0x70, 0x79, 0x69); in s6e3fa7_panel_on()
53 mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xf0, 0xa5, 0xa5); in s6e3fa7_panel_on()
54 mipi_dsi_dcs_write_seq_multi(&dsi_ctx, MIPI_DCS_WRITE_CONTROL_DISPLAY, 0x20); in s6e3fa7_panel_on()
68 ret = s6e3fa7_panel_on(ctx->dsi); in s6e3fa7_panel_prepare()
69 if (ret < 0) in s6e3fa7_panel_prepare()
70 gpiod_set_value_cansleep(ctx->reset_gpio, 1); in s6e3fa7_panel_prepare()
79 gpiod_set_value_cansleep(ctx->reset_gpio, 1); in s6e3fa7_panel_unprepare()
81 return 0; in s6e3fa7_panel_unprepare()
87 struct mipi_dsi_device *dsi = ctx->dsi; in s6e3fa7_panel_disable()
116 mode = drm_mode_duplicate(connector->dev, &s6e3fa7_panel_mode); in s6e3fa7_panel_get_modes()
118 return -ENOMEM; in s6e3fa7_panel_get_modes()
122 mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; in s6e3fa7_panel_get_modes()
123 connector->display_info.width_mm = mode->width_mm; in s6e3fa7_panel_get_modes()
124 connector->display_info.height_mm = mode->height_mm; in s6e3fa7_panel_get_modes()
144 if (ret < 0) in s6e3fa7_panel_bl_update_status()
147 return 0; in s6e3fa7_panel_bl_update_status()
157 if (ret < 0) in s6e3fa7_panel_bl_get_brightness()
171 struct device *dev = &dsi->dev; in s6e3fa7_panel_create_backlight()
174 .brightness = 1023, in s6e3fa7_panel_create_backlight()
175 .max_brightness = 1023, in s6e3fa7_panel_create_backlight()
184 struct device *dev = &dsi->dev; in s6e3fa7_panel_probe()
190 return -ENOMEM; in s6e3fa7_panel_probe()
192 ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH); in s6e3fa7_panel_probe()
193 if (IS_ERR(ctx->reset_gpio)) in s6e3fa7_panel_probe()
194 return dev_err_probe(dev, PTR_ERR(ctx->reset_gpio), in s6e3fa7_panel_probe()
195 "Failed to get reset-gpios\n"); in s6e3fa7_panel_probe()
197 ctx->dsi = dsi; in s6e3fa7_panel_probe()
200 dsi->lanes = 4; in s6e3fa7_panel_probe()
201 dsi->format = MIPI_DSI_FMT_RGB888; in s6e3fa7_panel_probe()
202 dsi->mode_flags = MIPI_DSI_MODE_VIDEO_BURST | in s6e3fa7_panel_probe()
205 drm_panel_init(&ctx->panel, dev, &s6e3fa7_panel_funcs, in s6e3fa7_panel_probe()
207 ctx->panel.prepare_prev_first = true; in s6e3fa7_panel_probe()
209 ctx->panel.backlight = s6e3fa7_panel_create_backlight(dsi); in s6e3fa7_panel_probe()
210 if (IS_ERR(ctx->panel.backlight)) in s6e3fa7_panel_probe()
211 return dev_err_probe(dev, PTR_ERR(ctx->panel.backlight), in s6e3fa7_panel_probe()
214 drm_panel_add(&ctx->panel); in s6e3fa7_panel_probe()
217 if (ret < 0) { in s6e3fa7_panel_probe()
219 drm_panel_remove(&ctx->panel); in s6e3fa7_panel_probe()
223 return 0; in s6e3fa7_panel_probe()
232 if (ret < 0) in s6e3fa7_panel_remove()
233 dev_err(&dsi->dev, "Failed to detach from DSI host: %d\n", ret); in s6e3fa7_panel_remove()
235 drm_panel_remove(&ctx->panel); in s6e3fa7_panel_remove()
239 { .compatible = "samsung,s6e3fa7-ams559nk06" },
248 .name = "panel-samsung-s6e3fa7",