Lines Matching full:kingdisplay
182 struct kingdisplay_panel *kingdisplay = to_kingdisplay_panel(panel); in kingdisplay_panel_disable() local
185 err = mipi_dsi_dcs_set_display_off(kingdisplay->link); in kingdisplay_panel_disable()
194 struct kingdisplay_panel *kingdisplay = to_kingdisplay_panel(panel); in kingdisplay_panel_unprepare() local
197 err = mipi_dsi_dcs_enter_sleep_mode(kingdisplay->link); in kingdisplay_panel_unprepare()
206 gpiod_set_value_cansleep(kingdisplay->enable_gpio, 0); in kingdisplay_panel_unprepare()
208 err = regulator_disable(kingdisplay->supply); in kingdisplay_panel_unprepare()
217 struct kingdisplay_panel *kingdisplay = to_kingdisplay_panel(panel); in kingdisplay_panel_prepare() local
221 gpiod_set_value_cansleep(kingdisplay->enable_gpio, 0); in kingdisplay_panel_prepare()
223 err = regulator_enable(kingdisplay->supply); in kingdisplay_panel_prepare()
230 gpiod_set_value_cansleep(kingdisplay->enable_gpio, 1); in kingdisplay_panel_prepare()
236 err = mipi_dsi_generic_write(kingdisplay->link, &init_code[i], in kingdisplay_panel_prepare()
244 err = mipi_dsi_dcs_exit_sleep_mode(kingdisplay->link); in kingdisplay_panel_prepare()
253 err = mipi_dsi_dcs_set_display_on(kingdisplay->link); in kingdisplay_panel_prepare()
265 gpiod_set_value_cansleep(kingdisplay->enable_gpio, 0); in kingdisplay_panel_prepare()
267 regulator_err = regulator_disable(kingdisplay->supply); in kingdisplay_panel_prepare()
318 { .compatible = "kingdisplay,kd097d04", },
323 static int kingdisplay_panel_add(struct kingdisplay_panel *kingdisplay) in kingdisplay_panel_add() argument
325 struct device *dev = &kingdisplay->link->dev; in kingdisplay_panel_add()
328 kingdisplay->supply = devm_regulator_get(dev, "power"); in kingdisplay_panel_add()
329 if (IS_ERR(kingdisplay->supply)) in kingdisplay_panel_add()
330 return PTR_ERR(kingdisplay->supply); in kingdisplay_panel_add()
332 kingdisplay->enable_gpio = devm_gpiod_get_optional(dev, "enable", in kingdisplay_panel_add()
334 if (IS_ERR(kingdisplay->enable_gpio)) { in kingdisplay_panel_add()
335 err = PTR_ERR(kingdisplay->enable_gpio); in kingdisplay_panel_add()
337 kingdisplay->enable_gpio = NULL; in kingdisplay_panel_add()
340 drm_panel_init(&kingdisplay->base, &kingdisplay->link->dev, in kingdisplay_panel_add()
343 err = drm_panel_of_backlight(&kingdisplay->base); in kingdisplay_panel_add()
347 drm_panel_add(&kingdisplay->base); in kingdisplay_panel_add()
352 static void kingdisplay_panel_del(struct kingdisplay_panel *kingdisplay) in kingdisplay_panel_del() argument
354 drm_panel_remove(&kingdisplay->base); in kingdisplay_panel_del()
359 struct kingdisplay_panel *kingdisplay; in kingdisplay_panel_probe() local
367 kingdisplay = devm_kzalloc(&dsi->dev, sizeof(*kingdisplay), GFP_KERNEL); in kingdisplay_panel_probe()
368 if (!kingdisplay) in kingdisplay_panel_probe()
371 mipi_dsi_set_drvdata(dsi, kingdisplay); in kingdisplay_panel_probe()
372 kingdisplay->link = dsi; in kingdisplay_panel_probe()
374 err = kingdisplay_panel_add(kingdisplay); in kingdisplay_panel_probe()
380 kingdisplay_panel_del(kingdisplay); in kingdisplay_panel_probe()
389 struct kingdisplay_panel *kingdisplay = mipi_dsi_get_drvdata(dsi); in kingdisplay_panel_remove() local
396 kingdisplay_panel_del(kingdisplay); in kingdisplay_panel_remove()
401 .name = "panel-kingdisplay-kd097d04",
411 MODULE_DESCRIPTION("kingdisplay KD097D04 panel driver");