Lines Matching full:panel

3  * Novatek NT39016 TFT LCD panel driver
69 static inline struct nt39016 *to_nt39016(struct drm_panel *panel) in to_nt39016() argument
71 return container_of(panel, struct nt39016, drm_panel); in to_nt39016()
124 struct nt39016 *panel = to_nt39016(drm_panel); in nt39016_prepare() local
127 err = regulator_enable(panel->supply); in nt39016_prepare()
129 dev_err(panel->dev, "Failed to enable power supply: %d", err); in nt39016_prepare()
139 gpiod_set_value_cansleep(panel->reset_gpio, 1); in nt39016_prepare()
141 gpiod_set_value_cansleep(panel->reset_gpio, 0); in nt39016_prepare()
145 err = regmap_multi_reg_write(panel->map, nt39016_panel_regs, in nt39016_prepare()
148 dev_err(panel->dev, "Failed to init registers: %d", err); in nt39016_prepare()
155 regulator_disable(panel->supply); in nt39016_prepare()
161 struct nt39016 *panel = to_nt39016(drm_panel); in nt39016_unprepare() local
163 gpiod_set_value_cansleep(panel->reset_gpio, 1); in nt39016_unprepare()
165 regulator_disable(panel->supply); in nt39016_unprepare()
172 struct nt39016 *panel = to_nt39016(drm_panel); in nt39016_enable() local
175 ret = regmap_write(panel->map, NT39016_REG_SYSTEM, in nt39016_enable()
178 dev_err(panel->dev, "Unable to enable panel: %d", ret); in nt39016_enable()
182 if (panel->backlight) { in nt39016_enable()
186 ret = backlight_enable(panel->backlight); in nt39016_enable()
194 struct nt39016 *panel = to_nt39016(drm_panel); in nt39016_disable() local
197 backlight_disable(panel->backlight); in nt39016_disable()
199 err = regmap_write(panel->map, NT39016_REG_SYSTEM, in nt39016_disable()
202 dev_err(panel->dev, "Unable to disable panel: %d", err); in nt39016_disable()
211 struct nt39016 *panel = to_nt39016(drm_panel); in nt39016_get_modes() local
212 const struct nt39016_panel_info *panel_info = panel->panel_info; in nt39016_get_modes()
247 struct nt39016 *panel; in nt39016_probe() local
250 panel = devm_kzalloc(dev, sizeof(*panel), GFP_KERNEL); in nt39016_probe()
251 if (!panel) in nt39016_probe()
254 panel->dev = dev; in nt39016_probe()
255 spi_set_drvdata(spi, panel); in nt39016_probe()
257 panel->panel_info = of_device_get_match_data(dev); in nt39016_probe()
258 if (!panel->panel_info) in nt39016_probe()
261 panel->supply = devm_regulator_get(dev, "power"); in nt39016_probe()
262 if (IS_ERR(panel->supply)) { in nt39016_probe()
264 return PTR_ERR(panel->supply); in nt39016_probe()
267 panel->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH); in nt39016_probe()
268 if (IS_ERR(panel->reset_gpio)) { in nt39016_probe()
270 return PTR_ERR(panel->reset_gpio); in nt39016_probe()
281 panel->map = devm_regmap_init_spi(spi, &nt39016_regmap_config); in nt39016_probe()
282 if (IS_ERR(panel->map)) { in nt39016_probe()
284 return PTR_ERR(panel->map); in nt39016_probe()
287 panel->backlight = devm_of_find_backlight(dev); in nt39016_probe()
288 if (IS_ERR(panel->backlight)) { in nt39016_probe()
289 err = PTR_ERR(panel->backlight); in nt39016_probe()
295 drm_panel_init(&panel->drm_panel); in nt39016_probe()
296 panel->drm_panel.dev = dev; in nt39016_probe()
297 panel->drm_panel.funcs = &nt39016_funcs; in nt39016_probe()
299 err = drm_panel_add(&panel->drm_panel); in nt39016_probe()
301 dev_err(dev, "Failed to register panel"); in nt39016_probe()
310 struct nt39016 *panel = spi_get_drvdata(spi); in nt39016_remove() local
312 drm_panel_remove(&panel->drm_panel); in nt39016_remove()
314 nt39016_disable(&panel->drm_panel); in nt39016_remove()
315 nt39016_unprepare(&panel->drm_panel); in nt39016_remove()