Lines Matching defs:sharp
38 static void sharp_wait_frames(struct sharp_panel *sharp, unsigned int frames)
40 unsigned int refresh = drm_mode_vrefresh(sharp->mode);
48 static int sharp_panel_write(struct sharp_panel *sharp, u16 offset, u8 value)
51 struct mipi_dsi_device *dsi = sharp->link1;
72 static __maybe_unused int sharp_panel_read(struct sharp_panel *sharp,
79 err = mipi_dsi_generic_read(sharp->link1, &offset, sizeof(offset),
82 dev_err(&sharp->link1->dev, "failed to read from %04x: %zd\n",
90 struct sharp_panel *sharp = to_sharp_panel(panel);
92 if (!sharp->enabled)
95 sharp->enabled = false;
102 struct sharp_panel *sharp = to_sharp_panel(panel);
105 if (!sharp->prepared)
108 sharp_wait_frames(sharp, 4);
110 err = mipi_dsi_dcs_set_display_off(sharp->link1);
114 err = mipi_dsi_dcs_enter_sleep_mode(sharp->link1);
120 regulator_disable(sharp->supply);
122 sharp->prepared = false;
163 struct sharp_panel *sharp = to_sharp_panel(panel);
167 if (sharp->prepared)
170 err = regulator_enable(sharp->supply);
182 err = mipi_dsi_dcs_exit_sleep_mode(sharp->link1);
198 err = sharp_panel_write(sharp, 0x1000, 0x2a);
205 err = sharp_panel_write(sharp, 0x1001, 0x01);
211 err = mipi_dsi_dcs_set_pixel_format(sharp->link1, format);
224 err = sharp_setup_symmetrical_split(sharp->link1, sharp->link2,
225 sharp->mode);
232 err = mipi_dsi_dcs_set_display_on(sharp->link1);
238 sharp->prepared = true;
241 sharp_wait_frames(sharp, 6);
246 regulator_disable(sharp->supply);
252 struct sharp_panel *sharp = to_sharp_panel(panel);
254 if (sharp->enabled)
257 sharp->enabled = true;
306 { .compatible = "sharp,lq101r1sx01", },
311 static int sharp_panel_add(struct sharp_panel *sharp)
315 sharp->mode = &default_mode;
317 sharp->supply = devm_regulator_get(&sharp->link1->dev, "power");
318 if (IS_ERR(sharp->supply))
319 return PTR_ERR(sharp->supply);
321 drm_panel_init(&sharp->base, &sharp->link1->dev, &sharp_panel_funcs,
324 ret = drm_panel_of_backlight(&sharp->base);
328 drm_panel_add(&sharp->base);
333 static void sharp_panel_del(struct sharp_panel *sharp)
335 if (sharp->base.dev)
336 drm_panel_remove(&sharp->base);
338 if (sharp->link2)
339 put_device(&sharp->link2->dev);
345 struct sharp_panel *sharp;
365 sharp = devm_kzalloc(&dsi->dev, sizeof(*sharp), GFP_KERNEL);
366 if (!sharp) {
371 mipi_dsi_set_drvdata(dsi, sharp);
373 sharp->link2 = secondary;
374 sharp->link1 = dsi;
376 err = sharp_panel_add(sharp);
386 sharp_panel_del(sharp);
396 struct sharp_panel *sharp = mipi_dsi_get_drvdata(dsi);
400 if (!sharp) {
405 err = drm_panel_disable(&sharp->base);
413 sharp_panel_del(sharp);
420 struct sharp_panel *sharp = mipi_dsi_get_drvdata(dsi);
423 if (!sharp)
426 drm_panel_disable(&sharp->base);
431 .name = "panel-sharp-lq101r1sx01",