Lines Matching defs:jdi
55 static int jdi_panel_init(struct jdi_panel *jdi)
57 struct mipi_dsi_device *dsi = jdi->dsi;
58 struct device *dev = &jdi->dsi->dev;
75 ret = mipi_dsi_dcs_set_column_address(dsi, 0, jdi->mode->hdisplay - 1);
81 ret = mipi_dsi_dcs_set_page_address(dsi, 0, jdi->mode->vdisplay - 1);
145 static int jdi_panel_on(struct jdi_panel *jdi)
147 struct mipi_dsi_device *dsi = jdi->dsi;
148 struct device *dev = &jdi->dsi->dev;
160 static void jdi_panel_off(struct jdi_panel *jdi)
162 struct mipi_dsi_device *dsi = jdi->dsi;
163 struct device *dev = &jdi->dsi->dev;
181 struct jdi_panel *jdi = to_jdi_panel(panel);
183 if (!jdi->enabled)
186 backlight_disable(jdi->backlight);
188 jdi->enabled = false;
195 struct jdi_panel *jdi = to_jdi_panel(panel);
196 struct device *dev = &jdi->dsi->dev;
199 if (!jdi->prepared)
202 jdi_panel_off(jdi);
204 ret = regulator_bulk_disable(ARRAY_SIZE(jdi->supplies), jdi->supplies);
208 gpiod_set_value(jdi->enable_gpio, 0);
210 gpiod_set_value(jdi->reset_gpio, 1);
212 gpiod_set_value(jdi->dcdc_en_gpio, 0);
214 jdi->prepared = false;
221 struct jdi_panel *jdi = to_jdi_panel(panel);
222 struct device *dev = &jdi->dsi->dev;
225 if (jdi->prepared)
228 ret = regulator_bulk_enable(ARRAY_SIZE(jdi->supplies), jdi->supplies);
236 gpiod_set_value(jdi->dcdc_en_gpio, 1);
239 gpiod_set_value(jdi->reset_gpio, 0);
242 gpiod_set_value(jdi->enable_gpio, 1);
245 ret = jdi_panel_init(jdi);
251 ret = jdi_panel_on(jdi);
257 jdi->prepared = true;
262 ret = regulator_bulk_disable(ARRAY_SIZE(jdi->supplies), jdi->supplies);
266 gpiod_set_value(jdi->enable_gpio, 0);
268 gpiod_set_value(jdi->reset_gpio, 1);
270 gpiod_set_value(jdi->dcdc_en_gpio, 0);
277 struct jdi_panel *jdi = to_jdi_panel(panel);
279 if (jdi->enabled)
282 backlight_enable(jdi->backlight);
284 jdi->enabled = true;
306 struct jdi_panel *jdi = to_jdi_panel(panel);
307 struct device *dev = &jdi->dsi->dev;
389 { .compatible = "jdi,lt070me05000", },
394 static int jdi_panel_add(struct jdi_panel *jdi)
396 struct device *dev = &jdi->dsi->dev;
400 jdi->mode = &default_mode;
402 for (i = 0; i < ARRAY_SIZE(jdi->supplies); i++)
403 jdi->supplies[i].supply = regulator_names[i];
405 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(jdi->supplies),
406 jdi->supplies);
411 jdi->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW);
412 if (IS_ERR(jdi->enable_gpio)) {
413 return dev_err_probe(dev, PTR_ERR(jdi->enable_gpio),
417 jdi->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH);
418 if (IS_ERR(jdi->reset_gpio))
419 return dev_err_probe(dev, PTR_ERR(jdi->reset_gpio),
422 jdi->dcdc_en_gpio = devm_gpiod_get(dev, "dcdc-en", GPIOD_OUT_LOW);
423 if (IS_ERR(jdi->dcdc_en_gpio))
424 return dev_err_probe(dev, PTR_ERR(jdi->dcdc_en_gpio),
427 jdi->backlight = drm_panel_create_dsi_backlight(jdi->dsi);
428 if (IS_ERR(jdi->backlight))
429 return dev_err_probe(dev, PTR_ERR(jdi->backlight),
432 drm_panel_init(&jdi->base, &jdi->dsi->dev, &jdi_panel_funcs,
435 drm_panel_add(&jdi->base);
440 static void jdi_panel_del(struct jdi_panel *jdi)
442 if (jdi->base.dev)
443 drm_panel_remove(&jdi->base);
448 struct jdi_panel *jdi;
456 jdi = devm_kzalloc(&dsi->dev, sizeof(*jdi), GFP_KERNEL);
457 if (!jdi)
460 mipi_dsi_set_drvdata(dsi, jdi);
462 jdi->dsi = dsi;
464 ret = jdi_panel_add(jdi);
470 jdi_panel_del(jdi);
479 struct jdi_panel *jdi = mipi_dsi_get_drvdata(dsi);
482 ret = jdi_panel_disable(&jdi->base);
491 jdi_panel_del(jdi);
496 struct jdi_panel *jdi = mipi_dsi_get_drvdata(dsi);
498 jdi_panel_disable(&jdi->base);
503 .name = "panel-jdi-lt070me05000",