drm/msm/dsi: Add DSI PLL for 28nm 8960 PHY
authorArchit Taneja <architt@codeaurora.org>
Wed, 14 Oct 2015 06:33:44 +0000 (12:03 +0530)
committerRob Clark <robdclark@gmail.com>
Mon, 14 Dec 2015 15:40:12 +0000 (10:40 -0500)
commitc6538de8dd5e08a5f2aac80900b170f2523711fb
treef62400d14757a33ec1636ede628bf6b8f9b8723a
parent225380b3e9b4b82d19de5a161aee169dbc57f353
drm/msm/dsi: Add DSI PLL for 28nm 8960 PHY

Add DSI PLL common clock framework clocks for 8960 PHY.

The PLL here is different from the ones found in B family msm chips. As
before, the DSI provides two clocks to the outside world. dsixpll and
dsixpllbyte (x = 1, 2). dsixpll is a regular clock divider, but
dsixpllbyte is modelled as a custom clock divider.

dsixpllbyte is the starting point of the PLL configuration. It is the
one that sets up the VCO clock rate. We need the VCO clock rate in the
form: F * byteclk, where F is a multiplication factor that varies on
the byte clock the DSI driver is trying to set. We use the custom
clk_ops for dsixpllbyte to ensure that the parent (VCO) is set at this
rate.

An additional divider (POSTDIV1) generates the bitclk. Since bit clock
can be derived from byteclock, we calculate it internally, and don't
expose it as a clock.

Cc: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Archit Taneja <architt@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
drivers/gpu/drm/msm/Makefile
drivers/gpu/drm/msm/dsi/pll/dsi_pll.c
drivers/gpu/drm/msm/dsi/pll/dsi_pll.h
drivers/gpu/drm/msm/dsi/pll/dsi_pll_28nm_8960.c [new file with mode: 0644]