Lines Matching refs:jdi
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()
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()
411 jdi->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW); in jdi_panel_add()
412 if (IS_ERR(jdi->enable_gpio)) { in jdi_panel_add()
413 return dev_err_probe(dev, PTR_ERR(jdi->enable_gpio), in jdi_panel_add()
417 jdi->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH); in jdi_panel_add()
418 if (IS_ERR(jdi->reset_gpio)) in jdi_panel_add()
419 return dev_err_probe(dev, PTR_ERR(jdi->reset_gpio), in jdi_panel_add()
422 jdi->dcdc_en_gpio = devm_gpiod_get(dev, "dcdc-en", GPIOD_OUT_LOW); in jdi_panel_add()
423 if (IS_ERR(jdi->dcdc_en_gpio)) in jdi_panel_add()
424 return dev_err_probe(dev, PTR_ERR(jdi->dcdc_en_gpio), in jdi_panel_add()
427 jdi->backlight = drm_panel_create_dsi_backlight(jdi->dsi); in jdi_panel_add()
428 if (IS_ERR(jdi->backlight)) in jdi_panel_add()
429 return dev_err_probe(dev, PTR_ERR(jdi->backlight), in jdi_panel_add()
432 drm_panel_init(&jdi->base, &jdi->dsi->dev, &jdi_panel_funcs, in jdi_panel_add()
435 drm_panel_add(&jdi->base); in jdi_panel_add()
440 static void jdi_panel_del(struct jdi_panel *jdi) in jdi_panel_del() argument
442 if (jdi->base.dev) in jdi_panel_del()
443 drm_panel_remove(&jdi->base); in jdi_panel_del()
448 struct jdi_panel *jdi; in jdi_panel_probe() local
456 jdi = devm_kzalloc(&dsi->dev, sizeof(*jdi), GFP_KERNEL); in jdi_panel_probe()
457 if (!jdi) in jdi_panel_probe()
460 mipi_dsi_set_drvdata(dsi, jdi); in jdi_panel_probe()
462 jdi->dsi = dsi; in jdi_panel_probe()
464 ret = jdi_panel_add(jdi); in jdi_panel_probe()
470 jdi_panel_del(jdi); in jdi_panel_probe()
479 struct jdi_panel *jdi = mipi_dsi_get_drvdata(dsi); in jdi_panel_remove() local
482 ret = jdi_panel_disable(&jdi->base); in jdi_panel_remove()
491 jdi_panel_del(jdi); in jdi_panel_remove()
496 struct jdi_panel *jdi = mipi_dsi_get_drvdata(dsi); in jdi_panel_shutdown() local
498 jdi_panel_disable(&jdi->base); in jdi_panel_shutdown()