mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 17:25:35 +03:00
ufs: Set utmi_pll1 as parent for cpu_isc clocks
Set utmi_pll1 as parent for cpu_isc clocks Bug 4782274 Change-Id: Iab71527dc6de3f46d4b7880c3dd00eadc130c5ba Signed-off-by: Mallikarjun Kasoju <mkasoju@nvidia.com>
This commit is contained in:
committed by
Jon Hunter
parent
711b5110fc
commit
701657e6f7
@@ -808,16 +808,42 @@ static int ufs_tegra_init_ufs_clks(struct ufs_tegra_host *ufs_tegra)
|
|||||||
if (ufs_tegra->soc->chip_id != TEGRA264) {
|
if (ufs_tegra->soc->chip_id != TEGRA264) {
|
||||||
err = ufs_tegra_host_clk_get(dev,
|
err = ufs_tegra_host_clk_get(dev,
|
||||||
"pll_p", &ufs_tegra->ufshc_parent);
|
"pll_p", &ufs_tegra->ufshc_parent);
|
||||||
|
if (err)
|
||||||
|
goto out;
|
||||||
} else {
|
} else {
|
||||||
err = ufs_tegra_host_clk_get(dev,
|
err = ufs_tegra_host_clk_get(dev,
|
||||||
"pllrefe_vcoout", &ufs_tegra->ufshc_parent);
|
"pllrefe_vcoout", &ufs_tegra->ufshc_parent);
|
||||||
if (err)
|
if (err) {
|
||||||
|
dev_err(dev, "%s: pllrefe_vcoout clock get failed: Err %d",
|
||||||
|
__func__, err);
|
||||||
goto out;
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
err = ufs_tegra_host_clk_get(dev,
|
err = ufs_tegra_host_clk_get(dev,
|
||||||
"ufshc_div", &ufs_tegra->ufshc_clk_div);
|
"ufshc_div", &ufs_tegra->ufshc_clk_div);
|
||||||
|
if (err) {
|
||||||
|
dev_err(dev, "%s: ufshc_div clock get failed: Err %d",
|
||||||
|
__func__, err);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
err = ufs_tegra_host_clk_get(dev,
|
||||||
|
"isc_cpu", &ufs_tegra->isc_cpu);
|
||||||
|
if (err) {
|
||||||
|
dev_err(dev, "%s: isc_cpu clock get failed: Err %d",
|
||||||
|
__func__, err);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
err = ufs_tegra_host_clk_get(dev,
|
||||||
|
"utmi_pll1", &ufs_tegra->utmi_pll1);
|
||||||
|
if (err) {
|
||||||
|
dev_err(dev, "%s: utmi_pll1 clock get failed: Err %d",
|
||||||
|
__func__, err);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (err)
|
|
||||||
goto out;
|
|
||||||
if (ufs_tegra->soc->chip_id != TEGRA264) {
|
if (ufs_tegra->soc->chip_id != TEGRA264) {
|
||||||
err = ufs_tegra_host_clk_get(dev,
|
err = ufs_tegra_host_clk_get(dev,
|
||||||
"clk_m", &ufs_tegra->ufsdev_parent);
|
"clk_m", &ufs_tegra->ufsdev_parent);
|
||||||
@@ -854,12 +880,20 @@ static int ufs_tegra_enable_ufs_clks(struct ufs_tegra_host *ufs_tegra)
|
|||||||
*/
|
*/
|
||||||
err = clk_set_parent(ufs_tegra->ufshc_clk,
|
err = clk_set_parent(ufs_tegra->ufshc_clk,
|
||||||
ufs_tegra->ufshc_clk_div);
|
ufs_tegra->ufshc_clk_div);
|
||||||
|
|
||||||
|
if (err) {
|
||||||
|
pr_err("\n ufshc_clk clk_set_parent failed\n");
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
err = clk_set_parent(ufs_tegra->isc_cpu,
|
||||||
|
ufs_tegra->utmi_pll1);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
err = clk_set_parent(ufs_tegra->ufshc_clk,
|
err = clk_set_parent(ufs_tegra->ufshc_clk,
|
||||||
ufs_tegra->ufshc_parent);
|
ufs_tegra->ufshc_parent);
|
||||||
}
|
}
|
||||||
if (err) {
|
if (err) {
|
||||||
pr_err("Function clk_set_parent failed\n");
|
pr_err("\n clk_set_parent failed\n");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
if (ufs_tegra->soc->chip_id != TEGRA264) {
|
if (ufs_tegra->soc->chip_id != TEGRA264) {
|
||||||
|
|||||||
@@ -389,6 +389,8 @@ struct ufs_tegra_host {
|
|||||||
struct clk *ufs_uphy_pll3;
|
struct clk *ufs_uphy_pll3;
|
||||||
struct clk *pllrefe_clk;
|
struct clk *pllrefe_clk;
|
||||||
struct clk *mphy_l0_uphy_tx_fifo;
|
struct clk *mphy_l0_uphy_tx_fifo;
|
||||||
|
struct clk *isc_cpu;
|
||||||
|
struct clk *utmi_pll1;
|
||||||
struct regulator *vddio_ufs;
|
struct regulator *vddio_ufs;
|
||||||
struct regulator *vddio_ufs_ap;
|
struct regulator *vddio_ufs_ap;
|
||||||
struct pinctrl *ufs_pinctrl;
|
struct pinctrl *ufs_pinctrl;
|
||||||
|
|||||||
Reference in New Issue
Block a user