Commit 04bc39ad authored by Miquel Raynal's avatar Miquel Raynal Committed by Heiko Stuebner

drm/rockchip: lvds: Harmonize function names

Prepare the introduction of PX30 support by clarifying the function
prefixes.

We continue to prefix with 'rockchip_lvds_' generic functions that are
not specific to a single hardware. Functions implying hardware
modifications are now prefixed with 'rk3288_lvds_'.
Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20191224143900.23567-5-miquel.raynal@bootlin.com
parent eb503ee2
...@@ -67,7 +67,8 @@ struct rockchip_lvds { ...@@ -67,7 +67,8 @@ struct rockchip_lvds {
struct dev_pin_info *pins; struct dev_pin_info *pins;
}; };
static inline void lvds_writel(struct rockchip_lvds *lvds, u32 offset, u32 val) static inline void rk3288_writel(struct rockchip_lvds *lvds, u32 offset,
u32 val)
{ {
writel_relaxed(val, lvds->regs + offset); writel_relaxed(val, lvds->regs + offset);
if (lvds->output == DISPLAY_OUTPUT_LVDS) if (lvds->output == DISPLAY_OUTPUT_LVDS)
...@@ -75,7 +76,7 @@ static inline void lvds_writel(struct rockchip_lvds *lvds, u32 offset, u32 val) ...@@ -75,7 +76,7 @@ static inline void lvds_writel(struct rockchip_lvds *lvds, u32 offset, u32 val)
writel_relaxed(val, lvds->regs + offset + lvds->soc_data->ch1_offset); writel_relaxed(val, lvds->regs + offset + lvds->soc_data->ch1_offset);
} }
static inline int lvds_name_to_format(const char *s) static inline int rockchip_lvds_name_to_format(const char *s)
{ {
if (strncmp(s, "jeida-18", 8) == 0) if (strncmp(s, "jeida-18", 8) == 0)
return LVDS_JEIDA_18; return LVDS_JEIDA_18;
...@@ -87,7 +88,7 @@ static inline int lvds_name_to_format(const char *s) ...@@ -87,7 +88,7 @@ static inline int lvds_name_to_format(const char *s)
return -EINVAL; return -EINVAL;
} }
static inline int lvds_name_to_output(const char *s) static inline int rockchip_lvds_name_to_output(const char *s)
{ {
if (strncmp(s, "rgb", 3) == 0) if (strncmp(s, "rgb", 3) == 0)
return DISPLAY_OUTPUT_RGB; return DISPLAY_OUTPUT_RGB;
...@@ -99,7 +100,7 @@ static inline int lvds_name_to_output(const char *s) ...@@ -99,7 +100,7 @@ static inline int lvds_name_to_output(const char *s)
return -EINVAL; return -EINVAL;
} }
static int rockchip_lvds_poweron(struct rockchip_lvds *lvds) static int rk3288_lvds_poweron(struct rockchip_lvds *lvds)
{ {
int ret; int ret;
u32 val; u32 val;
...@@ -121,63 +122,70 @@ static int rockchip_lvds_poweron(struct rockchip_lvds *lvds) ...@@ -121,63 +122,70 @@ static int rockchip_lvds_poweron(struct rockchip_lvds *lvds)
if (lvds->output == DISPLAY_OUTPUT_RGB) { if (lvds->output == DISPLAY_OUTPUT_RGB) {
val |= RK3288_LVDS_CH0_REG0_TTL_EN | val |= RK3288_LVDS_CH0_REG0_TTL_EN |
RK3288_LVDS_CH0_REG0_LANECK_EN; RK3288_LVDS_CH0_REG0_LANECK_EN;
lvds_writel(lvds, RK3288_LVDS_CH0_REG0, val); rk3288_writel(lvds, RK3288_LVDS_CH0_REG0, val);
lvds_writel(lvds, RK3288_LVDS_CH0_REG2, rk3288_writel(lvds, RK3288_LVDS_CH0_REG2,
RK3288_LVDS_PLL_FBDIV_REG2(0x46)); RK3288_LVDS_PLL_FBDIV_REG2(0x46));
lvds_writel(lvds, RK3288_LVDS_CH0_REG4, rk3288_writel(lvds, RK3288_LVDS_CH0_REG4,
RK3288_LVDS_CH0_REG4_LANECK_TTL_MODE | RK3288_LVDS_CH0_REG4_LANECK_TTL_MODE |
RK3288_LVDS_CH0_REG4_LANE4_TTL_MODE | RK3288_LVDS_CH0_REG4_LANE4_TTL_MODE |
RK3288_LVDS_CH0_REG4_LANE3_TTL_MODE | RK3288_LVDS_CH0_REG4_LANE3_TTL_MODE |
RK3288_LVDS_CH0_REG4_LANE2_TTL_MODE | RK3288_LVDS_CH0_REG4_LANE2_TTL_MODE |
RK3288_LVDS_CH0_REG4_LANE1_TTL_MODE | RK3288_LVDS_CH0_REG4_LANE1_TTL_MODE |
RK3288_LVDS_CH0_REG4_LANE0_TTL_MODE); RK3288_LVDS_CH0_REG4_LANE0_TTL_MODE);
lvds_writel(lvds, RK3288_LVDS_CH0_REG5, rk3288_writel(lvds, RK3288_LVDS_CH0_REG5,
RK3288_LVDS_CH0_REG5_LANECK_TTL_DATA | RK3288_LVDS_CH0_REG5_LANECK_TTL_DATA |
RK3288_LVDS_CH0_REG5_LANE4_TTL_DATA | RK3288_LVDS_CH0_REG5_LANE4_TTL_DATA |
RK3288_LVDS_CH0_REG5_LANE3_TTL_DATA | RK3288_LVDS_CH0_REG5_LANE3_TTL_DATA |
RK3288_LVDS_CH0_REG5_LANE2_TTL_DATA | RK3288_LVDS_CH0_REG5_LANE2_TTL_DATA |
RK3288_LVDS_CH0_REG5_LANE1_TTL_DATA | RK3288_LVDS_CH0_REG5_LANE1_TTL_DATA |
RK3288_LVDS_CH0_REG5_LANE0_TTL_DATA); RK3288_LVDS_CH0_REG5_LANE0_TTL_DATA);
} else { } else {
val |= RK3288_LVDS_CH0_REG0_LVDS_EN | val |= RK3288_LVDS_CH0_REG0_LVDS_EN |
RK3288_LVDS_CH0_REG0_LANECK_EN; RK3288_LVDS_CH0_REG0_LANECK_EN;
lvds_writel(lvds, RK3288_LVDS_CH0_REG0, val); rk3288_writel(lvds, RK3288_LVDS_CH0_REG0, val);
lvds_writel(lvds, RK3288_LVDS_CH0_REG1, rk3288_writel(lvds, RK3288_LVDS_CH0_REG1,
RK3288_LVDS_CH0_REG1_LANECK_BIAS | RK3288_LVDS_CH0_REG1_LANECK_BIAS |
RK3288_LVDS_CH0_REG1_LANE4_BIAS | RK3288_LVDS_CH0_REG1_LANE4_BIAS |
RK3288_LVDS_CH0_REG1_LANE3_BIAS | RK3288_LVDS_CH0_REG1_LANE3_BIAS |
RK3288_LVDS_CH0_REG1_LANE2_BIAS | RK3288_LVDS_CH0_REG1_LANE2_BIAS |
RK3288_LVDS_CH0_REG1_LANE1_BIAS | RK3288_LVDS_CH0_REG1_LANE1_BIAS |
RK3288_LVDS_CH0_REG1_LANE0_BIAS); RK3288_LVDS_CH0_REG1_LANE0_BIAS);
lvds_writel(lvds, RK3288_LVDS_CH0_REG2, rk3288_writel(lvds, RK3288_LVDS_CH0_REG2,
RK3288_LVDS_CH0_REG2_RESERVE_ON | RK3288_LVDS_CH0_REG2_RESERVE_ON |
RK3288_LVDS_CH0_REG2_LANECK_LVDS_MODE | RK3288_LVDS_CH0_REG2_LANECK_LVDS_MODE |
RK3288_LVDS_CH0_REG2_LANE4_LVDS_MODE | RK3288_LVDS_CH0_REG2_LANE4_LVDS_MODE |
RK3288_LVDS_CH0_REG2_LANE3_LVDS_MODE | RK3288_LVDS_CH0_REG2_LANE3_LVDS_MODE |
RK3288_LVDS_CH0_REG2_LANE2_LVDS_MODE | RK3288_LVDS_CH0_REG2_LANE2_LVDS_MODE |
RK3288_LVDS_CH0_REG2_LANE1_LVDS_MODE | RK3288_LVDS_CH0_REG2_LANE1_LVDS_MODE |
RK3288_LVDS_CH0_REG2_LANE0_LVDS_MODE | RK3288_LVDS_CH0_REG2_LANE0_LVDS_MODE |
RK3288_LVDS_PLL_FBDIV_REG2(0x46)); RK3288_LVDS_PLL_FBDIV_REG2(0x46));
lvds_writel(lvds, RK3288_LVDS_CH0_REG4, 0x00); rk3288_writel(lvds, RK3288_LVDS_CH0_REG4, 0x00);
lvds_writel(lvds, RK3288_LVDS_CH0_REG5, 0x00); rk3288_writel(lvds, RK3288_LVDS_CH0_REG5, 0x00);
} }
lvds_writel(lvds, RK3288_LVDS_CH0_REG3, RK3288_LVDS_PLL_FBDIV_REG3(0x46)); rk3288_writel(lvds, RK3288_LVDS_CH0_REG3,
lvds_writel(lvds, RK3288_LVDS_CH0_REGD, RK3288_LVDS_PLL_PREDIV_REGD(0x0a)); RK3288_LVDS_PLL_FBDIV_REG3(0x46));
lvds_writel(lvds, RK3288_LVDS_CH0_REG20, RK3288_LVDS_CH0_REG20_LSB); rk3288_writel(lvds, RK3288_LVDS_CH0_REGD,
RK3288_LVDS_PLL_PREDIV_REGD(0x0a));
lvds_writel(lvds, RK3288_LVDS_CFG_REGC, RK3288_LVDS_CFG_REGC_PLL_ENABLE); rk3288_writel(lvds, RK3288_LVDS_CH0_REG20,
lvds_writel(lvds, RK3288_LVDS_CFG_REG21, RK3288_LVDS_CFG_REG21_TX_ENABLE); RK3288_LVDS_CH0_REG20_LSB);
rk3288_writel(lvds, RK3288_LVDS_CFG_REGC,
RK3288_LVDS_CFG_REGC_PLL_ENABLE);
rk3288_writel(lvds, RK3288_LVDS_CFG_REG21,
RK3288_LVDS_CFG_REG21_TX_ENABLE);
return 0; return 0;
} }
static void rockchip_lvds_poweroff(struct rockchip_lvds *lvds) static void rk3288_lvds_poweroff(struct rockchip_lvds *lvds)
{ {
int ret; int ret;
u32 val; u32 val;
lvds_writel(lvds, RK3288_LVDS_CFG_REG21, RK3288_LVDS_CFG_REG21_TX_ENABLE); rk3288_writel(lvds, RK3288_LVDS_CFG_REG21,
lvds_writel(lvds, RK3288_LVDS_CFG_REGC, RK3288_LVDS_CFG_REGC_PLL_ENABLE); RK3288_LVDS_CFG_REG21_TX_ENABLE);
rk3288_writel(lvds, RK3288_LVDS_CFG_REGC,
RK3288_LVDS_CFG_REGC_PLL_ENABLE);
val = LVDS_DUAL | LVDS_TTL_EN | LVDS_CH0_EN | LVDS_CH1_EN | LVDS_PWRDN; val = LVDS_DUAL | LVDS_TTL_EN | LVDS_CH0_EN | LVDS_CH1_EN | LVDS_PWRDN;
val |= val << 16; val |= val << 16;
ret = regmap_write(lvds->grf, lvds->soc_data->grf_soc_con7, val); ret = regmap_write(lvds->grf, lvds->soc_data->grf_soc_con7, val);
...@@ -209,8 +217,8 @@ struct drm_connector_helper_funcs rockchip_lvds_connector_helper_funcs = { ...@@ -209,8 +217,8 @@ struct drm_connector_helper_funcs rockchip_lvds_connector_helper_funcs = {
.get_modes = rockchip_lvds_connector_get_modes, .get_modes = rockchip_lvds_connector_get_modes,
}; };
static void rockchip_lvds_grf_config(struct drm_encoder *encoder, static void rk3288_lvds_grf_config(struct drm_encoder *encoder,
struct drm_display_mode *mode) struct drm_display_mode *mode)
{ {
struct rockchip_lvds *lvds = encoder_to_lvds(encoder); struct rockchip_lvds *lvds = encoder_to_lvds(encoder);
u8 pin_hsync = (mode->flags & DRM_MODE_FLAG_PHSYNC) ? 1 : 0; u8 pin_hsync = (mode->flags & DRM_MODE_FLAG_PHSYNC) ? 1 : 0;
...@@ -241,8 +249,8 @@ static void rockchip_lvds_grf_config(struct drm_encoder *encoder, ...@@ -241,8 +249,8 @@ static void rockchip_lvds_grf_config(struct drm_encoder *encoder,
} }
} }
static int rockchip_lvds_set_vop_source(struct rockchip_lvds *lvds, static int rk3288_lvds_set_vop_source(struct rockchip_lvds *lvds,
struct drm_encoder *encoder) struct drm_encoder *encoder)
{ {
u32 val; u32 val;
int ret; int ret;
...@@ -278,36 +286,36 @@ rockchip_lvds_encoder_atomic_check(struct drm_encoder *encoder, ...@@ -278,36 +286,36 @@ rockchip_lvds_encoder_atomic_check(struct drm_encoder *encoder,
return 0; return 0;
} }
static void rockchip_lvds_encoder_enable(struct drm_encoder *encoder) static void rk3288_lvds_encoder_enable(struct drm_encoder *encoder)
{ {
struct rockchip_lvds *lvds = encoder_to_lvds(encoder); struct rockchip_lvds *lvds = encoder_to_lvds(encoder);
struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode; struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode;
int ret; int ret;
drm_panel_prepare(lvds->panel); drm_panel_prepare(lvds->panel);
ret = rockchip_lvds_poweron(lvds); ret = rk3288_lvds_poweron(lvds);
if (ret < 0) { if (ret < 0) {
DRM_DEV_ERROR(lvds->dev, "failed to power on lvds: %d\n", ret); DRM_DEV_ERROR(lvds->dev, "failed to power on lvds: %d\n", ret);
drm_panel_unprepare(lvds->panel); drm_panel_unprepare(lvds->panel);
} }
rockchip_lvds_grf_config(encoder, mode); rk3288_lvds_grf_config(encoder, mode);
rockchip_lvds_set_vop_source(lvds, encoder); rk3288_lvds_set_vop_source(lvds, encoder);
drm_panel_enable(lvds->panel); drm_panel_enable(lvds->panel);
} }
static void rockchip_lvds_encoder_disable(struct drm_encoder *encoder) static void rk3288_lvds_encoder_disable(struct drm_encoder *encoder)
{ {
struct rockchip_lvds *lvds = encoder_to_lvds(encoder); struct rockchip_lvds *lvds = encoder_to_lvds(encoder);
drm_panel_disable(lvds->panel); drm_panel_disable(lvds->panel);
rockchip_lvds_poweroff(lvds); rk3288_lvds_poweroff(lvds);
drm_panel_unprepare(lvds->panel); drm_panel_unprepare(lvds->panel);
} }
static const static const
struct drm_encoder_helper_funcs rockchip_lvds_encoder_helper_funcs = { struct drm_encoder_helper_funcs rk3288_lvds_encoder_helper_funcs = {
.enable = rockchip_lvds_encoder_enable, .enable = rk3288_lvds_encoder_enable,
.disable = rockchip_lvds_encoder_disable, .disable = rk3288_lvds_encoder_disable,
.atomic_check = rockchip_lvds_encoder_atomic_check, .atomic_check = rockchip_lvds_encoder_atomic_check,
}; };
...@@ -378,7 +386,7 @@ static int rockchip_lvds_bind(struct device *dev, struct device *master, ...@@ -378,7 +386,7 @@ static int rockchip_lvds_bind(struct device *dev, struct device *master,
/* default set it as output rgb */ /* default set it as output rgb */
lvds->output = DISPLAY_OUTPUT_RGB; lvds->output = DISPLAY_OUTPUT_RGB;
else else
lvds->output = lvds_name_to_output(name); lvds->output = rockchip_lvds_name_to_output(name);
if (lvds->output < 0) { if (lvds->output < 0) {
DRM_DEV_ERROR(dev, "invalid output type [%s]\n", name); DRM_DEV_ERROR(dev, "invalid output type [%s]\n", name);
...@@ -390,7 +398,7 @@ static int rockchip_lvds_bind(struct device *dev, struct device *master, ...@@ -390,7 +398,7 @@ static int rockchip_lvds_bind(struct device *dev, struct device *master,
/* default set it as format vesa 18 */ /* default set it as format vesa 18 */
lvds->format = LVDS_VESA_18; lvds->format = LVDS_VESA_18;
else else
lvds->format = lvds_name_to_format(name); lvds->format = rockchip_lvds_name_to_format(name);
if (lvds->format < 0) { if (lvds->format < 0) {
DRM_DEV_ERROR(dev, "invalid data-mapping format [%s]\n", name); DRM_DEV_ERROR(dev, "invalid data-mapping format [%s]\n", name);
...@@ -410,7 +418,7 @@ static int rockchip_lvds_bind(struct device *dev, struct device *master, ...@@ -410,7 +418,7 @@ static int rockchip_lvds_bind(struct device *dev, struct device *master,
goto err_put_remote; goto err_put_remote;
} }
drm_encoder_helper_add(encoder, &rockchip_lvds_encoder_helper_funcs); drm_encoder_helper_add(encoder, &rk3288_lvds_encoder_helper_funcs);
if (lvds->panel) { if (lvds->panel) {
connector = &lvds->connector; connector = &lvds->connector;
...@@ -472,7 +480,7 @@ static void rockchip_lvds_unbind(struct device *dev, struct device *master, ...@@ -472,7 +480,7 @@ static void rockchip_lvds_unbind(struct device *dev, struct device *master,
{ {
struct rockchip_lvds *lvds = dev_get_drvdata(dev); struct rockchip_lvds *lvds = dev_get_drvdata(dev);
rockchip_lvds_encoder_disable(&lvds->encoder); rk3288_lvds_encoder_disable(&lvds->encoder);
if (lvds->panel) if (lvds->panel)
drm_panel_detach(lvds->panel); drm_panel_detach(lvds->panel);
pm_runtime_disable(dev); pm_runtime_disable(dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment