Lines Matching +full:jd9365da +full:- +full:h3

1 // SPDX-License-Identifier: GPL-2.0+
7 * - Jagan Teki <jagan@amarulasolutions.com>
8 * - Stephen Chen <stephen@radxa.com>
53 struct device *dev = panel->dev; in jadard_enable()
55 const struct jadard_panel_desc *desc = jadard->desc; in jadard_enable()
56 struct mipi_dsi_device *dsi = jadard->dsi; in jadard_enable()
62 for (i = 0; i < desc->num_init_cmds; i++) { in jadard_enable()
63 const struct jadard_init_cmd *cmd = &desc->init_cmds[i]; in jadard_enable()
65 err = mipi_dsi_dcs_write_buffer(dsi, cmd->data, JD9365DA_INIT_CMD_LEN); in jadard_enable()
85 struct device *dev = panel->dev; in jadard_disable()
89 ret = mipi_dsi_dcs_set_display_off(jadard->dsi); in jadard_disable()
93 ret = mipi_dsi_dcs_enter_sleep_mode(jadard->dsi); in jadard_disable()
105 ret = regulator_enable(jadard->vccio); in jadard_prepare()
109 ret = regulator_enable(jadard->vdd); in jadard_prepare()
113 gpiod_set_value(jadard->reset, 1); in jadard_prepare()
116 gpiod_set_value(jadard->reset, 0); in jadard_prepare()
119 gpiod_set_value(jadard->reset, 1); in jadard_prepare()
129 gpiod_set_value(jadard->reset, 1); in jadard_unprepare()
132 regulator_disable(jadard->vdd); in jadard_unprepare()
133 regulator_disable(jadard->vccio); in jadard_unprepare()
142 const struct drm_display_mode *desc_mode = &jadard->desc->mode; in jadard_get_modes()
145 mode = drm_mode_duplicate(connector->dev, desc_mode); in jadard_get_modes()
147 DRM_DEV_ERROR(&jadard->dsi->dev, "failed to add mode %ux%ux@%u\n", in jadard_get_modes()
148 desc_mode->hdisplay, desc_mode->vdisplay, in jadard_get_modes()
150 return -ENOMEM; in jadard_get_modes()
156 connector->display_info.width_mm = mode->width_mm; in jadard_get_modes()
157 connector->display_info.height_mm = mode->height_mm; in jadard_get_modes()
589 struct device *dev = &dsi->dev; in jadard_dsi_probe()
594 jadard = devm_kzalloc(&dsi->dev, sizeof(*jadard), GFP_KERNEL); in jadard_dsi_probe()
596 return -ENOMEM; in jadard_dsi_probe()
599 dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | in jadard_dsi_probe()
601 dsi->format = desc->format; in jadard_dsi_probe()
602 dsi->lanes = desc->lanes; in jadard_dsi_probe()
604 jadard->reset = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW); in jadard_dsi_probe()
605 if (IS_ERR(jadard->reset)) { in jadard_dsi_probe()
606 DRM_DEV_ERROR(&dsi->dev, "failed to get our reset GPIO\n"); in jadard_dsi_probe()
607 return PTR_ERR(jadard->reset); in jadard_dsi_probe()
610 jadard->vdd = devm_regulator_get(dev, "vdd"); in jadard_dsi_probe()
611 if (IS_ERR(jadard->vdd)) { in jadard_dsi_probe()
612 DRM_DEV_ERROR(&dsi->dev, "failed to get vdd regulator\n"); in jadard_dsi_probe()
613 return PTR_ERR(jadard->vdd); in jadard_dsi_probe()
616 jadard->vccio = devm_regulator_get(dev, "vccio"); in jadard_dsi_probe()
617 if (IS_ERR(jadard->vccio)) { in jadard_dsi_probe()
618 DRM_DEV_ERROR(&dsi->dev, "failed to get vccio regulator\n"); in jadard_dsi_probe()
619 return PTR_ERR(jadard->vccio); in jadard_dsi_probe()
622 drm_panel_init(&jadard->panel, dev, &jadard_funcs, in jadard_dsi_probe()
625 ret = drm_panel_of_backlight(&jadard->panel); in jadard_dsi_probe()
629 drm_panel_add(&jadard->panel); in jadard_dsi_probe()
632 jadard->dsi = dsi; in jadard_dsi_probe()
633 jadard->desc = desc; in jadard_dsi_probe()
637 drm_panel_remove(&jadard->panel); in jadard_dsi_probe()
647 drm_panel_remove(&jadard->panel); in jadard_dsi_remove()
656 .compatible = "radxa,display-10hd-ad001",
660 .compatible = "radxa,display-8hd-ad002",
671 .name = "jadard-jd9365da",
679 MODULE_DESCRIPTION("Jadard JD9365DA-H3 WXGA DSI panel");