Lines Matching refs:pinfo

60 static void disable_gpios(struct panel_info *pinfo)  in disable_gpios()  argument
62 gpiod_set_value(pinfo->enable_gpio, 0); in disable_gpios()
63 gpiod_set_value(pinfo->pp33_gpio, 0); in disable_gpios()
64 gpiod_set_value(pinfo->pp18_gpio, 0); in disable_gpios()
69 struct panel_info *pinfo = to_panel_info(panel); in send_mipi_cmds() local
73 for (i = 0; i < pinfo->desc->on_cmds_num; i++) { in send_mipi_cmds()
74 err = mipi_dsi_dcs_write_buffer(pinfo->link, &cmds[i], in send_mipi_cmds()
86 struct panel_info *pinfo = to_panel_info(panel); in boe_panel_disable() local
89 if (!pinfo->enabled) in boe_panel_disable()
92 err = mipi_dsi_dcs_set_display_off(pinfo->link); in boe_panel_disable()
98 pinfo->enabled = false; in boe_panel_disable()
105 struct panel_info *pinfo = to_panel_info(panel); in boe_panel_unprepare() local
108 if (!pinfo->prepared) in boe_panel_unprepare()
111 err = mipi_dsi_dcs_set_display_off(pinfo->link); in boe_panel_unprepare()
115 err = mipi_dsi_dcs_enter_sleep_mode(pinfo->link); in boe_panel_unprepare()
122 disable_gpios(pinfo); in boe_panel_unprepare()
124 pinfo->prepared = false; in boe_panel_unprepare()
131 struct panel_info *pinfo = to_panel_info(panel); in boe_panel_prepare() local
134 if (pinfo->prepared) in boe_panel_prepare()
137 gpiod_set_value(pinfo->pp18_gpio, 1); in boe_panel_prepare()
140 gpiod_set_value(pinfo->pp33_gpio, 1); in boe_panel_prepare()
145 gpiod_set_value(pinfo->enable_gpio, 1); in boe_panel_prepare()
149 gpiod_set_value(pinfo->enable_gpio, 0); in boe_panel_prepare()
153 gpiod_set_value(pinfo->enable_gpio, 1); in boe_panel_prepare()
159 err = send_mipi_cmds(panel, pinfo->desc->on_cmds); in boe_panel_prepare()
165 err = mipi_dsi_dcs_exit_sleep_mode(pinfo->link); in boe_panel_prepare()
174 err = mipi_dsi_dcs_set_display_on(pinfo->link); in boe_panel_prepare()
183 pinfo->prepared = true; in boe_panel_prepare()
188 disable_gpios(pinfo); in boe_panel_prepare()
194 struct panel_info *pinfo = to_panel_info(panel); in boe_panel_enable() local
197 if (pinfo->enabled) in boe_panel_enable()
202 ret = mipi_dsi_dcs_set_display_on(pinfo->link); in boe_panel_enable()
208 pinfo->enabled = true; in boe_panel_enable()
216 struct panel_info *pinfo = to_panel_info(panel); in boe_panel_get_modes() local
217 const struct drm_display_mode *m = pinfo->desc->display_mode; in boe_panel_get_modes()
222 dev_err(pinfo->base.dev, "failed to add mode %ux%u@%u\n", in boe_panel_get_modes()
231 connector->display_info.width_mm = pinfo->desc->width_mm; in boe_panel_get_modes()
232 connector->display_info.height_mm = pinfo->desc->height_mm; in boe_panel_get_modes()
233 connector->display_info.bpc = pinfo->desc->bpc; in boe_panel_get_modes()
850 static int panel_add(struct panel_info *pinfo) in panel_add() argument
852 struct device *dev = &pinfo->link->dev; in panel_add()
855 pinfo->pp18_gpio = devm_gpiod_get(dev, "pp18", GPIOD_OUT_HIGH); in panel_add()
856 if (IS_ERR(pinfo->pp18_gpio)) { in panel_add()
857 ret = PTR_ERR(pinfo->pp18_gpio); in panel_add()
863 pinfo->pp33_gpio = devm_gpiod_get(dev, "pp33", GPIOD_OUT_HIGH); in panel_add()
864 if (IS_ERR(pinfo->pp33_gpio)) { in panel_add()
865 ret = PTR_ERR(pinfo->pp33_gpio); in panel_add()
871 pinfo->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_HIGH); in panel_add()
872 if (IS_ERR(pinfo->enable_gpio)) { in panel_add()
873 ret = PTR_ERR(pinfo->enable_gpio); in panel_add()
879 drm_panel_init(&pinfo->base, dev, &panel_funcs, in panel_add()
882 ret = drm_panel_of_backlight(&pinfo->base); in panel_add()
886 drm_panel_add(&pinfo->base); in panel_add()
893 struct panel_info *pinfo; in panel_probe() local
897 pinfo = devm_kzalloc(&dsi->dev, sizeof(*pinfo), GFP_KERNEL); in panel_probe()
898 if (!pinfo) in panel_probe()
905 pinfo->desc = desc; in panel_probe()
907 pinfo->link = dsi; in panel_probe()
908 mipi_dsi_set_drvdata(dsi, pinfo); in panel_probe()
910 err = panel_add(pinfo); in panel_probe()
916 drm_panel_remove(&pinfo->base); in panel_probe()
923 struct panel_info *pinfo = mipi_dsi_get_drvdata(dsi); in panel_remove() local
926 err = boe_panel_disable(&pinfo->base); in panel_remove()
930 err = boe_panel_unprepare(&pinfo->base); in panel_remove()
938 drm_panel_remove(&pinfo->base); in panel_remove()
943 struct panel_info *pinfo = mipi_dsi_get_drvdata(dsi); in panel_shutdown() local
945 boe_panel_disable(&pinfo->base); in panel_shutdown()
946 boe_panel_unprepare(&pinfo->base); in panel_shutdown()