clk: mediatek: provide common clk init function for infrasys
Provide common clk init function for infrasys that defaults to topckgen driver if clock-parent is not defined. This is the case for upstream DTSI that doesn't provide this entry. This is needed for infracfg driver that will make use of the unified gates + muxes implementation. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This commit is contained in:
committed by
Tom Rini
parent
a38cf1b2db
commit
04ab229fdc
@@ -708,8 +708,9 @@ const struct clk_ops mtk_clk_gate_ops = {
|
||||
.get_rate = mtk_clk_gate_get_rate,
|
||||
};
|
||||
|
||||
int mtk_common_clk_init(struct udevice *dev,
|
||||
const struct mtk_clk_tree *tree)
|
||||
static int mtk_common_clk_init_drv(struct udevice *dev,
|
||||
const struct mtk_clk_tree *tree,
|
||||
const struct driver *drv)
|
||||
{
|
||||
struct mtk_clk_priv *priv = dev_get_priv(dev);
|
||||
struct udevice *parent;
|
||||
@@ -721,8 +722,7 @@ int mtk_common_clk_init(struct udevice *dev,
|
||||
|
||||
ret = uclass_get_device_by_phandle(UCLASS_CLK, dev, "clock-parent", &parent);
|
||||
if (ret || !parent) {
|
||||
ret = uclass_get_device_by_driver(UCLASS_CLK,
|
||||
DM_DRIVER_GET(mtk_clk_apmixedsys), &parent);
|
||||
ret = uclass_get_device_by_driver(UCLASS_CLK, drv, &parent);
|
||||
if (ret || !parent)
|
||||
return -ENOENT;
|
||||
}
|
||||
@@ -733,6 +733,20 @@ int mtk_common_clk_init(struct udevice *dev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int mtk_common_clk_init(struct udevice *dev,
|
||||
const struct mtk_clk_tree *tree)
|
||||
{
|
||||
return mtk_common_clk_init_drv(dev, tree,
|
||||
DM_DRIVER_GET(mtk_clk_apmixedsys));
|
||||
}
|
||||
|
||||
int mtk_common_clk_infrasys_init(struct udevice *dev,
|
||||
const struct mtk_clk_tree *tree)
|
||||
{
|
||||
return mtk_common_clk_init_drv(dev, tree,
|
||||
DM_DRIVER_GET(mtk_clk_topckgen));
|
||||
}
|
||||
|
||||
int mtk_common_clk_gate_init(struct udevice *dev,
|
||||
const struct mtk_clk_tree *tree,
|
||||
const struct mtk_gate *gates)
|
||||
|
||||
@@ -266,6 +266,8 @@ extern const struct clk_ops mtk_clk_gate_ops;
|
||||
|
||||
int mtk_common_clk_init(struct udevice *dev,
|
||||
const struct mtk_clk_tree *tree);
|
||||
int mtk_common_clk_infrasys_init(struct udevice *dev,
|
||||
const struct mtk_clk_tree *tree);
|
||||
int mtk_common_clk_gate_init(struct udevice *dev,
|
||||
const struct mtk_clk_tree *tree,
|
||||
const struct mtk_gate *gates);
|
||||
|
||||
Reference in New Issue
Block a user