From 3ff2d490f2ad59bc0c8f02d411a7e0e487cab584 Mon Sep 17 00:00:00 2001 From: Wyon Bi Date: Sat, 15 Dec 2018 11:53:21 +0800 Subject: [PATCH] drm/rockchip: lvds: clean up rk3368 phy code Change-Id: Icfcbd554146c0104bf0c156cbdec4d29ef007106 Signed-off-by: Wyon Bi --- drivers/gpu/drm/rockchip/rockchip_lvds.c | 38 ++++++++---------------- drivers/gpu/drm/rockchip/rockchip_lvds.h | 3 -- 2 files changed, 12 insertions(+), 29 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_lvds.c b/drivers/gpu/drm/rockchip/rockchip_lvds.c index b1e6705c35f6..105f71524aaf 100644 --- a/drivers/gpu/drm/rockchip/rockchip_lvds.c +++ b/drivers/gpu/drm/rockchip/rockchip_lvds.c @@ -46,6 +46,12 @@ #define PX30_LVDS_P2S_EN(x) HIWORD_UPDATE(x, 10, 10) #define PX30_LVDS_VOP_SEL(x) HIWORD_UPDATE(x, 1, 1) +#define RK3368_GRF_SOC_CON7 0x041c +#define RK3368_LVDS_SELECT(x) HIWORD_UPDATE(x, 14, 13) +#define RK3368_LVDS_MODE_EN(x) HIWORD_UPDATE(x, 12, 12) +#define RK3368_LVDS_MSBSEL(x) HIWORD_UPDATE(x, 11, 11) +#define RK3368_LVDS_P2S_EN(x) HIWORD_UPDATE(x, 6, 6) + #define DISPLAY_OUTPUT_RGB 0 #define DISPLAY_OUTPUT_LVDS 1 #define DISPLAY_OUTPUT_DUAL_LVDS 2 @@ -980,42 +986,22 @@ static const struct rockchip_lvds_soc_data rk3366_lvds_soc_data = { static int rk3368_lvds_power_on(struct rockchip_lvds *lvds) { - u32 val; + regmap_write(lvds->grf, RK3368_GRF_SOC_CON7, + RK3368_LVDS_SELECT(lvds->format) | + RK3368_LVDS_MODE_EN(1) | RK3368_LVDS_MSBSEL(1) | + RK3368_LVDS_P2S_EN(1)); - if (lvds->output == DISPLAY_OUTPUT_RGB) { - /* enable lvds mode */ - val = v_RK336X_LVDSMODE_EN(0) | v_RK336X_MIPIPHY_TTL_EN(1) | - v_RK336X_MIPIPHY_LANE0_EN(1) | - v_RK336X_MIPIDPI_FORCEX_EN(1); - regmap_write(lvds->grf, RK3368_GRF_SOC_CON7, val); - val = v_RK336X_FORCE_JETAG(0); - regmap_write(lvds->grf, RK3368_GRF_SOC_CON15, val); - } else if (lvds->output == DISPLAY_OUTPUT_LVDS) { - /* enable lvds mode */ - val = v_RK336X_LVDSMODE_EN(1) | v_RK336X_MIPIPHY_TTL_EN(0); - /* config lvds_format */ - val |= v_RK336X_LVDS_OUTPUT_FORMAT(lvds->format); - /* LSB receive mode */ - val |= v_RK336X_LVDS_MSBSEL(LVDS_MSB_D7); - val |= v_RK336X_MIPIPHY_LANE0_EN(1) | - v_RK336X_MIPIDPI_FORCEX_EN(1); - regmap_write(lvds->grf, RK3368_GRF_SOC_CON7, val); - } - - return innov1_lvds_power_on(lvds); + return 0; } static void rk3368_lvds_power_off(struct rockchip_lvds *lvds) { regmap_write(lvds->grf, RK3368_GRF_SOC_CON7, - v_RK336X_LVDSMODE_EN(0) | v_RK336X_MIPIPHY_TTL_EN(0)); - - innov1_lvds_power_off(lvds); + RK3368_LVDS_MODE_EN(0) | RK3368_LVDS_P2S_EN(0)); } static const struct rockchip_lvds_soc_data rk3368_lvds_soc_data = { .chip_type = RK3368, - .probe = innov1_lvds_probe, .power_on = rk3368_lvds_power_on, .power_off = rk3368_lvds_power_off, }; diff --git a/drivers/gpu/drm/rockchip/rockchip_lvds.h b/drivers/gpu/drm/rockchip/rockchip_lvds.h index acbfcc2d9300..cdf45343d343 100644 --- a/drivers/gpu/drm/rockchip/rockchip_lvds.h +++ b/drivers/gpu/drm/rockchip/rockchip_lvds.h @@ -102,9 +102,6 @@ #define RK3366_GRF_SOC_CON5 0x0414 #define RK3366_GRF_SOC_CON6 0x0418 -#define RK3368_GRF_SOC_CON7 0x041c -#define RK3368_GRF_SOC_CON15 0x043c - #define RK3126_GRF_LVDS_CON0 0x0150 #define RK3126_GRF_CON1 0x0144