video/drm: rgb: Allow to configure data sync from DT

Change-Id: I2e83a7ed7e2d74a23b74301c57899a9e763ca1bf
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
This commit is contained in:
Wyon Bi 2018-12-18 15:55:28 +08:00
parent d71853e788
commit a4878dda5e
1 changed files with 5 additions and 19 deletions

View File

@ -32,6 +32,7 @@ struct rockchip_rgb_funcs {
struct rockchip_rgb {
struct regmap *grf;
bool data_sync;
const struct rockchip_rgb_funcs *funcs;
};
@ -102,27 +103,19 @@ static int rockchip_rgb_probe(struct udevice *dev)
rgb->funcs = connector->data;
rgb->grf = syscon_get_regmap(dev_get_parent(dev));
rgb->data_sync = dev_read_bool(dev, "rockchip,data-sync");
return 0;
}
static void px30_rgb_enable(struct rockchip_rgb *rgb, int pipe)
{
regmap_write(rgb->grf, PX30_GRF_PD_VO_CON1,
PX30_RGB_VOP_SEL(pipe));
regmap_write(rgb->grf, PX30_GRF_PD_VO_CON1,
PX30_RGB_DATA_SYNC_BYPASS(1));
}
static void px30_rgb_disable(struct rockchip_rgb *rgb)
{
regmap_write(rgb->grf, PX30_GRF_PD_VO_CON1,
PX30_RGB_DATA_SYNC_BYPASS(0));
regmap_write(rgb->grf, PX30_GRF_PD_VO_CON1, PX30_RGB_VOP_SEL(pipe) |
PX30_RGB_DATA_SYNC_BYPASS(!rgb->data_sync));
}
static const struct rockchip_rgb_funcs px30_rgb_funcs = {
.enable = px30_rgb_enable,
.disable = px30_rgb_disable,
};
static const struct rockchip_connector px30_rgb_driver_data = {
@ -133,18 +126,11 @@ static const struct rockchip_connector px30_rgb_driver_data = {
static void rk1808_rgb_enable(struct rockchip_rgb *rgb, int pipe)
{
regmap_write(rgb->grf, RK1808_GRF_PD_VO_CON1,
RK1808_RGB_DATA_SYNC_BYPASS(1));
}
static void rk1808_rgb_disable(struct rockchip_rgb *rgb)
{
regmap_write(rgb->grf, RK1808_GRF_PD_VO_CON1,
RK1808_RGB_DATA_SYNC_BYPASS(0));
RK1808_RGB_DATA_SYNC_BYPASS(!rgb->data_sync));
}
static const struct rockchip_rgb_funcs rk1808_rgb_funcs = {
.enable = rk1808_rgb_enable,
.disable = rk1808_rgb_disable,
};
static const struct rockchip_connector rk1808_rgb_driver_data = {