Lines Matching defs:pinfo

57 	int (*init_sequence)(struct panel_info *pinfo);
68 static int elish_boe_init_sequence(struct panel_info *pinfo)
70 struct mipi_dsi_device *dsi0 = pinfo->dsi[0];
71 struct mipi_dsi_device *dsi1 = pinfo->dsi[1];
288 static int elish_csot_init_sequence(struct panel_info *pinfo)
290 struct mipi_dsi_device *dsi0 = pinfo->dsi[0];
291 struct mipi_dsi_device *dsi1 = pinfo->dsi[1];
486 static int j606f_boe_init_sequence(struct panel_info *pinfo)
488 struct mipi_dsi_device *dsi = pinfo->dsi[0];
1032 static void nt36523_reset(struct panel_info *pinfo)
1034 gpiod_set_value_cansleep(pinfo->reset_gpio, 1);
1036 gpiod_set_value_cansleep(pinfo->reset_gpio, 0);
1038 gpiod_set_value_cansleep(pinfo->reset_gpio, 1);
1040 gpiod_set_value_cansleep(pinfo->reset_gpio, 0);
1046 struct panel_info *pinfo = to_panel_info(panel);
1049 if (pinfo->prepared)
1052 ret = regulator_enable(pinfo->vddio);
1058 nt36523_reset(pinfo);
1060 ret = pinfo->desc->init_sequence(pinfo);
1062 regulator_disable(pinfo->vddio);
1067 pinfo->prepared = true;
1074 struct panel_info *pinfo = to_panel_info(panel);
1077 for (i = 0; i < DSI_NUM_MIN + pinfo->desc->is_dual_dsi; i++) {
1078 ret = mipi_dsi_dcs_set_display_off(pinfo->dsi[i]);
1080 dev_err(&pinfo->dsi[i]->dev, "failed to set display off: %d\n", ret);
1083 for (i = 0; i < DSI_NUM_MIN + pinfo->desc->is_dual_dsi; i++) {
1084 ret = mipi_dsi_dcs_enter_sleep_mode(pinfo->dsi[i]);
1086 dev_err(&pinfo->dsi[i]->dev, "failed to enter sleep mode: %d\n", ret);
1096 struct panel_info *pinfo = to_panel_info(panel);
1098 if (!pinfo->prepared)
1101 gpiod_set_value_cansleep(pinfo->reset_gpio, 1);
1102 regulator_disable(pinfo->vddio);
1104 pinfo->prepared = false;
1111 struct panel_info *pinfo = mipi_dsi_get_drvdata(dsi);
1114 ret = mipi_dsi_detach(pinfo->dsi[0]);
1118 if (pinfo->desc->is_dual_dsi) {
1119 ret = mipi_dsi_detach(pinfo->dsi[1]);
1121 dev_err(&pinfo->dsi[1]->dev, "failed to detach from DSI1 host: %d\n", ret);
1122 mipi_dsi_device_unregister(pinfo->dsi[1]);
1125 drm_panel_remove(&pinfo->panel);
1131 struct panel_info *pinfo = to_panel_info(panel);
1134 for (i = 0; i < pinfo->desc->num_modes; i++) {
1135 const struct drm_display_mode *m = &pinfo->desc->modes[i];
1153 connector->display_info.width_mm = pinfo->desc->width_mm;
1154 connector->display_info.height_mm = pinfo->desc->height_mm;
1155 connector->display_info.bpc = pinfo->desc->bpc;
1157 return pinfo->desc->num_modes;
1162 struct panel_info *pinfo = to_panel_info(panel);
1164 return pinfo->orientation;
1233 struct panel_info *pinfo;
1237 pinfo = devm_kzalloc(dev, sizeof(*pinfo), GFP_KERNEL);
1238 if (!pinfo)
1241 pinfo->vddio = devm_regulator_get(dev, "vddio");
1242 if (IS_ERR(pinfo->vddio))
1243 return dev_err_probe(dev, PTR_ERR(pinfo->vddio), "failed to get vddio regulator\n");
1245 pinfo->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH);
1246 if (IS_ERR(pinfo->reset_gpio))
1247 return dev_err_probe(dev, PTR_ERR(pinfo->reset_gpio), "failed to get reset gpio\n");
1249 pinfo->desc = of_device_get_match_data(dev);
1250 if (!pinfo->desc)
1254 if (pinfo->desc->is_dual_dsi) {
1255 info = &pinfo->desc->dsi_info;
1268 pinfo->dsi[1] = mipi_dsi_device_register_full(dsi1_host, info);
1269 if (IS_ERR(pinfo->dsi[1])) {
1271 return PTR_ERR(pinfo->dsi[1]);
1275 pinfo->dsi[0] = dsi;
1276 mipi_dsi_set_drvdata(dsi, pinfo);
1277 drm_panel_init(&pinfo->panel, dev, &nt36523_panel_funcs, DRM_MODE_CONNECTOR_DSI);
1279 ret = of_drm_get_panel_orientation(dev->of_node, &pinfo->orientation);
1285 if (pinfo->desc->has_dcs_backlight) {
1286 pinfo->panel.backlight = nt36523_create_backlight(dsi);
1287 if (IS_ERR(pinfo->panel.backlight))
1288 return dev_err_probe(dev, PTR_ERR(pinfo->panel.backlight),
1291 ret = drm_panel_of_backlight(&pinfo->panel);
1296 drm_panel_add(&pinfo->panel);
1298 for (i = 0; i < DSI_NUM_MIN + pinfo->desc->is_dual_dsi; i++) {
1299 pinfo->dsi[i]->lanes = pinfo->desc->lanes;
1300 pinfo->dsi[i]->format = pinfo->desc->format;
1301 pinfo->dsi[i]->mode_flags = pinfo->desc->mode_flags;
1303 ret = mipi_dsi_attach(pinfo->dsi[i]);