Lines Matching +full:vdd1 +full:- +full:supply

1 // SPDX-License-Identifier: GPL-2.0+
3 * MIPI-DSI Samsung s6d16d0 panel driver. This is a 864x480
4 * AMOLED panel with a command-only DSI interface.
20 struct regulator *supply; member
51 struct mipi_dsi_device *dsi = to_mipi_dsi_device(s6->dev); in s6d16d0_unprepare()
57 dev_err(s6->dev, "failed to enter sleep mode (%d)\n", ret); in s6d16d0_unprepare()
62 gpiod_set_value_cansleep(s6->reset_gpio, 1); in s6d16d0_unprepare()
63 regulator_disable(s6->supply); in s6d16d0_unprepare()
71 struct mipi_dsi_device *dsi = to_mipi_dsi_device(s6->dev); in s6d16d0_prepare()
74 ret = regulator_enable(s6->supply); in s6d16d0_prepare()
76 dev_err(s6->dev, "failed to enable supply (%d)\n", ret); in s6d16d0_prepare()
81 gpiod_set_value_cansleep(s6->reset_gpio, 1); in s6d16d0_prepare()
83 /* De-assert RESET */ in s6d16d0_prepare()
84 gpiod_set_value_cansleep(s6->reset_gpio, 0); in s6d16d0_prepare()
91 dev_err(s6->dev, "failed to enable vblank TE (%d)\n", ret); in s6d16d0_prepare()
97 dev_err(s6->dev, "failed to exit sleep mode (%d)\n", ret); in s6d16d0_prepare()
107 struct mipi_dsi_device *dsi = to_mipi_dsi_device(s6->dev); in s6d16d0_enable()
112 dev_err(s6->dev, "failed to turn display on (%d)\n", ret); in s6d16d0_enable()
122 struct mipi_dsi_device *dsi = to_mipi_dsi_device(s6->dev); in s6d16d0_disable()
127 dev_err(s6->dev, "failed to turn display off (%d)\n", ret); in s6d16d0_disable()
139 mode = drm_mode_duplicate(connector->dev, &samsung_s6d16d0_mode); in s6d16d0_get_modes()
141 dev_err(panel->dev, "bad mode or failed to add mode\n"); in s6d16d0_get_modes()
142 return -EINVAL; in s6d16d0_get_modes()
145 mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; in s6d16d0_get_modes()
147 connector->display_info.width_mm = mode->width_mm; in s6d16d0_get_modes()
148 connector->display_info.height_mm = mode->height_mm; in s6d16d0_get_modes()
165 struct device *dev = &dsi->dev; in s6d16d0_probe()
171 return -ENOMEM; in s6d16d0_probe()
174 s6->dev = dev; in s6d16d0_probe()
176 dsi->lanes = 2; in s6d16d0_probe()
177 dsi->format = MIPI_DSI_FMT_RGB888; in s6d16d0_probe()
178 dsi->hs_rate = 420160000; in s6d16d0_probe()
179 dsi->lp_rate = 19200000; in s6d16d0_probe()
187 dsi->mode_flags = MIPI_DSI_CLOCK_NON_CONTINUOUS; in s6d16d0_probe()
189 s6->supply = devm_regulator_get(dev, "vdd1"); in s6d16d0_probe()
190 if (IS_ERR(s6->supply)) in s6d16d0_probe()
191 return PTR_ERR(s6->supply); in s6d16d0_probe()
194 s6->reset_gpio = devm_gpiod_get_optional(dev, "reset", in s6d16d0_probe()
196 if (IS_ERR(s6->reset_gpio)) { in s6d16d0_probe()
197 ret = PTR_ERR(s6->reset_gpio); in s6d16d0_probe()
198 if (ret != -EPROBE_DEFER) in s6d16d0_probe()
203 drm_panel_init(&s6->panel, dev, &s6d16d0_drm_funcs, in s6d16d0_probe()
206 drm_panel_add(&s6->panel); in s6d16d0_probe()
210 drm_panel_remove(&s6->panel); in s6d16d0_probe()
220 drm_panel_remove(&s6->panel); in s6d16d0_remove()
233 .name = "panel-samsung-s6d16d0",
240 MODULE_DESCRIPTION("MIPI-DSI s6d16d0 Panel Driver");