Lines Matching full:jdi

10  * JDI model LT070ME05000, and its data sheet is at:
55 static int jdi_panel_init(struct jdi_panel *jdi) in jdi_panel_init() argument
57 struct mipi_dsi_device *dsi = jdi->dsi; in jdi_panel_init()
58 struct device *dev = &jdi->dsi->dev; in jdi_panel_init()
75 ret = mipi_dsi_dcs_set_column_address(dsi, 0, jdi->mode->hdisplay - 1); in jdi_panel_init()
81 ret = mipi_dsi_dcs_set_page_address(dsi, 0, jdi->mode->vdisplay - 1); in jdi_panel_init()
145 static int jdi_panel_on(struct jdi_panel *jdi) in jdi_panel_on() argument
147 struct mipi_dsi_device *dsi = jdi->dsi; in jdi_panel_on()
148 struct device *dev = &jdi->dsi->dev; in jdi_panel_on()
160 static void jdi_panel_off(struct jdi_panel *jdi) in jdi_panel_off() argument
162 struct mipi_dsi_device *dsi = jdi->dsi; in jdi_panel_off()
163 struct device *dev = &jdi->dsi->dev; in jdi_panel_off()
181 struct jdi_panel *jdi = to_jdi_panel(panel); in jdi_panel_disable() local
183 if (!jdi->enabled) in jdi_panel_disable()
186 backlight_disable(jdi->backlight); in jdi_panel_disable()
188 jdi->enabled = false; in jdi_panel_disable()
195 struct jdi_panel *jdi = to_jdi_panel(panel); in jdi_panel_unprepare() local
196 struct device *dev = &jdi->dsi->dev; in jdi_panel_unprepare()
199 if (!jdi->prepared) in jdi_panel_unprepare()
202 jdi_panel_off(jdi); in jdi_panel_unprepare()
204 ret = regulator_bulk_disable(ARRAY_SIZE(jdi->supplies), jdi->supplies); in jdi_panel_unprepare()
208 gpiod_set_value(jdi->enable_gpio, 0); in jdi_panel_unprepare()
210 gpiod_set_value(jdi->reset_gpio, 1); in jdi_panel_unprepare()
212 gpiod_set_value(jdi->dcdc_en_gpio, 0); in jdi_panel_unprepare()
214 jdi->prepared = false; in jdi_panel_unprepare()
221 struct jdi_panel *jdi = to_jdi_panel(panel); in jdi_panel_prepare() local
222 struct device *dev = &jdi->dsi->dev; in jdi_panel_prepare()
225 if (jdi->prepared) in jdi_panel_prepare()
228 ret = regulator_bulk_enable(ARRAY_SIZE(jdi->supplies), jdi->supplies); in jdi_panel_prepare()
236 gpiod_set_value(jdi->dcdc_en_gpio, 1); in jdi_panel_prepare()
239 gpiod_set_value(jdi->reset_gpio, 0); in jdi_panel_prepare()
242 gpiod_set_value(jdi->enable_gpio, 1); in jdi_panel_prepare()
245 ret = jdi_panel_init(jdi); in jdi_panel_prepare()
251 ret = jdi_panel_on(jdi); in jdi_panel_prepare()
257 jdi->prepared = true; in jdi_panel_prepare()
262 ret = regulator_bulk_disable(ARRAY_SIZE(jdi->supplies), jdi->supplies); in jdi_panel_prepare()
266 gpiod_set_value(jdi->enable_gpio, 0); in jdi_panel_prepare()
268 gpiod_set_value(jdi->reset_gpio, 1); in jdi_panel_prepare()
270 gpiod_set_value(jdi->dcdc_en_gpio, 0); in jdi_panel_prepare()
277 struct jdi_panel *jdi = to_jdi_panel(panel); in jdi_panel_enable() local
279 if (jdi->enabled) in jdi_panel_enable()
282 backlight_enable(jdi->backlight); in jdi_panel_enable()
284 jdi->enabled = true; in jdi_panel_enable()
306 struct jdi_panel *jdi = to_jdi_panel(panel); in jdi_panel_get_modes() local
307 struct device *dev = &jdi->dsi->dev; in jdi_panel_get_modes()
389 { .compatible = "jdi,lt070me05000", },
394 static int jdi_panel_add(struct jdi_panel *jdi) in jdi_panel_add() argument
396 struct device *dev = &jdi->dsi->dev; in jdi_panel_add()
400 jdi->mode = &default_mode; in jdi_panel_add()
402 for (i = 0; i < ARRAY_SIZE(jdi->supplies); i++) in jdi_panel_add()
403 jdi->supplies[i].supply = regulator_names[i]; in jdi_panel_add()
405 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(jdi->supplies), in jdi_panel_add()
406 jdi->supplies); in jdi_panel_add()
412 jdi->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW); in jdi_panel_add()
413 if (IS_ERR(jdi->enable_gpio)) { in jdi_panel_add()
414 ret = PTR_ERR(jdi->enable_gpio); in jdi_panel_add()
419 jdi->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH); in jdi_panel_add()
420 if (IS_ERR(jdi->reset_gpio)) { in jdi_panel_add()
421 ret = PTR_ERR(jdi->reset_gpio); in jdi_panel_add()
426 jdi->dcdc_en_gpio = devm_gpiod_get(dev, "dcdc-en", GPIOD_OUT_LOW); in jdi_panel_add()
427 if (IS_ERR(jdi->dcdc_en_gpio)) { in jdi_panel_add()
428 ret = PTR_ERR(jdi->dcdc_en_gpio); in jdi_panel_add()
433 jdi->backlight = drm_panel_create_dsi_backlight(jdi->dsi); in jdi_panel_add()
434 if (IS_ERR(jdi->backlight)) { in jdi_panel_add()
435 ret = PTR_ERR(jdi->backlight); in jdi_panel_add()
440 drm_panel_init(&jdi->base, &jdi->dsi->dev, &jdi_panel_funcs, in jdi_panel_add()
443 drm_panel_add(&jdi->base); in jdi_panel_add()
448 static void jdi_panel_del(struct jdi_panel *jdi) in jdi_panel_del() argument
450 if (jdi->base.dev) in jdi_panel_del()
451 drm_panel_remove(&jdi->base); in jdi_panel_del()
456 struct jdi_panel *jdi; in jdi_panel_probe() local
464 jdi = devm_kzalloc(&dsi->dev, sizeof(*jdi), GFP_KERNEL); in jdi_panel_probe()
465 if (!jdi) in jdi_panel_probe()
468 mipi_dsi_set_drvdata(dsi, jdi); in jdi_panel_probe()
470 jdi->dsi = dsi; in jdi_panel_probe()
472 ret = jdi_panel_add(jdi); in jdi_panel_probe()
481 struct jdi_panel *jdi = mipi_dsi_get_drvdata(dsi); in jdi_panel_remove() local
484 ret = jdi_panel_disable(&jdi->base); in jdi_panel_remove()
493 jdi_panel_del(jdi); in jdi_panel_remove()
500 struct jdi_panel *jdi = mipi_dsi_get_drvdata(dsi); in jdi_panel_shutdown() local
502 jdi_panel_disable(&jdi->base); in jdi_panel_shutdown()
507 .name = "panel-jdi-lt070me05000",
518 MODULE_DESCRIPTION("JDI LT070ME05000 WUXGA");