Skip to content

Instantly share code, notes, and snippets.

@pdp7
Last active February 2, 2017 20:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pdp7/1db356e758e9ff0c1e570e6ee362c673 to your computer and use it in GitHub Desktop.
Save pdp7/1db356e758e9ff0c1e570e6ee362c673 to your computer and use it in GitHub Desktop.
BeagleBone eQEP Rotary Encoder test

4.1.30-ti-r70

# uname -a
Linux beaglebone 4.1.30-ti-r70 #1 SMP Thu Jan 19 22:51:35

# config-pin p8.11 qep
# config-pin p8.12 qep

# cat /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/position
-2
<turn the rotary encoder>
# cat /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/position
18

# cat /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/power/control
auto
# cat /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/power/runtime_enabled
enabled
# cat /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/power/runtime_status
suspended

4.4.44-ti-r85

# uname -a
Linux beaglebone 4.4.44-ti-r85 #1 SMP Fri Jan 27 22:16:52

# config-pin p8.11 qep
# config-pin p8.12 qep

# cat /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/position
-2
<turn the rotary encoder>
# cat /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/position
18

# cat /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/power/control
auto
# cat /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/power/runtime_enabled
enabled
# cat /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/power/runtime_status
suspended

4.9.6-ti-r17

# uname -a
Linux beaglebone 4.9.6-ti-r17 #1 SMP PREEMPT Sat Jan 28 11:37:11 UTC 2017 armv7l GNU/Linux

# cat /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/power/control
auto
# echo on > /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/power/control
# cat /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/power/control
on
# cat /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/power/runtime_status 
active

# config-pin p8.11 qep
# config-pin p8.12 qep

# cat /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/position
-2
<turn the rotary encoder>
# cat /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/position
46

4.9.6-ti-r18

  • Add eQEP driver patch to avoid unhandled fault:
    • patches/drivers/ti/eqep/0002-Avoid-unhandled-fault-when-reading-eQEP-registers.patch
    • Add pm_runtime_get_sync() before any read or write to the eQEP memory mapped registers
root@beaglebone:~# uname -a
Linux beaglebone 4.9.6-ti-r18 #1 SMP PREEMPT Thu Feb 2 03:50:27 CST 2017 armv7l GNU/Linux
root@beaglebone:~# config-pin p8.11 qep && config-pin p8.12 qep
root@beaglebone:~# cat /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/position
0
root@beaglebone:~# cat /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/position
66

4.9.7-ti-r19

New kernel with https://github.com/RobertCNelson/ti-linux-kernel-dev/commit/f89418b8f79dea8a843dab279b7c47c5a4b79ef9

root@beaglebone:~# uname -r
4.9.7-ti-r19
root@beaglebone:~# config-pin p8.11 qep && config-pin p8.12 qep
root@beaglebone:~# cat /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/position 
1
root@beaglebone:~# cat /sys/devices/platform/ocp/48304000.epwmss/48304180.eqep/position 
97
@pdp7
Copy link
Author

pdp7 commented Feb 2, 2017

UPDATE:
Fix merged by Robert C. Nelson:
tieqep: add patch to fix unhandled fault on 4.9 kernel
RobertCNelson/ti-linux-kernel-dev@f89418b

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment