Lines Matching full:panel

3  * Novatek NT39016 TFT LCD panel driver
65 static inline struct nt39016 *to_nt39016(struct drm_panel *panel) in to_nt39016() argument
67 return container_of(panel, struct nt39016, drm_panel); in to_nt39016()
120 struct nt39016 *panel = to_nt39016(drm_panel); in nt39016_prepare() local
123 err = regulator_enable(panel->supply); in nt39016_prepare()
135 gpiod_set_value_cansleep(panel->reset_gpio, 1); in nt39016_prepare()
137 gpiod_set_value_cansleep(panel->reset_gpio, 0); in nt39016_prepare()
141 err = regmap_multi_reg_write(panel->map, nt39016_panel_regs, in nt39016_prepare()
151 regulator_disable(panel->supply); in nt39016_prepare()
157 struct nt39016 *panel = to_nt39016(drm_panel); in nt39016_unprepare() local
159 gpiod_set_value_cansleep(panel->reset_gpio, 1); in nt39016_unprepare()
161 regulator_disable(panel->supply); in nt39016_unprepare()
168 struct nt39016 *panel = to_nt39016(drm_panel); in nt39016_enable() local
171 ret = regmap_write(panel->map, NT39016_REG_SYSTEM, in nt39016_enable()
174 dev_err(drm_panel->dev, "Unable to enable panel: %d\n", ret); in nt39016_enable()
188 struct nt39016 *panel = to_nt39016(drm_panel); in nt39016_disable() local
191 err = regmap_write(panel->map, NT39016_REG_SYSTEM, in nt39016_disable()
194 dev_err(drm_panel->dev, "Unable to disable panel: %d\n", err); in nt39016_disable()
204 struct nt39016 *panel = to_nt39016(drm_panel); in nt39016_get_modes() local
205 const struct nt39016_panel_info *panel_info = panel->panel_info; in nt39016_get_modes()
246 struct nt39016 *panel; in nt39016_probe() local
249 panel = devm_kzalloc(dev, sizeof(*panel), GFP_KERNEL); in nt39016_probe()
250 if (!panel) in nt39016_probe()
253 spi_set_drvdata(spi, panel); in nt39016_probe()
255 panel->panel_info = of_device_get_match_data(dev); in nt39016_probe()
256 if (!panel->panel_info) in nt39016_probe()
259 panel->supply = devm_regulator_get(dev, "power"); in nt39016_probe()
260 if (IS_ERR(panel->supply)) in nt39016_probe()
261 return dev_err_probe(dev, PTR_ERR(panel->supply), in nt39016_probe()
264 panel->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH); in nt39016_probe()
265 if (IS_ERR(panel->reset_gpio)) in nt39016_probe()
266 return dev_err_probe(dev, PTR_ERR(panel->reset_gpio), "Failed to get reset GPIO\n"); in nt39016_probe()
276 panel->map = devm_regmap_init_spi(spi, &nt39016_regmap_config); in nt39016_probe()
277 if (IS_ERR(panel->map)) { in nt39016_probe()
279 return PTR_ERR(panel->map); in nt39016_probe()
282 drm_panel_init(&panel->drm_panel, dev, &nt39016_funcs, in nt39016_probe()
285 err = drm_panel_of_backlight(&panel->drm_panel); in nt39016_probe()
289 drm_panel_add(&panel->drm_panel); in nt39016_probe()
296 struct nt39016 *panel = spi_get_drvdata(spi); in nt39016_remove() local
298 drm_panel_remove(&panel->drm_panel); in nt39016_remove()
300 nt39016_disable(&panel->drm_panel); in nt39016_remove()
301 nt39016_unprepare(&panel->drm_panel); in nt39016_remove()
359 MODULE_DESCRIPTION("Novatek NT39016 TFT LCD panel driver");