Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6dd6b97a authored by Jeevan Shriram's avatar Jeevan Shriram Committed by Narendra Muppalla
Browse files

clk: mdss: parse the dynamic refresh register base



Add support for parsing dynamic refresh register base
for register programming.

Change-Id: I0f23f3c6c01e2ef47fec5048ae0c8ebf31566b61
Signed-off-by: default avatarJeevan Shriram <jshriram@codeaurora.org>
parent ce84375c
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -51,8 +51,9 @@ Example:
		label = "MDSS DSI 0 PLL";
		cell-index = <0>;

		reg = <0xfd922A00 0xD4>;
		reg-names = "pll_base";
		reg = <0xfd922A00 0xD4>,
		      <0xfd922900 0x64>;
		reg-names = "pll_base", "dynamic_pll_base";
		gdsc-supply = <&gdsc_mdss>;
		vddio-supply = <&pm8941_l12>;
		vcca-supply = <&pm8941_l28>;
+16 −0
Original line number Diff line number Diff line
@@ -204,6 +204,7 @@ static int mdss_pll_probe(struct platform_device *pdev)
	const char *label;
	struct resource *pll_base_reg;
	struct resource *phy_base_reg;
	struct resource *dynamic_pll_base_reg;
	struct mdss_pll_resources *pll_res;

	if (!pdev->dev.of_node) {
@@ -267,6 +268,18 @@ static int mdss_pll_probe(struct platform_device *pdev)
		}
	}

	dynamic_pll_base_reg = platform_get_resource_byname(pdev,
					IORESOURCE_MEM, "dynamic_pll_base");
	if (dynamic_pll_base_reg) {
		pll_res->dyn_pll_base = ioremap(dynamic_pll_base_reg->start,
				resource_size(dynamic_pll_base_reg));
		if (!pll_res->dyn_pll_base) {
			pr_err("Unable to remap dynamic pll base resources\n");
			rc = -ENOMEM;
			goto dyn_pll_io_error;
		}
	}

	rc = mdss_pll_resource_init(pdev, pll_res);
	if (rc) {
		pr_err("Pll resource init failed rc=%d\n", rc);
@@ -284,6 +297,9 @@ static int mdss_pll_probe(struct platform_device *pdev)
clock_register_error:
	mdss_pll_resource_deinit(pdev, pll_res);
res_init_error:
	if (pll_res->dyn_pll_base)
		iounmap(pll_res->dyn_pll_base);
dyn_pll_io_error:
	if (pll_res->phy_base)
		iounmap(pll_res->phy_base);
phy_io_error:
+5 −1
Original line number Diff line number Diff line
@@ -42,9 +42,13 @@ struct mdss_pll_resources {
	/* Pll specific resources like GPIO, power supply, clocks, etc*/
	struct dss_module_power mp;

	/* dsi/edp/hmdi plls' base register and phy register mapping */
	/*
	 * dsi/edp/hmdi plls' base register, phy and dynamic refresh
	 * register mapping
	 */
	void __iomem	*pll_base;
	void __iomem	*phy_base;
	void __iomem	*dyn_pll_base;

	/*
	 * Certain pll's needs to update the same vco rate after resume in