Lines Matching refs:pinfo
61 static void disable_gpios(struct panel_info *pinfo)
63 gpiod_set_value(pinfo->enable_gpio, 0);
64 gpiod_set_value(pinfo->pp33_gpio, 0);
65 gpiod_set_value(pinfo->pp18_gpio, 0);
70 struct panel_info *pinfo = to_panel_info(panel);
74 for (i = 0; i < pinfo->desc->on_cmds_num; i++) {
75 err = mipi_dsi_dcs_write_buffer(pinfo->link, &cmds[i],
87 struct panel_info *pinfo = to_panel_info(panel);
90 if (!pinfo->enabled)
93 err = mipi_dsi_dcs_set_display_off(pinfo->link);
99 pinfo->enabled = false;
106 struct panel_info *pinfo = to_panel_info(panel);
109 if (!pinfo->prepared)
112 err = mipi_dsi_dcs_set_display_off(pinfo->link);
116 err = mipi_dsi_dcs_enter_sleep_mode(pinfo->link);
123 disable_gpios(pinfo);
125 pinfo->prepared = false;
132 struct panel_info *pinfo = to_panel_info(panel);
135 if (pinfo->prepared)
138 gpiod_set_value(pinfo->pp18_gpio, 1);
141 gpiod_set_value(pinfo->pp33_gpio, 1);
146 gpiod_set_value(pinfo->enable_gpio, 1);
150 gpiod_set_value(pinfo->enable_gpio, 0);
154 gpiod_set_value(pinfo->enable_gpio, 1);
160 err = send_mipi_cmds(panel, pinfo->desc->on_cmds);
166 err = mipi_dsi_dcs_exit_sleep_mode(pinfo->link);
175 err = mipi_dsi_dcs_set_display_on(pinfo->link);
184 pinfo->prepared = true;
189 disable_gpios(pinfo);
195 struct panel_info *pinfo = to_panel_info(panel);
198 if (pinfo->enabled)
203 ret = mipi_dsi_dcs_set_display_on(pinfo->link);
209 pinfo->enabled = true;
217 struct panel_info *pinfo = to_panel_info(panel);
218 const struct drm_display_mode *m = pinfo->desc->display_mode;
223 dev_err(pinfo->base.dev, "failed to add mode %ux%u@%u\n",
232 connector->display_info.width_mm = pinfo->desc->width_mm;
233 connector->display_info.height_mm = pinfo->desc->height_mm;
234 connector->display_info.bpc = pinfo->desc->bpc;
851 static int panel_add(struct panel_info *pinfo)
853 struct device *dev = &pinfo->link->dev;
856 pinfo->pp18_gpio = devm_gpiod_get(dev, "pp18", GPIOD_OUT_HIGH);
857 if (IS_ERR(pinfo->pp18_gpio)) {
858 ret = PTR_ERR(pinfo->pp18_gpio);
864 pinfo->pp33_gpio = devm_gpiod_get(dev, "pp33", GPIOD_OUT_HIGH);
865 if (IS_ERR(pinfo->pp33_gpio)) {
866 ret = PTR_ERR(pinfo->pp33_gpio);
872 pinfo->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_HIGH);
873 if (IS_ERR(pinfo->enable_gpio)) {
874 ret = PTR_ERR(pinfo->enable_gpio);
880 drm_panel_init(&pinfo->base, dev, &panel_funcs,
883 ret = drm_panel_of_backlight(&pinfo->base);
887 drm_panel_add(&pinfo->base);
894 struct panel_info *pinfo;
898 pinfo = devm_kzalloc(&dsi->dev, sizeof(*pinfo), GFP_KERNEL);
899 if (!pinfo)
906 pinfo->desc = desc;
908 pinfo->link = dsi;
909 mipi_dsi_set_drvdata(dsi, pinfo);
911 err = panel_add(pinfo);
917 drm_panel_remove(&pinfo->base);
924 struct panel_info *pinfo = mipi_dsi_get_drvdata(dsi);
927 err = boe_panel_disable(&pinfo->base);
931 err = boe_panel_unprepare(&pinfo->base);
939 drm_panel_remove(&pinfo->base);
946 struct panel_info *pinfo = mipi_dsi_get_drvdata(dsi);
948 boe_panel_disable(&pinfo->base);
949 boe_panel_unprepare(&pinfo->base);