mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
mfd: atmel-hlcdc: Fetch LVDS PLL clock for LVDS display
The XLCDC IP supports parallel RGB, MIPI DSI and LVDS Display. The LCD Generic clock (sys_clk) is used for Parallel RGB and MIPI displays, while the LVDS PLL clock (lvds_pll_clk) is used for LVDS displays.Since both the clocks cannot co-exist together in the DT for a given display, this patch tries sys_clk first (RGB/MIPI), fallback to lvds_pll_clk (LVDS). Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com> Signed-off-by: Dharma Balasubiramani <dharma.b@microchip.com> Link: https://patch.msgid.link/20260223101920.284697-2-manikandan.m@microchip.com Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
parent
c2b06b133c
commit
239cd6a417
|
|
@ -108,10 +108,19 @@ static int atmel_hlcdc_probe(struct platform_device *pdev)
|
|||
return PTR_ERR(hlcdc->periph_clk);
|
||||
}
|
||||
|
||||
/*
|
||||
* Retrieve one of the primary clocks required for LCD operation:
|
||||
* prefer sys_clk (for RGB/MIPI), and fall back to lvds_pll_clk
|
||||
* (for LVDS) if needed.
|
||||
*/
|
||||
hlcdc->sys_clk = devm_clk_get(dev, "sys_clk");
|
||||
if (IS_ERR(hlcdc->sys_clk)) {
|
||||
dev_err(dev, "failed to get system clock\n");
|
||||
return PTR_ERR(hlcdc->sys_clk);
|
||||
hlcdc->sys_clk = NULL;
|
||||
hlcdc->lvds_pll_clk = devm_clk_get(dev, "lvds_pll_clk");
|
||||
if (IS_ERR(hlcdc->lvds_pll_clk)) {
|
||||
dev_err(dev, "Failed to obtain both the LCDC (generic) and LVDS PLL clocks\n");
|
||||
return PTR_ERR(hlcdc->lvds_pll_clk);
|
||||
}
|
||||
}
|
||||
|
||||
hlcdc->slow_clk = devm_clk_get(dev, "slow_clk");
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@
|
|||
*/
|
||||
struct atmel_hlcdc {
|
||||
struct regmap *regmap;
|
||||
struct clk *lvds_pll_clk;
|
||||
struct clk *periph_clk;
|
||||
struct clk *sys_clk;
|
||||
struct clk *slow_clk;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user