struct omap_dss_device dssdev;
struct device *dev;
-
- struct videomode vm;
-};
-
-static const struct videomode tvc_pal_vm = {
- .hactive = 720,
- .vactive = 574,
- .pixelclock = 13500000,
- .hsync_len = 64,
- .hfront_porch = 12,
- .hback_porch = 68,
- .vsync_len = 5,
- .vfront_porch = 5,
- .vback_porch = 41,
-
- .flags = DISPLAY_FLAGS_INTERLACED | DISPLAY_FLAGS_HSYNC_LOW |
- DISPLAY_FLAGS_VSYNC_LOW,
};
#define to_panel_data(x) container_of(x, struct panel_drv_data, dssdev)
static void tvc_set_timings(struct omap_dss_device *dssdev,
const struct videomode *vm)
{
- struct panel_drv_data *ddata = to_panel_data(dssdev);
struct omap_dss_device *src = dssdev->src;
- ddata->vm = *vm;
-
src->ops->set_timings(src, vm);
}
-static void tvc_get_timings(struct omap_dss_device *dssdev,
- struct videomode *vm)
-{
- struct panel_drv_data *ddata = to_panel_data(dssdev);
-
- *vm = ddata->vm;
-}
-
static const struct omap_dss_device_ops tvc_ops = {
.connect = tvc_connect,
.disconnect = tvc_disconnect,
.disable = tvc_disable,
.set_timings = tvc_set_timings,
- .get_timings = tvc_get_timings,
};
static int tvc_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, ddata);
ddata->dev = &pdev->dev;
- ddata->vm = tvc_pal_vm;
-
dssdev = &ddata->dssdev;
dssdev->ops = &tvc_ops;
dssdev->dev = &pdev->dev;
#include "../dss/omapdss.h"
-static const struct videomode dvic_default_vm = {
- .hactive = 640,
- .vactive = 480,
-
- .pixelclock = 23500000,
-
- .hfront_porch = 48,
- .hsync_len = 32,
- .hback_porch = 80,
-
- .vfront_porch = 3,
- .vsync_len = 4,
- .vback_porch = 7,
-
- .flags = DISPLAY_FLAGS_HSYNC_HIGH | DISPLAY_FLAGS_VSYNC_HIGH,
-};
-
struct panel_drv_data {
struct omap_dss_device dssdev;
- struct videomode vm;
-
struct i2c_adapter *i2c_adapter;
struct gpio_desc *hpd_gpio;
static void dvic_set_timings(struct omap_dss_device *dssdev,
const struct videomode *vm)
{
- struct panel_drv_data *ddata = to_panel_data(dssdev);
struct omap_dss_device *src = dssdev->src;
- ddata->vm = *vm;
-
src->ops->set_timings(src, vm);
}
-static void dvic_get_timings(struct omap_dss_device *dssdev,
- struct videomode *vm)
-{
- struct panel_drv_data *ddata = to_panel_data(dssdev);
-
- *vm = ddata->vm;
-}
-
static int dvic_ddc_read(struct i2c_adapter *adapter,
unsigned char *buf, u16 count, u8 offset)
{
.disable = dvic_disable,
.set_timings = dvic_set_timings,
- .get_timings = dvic_get_timings,
.read_edid = dvic_read_edid,
.detect = dvic_detect,
if (r)
return r;
- ddata->vm = dvic_default_vm;
-
dssdev = &ddata->dssdev;
dssdev->ops = &dvic_ops;
dssdev->dev = &pdev->dev;
#include "../dss/omapdss.h"
-static const struct videomode hdmic_default_vm = {
- .hactive = 640,
- .vactive = 480,
- .pixelclock = 25175000,
- .hsync_len = 96,
- .hfront_porch = 16,
- .hback_porch = 48,
- .vsync_len = 2,
- .vfront_porch = 11,
- .vback_porch = 31,
-
- .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
-};
-
struct panel_drv_data {
struct omap_dss_device dssdev;
void (*hpd_cb)(void *cb_data, enum drm_connector_status status);
struct device *dev;
- struct videomode vm;
-
struct gpio_desc *hpd_gpio;
};
static void hdmic_set_timings(struct omap_dss_device *dssdev,
const struct videomode *vm)
{
- struct panel_drv_data *ddata = to_panel_data(dssdev);
struct omap_dss_device *src = dssdev->src;
- ddata->vm = *vm;
-
src->ops->set_timings(src, vm);
}
-static void hdmic_get_timings(struct omap_dss_device *dssdev,
- struct videomode *vm)
-{
- struct panel_drv_data *ddata = to_panel_data(dssdev);
-
- *vm = ddata->vm;
-}
-
static bool hdmic_detect(struct omap_dss_device *dssdev)
{
struct panel_drv_data *ddata = to_panel_data(dssdev);
.disable = hdmic_disable,
.set_timings = hdmic_set_timings,
- .get_timings = hdmic_get_timings,
.detect = hdmic_detect,
.register_hpd_cb = hdmic_register_hpd_cb,
return r;
}
- ddata->vm = hdmic_default_vm;
-
dssdev = &ddata->dssdev;
dssdev->ops = &hdmic_ops;
dssdev->dev = &pdev->dev;