diff options
author | loos <loos@FreeBSD.org> | 2017-01-04 00:18:38 +0000 |
---|---|---|
committer | loos <loos@FreeBSD.org> | 2017-01-04 00:18:38 +0000 |
commit | be590007a9b77af6784d11a13c8ce073938b0657 (patch) | |
tree | 74076417b91832759077e0961dec4a07eb840d0b /sys/arm | |
parent | f9e3def0a8d5d23509ea2969d8021e48e436d654 (diff) | |
download | FreeBSD-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)
Diffstat (limited to 'sys/arm')
-rw-r--r-- | sys/arm/ti/am335x/am335x_scm.c | 11 |
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, ®); + DELAY(500); + /* Set continous mode. */ + ti_scm_reg_write_4(SCM_BGAP_CTRL, SCM_BGAP_CONTCONV); ti_scm_reg_read_4(SCM_BGAP_CTRL, ®); + 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); |