fbdev: mxsfb: Add support for mx6sl and mx6sx
Subsystems (2)
Fabio Estevam
reviewerPATCH 1/1 fbdev: mxsfb: Add support for mx6sl and mx6sx
From: Fabio Estevam <[email protected]>
mx6sl and mx6sx share the same LCD controller as mx23 and mx28.
Add support for it.
The basic difference is the number of clocks that are required:
- mx23/mx28: only one clock
- mx6sl: two clocks
- mx6sx: three clocks
---
Changes since RFC:
- Simplified the clock handling as suggested by Tomi
drivers/video/fbdev/Kconfig | 2 +- drivers/video/fbdev/mxsfb.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-)
drivers/video/fbdev/Kconfig +1 -1
@@ -2425,7 +2425,7 @@ config FB_JZ4740 config FB_MXS tristate "MXS LCD framebuffer support" - depends on FB && ARCH_MXS + depends on FB && (ARCH_MXS || ARCH_MXC) select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT
drivers/video/fbdev/mxsfb.c +19 -0
@@ -172,6 +172,8 @@ struct mxsfb_info {struct fb_info fb_info;struct platform_device *pdev;struct clk *clk; +struct clk *clk_axi; +struct clk *clk_disp_axi;void __iomem *base;/* registers */ unsigned allocated_size;int enabled;
@@ -331,6 +333,11 @@ static void mxsfb_enable_controller(struct fb_info *fb_info) } } +if (host->clk_axi) +clk_prepare_enable (host->clk_axi); + +if (host->clk_disp_axi) +clk_prepare_enable (host->clk_disp_axi);clk_prepare_enable (host->clk);clk_set_rate (host->clk,PICOS2KHZ (fb_info->var.pixclock) *1000U );
@@ -374,6 +381,10 @@ static void mxsfb_disable_controller(struct fb_info *fb_info)writel (reg & ~VDCTRL4_SYNC_SIGNALS_ON , host->base +LCDC_VDCTRL4 );clk_disable_unprepare (host->clk); +if (host->clk_disp_axi) +clk_disable_unprepare (host->clk_disp_axi); +if (host->clk_axi) +clk_disable_unprepare (host->clk_axi); host->enabled =0 ;
@@ -867,6 +878,14 @@ static int mxsfb_probe(struct platform_device *pdev) goto fb_release; } + host->clk_axi =devm_clk_get (&host->pdev->dev,"axi" ); +if (IS_ERR (host->clk_axi)) + host->clk_axi =NULL ; + + host->clk_disp_axi =devm_clk_get (&host->pdev->dev,"disp_axi" ); +if (IS_ERR (host->clk_disp_axi)) + host->clk_disp_axi =NULL ; + host->reg_lcd =devm_regulator_get (&pdev->dev,"lcd" );if (IS_ERR (host->reg_lcd)) host->reg_lcd =NULL ;
Signature · 1 line
1.9.1
Fabio Estevam
reviewerHi Tomi,
Quoted 8 lines · Fabio Estevam
From: Fabio Estevam <[email protected]>
mx6sl and mx6sx share the same LCD controller as mx23 and mx28.
Add support for it.
The basic difference is the number of clocks that are required:
Quoted 8 lines
- mx23/mx28: only one clock
- mx6sl: two clocks
- mx6sx: three clocksSigned-off-by Fabio Estevam <[email protected]>---
Changes since RFC:
- Simplified the clock handling as suggested by Tomi
If you are happy with this one, could we get it into 3.19? Thanks
Quoted 12 lines · Fabio Estevam
From: Fabio Estevam <[email protected]>
mx6sl and mx6sx share the same LCD controller as mx23 and mx28.
Add support for it.
The basic difference is the number of clocks that are required:
- mx23/mx28: only one clock
- mx6sl: two clocks
- mx6sx: three clocks
Quoted 8 lines
Signed-off-by Fabio Estevam <[email protected]>---
Changes since RFC:
- Simplified the clock handling as suggested by Tomidrivers/video/fbdev/Kconfig | 2 +- drivers/video/fbdev/mxsfb.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-)
Looks fine to me, queued for 3.19.
Tomi