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

Commit e9eaac3d authored by Hardik Kantilal Patel's avatar Hardik Kantilal Patel
Browse files

wcnss: Reset IRIS card before Starting IRIS XO configuration



Set iris_reset bit of PMU CFG register to reset the IRIS
card before Starting IRIS XO configuration.

Change-Id: I49dd6812995c8c284c4497b4c356b82e95f28626
CRs-Fixed: 664642
Signed-off-by: default avatarHardik Kantilal Patel <hkpatel@codeaurora.org>
parent b01ab4e5
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -47,6 +47,8 @@ static int auto_detect;
#define WCNSS_PMU_CFG_GC_BUS_MUX_SEL_TOP   BIT(5)
#define WCNSS_PMU_CFG_IRIS_XO_CFG_STS      BIT(6) /* 1: in progress, 0: done */

#define WCNSS_PMU_CFG_IRIS_RESET           BIT(7)
#define WCNSS_PMU_CFG_IRIS_RESET_STS       BIT(8) /* 1: in progress, 0: done */
#define WCNSS_PMU_CFG_IRIS_XO_READ         BIT(9)
#define WCNSS_PMU_CFG_IRIS_XO_READ_STS     BIT(10)

@@ -277,6 +279,19 @@ configure_iris_xo(struct device *dev,

		writel_relaxed(reg, pmu_conf_reg);

		/* Reset IRIS */
		reg |= WCNSS_PMU_CFG_IRIS_RESET;
		writel_relaxed(reg, pmu_conf_reg);

		/* Wait for PMU_CFG.iris_reg_reset_sts */
		while (readl_relaxed(pmu_conf_reg) &
				WCNSS_PMU_CFG_IRIS_RESET_STS)
			cpu_relax();

		/* Reset iris reset bit */
		reg &= ~WCNSS_PMU_CFG_IRIS_RESET;
		writel_relaxed(reg, pmu_conf_reg);

		/* Start IRIS XO configuration */
		reg |= WCNSS_PMU_CFG_IRIS_XO_CFG;
		writel_relaxed(reg, pmu_conf_reg);