Lines Matching +full:center +full:- +full:supply

1 //SPDX-License-Identifier: GPL-2.0-only
2 //Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
34 gpiod_set_value_cansleep(ctx->reset_gpio, 0); in visionox_r66451_reset()
36 gpiod_set_value_cansleep(ctx->reset_gpio, 1); in visionox_r66451_reset()
38 gpiod_set_value_cansleep(ctx->reset_gpio, 0); in visionox_r66451_reset()
44 struct mipi_dsi_device *dsi = ctx->dsi; in visionox_r66451_on()
46 dsi->mode_flags |= MIPI_DSI_MODE_LPM; in visionox_r66451_on()
105 mipi_dsi_dcs_set_column_address(dsi, 0, 1080 - 1); in visionox_r66451_on()
106 mipi_dsi_dcs_set_page_address(dsi, 0, 2340 - 1); in visionox_r66451_on()
108 dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; in visionox_r66451_on()
115 ctx->dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; in visionox_r66451_off()
122 struct mipi_dsi_device *dsi = ctx->dsi; in visionox_r66451_prepare()
123 struct device *dev = &dsi->dev; in visionox_r66451_prepare()
126 ret = regulator_bulk_enable(ARRAY_SIZE(ctx->supplies), in visionox_r66451_prepare()
127 ctx->supplies); in visionox_r66451_prepare()
136 gpiod_set_value_cansleep(ctx->reset_gpio, 1); in visionox_r66451_prepare()
137 regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies); in visionox_r66451_prepare()
141 mipi_dsi_compression_mode(ctx->dsi, true); in visionox_r66451_prepare()
149 struct device *dev = &ctx->dsi->dev; in visionox_r66451_unprepare()
154 dev_err(dev, "Failed to un-initialize panel: %d\n", ret); in visionox_r66451_unprepare()
156 gpiod_set_value_cansleep(ctx->reset_gpio, 1); in visionox_r66451_unprepare()
157 regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies); in visionox_r66451_unprepare()
180 struct mipi_dsi_device *dsi = ctx->dsi; in visionox_r66451_enable()
184 if (!dsi->dsc) { in visionox_r66451_enable()
185 dev_err(&dsi->dev, "DSC not attached to DSI\n"); in visionox_r66451_enable()
186 return -ENODEV; in visionox_r66451_enable()
189 drm_dsc_pps_payload_pack(&pps, dsi->dsc); in visionox_r66451_enable()
192 dev_err(&dsi->dev, "Failed to set PPS\n"); in visionox_r66451_enable()
198 dev_err(&dsi->dev, "Failed to exit sleep mode: %d\n", ret); in visionox_r66451_enable()
205 dev_err(&dsi->dev, "Failed on set display on: %d\n", ret); in visionox_r66451_enable()
216 struct mipi_dsi_device *dsi = ctx->dsi; in visionox_r66451_disable()
217 struct device *dev = &dsi->dev; in visionox_r66451_disable()
267 struct device *dev = &dsi->dev; in visionox_r66451_create_backlight()
280 struct device *dev = &dsi->dev; in visionox_r66451_probe()
287 return -ENOMEM; in visionox_r66451_probe()
291 return -ENOMEM; in visionox_r66451_probe()
294 dsc->dsc_version_major = 0x1; in visionox_r66451_probe()
295 dsc->dsc_version_minor = 0x2; in visionox_r66451_probe()
297 dsc->slice_height = 20; in visionox_r66451_probe()
298 dsc->slice_width = 540; in visionox_r66451_probe()
299 dsc->slice_count = 2; in visionox_r66451_probe()
300 dsc->bits_per_component = 8; in visionox_r66451_probe()
301 dsc->bits_per_pixel = 8 << 4; in visionox_r66451_probe()
302 dsc->block_pred_enable = true; in visionox_r66451_probe()
304 dsi->dsc = dsc; in visionox_r66451_probe()
306 ctx->supplies[0].supply = "vddio"; in visionox_r66451_probe()
307 ctx->supplies[1].supply = "vdd"; in visionox_r66451_probe()
309 ret = devm_regulator_bulk_get(&dsi->dev, ARRAY_SIZE(ctx->supplies), in visionox_r66451_probe()
310 ctx->supplies); in visionox_r66451_probe()
315 ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW); in visionox_r66451_probe()
316 if (IS_ERR(ctx->reset_gpio)) in visionox_r66451_probe()
317 return dev_err_probe(dev, PTR_ERR(ctx->reset_gpio), "Failed to get reset-gpios\n"); in visionox_r66451_probe()
319 ctx->dsi = dsi; in visionox_r66451_probe()
322 dsi->lanes = 4; in visionox_r66451_probe()
323 dsi->format = MIPI_DSI_FMT_RGB888; in visionox_r66451_probe()
324 dsi->mode_flags = MIPI_DSI_MODE_LPM | MIPI_DSI_CLOCK_NON_CONTINUOUS; in visionox_r66451_probe()
326 drm_panel_init(&ctx->panel, dev, &visionox_r66451_funcs, DRM_MODE_CONNECTOR_DSI); in visionox_r66451_probe()
327 ctx->panel.backlight = visionox_r66451_create_backlight(dsi); in visionox_r66451_probe()
328 if (IS_ERR(ctx->panel.backlight)) in visionox_r66451_probe()
329 return dev_err_probe(dev, PTR_ERR(ctx->panel.backlight), in visionox_r66451_probe()
332 drm_panel_add(&ctx->panel); in visionox_r66451_probe()
337 drm_panel_remove(&ctx->panel); in visionox_r66451_probe()
350 dev_err(&dsi->dev, "Failed to detach DSI host: %d\n", ret); in visionox_r66451_remove()
352 drm_panel_remove(&ctx->panel); in visionox_r66451_remove()
365 .name = "panel-visionox-r66451",