Symbol: dlpc
drivers/gpu/drm/bridge/ti-dlpc3433.c
110
struct dlpc *dlpc = bridge_to_dlpc(bridge);
drivers/gpu/drm/bridge/ti-dlpc3433.c
111
struct device *dev = dlpc->dev;
drivers/gpu/drm/bridge/ti-dlpc3433.c
112
struct drm_display_mode *mode = &dlpc->mode;
drivers/gpu/drm/bridge/ti-dlpc3433.c
113
struct regmap *regmap = dlpc->regmap;
drivers/gpu/drm/bridge/ti-dlpc3433.c
175
struct dlpc *dlpc = bridge_to_dlpc(bridge);
drivers/gpu/drm/bridge/ti-dlpc3433.c
178
gpiod_set_value(dlpc->enable_gpio, 1);
drivers/gpu/drm/bridge/ti-dlpc3433.c
182
ret = regulator_enable(dlpc->vcc_intf);
drivers/gpu/drm/bridge/ti-dlpc3433.c
184
DRM_DEV_ERROR(dlpc->dev,
drivers/gpu/drm/bridge/ti-dlpc3433.c
187
ret = regulator_enable(dlpc->vcc_flsh);
drivers/gpu/drm/bridge/ti-dlpc3433.c
189
DRM_DEV_ERROR(dlpc->dev,
drivers/gpu/drm/bridge/ti-dlpc3433.c
198
struct dlpc *dlpc = bridge_to_dlpc(bridge);
drivers/gpu/drm/bridge/ti-dlpc3433.c
200
regulator_disable(dlpc->vcc_flsh);
drivers/gpu/drm/bridge/ti-dlpc3433.c
201
regulator_disable(dlpc->vcc_intf);
drivers/gpu/drm/bridge/ti-dlpc3433.c
205
gpiod_set_value(dlpc->enable_gpio, 0);
drivers/gpu/drm/bridge/ti-dlpc3433.c
240
struct dlpc *dlpc = bridge_to_dlpc(bridge);
drivers/gpu/drm/bridge/ti-dlpc3433.c
242
drm_mode_copy(&dlpc->mode, adjusted_mode);
drivers/gpu/drm/bridge/ti-dlpc3433.c
248
struct dlpc *dlpc = bridge_to_dlpc(bridge);
drivers/gpu/drm/bridge/ti-dlpc3433.c
250
return drm_bridge_attach(encoder, dlpc->next_bridge, bridge, flags);
drivers/gpu/drm/bridge/ti-dlpc3433.c
265
static int dlpc3433_parse_dt(struct dlpc *dlpc)
drivers/gpu/drm/bridge/ti-dlpc3433.c
267
struct device *dev = dlpc->dev;
drivers/gpu/drm/bridge/ti-dlpc3433.c
271
dlpc->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW);
drivers/gpu/drm/bridge/ti-dlpc3433.c
272
if (IS_ERR(dlpc->enable_gpio))
drivers/gpu/drm/bridge/ti-dlpc3433.c
273
return PTR_ERR(dlpc->enable_gpio);
drivers/gpu/drm/bridge/ti-dlpc3433.c
275
dlpc->vcc_intf = devm_regulator_get(dlpc->dev, "vcc_intf");
drivers/gpu/drm/bridge/ti-dlpc3433.c
276
if (IS_ERR(dlpc->vcc_intf))
drivers/gpu/drm/bridge/ti-dlpc3433.c
277
return dev_err_probe(dev, PTR_ERR(dlpc->vcc_intf),
drivers/gpu/drm/bridge/ti-dlpc3433.c
280
dlpc->vcc_flsh = devm_regulator_get(dlpc->dev, "vcc_flsh");
drivers/gpu/drm/bridge/ti-dlpc3433.c
281
if (IS_ERR(dlpc->vcc_flsh))
drivers/gpu/drm/bridge/ti-dlpc3433.c
282
return dev_err_probe(dev, PTR_ERR(dlpc->vcc_flsh),
drivers/gpu/drm/bridge/ti-dlpc3433.c
285
dlpc->next_bridge = devm_drm_of_get_bridge(dev, dev->of_node, 1, 0);
drivers/gpu/drm/bridge/ti-dlpc3433.c
286
if (IS_ERR(dlpc->next_bridge))
drivers/gpu/drm/bridge/ti-dlpc3433.c
287
return PTR_ERR(dlpc->next_bridge);
drivers/gpu/drm/bridge/ti-dlpc3433.c
290
dlpc->dsi_lanes = of_property_count_u32_elems(endpoint, "data-lanes");
drivers/gpu/drm/bridge/ti-dlpc3433.c
291
if (dlpc->dsi_lanes < 0 || dlpc->dsi_lanes > 4) {
drivers/gpu/drm/bridge/ti-dlpc3433.c
296
dlpc->host_node = of_graph_get_remote_port_parent(endpoint);
drivers/gpu/drm/bridge/ti-dlpc3433.c
297
if (!dlpc->host_node) {
drivers/gpu/drm/bridge/ti-dlpc3433.c
307
of_node_put(dlpc->host_node);
drivers/gpu/drm/bridge/ti-dlpc3433.c
313
static int dlpc_host_attach(struct dlpc *dlpc)
drivers/gpu/drm/bridge/ti-dlpc3433.c
315
struct device *dev = dlpc->dev;
drivers/gpu/drm/bridge/ti-dlpc3433.c
324
host = of_find_mipi_dsi_host_by_node(dlpc->host_node);
drivers/gpu/drm/bridge/ti-dlpc3433.c
328
dlpc->dsi = mipi_dsi_device_register_full(host, &info);
drivers/gpu/drm/bridge/ti-dlpc3433.c
329
if (IS_ERR(dlpc->dsi)) {
drivers/gpu/drm/bridge/ti-dlpc3433.c
331
return PTR_ERR(dlpc->dsi);
drivers/gpu/drm/bridge/ti-dlpc3433.c
334
dlpc->dsi->mode_flags = MIPI_DSI_MODE_VIDEO_BURST;
drivers/gpu/drm/bridge/ti-dlpc3433.c
335
dlpc->dsi->format = MIPI_DSI_FMT_RGB565;
drivers/gpu/drm/bridge/ti-dlpc3433.c
336
dlpc->dsi->lanes = dlpc->dsi_lanes;
drivers/gpu/drm/bridge/ti-dlpc3433.c
338
ret = devm_mipi_dsi_attach(dev, dlpc->dsi);
drivers/gpu/drm/bridge/ti-dlpc3433.c
348
struct dlpc *dlpc;
drivers/gpu/drm/bridge/ti-dlpc3433.c
351
dlpc = devm_drm_bridge_alloc(dev, struct dlpc, bridge,
drivers/gpu/drm/bridge/ti-dlpc3433.c
353
if (IS_ERR(dlpc))
drivers/gpu/drm/bridge/ti-dlpc3433.c
354
return PTR_ERR(dlpc);
drivers/gpu/drm/bridge/ti-dlpc3433.c
356
dlpc->dev = dev;
drivers/gpu/drm/bridge/ti-dlpc3433.c
358
dlpc->regmap = devm_regmap_init_i2c(client, &dlpc_regmap_config);
drivers/gpu/drm/bridge/ti-dlpc3433.c
359
if (IS_ERR(dlpc->regmap))
drivers/gpu/drm/bridge/ti-dlpc3433.c
360
return PTR_ERR(dlpc->regmap);
drivers/gpu/drm/bridge/ti-dlpc3433.c
362
ret = dlpc3433_parse_dt(dlpc);
drivers/gpu/drm/bridge/ti-dlpc3433.c
366
dev_set_drvdata(dev, dlpc);
drivers/gpu/drm/bridge/ti-dlpc3433.c
367
i2c_set_clientdata(client, dlpc);
drivers/gpu/drm/bridge/ti-dlpc3433.c
369
dlpc->bridge.of_node = dev->of_node;
drivers/gpu/drm/bridge/ti-dlpc3433.c
370
drm_bridge_add(&dlpc->bridge);
drivers/gpu/drm/bridge/ti-dlpc3433.c
372
ret = dlpc_host_attach(dlpc);
drivers/gpu/drm/bridge/ti-dlpc3433.c
379
drm_bridge_remove(&dlpc->bridge);
drivers/gpu/drm/bridge/ti-dlpc3433.c
385
struct dlpc *dlpc = i2c_get_clientdata(client);
drivers/gpu/drm/bridge/ti-dlpc3433.c
387
drm_bridge_remove(&dlpc->bridge);
drivers/gpu/drm/bridge/ti-dlpc3433.c
388
of_node_put(dlpc->host_node);
drivers/gpu/drm/bridge/ti-dlpc3433.c
70
static inline struct dlpc *bridge_to_dlpc(struct drm_bridge *bridge)
drivers/gpu/drm/bridge/ti-dlpc3433.c
72
return container_of(bridge, struct dlpc, bridge);