Lines Matching refs:pinfo

60 static void disable_gpios(struct panel_info *pinfo)
62 gpiod_set_value(pinfo->enable_gpio, 0);
63 gpiod_set_value(pinfo->pp33_gpio, 0);
64 gpiod_set_value(pinfo->pp18_gpio, 0);
69 struct panel_info *pinfo = to_panel_info(panel);
73 for (i = 0; i < pinfo->desc->on_cmds_num; i++) {
74 err = mipi_dsi_dcs_write_buffer(pinfo->link, &cmds[i],
86 struct panel_info *pinfo = to_panel_info(panel);
89 if (!pinfo->enabled)
92 err = mipi_dsi_dcs_set_display_off(pinfo->link);
98 pinfo->enabled = false;
105 struct panel_info *pinfo = to_panel_info(panel);
108 if (!pinfo->prepared)
111 err = mipi_dsi_dcs_set_display_off(pinfo->link);
115 err = mipi_dsi_dcs_enter_sleep_mode(pinfo->link);
122 disable_gpios(pinfo);
124 pinfo->prepared = false;
131 struct panel_info *pinfo = to_panel_info(panel);
134 if (pinfo->prepared)
137 gpiod_set_value(pinfo->pp18_gpio, 1);
140 gpiod_set_value(pinfo->pp33_gpio, 1);
145 gpiod_set_value(pinfo->enable_gpio, 1);
149 gpiod_set_value(pinfo->enable_gpio, 0);
153 gpiod_set_value(pinfo->enable_gpio, 1);
159 err = send_mipi_cmds(panel, pinfo->desc->on_cmds);
165 err = mipi_dsi_dcs_exit_sleep_mode(pinfo->link);
174 err = mipi_dsi_dcs_set_display_on(pinfo->link);
183 pinfo->prepared = true;
188 disable_gpios(pinfo);
194 struct panel_info *pinfo = to_panel_info(panel);
197 if (pinfo->enabled)
202 ret = mipi_dsi_dcs_set_display_on(pinfo->link);
208 pinfo->enabled = true;
216 struct panel_info *pinfo = to_panel_info(panel);
217 const struct drm_display_mode *m = pinfo->desc->display_mode;
222 dev_err(pinfo->base.dev, "failed to add mode %ux%u@%u\n",
231 connector->display_info.width_mm = pinfo->desc->width_mm;
232 connector->display_info.height_mm = pinfo->desc->height_mm;
233 connector->display_info.bpc = pinfo->desc->bpc;
850 static int panel_add(struct panel_info *pinfo)
852 struct device *dev = &pinfo->link->dev;
855 pinfo->pp18_gpio = devm_gpiod_get(dev, "pp18", GPIOD_OUT_HIGH);
856 if (IS_ERR(pinfo->pp18_gpio)) {
857 return dev_err_probe(dev, PTR_ERR(pinfo->pp18_gpio),
861 pinfo->pp33_gpio = devm_gpiod_get(dev, "pp33", GPIOD_OUT_HIGH);
862 if (IS_ERR(pinfo->pp33_gpio)) {
863 return dev_err_probe(dev, PTR_ERR(pinfo->pp33_gpio),
867 pinfo->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_HIGH);
868 if (IS_ERR(pinfo->enable_gpio)) {
869 return dev_err_probe(dev, PTR_ERR(pinfo->enable_gpio),
873 drm_panel_init(&pinfo->base, dev, &panel_funcs,
876 ret = drm_panel_of_backlight(&pinfo->base);
880 drm_panel_add(&pinfo->base);
887 struct panel_info *pinfo;
891 pinfo = devm_kzalloc(&dsi->dev, sizeof(*pinfo), GFP_KERNEL);
892 if (!pinfo)
899 pinfo->desc = desc;
901 pinfo->link = dsi;
902 mipi_dsi_set_drvdata(dsi, pinfo);
904 err = panel_add(pinfo);
910 drm_panel_remove(&pinfo->base);
917 struct panel_info *pinfo = mipi_dsi_get_drvdata(dsi);
920 err = boe_panel_disable(&pinfo->base);
924 err = boe_panel_unprepare(&pinfo->base);
932 drm_panel_remove(&pinfo->base);
937 struct panel_info *pinfo = mipi_dsi_get_drvdata(dsi);
939 boe_panel_disable(&pinfo->base);
940 boe_panel_unprepare(&pinfo->base);