Lines Matching refs:panel
3 * Panel driver for the WideChips WS2401 480x800 DPI RGB panel, used in
34 #define WS2401_READ_ID1 0xda /* Read panel ID 1 */
35 #define WS2401_READ_ID2 0xdb /* Read panel ID 2 */
36 #define WS2401_READ_ID3 0xdc /* Read panel ID 3 */
58 * struct ws2401 - state container for a panel controlled by the WS2401
66 /** @panel: the DRM panel instance for this device */
67 struct drm_panel panel;
68 /** @width: the width of this panel in mm */
70 /** @height: the height of this panel in mm */
82 * The vendor driver states that the "SMD panel" has a clock
99 static inline struct ws2401 *to_ws2401(struct drm_panel *panel)
101 return container_of(panel, struct ws2401, panel);
214 * L2 accesses to the panel so we close the door on our way out.
231 static int ws2401_unprepare(struct drm_panel *panel)
233 struct ws2401 *ws = to_ws2401(panel);
241 return ws2401_power_off(to_ws2401(panel));
244 static int ws2401_disable(struct drm_panel *panel)
246 struct ws2401 *ws = to_ws2401(panel);
255 static int ws2401_prepare(struct drm_panel *panel)
257 return ws2401_power_on(to_ws2401(panel));
260 static int ws2401_enable(struct drm_panel *panel)
262 struct ws2401 *ws = to_ws2401(panel);
272 * @panel: the panel to get the mode for
275 static int ws2401_get_modes(struct drm_panel *panel,
278 struct ws2401 *ws = to_ws2401(panel);
286 * the target panel needs.
382 drm_panel_init(&ws->panel, dev, &ws2401_drm_funcs,
385 ret = drm_panel_of_backlight(&ws->panel);
390 if (!ws->panel.backlight) {
392 ws->panel.backlight =
395 if (IS_ERR(ws->panel.backlight))
396 return dev_err_probe(dev, PTR_ERR(ws->panel.backlight),
404 drm_panel_add(&ws->panel);
405 dev_dbg(dev, "added panel\n");
414 drm_panel_remove(&ws->panel);
439 .name = "ws2401-panel",
446 MODULE_DESCRIPTION("Samsung WS2401 panel driver");