Lines Matching +full:tulip +full:- +full:truly +full:- +full:nt35521
1 // SPDX-License-Identifier: GPL-2.0-only
5 * Generated with linux-mdss-dsi-panel-driver-generator from vendor device tree:
42 gpiod_set_value_cansleep(ctx->reset_gpio, 1); in truly_nt35521_reset()
44 gpiod_set_value_cansleep(ctx->reset_gpio, 1); in truly_nt35521_reset()
46 gpiod_set_value_cansleep(ctx->reset_gpio, 0); in truly_nt35521_reset()
52 struct mipi_dsi_device *dsi = ctx->dsi; in truly_nt35521_on()
55 dsi->mode_flags |= MIPI_DSI_MODE_LPM; in truly_nt35521_on()
272 struct mipi_dsi_device *dsi = ctx->dsi; in truly_nt35521_off()
275 dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; in truly_nt35521_off()
288 struct device *dev = &ctx->dsi->dev; in truly_nt35521_prepare()
291 ret = regulator_bulk_enable(ARRAY_SIZE(ctx->supplies), ctx->supplies); in truly_nt35521_prepare()
302 gpiod_set_value_cansleep(ctx->reset_gpio, 1); in truly_nt35521_prepare()
312 struct device *dev = &ctx->dsi->dev; in truly_nt35521_unprepare()
317 dev_err(dev, "Failed to un-initialize panel: %d\n", ret); in truly_nt35521_unprepare()
319 gpiod_set_value_cansleep(ctx->reset_gpio, 1); in truly_nt35521_unprepare()
320 regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), in truly_nt35521_unprepare()
321 ctx->supplies); in truly_nt35521_unprepare()
330 gpiod_set_value_cansleep(ctx->blen_gpio, 1); in truly_nt35521_enable()
339 gpiod_set_value_cansleep(ctx->blen_gpio, 0); in truly_nt35521_disable()
363 mode = drm_mode_duplicate(connector->dev, &truly_nt35521_mode); in truly_nt35521_get_modes()
365 return -ENOMEM; in truly_nt35521_get_modes()
369 mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; in truly_nt35521_get_modes()
370 connector->display_info.width_mm = mode->width_mm; in truly_nt35521_get_modes()
371 connector->display_info.height_mm = mode->height_mm; in truly_nt35521_get_modes()
419 struct device *dev = &dsi->dev; in truly_nt35521_create_backlight()
432 struct device *dev = &dsi->dev; in truly_nt35521_probe()
438 return -ENOMEM; in truly_nt35521_probe()
440 ctx->supplies[0].supply = "positive5"; in truly_nt35521_probe()
441 ctx->supplies[1].supply = "negative5"; in truly_nt35521_probe()
442 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(ctx->supplies), in truly_nt35521_probe()
443 ctx->supplies); in truly_nt35521_probe()
449 ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH); in truly_nt35521_probe()
450 if (IS_ERR(ctx->reset_gpio)) in truly_nt35521_probe()
451 return dev_err_probe(dev, PTR_ERR(ctx->reset_gpio), in truly_nt35521_probe()
452 "Failed to get reset-gpios\n"); in truly_nt35521_probe()
454 ctx->blen_gpio = devm_gpiod_get(dev, "backlight", GPIOD_OUT_LOW); in truly_nt35521_probe()
455 if (IS_ERR(ctx->blen_gpio)) in truly_nt35521_probe()
456 return dev_err_probe(dev, PTR_ERR(ctx->blen_gpio), in truly_nt35521_probe()
457 "Failed to get backlight-gpios\n"); in truly_nt35521_probe()
459 ctx->dsi = dsi; in truly_nt35521_probe()
462 dsi->lanes = 4; in truly_nt35521_probe()
463 dsi->format = MIPI_DSI_FMT_RGB888; in truly_nt35521_probe()
464 dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | in truly_nt35521_probe()
468 drm_panel_init(&ctx->panel, dev, &truly_nt35521_panel_funcs, in truly_nt35521_probe()
471 ctx->panel.backlight = truly_nt35521_create_backlight(dsi); in truly_nt35521_probe()
472 if (IS_ERR(ctx->panel.backlight)) in truly_nt35521_probe()
473 return dev_err_probe(dev, PTR_ERR(ctx->panel.backlight), in truly_nt35521_probe()
476 drm_panel_add(&ctx->panel); in truly_nt35521_probe()
481 drm_panel_remove(&ctx->panel); in truly_nt35521_probe()
495 dev_err(&dsi->dev, "Failed to detach from DSI host: %d\n", ret); in truly_nt35521_remove()
497 drm_panel_remove(&ctx->panel); in truly_nt35521_remove()
501 { .compatible = "sony,tulip-truly-nt35521" },
510 .name = "panel-truly-nt35521",
517 MODULE_DESCRIPTION("DRM driver for Sony Tulip Truly NT35521 panel");