Lines Matching +full:panel +full:- +full:lvds

1 // SPDX-License-Identifier: GPL-2.0-or-later
27 return drm_bridge_attach(bridge->encoder, lvds_encoder->panel_bridge, in lvds_encoder_attach()
37 if (lvds_encoder->powerdown_gpio) in lvds_encoder_enable()
38 gpiod_set_value_cansleep(lvds_encoder->powerdown_gpio, 0); in lvds_encoder_enable()
47 if (lvds_encoder->powerdown_gpio) in lvds_encoder_disable()
48 gpiod_set_value_cansleep(lvds_encoder->powerdown_gpio, 1); in lvds_encoder_disable()
59 struct device *dev = &pdev->dev; in lvds_encoder_probe()
63 struct drm_panel *panel; in lvds_encoder_probe() local
68 return -ENOMEM; in lvds_encoder_probe()
70 lvds_encoder->powerdown_gpio = devm_gpiod_get_optional(dev, "powerdown", in lvds_encoder_probe()
72 if (IS_ERR(lvds_encoder->powerdown_gpio)) { in lvds_encoder_probe()
73 int err = PTR_ERR(lvds_encoder->powerdown_gpio); in lvds_encoder_probe()
75 if (err != -EPROBE_DEFER) in lvds_encoder_probe()
80 /* Locate the panel DT node. */ in lvds_encoder_probe()
81 port = of_graph_get_port_by_id(dev->of_node, 1); in lvds_encoder_probe()
84 return -ENXIO; in lvds_encoder_probe()
91 return -ENXIO; in lvds_encoder_probe()
98 return -ENXIO; in lvds_encoder_probe()
101 panel = of_drm_find_panel(panel_node); in lvds_encoder_probe()
103 if (IS_ERR(panel)) { in lvds_encoder_probe()
104 dev_dbg(dev, "panel not found, deferring probe\n"); in lvds_encoder_probe()
105 return PTR_ERR(panel); in lvds_encoder_probe()
108 lvds_encoder->panel_bridge = in lvds_encoder_probe()
109 devm_drm_panel_bridge_add(dev, panel, DRM_MODE_CONNECTOR_LVDS); in lvds_encoder_probe()
110 if (IS_ERR(lvds_encoder->panel_bridge)) in lvds_encoder_probe()
111 return PTR_ERR(lvds_encoder->panel_bridge); in lvds_encoder_probe()
113 /* The panel_bridge bridge is attached to the panel's of_node, in lvds_encoder_probe()
117 lvds_encoder->bridge.of_node = dev->of_node; in lvds_encoder_probe()
118 lvds_encoder->bridge.funcs = &funcs; in lvds_encoder_probe()
119 drm_bridge_add(&lvds_encoder->bridge); in lvds_encoder_probe()
130 drm_bridge_remove(&lvds_encoder->bridge); in lvds_encoder_remove()
136 { .compatible = "lvds-encoder" },
146 .name = "lvds-encoder",
153 MODULE_DESCRIPTION("Transparent parallel to LVDS encoder");