forked from Minki/linux
serial: 8250_omap: Use clk_get_rate() to obtain fclk frequency
8250_omap driver uses clock-frequency DT property to obtain functional clk frequency. This is not ideal as users need to calculate functional clk frequency offline and populate it in DT. Therefore add support to obtain functional clock frequency using clk APIs when clock-frequency DT property is not defined. Suggested-by: Lokesh Vutla <lokeshvutla@ti.com> Signed-off-by: Vignesh R <vigneshr@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
7f0c77f35b
commit
7d470ebf58
@ -12,6 +12,7 @@
|
||||
#define SUPPORT_SYSRQ
|
||||
#endif
|
||||
|
||||
#include <linux/clk.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/module.h>
|
||||
@ -1203,7 +1204,18 @@ static int omap8250_probe(struct platform_device *pdev)
|
||||
}
|
||||
up.port.line = ret;
|
||||
|
||||
of_property_read_u32(np, "clock-frequency", &up.port.uartclk);
|
||||
if (of_property_read_u32(np, "clock-frequency", &up.port.uartclk)) {
|
||||
struct clk *clk;
|
||||
|
||||
clk = devm_clk_get(&pdev->dev, NULL);
|
||||
if (IS_ERR(clk)) {
|
||||
if (PTR_ERR(clk) == -EPROBE_DEFER)
|
||||
return -EPROBE_DEFER;
|
||||
} else {
|
||||
up.port.uartclk = clk_get_rate(clk);
|
||||
}
|
||||
}
|
||||
|
||||
priv->wakeirq = irq_of_parse_and_map(np, 1);
|
||||
|
||||
id = of_match_device(of_match_ptr(omap8250_dt_ids), &pdev->dev);
|
||||
|
Loading…
Reference in New Issue
Block a user