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

Commit 5121da9d authored by Yue Ma's avatar Yue Ma Committed by Gerrit - the friendly Code Review server
Browse files

cnss2: Use command DB name from device tree



The command DB name which indicates the PMIC rail used for open loop
CPR feature should come from device tree since in different platforms,
it may use different PMIC rail.

Change-Id: Ia5b62cec5e1fefd8ed019524215a4ad2c9048c2c
Signed-off-by: default avatarYue Ma <yuem@codeaurora.org>
parent 46e7ca64
Loading
Loading
Loading
Loading
+16 −13
Original line number Diff line number Diff line
@@ -840,7 +840,8 @@ int cnss_get_cpr_info(struct cnss_plat_data *plat_priv)
	struct resource *res;
	resource_size_t addr_len;
	void __iomem *tcs_cmd_base_addr;
	u32 s2f_addr = 0, s6a_addr = 0;
	const char *cmd_db_name;
	u32 cpr_pmic_addr = 0;
	int ret = 0;

	res = platform_get_resource_byname(plat_dev, IORESOURCE_MEM, "tcs_cmd");
@@ -849,25 +850,27 @@ int cnss_get_cpr_info(struct cnss_plat_data *plat_priv)
		goto out;
	}

	ret = of_property_read_string(plat_dev->dev.of_node,
				      "qcom,cmd_db_name", &cmd_db_name);
	if (ret) {
		cnss_pr_dbg("CommandDB name is not present for CPR\n");
		goto out;
	}

	ret = cmd_db_ready();
	if (ret) {
		cnss_pr_err("CommandDB is not ready\n");
		goto out;
	}

	s2f_addr = cmd_db_read_addr("smpf2");
	s6a_addr = cmd_db_read_addr("smpa6");

	if (s2f_addr > 0) {
		cpr_info->cpr_pmic_addr = s2f_addr;
		cnss_pr_dbg("Get CPR PMIC address 0x%x from s2f\n",
			    cpr_info->cpr_pmic_addr);
	} else if (s6a_addr > 0) {
		cpr_info->cpr_pmic_addr = s6a_addr;
		cnss_pr_dbg("Get CPR PMIC address 0x%x from s6a\n",
			    cpr_info->cpr_pmic_addr);
	cpr_pmic_addr = cmd_db_read_addr(cmd_db_name);
	if (cpr_pmic_addr > 0) {
		cpr_info->cpr_pmic_addr = cpr_pmic_addr;
		cnss_pr_dbg("Get CPR PMIC address 0x%x from %s\n",
			    cpr_info->cpr_pmic_addr, cmd_db_name);
	} else {
		cnss_pr_err("CPR PMIC addresses are not available\n");
		cnss_pr_err("CPR PMIC address is not available for %s\n",
			    cmd_db_name);
		ret = -EINVAL;
		goto out;
	}