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:
parent
d71853e788
commit
a4878dda5e
|
|
@ -32,6 +32,7 @@ struct rockchip_rgb_funcs {
|
||||||
|
|
||||||
struct rockchip_rgb {
|
struct rockchip_rgb {
|
||||||
struct regmap *grf;
|
struct regmap *grf;
|
||||||
|
bool data_sync;
|
||||||
const struct rockchip_rgb_funcs *funcs;
|
const struct rockchip_rgb_funcs *funcs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -102,27 +103,19 @@ static int rockchip_rgb_probe(struct udevice *dev)
|
||||||
|
|
||||||
rgb->funcs = connector->data;
|
rgb->funcs = connector->data;
|
||||||
rgb->grf = syscon_get_regmap(dev_get_parent(dev));
|
rgb->grf = syscon_get_regmap(dev_get_parent(dev));
|
||||||
|
rgb->data_sync = dev_read_bool(dev, "rockchip,data-sync");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void px30_rgb_enable(struct rockchip_rgb *rgb, int pipe)
|
static void px30_rgb_enable(struct rockchip_rgb *rgb, int pipe)
|
||||||
{
|
{
|
||||||
regmap_write(rgb->grf, PX30_GRF_PD_VO_CON1,
|
regmap_write(rgb->grf, PX30_GRF_PD_VO_CON1, PX30_RGB_VOP_SEL(pipe) |
|
||||||
PX30_RGB_VOP_SEL(pipe));
|
PX30_RGB_DATA_SYNC_BYPASS(!rgb->data_sync));
|
||||||
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));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct rockchip_rgb_funcs px30_rgb_funcs = {
|
static const struct rockchip_rgb_funcs px30_rgb_funcs = {
|
||||||
.enable = px30_rgb_enable,
|
.enable = px30_rgb_enable,
|
||||||
.disable = px30_rgb_disable,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct rockchip_connector px30_rgb_driver_data = {
|
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)
|
static void rk1808_rgb_enable(struct rockchip_rgb *rgb, int pipe)
|
||||||
{
|
{
|
||||||
regmap_write(rgb->grf, RK1808_GRF_PD_VO_CON1,
|
regmap_write(rgb->grf, RK1808_GRF_PD_VO_CON1,
|
||||||
RK1808_RGB_DATA_SYNC_BYPASS(1));
|
RK1808_RGB_DATA_SYNC_BYPASS(!rgb->data_sync));
|
||||||
}
|
|
||||||
|
|
||||||
static void rk1808_rgb_disable(struct rockchip_rgb *rgb)
|
|
||||||
{
|
|
||||||
regmap_write(rgb->grf, RK1808_GRF_PD_VO_CON1,
|
|
||||||
RK1808_RGB_DATA_SYNC_BYPASS(0));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct rockchip_rgb_funcs rk1808_rgb_funcs = {
|
static const struct rockchip_rgb_funcs rk1808_rgb_funcs = {
|
||||||
.enable = rk1808_rgb_enable,
|
.enable = rk1808_rgb_enable,
|
||||||
.disable = rk1808_rgb_disable,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct rockchip_connector rk1808_rgb_driver_data = {
|
static const struct rockchip_connector rk1808_rgb_driver_data = {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue