Symbol: fsl_ldb
drivers/gpu/drm/bridge/fsl-ldb.c
102
static inline struct fsl_ldb *to_fsl_ldb(struct drm_bridge *bridge)
drivers/gpu/drm/bridge/fsl-ldb.c
104
return container_of(bridge, struct fsl_ldb, bridge);
drivers/gpu/drm/bridge/fsl-ldb.c
107
static unsigned long fsl_ldb_link_frequency(struct fsl_ldb *fsl_ldb, int clock)
drivers/gpu/drm/bridge/fsl-ldb.c
109
if (fsl_ldb_is_dual(fsl_ldb))
drivers/gpu/drm/bridge/fsl-ldb.c
119
struct fsl_ldb *fsl_ldb = to_fsl_ldb(bridge);
drivers/gpu/drm/bridge/fsl-ldb.c
121
return drm_bridge_attach(encoder, fsl_ldb->panel_bridge,
drivers/gpu/drm/bridge/fsl-ldb.c
128
struct fsl_ldb *fsl_ldb = to_fsl_ldb(bridge);
drivers/gpu/drm/bridge/fsl-ldb.c
163
dev_warn(fsl_ldb->dev,
drivers/gpu/drm/bridge/fsl-ldb.c
179
requested_link_freq = fsl_ldb_link_frequency(fsl_ldb, mode->clock);
drivers/gpu/drm/bridge/fsl-ldb.c
180
clk_set_rate(fsl_ldb->clk, requested_link_freq);
drivers/gpu/drm/bridge/fsl-ldb.c
182
configured_link_freq = clk_get_rate(fsl_ldb->clk);
drivers/gpu/drm/bridge/fsl-ldb.c
184
dev_warn(fsl_ldb->dev,
drivers/gpu/drm/bridge/fsl-ldb.c
186
fsl_ldb->clk, configured_link_freq, requested_link_freq);
drivers/gpu/drm/bridge/fsl-ldb.c
188
clk_prepare_enable(fsl_ldb->clk);
drivers/gpu/drm/bridge/fsl-ldb.c
191
reg = (fsl_ldb->ch0_enabled ? LDB_CTRL_CH0_ENABLE : 0) |
drivers/gpu/drm/bridge/fsl-ldb.c
192
(fsl_ldb->ch1_enabled ? LDB_CTRL_CH1_ENABLE : 0) |
drivers/gpu/drm/bridge/fsl-ldb.c
193
(fsl_ldb_is_dual(fsl_ldb) ? LDB_CTRL_SPLIT_MODE : 0);
drivers/gpu/drm/bridge/fsl-ldb.c
196
reg |= (fsl_ldb->ch0_enabled ? LDB_CTRL_CH0_DATA_WIDTH : 0) |
drivers/gpu/drm/bridge/fsl-ldb.c
197
(fsl_ldb->ch1_enabled ? LDB_CTRL_CH1_DATA_WIDTH : 0);
drivers/gpu/drm/bridge/fsl-ldb.c
200
reg |= (fsl_ldb->ch0_enabled ? LDB_CTRL_CH0_BIT_MAPPING : 0) |
drivers/gpu/drm/bridge/fsl-ldb.c
201
(fsl_ldb->ch1_enabled ? LDB_CTRL_CH1_BIT_MAPPING : 0);
drivers/gpu/drm/bridge/fsl-ldb.c
204
reg |= (fsl_ldb->ch0_enabled ? LDB_CTRL_DI0_VSYNC_POLARITY : 0) |
drivers/gpu/drm/bridge/fsl-ldb.c
205
(fsl_ldb->ch1_enabled ? LDB_CTRL_DI1_VSYNC_POLARITY : 0);
drivers/gpu/drm/bridge/fsl-ldb.c
207
regmap_write(fsl_ldb->regmap, fsl_ldb->devdata->ldb_ctrl, reg);
drivers/gpu/drm/bridge/fsl-ldb.c
209
if (fsl_ldb->devdata->single_ctrl_reg)
drivers/gpu/drm/bridge/fsl-ldb.c
215
regmap_write(fsl_ldb->regmap, fsl_ldb->devdata->lvds_ctrl, reg);
drivers/gpu/drm/bridge/fsl-ldb.c
220
reg |= (fsl_ldb->ch0_enabled ? LVDS_CTRL_CH0_EN : 0) |
drivers/gpu/drm/bridge/fsl-ldb.c
221
(fsl_ldb->ch1_enabled ? LVDS_CTRL_CH1_EN : 0);
drivers/gpu/drm/bridge/fsl-ldb.c
223
regmap_write(fsl_ldb->regmap, fsl_ldb->devdata->lvds_ctrl, reg);
drivers/gpu/drm/bridge/fsl-ldb.c
229
struct fsl_ldb *fsl_ldb = to_fsl_ldb(bridge);
drivers/gpu/drm/bridge/fsl-ldb.c
232
if (fsl_ldb->devdata->lvds_en_bit)
drivers/gpu/drm/bridge/fsl-ldb.c
234
regmap_write(fsl_ldb->regmap, fsl_ldb->devdata->lvds_ctrl,
drivers/gpu/drm/bridge/fsl-ldb.c
237
if (!fsl_ldb->devdata->single_ctrl_reg)
drivers/gpu/drm/bridge/fsl-ldb.c
238
regmap_write(fsl_ldb->regmap, fsl_ldb->devdata->lvds_ctrl, 0);
drivers/gpu/drm/bridge/fsl-ldb.c
239
regmap_write(fsl_ldb->regmap, fsl_ldb->devdata->ldb_ctrl, 0);
drivers/gpu/drm/bridge/fsl-ldb.c
241
clk_disable_unprepare(fsl_ldb->clk);
drivers/gpu/drm/bridge/fsl-ldb.c
273
struct fsl_ldb *fsl_ldb = to_fsl_ldb(bridge);
drivers/gpu/drm/bridge/fsl-ldb.c
275
if (mode->clock > (fsl_ldb_is_dual(fsl_ldb) ? 160000 : 80000))
drivers/gpu/drm/bridge/fsl-ldb.c
298
struct fsl_ldb *fsl_ldb;
drivers/gpu/drm/bridge/fsl-ldb.c
301
fsl_ldb = devm_drm_bridge_alloc(dev, struct fsl_ldb, bridge, &funcs);
drivers/gpu/drm/bridge/fsl-ldb.c
302
if (IS_ERR(fsl_ldb))
drivers/gpu/drm/bridge/fsl-ldb.c
303
return PTR_ERR(fsl_ldb);
drivers/gpu/drm/bridge/fsl-ldb.c
305
fsl_ldb->devdata = of_device_get_match_data(dev);
drivers/gpu/drm/bridge/fsl-ldb.c
306
if (!fsl_ldb->devdata)
drivers/gpu/drm/bridge/fsl-ldb.c
309
fsl_ldb->dev = &pdev->dev;
drivers/gpu/drm/bridge/fsl-ldb.c
310
fsl_ldb->bridge.of_node = dev->of_node;
drivers/gpu/drm/bridge/fsl-ldb.c
312
fsl_ldb->clk = devm_clk_get(dev, "ldb");
drivers/gpu/drm/bridge/fsl-ldb.c
313
if (IS_ERR(fsl_ldb->clk))
drivers/gpu/drm/bridge/fsl-ldb.c
314
return PTR_ERR(fsl_ldb->clk);
drivers/gpu/drm/bridge/fsl-ldb.c
316
fsl_ldb->regmap = syscon_node_to_regmap(dev->of_node->parent);
drivers/gpu/drm/bridge/fsl-ldb.c
317
if (IS_ERR(fsl_ldb->regmap))
drivers/gpu/drm/bridge/fsl-ldb.c
318
return PTR_ERR(fsl_ldb->regmap);
drivers/gpu/drm/bridge/fsl-ldb.c
323
fsl_ldb->ch0_enabled = (remote1 != NULL);
drivers/gpu/drm/bridge/fsl-ldb.c
324
fsl_ldb->ch1_enabled = (remote2 != NULL);
drivers/gpu/drm/bridge/fsl-ldb.c
329
if (!fsl_ldb->ch0_enabled && !fsl_ldb->ch1_enabled) {
drivers/gpu/drm/bridge/fsl-ldb.c
335
fsl_ldb_is_dual(fsl_ldb) ? "dual-link mode" :
drivers/gpu/drm/bridge/fsl-ldb.c
336
fsl_ldb->ch0_enabled ? "channel 0" : "channel 1");
drivers/gpu/drm/bridge/fsl-ldb.c
343
fsl_ldb->panel_bridge = devm_drm_panel_bridge_add(dev, panel);
drivers/gpu/drm/bridge/fsl-ldb.c
344
if (IS_ERR(fsl_ldb->panel_bridge))
drivers/gpu/drm/bridge/fsl-ldb.c
345
return PTR_ERR(fsl_ldb->panel_bridge);
drivers/gpu/drm/bridge/fsl-ldb.c
348
if (fsl_ldb_is_dual(fsl_ldb)) {
drivers/gpu/drm/bridge/fsl-ldb.c
368
platform_set_drvdata(pdev, fsl_ldb);
drivers/gpu/drm/bridge/fsl-ldb.c
370
drm_bridge_add(&fsl_ldb->bridge);
drivers/gpu/drm/bridge/fsl-ldb.c
377
struct fsl_ldb *fsl_ldb = platform_get_drvdata(pdev);
drivers/gpu/drm/bridge/fsl-ldb.c
379
drm_bridge_remove(&fsl_ldb->bridge);
drivers/gpu/drm/bridge/fsl-ldb.c
97
static bool fsl_ldb_is_dual(const struct fsl_ldb *fsl_ldb)
drivers/gpu/drm/bridge/fsl-ldb.c
99
return (fsl_ldb->ch0_enabled && fsl_ldb->ch1_enabled);