Lines Matching full:kingdisplay
185 struct kingdisplay_panel *kingdisplay = to_kingdisplay_panel(panel); in kingdisplay_panel_disable() local
188 if (!kingdisplay->enabled) in kingdisplay_panel_disable()
191 err = mipi_dsi_dcs_set_display_off(kingdisplay->link); in kingdisplay_panel_disable()
195 kingdisplay->enabled = false; in kingdisplay_panel_disable()
202 struct kingdisplay_panel *kingdisplay = to_kingdisplay_panel(panel); in kingdisplay_panel_unprepare() local
205 if (!kingdisplay->prepared) in kingdisplay_panel_unprepare()
208 err = mipi_dsi_dcs_enter_sleep_mode(kingdisplay->link); in kingdisplay_panel_unprepare()
217 gpiod_set_value_cansleep(kingdisplay->enable_gpio, 0); in kingdisplay_panel_unprepare()
219 err = regulator_disable(kingdisplay->supply); in kingdisplay_panel_unprepare()
223 kingdisplay->prepared = false; in kingdisplay_panel_unprepare()
230 struct kingdisplay_panel *kingdisplay = to_kingdisplay_panel(panel); in kingdisplay_panel_prepare() local
234 if (kingdisplay->prepared) in kingdisplay_panel_prepare()
237 gpiod_set_value_cansleep(kingdisplay->enable_gpio, 0); in kingdisplay_panel_prepare()
239 err = regulator_enable(kingdisplay->supply); in kingdisplay_panel_prepare()
246 gpiod_set_value_cansleep(kingdisplay->enable_gpio, 1); in kingdisplay_panel_prepare()
252 err = mipi_dsi_generic_write(kingdisplay->link, &init_code[i], in kingdisplay_panel_prepare()
260 err = mipi_dsi_dcs_exit_sleep_mode(kingdisplay->link); in kingdisplay_panel_prepare()
269 err = mipi_dsi_dcs_set_display_on(kingdisplay->link); in kingdisplay_panel_prepare()
278 kingdisplay->prepared = true; in kingdisplay_panel_prepare()
283 gpiod_set_value_cansleep(kingdisplay->enable_gpio, 0); in kingdisplay_panel_prepare()
285 regulator_err = regulator_disable(kingdisplay->supply); in kingdisplay_panel_prepare()
294 struct kingdisplay_panel *kingdisplay = to_kingdisplay_panel(panel); in kingdisplay_panel_enable() local
296 if (kingdisplay->enabled) in kingdisplay_panel_enable()
299 kingdisplay->enabled = true; in kingdisplay_panel_enable()
349 { .compatible = "kingdisplay,kd097d04", },
354 static int kingdisplay_panel_add(struct kingdisplay_panel *kingdisplay) in kingdisplay_panel_add() argument
356 struct device *dev = &kingdisplay->link->dev; in kingdisplay_panel_add()
359 kingdisplay->supply = devm_regulator_get(dev, "power"); in kingdisplay_panel_add()
360 if (IS_ERR(kingdisplay->supply)) in kingdisplay_panel_add()
361 return PTR_ERR(kingdisplay->supply); in kingdisplay_panel_add()
363 kingdisplay->enable_gpio = devm_gpiod_get_optional(dev, "enable", in kingdisplay_panel_add()
365 if (IS_ERR(kingdisplay->enable_gpio)) { in kingdisplay_panel_add()
366 err = PTR_ERR(kingdisplay->enable_gpio); in kingdisplay_panel_add()
368 kingdisplay->enable_gpio = NULL; in kingdisplay_panel_add()
371 drm_panel_init(&kingdisplay->base, &kingdisplay->link->dev, in kingdisplay_panel_add()
374 err = drm_panel_of_backlight(&kingdisplay->base); in kingdisplay_panel_add()
378 drm_panel_add(&kingdisplay->base); in kingdisplay_panel_add()
383 static void kingdisplay_panel_del(struct kingdisplay_panel *kingdisplay) in kingdisplay_panel_del() argument
385 drm_panel_remove(&kingdisplay->base); in kingdisplay_panel_del()
390 struct kingdisplay_panel *kingdisplay; in kingdisplay_panel_probe() local
398 kingdisplay = devm_kzalloc(&dsi->dev, sizeof(*kingdisplay), GFP_KERNEL); in kingdisplay_panel_probe()
399 if (!kingdisplay) in kingdisplay_panel_probe()
402 mipi_dsi_set_drvdata(dsi, kingdisplay); in kingdisplay_panel_probe()
403 kingdisplay->link = dsi; in kingdisplay_panel_probe()
405 err = kingdisplay_panel_add(kingdisplay); in kingdisplay_panel_probe()
414 struct kingdisplay_panel *kingdisplay = mipi_dsi_get_drvdata(dsi); in kingdisplay_panel_remove() local
417 err = drm_panel_unprepare(&kingdisplay->base); in kingdisplay_panel_remove()
421 err = drm_panel_disable(&kingdisplay->base); in kingdisplay_panel_remove()
429 kingdisplay_panel_del(kingdisplay); in kingdisplay_panel_remove()
436 struct kingdisplay_panel *kingdisplay = mipi_dsi_get_drvdata(dsi); in kingdisplay_panel_shutdown() local
438 drm_panel_unprepare(&kingdisplay->base); in kingdisplay_panel_shutdown()
439 drm_panel_disable(&kingdisplay->base); in kingdisplay_panel_shutdown()
444 .name = "panel-kingdisplay-kd097d04",
455 MODULE_DESCRIPTION("kingdisplay KD097D04 panel driver");