Lines Matching +full:vpnl +full:- +full:supply

1 // SPDX-License-Identifier: GPL-2.0+
3 * Copyright (C) 2019-2024 Linaro Ltd
44 struct mipi_dsi_multi_context ctx = { .dsi = sw43408->link };
53 gpiod_set_value(sw43408->reset_gpio, 1);
55 ret = regulator_bulk_disable(ARRAY_SIZE(sw43408->supplies), sw43408->supplies);
63 struct mipi_dsi_multi_context ctx = { .dsi = sw43408->link };
104 sw43408->link->mode_flags &= ~MIPI_DSI_MODE_LPM;
106 drm_dsc_pps_payload_pack(&pps, sw43408->link->dsc);
110 sw43408->link->mode_flags |= MIPI_DSI_MODE_LPM;
127 ret = regulator_bulk_enable(ARRAY_SIZE(ctx->supplies), ctx->supplies);
133 gpiod_set_value(ctx->reset_gpio, 0);
135 gpiod_set_value(ctx->reset_gpio, 1);
137 gpiod_set_value(ctx->reset_gpio, 0);
147 gpiod_set_value(ctx->reset_gpio, 1);
148 regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies);
191 struct device *dev = &ctx->link->dev;
198 ctx->base.backlight = devm_backlight_device_register(dev, dev_name(dev), dev,
199 ctx->link,
203 if (IS_ERR(ctx->base.backlight))
204 return dev_err_probe(dev, PTR_ERR(ctx->base.backlight),
224 struct device *dev = &ctx->link->dev;
227 ctx->supplies[0].supply = "vddi"; /* 1.88 V */
228 ctx->supplies[0].init_load_uA = 62000;
229 ctx->supplies[1].supply = "vpnl"; /* 3.0 V */
230 ctx->supplies[1].init_load_uA = 857000;
232 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(ctx->supplies),
233 ctx->supplies);
237 ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
238 if (IS_ERR(ctx->reset_gpio)) {
239 ret = PTR_ERR(ctx->reset_gpio);
247 ctx->base.prepare_prev_first = true;
249 drm_panel_add(&ctx->base);
258 ctx = devm_drm_panel_alloc(&dsi->dev, __typeof(*ctx), base,
264 dsi->mode_flags = MIPI_DSI_MODE_LPM;
265 dsi->format = MIPI_DSI_FMT_RGB888;
266 dsi->lanes = 4;
268 ctx->link = dsi;
276 ctx->dsc.dsc_version_major = 0x1;
277 ctx->dsc.dsc_version_minor = 0x1;
280 ctx->dsc.slice_height = 16;
281 ctx->dsc.slice_width = 540;
282 ctx->dsc.slice_count = 2;
283 ctx->dsc.bits_per_component = 8;
284 ctx->dsc.bits_per_pixel = 8 << 4;
285 ctx->dsc.block_pred_enable = true;
287 dsi->dsc = &ctx->dsc;
297 ret = sw43408_unprepare(&ctx->base);
299 dev_err(&dsi->dev, "failed to unprepare panel: %d\n", ret);
303 dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", ret);
305 drm_panel_remove(&ctx->base);
310 .name = "panel-lg-sw43408",
319 MODULE_DESCRIPTION("LG SW436408 MIPI-DSI LED panel");