Lines Matching +full:iovcc +full:- +full:supply

1 // SPDX-License-Identifier: GPL-2.0
8 * - Vinay Simha BN <simhavcs@gmail.com>
9 * - Sumit Semwal <sumit.semwal@linaro.org>
10 * - Guillaume La Roque <glaroque@baylibre.com>
33 IOVCC = 0, enumerator
41 struct gpio_desc *enable_gpio; /* Power IC supply enable */
54 struct mipi_dsi_device *dsi = stk->dsi; in stk_panel_init()
55 struct device *dev = &stk->dsi->dev; in stk_panel_init()
94 ret = mipi_dsi_dcs_set_column_address(dsi, 0, stk->mode->hdisplay - 1); in stk_panel_init()
100 ret = mipi_dsi_dcs_set_page_address(dsi, 0, stk->mode->vdisplay - 1); in stk_panel_init()
111 struct mipi_dsi_device *dsi = stk->dsi; in stk_panel_on()
112 struct device *dev = &stk->dsi->dev; in stk_panel_on()
126 struct mipi_dsi_device *dsi = stk->dsi; in stk_panel_off()
127 struct device *dev = &stk->dsi->dev; in stk_panel_off()
130 dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; in stk_panel_off()
148 regulator_bulk_disable(ARRAY_SIZE(stk->supplies), stk->supplies); in stk_panel_unprepare()
149 gpiod_set_value(stk->reset_gpio, 0); in stk_panel_unprepare()
150 gpiod_set_value(stk->enable_gpio, 1); in stk_panel_unprepare()
158 struct device *dev = &stk->dsi->dev; in stk_panel_prepare()
161 gpiod_set_value(stk->reset_gpio, 0); in stk_panel_prepare()
162 gpiod_set_value(stk->enable_gpio, 0); in stk_panel_prepare()
163 ret = regulator_enable(stk->supplies[IOVCC].consumer); in stk_panel_prepare()
168 ret = regulator_enable(stk->supplies[POWER].consumer); in stk_panel_prepare()
173 gpiod_set_value(stk->enable_gpio, 1); in stk_panel_prepare()
175 gpiod_set_value(stk->reset_gpio, 1); in stk_panel_prepare()
192 regulator_disable(stk->supplies[POWER].consumer); in stk_panel_prepare()
194 regulator_disable(stk->supplies[IOVCC].consumer); in stk_panel_prepare()
195 gpiod_set_value(stk->reset_gpio, 0); in stk_panel_prepare()
196 gpiod_set_value(stk->enable_gpio, 0); in stk_panel_prepare()
220 mode = drm_mode_duplicate(connector->dev, &default_mode); in stk_panel_get_modes()
222 dev_err(panel->dev, "failed to add mode %ux%ux@%u\n", in stk_panel_get_modes()
225 return -ENOMEM; in stk_panel_get_modes()
230 connector->display_info.width_mm = default_mode.width_mm; in stk_panel_get_modes()
231 connector->display_info.height_mm = default_mode.height_mm; in stk_panel_get_modes()
241 dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; in dsi_dcs_bl_get_brightness()
246 dsi->mode_flags |= MIPI_DSI_MODE_LPM; in dsi_dcs_bl_get_brightness()
253 struct device *dev = &dsi->dev; in dsi_dcs_bl_update_status()
256 dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; in dsi_dcs_bl_update_status()
257 ret = mipi_dsi_dcs_set_display_brightness(dsi, bl->props.brightness); in dsi_dcs_bl_update_status()
263 dsi->mode_flags |= MIPI_DSI_MODE_LPM; in dsi_dcs_bl_update_status()
275 struct device *dev = &dsi->dev; in drm_panel_create_dsi_backlight()
300 struct device *dev = &stk->dsi->dev; in stk_panel_add()
303 stk->mode = &default_mode; in stk_panel_add()
305 stk->supplies[IOVCC].supply = "iovcc"; in stk_panel_add()
306 stk->supplies[POWER].supply = "power"; in stk_panel_add()
307 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(stk->supplies), stk->supplies); in stk_panel_add()
313 stk->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW); in stk_panel_add()
314 if (IS_ERR(stk->reset_gpio)) { in stk_panel_add()
315 ret = PTR_ERR(stk->reset_gpio); in stk_panel_add()
316 dev_err(dev, "cannot get reset-gpios %d\n", ret); in stk_panel_add()
320 stk->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW); in stk_panel_add()
321 if (IS_ERR(stk->enable_gpio)) { in stk_panel_add()
322 ret = PTR_ERR(stk->enable_gpio); in stk_panel_add()
323 dev_err(dev, "cannot get enable-gpio %d\n", ret); in stk_panel_add()
327 stk->backlight = drm_panel_create_dsi_backlight(stk->dsi); in stk_panel_add()
328 if (IS_ERR(stk->backlight)) { in stk_panel_add()
329 ret = PTR_ERR(stk->backlight); in stk_panel_add()
334 drm_panel_init(&stk->base, &stk->dsi->dev, &stk_panel_funcs, in stk_panel_add()
337 drm_panel_add(&stk->base); in stk_panel_add()
347 dsi->lanes = 4; in stk_panel_probe()
348 dsi->format = MIPI_DSI_FMT_RGB888; in stk_panel_probe()
349 dsi->mode_flags = (MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_LPM); in stk_panel_probe()
351 stk = devm_kzalloc(&dsi->dev, sizeof(*stk), GFP_KERNEL); in stk_panel_probe()
353 return -ENOMEM; in stk_panel_probe()
357 stk->dsi = dsi; in stk_panel_probe()
365 drm_panel_remove(&stk->base); in stk_panel_probe()
377 dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", in stk_panel_remove()
380 drm_panel_remove(&stk->base); in stk_panel_remove()
385 .name = "panel-startek-kd070fhfid015",