From b20d7db0298e60d628f1b53d85f14577526c5605 Mon Sep 17 00:00:00 2001 From: hjc Date: Fri, 27 Feb 2015 11:50:10 +0800 Subject: [PATCH] rk31xx lvds: set clock lane enable int ttl mode Signed-off-by: hjc --- arch/arm64/boot/dts/rk3368.dtsi | 2 +- drivers/video/rockchip/transmitter/rk31xx_lvds.c | 1 + drivers/video/rockchip/transmitter/rk31xx_lvds.h | 11 ++++++++++- 3 files changed, 12 insertions(+), 2 deletions(-) mode change 100644 => 100755 drivers/video/rockchip/transmitter/rk31xx_lvds.c mode change 100644 => 100755 drivers/video/rockchip/transmitter/rk31xx_lvds.h diff --git a/arch/arm64/boot/dts/rk3368.dtsi b/arch/arm64/boot/dts/rk3368.dtsi index 9783d301ce6b..2dc40c5c2cd5 100755 --- a/arch/arm64/boot/dts/rk3368.dtsi +++ b/arch/arm64/boot/dts/rk3368.dtsi @@ -713,7 +713,7 @@ lvds: lvds@ff968000 { compatible = "rockchip,rk3368-lvds"; rockchip,grf = <&grf>; - reg = <0x0 0xff968000 0x0 0x4000>, <0x0 0xff9600b0 0x0 0x01>; + reg = <0x0 0xff968000 0x0 0x4000>, <0x0 0xff9600a0 0x0 0x20>; reg-names = "mipi_lvds_phy", "mipi_lvds_ctl"; clocks = <&clk_gates22 10>, <&clk_gates17 3>; clock-names = "pclk_lvds", "pclk_lvds_ctl"; diff --git a/drivers/video/rockchip/transmitter/rk31xx_lvds.c b/drivers/video/rockchip/transmitter/rk31xx_lvds.c old mode 100644 new mode 100755 index 44fabe31b83e..2ee121623620 --- a/drivers/video/rockchip/transmitter/rk31xx_lvds.c +++ b/drivers/video/rockchip/transmitter/rk31xx_lvds.c @@ -257,6 +257,7 @@ static void rk31xx_output_lvttl(struct rk_lvds_device *lvds, pinctrl_select_state(lvds->pins->p, lvds->pins->default_state); #endif + lvds_dsi_writel(lvds, 0x0, 0x4);/*set clock lane enable*/ /* enable lvds mode */ val |= v_RK3368_LVDSMODE_EN(0) | v_RK3368_MIPIPHY_TTL_EN(1) | v_RK3368_MIPIPHY_LANE0_EN(1) | diff --git a/drivers/video/rockchip/transmitter/rk31xx_lvds.h b/drivers/video/rockchip/transmitter/rk31xx_lvds.h old mode 100644 new mode 100755 index 597fd62b6234..253d8c78da14 --- a/drivers/video/rockchip/transmitter/rk31xx_lvds.h +++ b/drivers/video/rockchip/transmitter/rk31xx_lvds.h @@ -173,11 +173,20 @@ static inline int lvds_grf_writel(struct rk_lvds_device *lvds, return 0; } +static inline int lvds_dsi_writel(struct rk_lvds_device *lvds, + u32 offset, u32 val) +{ + writel_relaxed(val, lvds->ctrl_reg + offset); + dsb(sy); + + return 0; +} + static inline u32 lvds_phy_lockon(struct rk_lvds_device *lvds) { u32 val = 0; - val = readl_relaxed(lvds->ctrl_reg); + val = readl_relaxed(lvds->ctrl_reg + 0x10); return (val & 0x01); } -- 2.34.1