Lines Matching +full:mcu +full:- +full:reset +full:- +full:gpios
1 // SPDX-License-Identifier: GPL-2.0-only
38 struct mipi_dsi_device *dsi = sharp_nt->dsi; in sharp_nt_panel_init()
41 dsi->mode_flags |= MIPI_DSI_MODE_LPM; in sharp_nt_panel_init()
49 /* Novatek two-lane operation */ in sharp_nt_panel_init()
54 /* Set both MCU and RGB I/F to 24bpp */ in sharp_nt_panel_init()
65 struct mipi_dsi_device *dsi = sharp_nt->dsi; in sharp_nt_panel_on()
68 dsi->mode_flags |= MIPI_DSI_MODE_LPM; in sharp_nt_panel_on()
79 struct mipi_dsi_device *dsi = sharp_nt->dsi; in sharp_nt_panel_off()
82 dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; in sharp_nt_panel_off()
102 dev_err(panel->dev, "failed to set panel off: %d\n", ret); in sharp_nt_panel_unprepare()
106 regulator_disable(sharp_nt->supply); in sharp_nt_panel_unprepare()
107 if (sharp_nt->reset_gpio) in sharp_nt_panel_unprepare()
108 gpiod_set_value(sharp_nt->reset_gpio, 0); in sharp_nt_panel_unprepare()
118 ret = regulator_enable(sharp_nt->supply); in sharp_nt_panel_prepare()
124 if (sharp_nt->reset_gpio) { in sharp_nt_panel_prepare()
125 gpiod_set_value(sharp_nt->reset_gpio, 1); in sharp_nt_panel_prepare()
127 gpiod_set_value(sharp_nt->reset_gpio, 0); in sharp_nt_panel_prepare()
129 gpiod_set_value(sharp_nt->reset_gpio, 1); in sharp_nt_panel_prepare()
135 dev_err(panel->dev, "failed to init panel: %d\n", ret); in sharp_nt_panel_prepare()
141 dev_err(panel->dev, "failed to set panel on: %d\n", ret); in sharp_nt_panel_prepare()
148 regulator_disable(sharp_nt->supply); in sharp_nt_panel_prepare()
149 if (sharp_nt->reset_gpio) in sharp_nt_panel_prepare()
150 gpiod_set_value(sharp_nt->reset_gpio, 0); in sharp_nt_panel_prepare()
171 mode = drm_mode_duplicate(connector->dev, &default_mode); in sharp_nt_panel_get_modes()
173 dev_err(panel->dev, "failed to add mode %ux%u@%u\n", in sharp_nt_panel_get_modes()
176 return -ENOMEM; in sharp_nt_panel_get_modes()
183 connector->display_info.width_mm = 54; in sharp_nt_panel_get_modes()
184 connector->display_info.height_mm = 95; in sharp_nt_panel_get_modes()
197 struct device *dev = &sharp_nt->dsi->dev; in sharp_nt_panel_add()
200 sharp_nt->supply = devm_regulator_get(dev, "avdd"); in sharp_nt_panel_add()
201 if (IS_ERR(sharp_nt->supply)) in sharp_nt_panel_add()
202 return PTR_ERR(sharp_nt->supply); in sharp_nt_panel_add()
204 sharp_nt->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW); in sharp_nt_panel_add()
205 if (IS_ERR(sharp_nt->reset_gpio)) { in sharp_nt_panel_add()
206 dev_err(dev, "cannot get reset-gpios %ld\n", in sharp_nt_panel_add()
207 PTR_ERR(sharp_nt->reset_gpio)); in sharp_nt_panel_add()
208 sharp_nt->reset_gpio = NULL; in sharp_nt_panel_add()
210 gpiod_set_value(sharp_nt->reset_gpio, 0); in sharp_nt_panel_add()
213 drm_panel_init(&sharp_nt->base, &sharp_nt->dsi->dev, in sharp_nt_panel_add()
216 ret = drm_panel_of_backlight(&sharp_nt->base); in sharp_nt_panel_add()
220 drm_panel_add(&sharp_nt->base); in sharp_nt_panel_add()
227 if (sharp_nt->base.dev) in sharp_nt_panel_del()
228 drm_panel_remove(&sharp_nt->base); in sharp_nt_panel_del()
236 dsi->lanes = 2; in sharp_nt_panel_probe()
237 dsi->format = MIPI_DSI_FMT_RGB888; in sharp_nt_panel_probe()
238 dsi->mode_flags = MIPI_DSI_MODE_VIDEO | in sharp_nt_panel_probe()
244 sharp_nt = devm_kzalloc(&dsi->dev, sizeof(*sharp_nt), GFP_KERNEL); in sharp_nt_panel_probe()
246 return -ENOMEM; in sharp_nt_panel_probe()
250 sharp_nt->dsi = dsi; in sharp_nt_panel_probe()
272 dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", ret); in sharp_nt_panel_remove()
278 { .compatible = "sharp,ls043t1le01-qhd", },
285 .name = "panel-sharp-ls043t1le01-qhd",
294 MODULE_DESCRIPTION("Sharp LS043T1LE01 NT35565-based qHD (540x960) video mode panel driver");