summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorloos <loos@FreeBSD.org>2017-01-04 00:18:38 +0000
committerloos <loos@FreeBSD.org>2017-01-04 00:18:38 +0000
commitbe590007a9b77af6784d11a13c8ce073938b0657 (patch)
tree74076417b91832759077e0961dec4a07eb840d0b
parentf9e3def0a8d5d23509ea2969d8021e48e436d654 (diff)
downloadFreeBSD-src-be590007a9b77af6784d11a13c8ce073938b0657.zip
FreeBSD-src-be590007a9b77af6784d11a13c8ce073938b0657.tar.gz
Fixes the sensor initialization, always reset the digital outputs on start.
Obtained from: pfSense Sponsored by: Rubicon Communications, LLC (Netgate)
-rw-r--r--sys/arm/ti/am335x/am335x_scm.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/arm/ti/am335x/am335x_scm.c b/sys/arm/ti/am335x/am335x_scm.c
index 3d0dff4..6f040ed 100644
--- a/sys/arm/ti/am335x/am335x_scm.c
+++ b/sys/arm/ti/am335x/am335x_scm.c
@@ -110,11 +110,14 @@ am335x_scm_attach(device_t dev)
struct sysctl_oid_list *tree;
uint32_t reg;
- /* Set ADC to continous mode, clear output reset. */
- reg = SCM_BGAP_CLRZ | SCM_BGAP_CONTCONV;
- ti_scm_reg_write_4(SCM_BGAP_CTRL, reg);
- /* Flush write. */
+ /* Reset the digital outputs. */
+ ti_scm_reg_write_4(SCM_BGAP_CTRL, 0);
+ ti_scm_reg_read_4(SCM_BGAP_CTRL, &reg);
+ DELAY(500);
+ /* Set continous mode. */
+ ti_scm_reg_write_4(SCM_BGAP_CTRL, SCM_BGAP_CONTCONV);
ti_scm_reg_read_4(SCM_BGAP_CTRL, &reg);
+ DELAY(500);
/* Start the ADC conversion. */
reg = SCM_BGAP_CLRZ | SCM_BGAP_CONTCONV | SCM_BGAP_SOC;
ti_scm_reg_write_4(SCM_BGAP_CTRL, reg);
OpenPOWER on IntegriCloud