diff options
| author | Nicholas Troast <ntroast@codeaurora.org> | 2017-01-10 13:33:36 -0800 |
|---|---|---|
| committer | Nicholas Troast <ntroast@codeaurora.org> | 2017-02-07 09:49:24 -0800 |
| commit | abaead7bc3f98a125e6d272dfc4bbb5e04841902 (patch) | |
| tree | 86f03568fefa02de1b5cb4189bf3903c5cbaca47 | |
| parent | 401dea940e8e763a04d327d25958207120067205 (diff) | |
iio: qcom-tadc: enable hardware conversion triggers
The hardware conversion triggers are required for thermal regulation.
Enable them.
Change-Id: I4172f7ae8df437ba3a49e6abae587298bc11d78b
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
| -rw-r--r-- | drivers/iio/adc/qcom-tadc.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/iio/adc/qcom-tadc.c b/drivers/iio/adc/qcom-tadc.c index ed6b08884f4a..9230d86cf1b5 100644 --- a/drivers/iio/adc/qcom-tadc.c +++ b/drivers/iio/adc/qcom-tadc.c @@ -274,6 +274,9 @@ static bool tadc_is_reg_locked(struct tadc_chip *chip, u16 reg) if ((reg & 0xFF00) == chip->tadc_cmp_base) return true; + if (reg == TADC_HWTRIG_CONV_CH_EN_REG(chip)) + return true; + return false; } @@ -909,6 +912,8 @@ static int tadc_parse_dt(struct tadc_chip *chip) static int tadc_init_hw(struct tadc_chip *chip) { + int rc; + chip->chans[TADC_THERM1].thr[0].addr_lo = TADC_CMP_THR1_CH1_CMP_LO_REG(chip); chip->chans[TADC_THERM1].thr[0].addr_hi = @@ -952,6 +957,16 @@ static int tadc_init_hw(struct tadc_chip *chip) chip->chans[TADC_DIE_TEMP].thr[2].addr_hi = TADC_CMP_THR3_CH3_CMP_HI_REG(chip); + /* enable all temperature hardware triggers */ + rc = tadc_write(chip, TADC_HWTRIG_CONV_CH_EN_REG(chip), + BIT(TADC_THERM1) | + BIT(TADC_THERM2) | + BIT(TADC_DIE_TEMP)); + if (rc < 0) { + pr_err("Couldn't enable hardware triggers rc=%d\n", rc); + return rc; + } + return 0; } |
