Lines Matching +full:regulator +full:- +full:poweroff

1 // SPDX-License-Identifier: GPL-2.0-only
15 #include <linux/regulator/consumer.h>
50 struct mipi_dsi_device *dsi = jdi->dsi;
51 struct device *dev = &jdi->dsi->dev;
54 dsi->mode_flags |= MIPI_DSI_MODE_LPM;
68 ret = mipi_dsi_dcs_set_column_address(dsi, 0, jdi->mode->hdisplay - 1);
74 ret = mipi_dsi_dcs_set_page_address(dsi, 0, jdi->mode->vdisplay - 1);
140 struct mipi_dsi_device *dsi = jdi->dsi;
141 struct device *dev = &jdi->dsi->dev;
144 dsi->mode_flags |= MIPI_DSI_MODE_LPM;
155 struct mipi_dsi_device *dsi = jdi->dsi;
156 struct device *dev = &jdi->dsi->dev;
159 dsi->mode_flags &= ~MIPI_DSI_MODE_LPM;
176 backlight_disable(jdi->backlight);
184 struct device *dev = &jdi->dsi->dev;
189 ret = regulator_bulk_disable(ARRAY_SIZE(jdi->supplies), jdi->supplies);
191 dev_err(dev, "regulator disable failed, %d\n", ret);
193 gpiod_set_value(jdi->enable_gpio, 0);
195 gpiod_set_value(jdi->reset_gpio, 1);
197 gpiod_set_value(jdi->dcdc_en_gpio, 0);
205 struct device *dev = &jdi->dsi->dev;
208 ret = regulator_bulk_enable(ARRAY_SIZE(jdi->supplies), jdi->supplies);
210 dev_err(dev, "regulator enable failed, %d\n", ret);
216 gpiod_set_value(jdi->dcdc_en_gpio, 1);
219 gpiod_set_value(jdi->reset_gpio, 0);
222 gpiod_set_value(jdi->enable_gpio, 1);
228 goto poweroff;
234 goto poweroff;
239 poweroff:
240 ret = regulator_bulk_disable(ARRAY_SIZE(jdi->supplies), jdi->supplies);
242 dev_err(dev, "regulator disable failed, %d\n", ret);
244 gpiod_set_value(jdi->enable_gpio, 0);
246 gpiod_set_value(jdi->reset_gpio, 1);
248 gpiod_set_value(jdi->dcdc_en_gpio, 0);
257 backlight_enable(jdi->backlight);
280 struct device *dev = &jdi->dsi->dev;
282 mode = drm_mode_duplicate(connector->dev, &default_mode);
287 return -ENOMEM;
294 connector->display_info.width_mm = 95;
295 connector->display_info.height_mm = 151;
304 u16 brightness = bl->props.brightness;
306 dsi->mode_flags &= ~MIPI_DSI_MODE_LPM;
312 dsi->mode_flags |= MIPI_DSI_MODE_LPM;
322 dsi->mode_flags &= ~MIPI_DSI_MODE_LPM;
324 ret = mipi_dsi_dcs_set_display_brightness(dsi, bl->props.brightness);
328 dsi->mode_flags |= MIPI_DSI_MODE_LPM;
341 struct device *dev = &dsi->dev;
369 struct device *dev = &jdi->dsi->dev;
373 jdi->mode = &default_mode;
375 for (i = 0; i < ARRAY_SIZE(jdi->supplies); i++)
376 jdi->supplies[i].supply = regulator_names[i];
378 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(jdi->supplies),
379 jdi->supplies);
382 "failed to init regulator, ret=%d\n", ret);
384 jdi->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW);
385 if (IS_ERR(jdi->enable_gpio)) {
386 return dev_err_probe(dev, PTR_ERR(jdi->enable_gpio),
387 "cannot get enable-gpio %d\n", ret);
390 jdi->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH);
391 if (IS_ERR(jdi->reset_gpio))
392 return dev_err_probe(dev, PTR_ERR(jdi->reset_gpio),
393 "cannot get reset-gpios %d\n", ret);
395 jdi->dcdc_en_gpio = devm_gpiod_get(dev, "dcdc-en", GPIOD_OUT_LOW);
396 if (IS_ERR(jdi->dcdc_en_gpio))
397 return dev_err_probe(dev, PTR_ERR(jdi->dcdc_en_gpio),
398 "cannot get dcdc-en-gpio %d\n", ret);
400 jdi->backlight = drm_panel_create_dsi_backlight(jdi->dsi);
401 if (IS_ERR(jdi->backlight))
402 return dev_err_probe(dev, PTR_ERR(jdi->backlight),
405 drm_panel_add(&jdi->base);
412 if (jdi->base.dev)
413 drm_panel_remove(&jdi->base);
421 dsi->lanes = 4;
422 dsi->format = MIPI_DSI_FMT_RGB888;
423 dsi->mode_flags = MIPI_DSI_MODE_VIDEO_HSE | MIPI_DSI_MODE_VIDEO |
426 jdi = devm_drm_panel_alloc(&dsi->dev, __typeof(*jdi), base,
434 jdi->dsi = dsi;
456 dev_err(&dsi->dev, "failed to detach from DSI host: %d\n",
464 .name = "panel-jdi-lt070me05000",