Hello James,

thanks for the patch and sorry that it get lost on the first submission.

The patch compiles fine and it doesn't seem to change interfaces a lot. So I would say it is OK. I'll give it two or three more days of review before pushing it.

Please remind me again in a week in case I forget to push it.

Best regards

Christian

On 21/02/2021 10:29, James Fitzsimons wrote:
This patch adds driver support for the eQEP (enhanced Quadrature Encoder Pulse)
module within each of the PWMSS units in the AM335x. The eQEP module is used for
hardware decoding of rotrary encoders, motor encoders etc.

Because the PWMSS module includes several components some of the existing code 
in
the pwm driver could be reused. To make this common I have added a pwmss.h 
header
and moved some of the pwmss specific defines and enum to this file. The pwmss.c
file contains a refactored (simplified) version of the clock configuration
method that was previously in the pwm.c file. The pwmss_module_clk_config will
now be shared by both the pwm and eqep drivers (and eventually the ecap driver 
if
that is ever added).

The approach taken with the qep.h header was to move some of the qep specific
defines from the am335x.h header to this file. They are specific to the qep
function and would likely never be referenced by anything other than this 
driver.
Doing this keeps these definitions with the driver code and reduces clutter in
am335x.h header.

The driver supports two primary modes of operation. A polled mode (which is the
default mode), and an interrupt event driven mode.

This patch includes the following revisions after feedback from Chris Johns:
  - improved documentation
  - addition of void* user argument to interrupt callback
  - addition of position value arg to interrupt callback

James Fitzsimons (1):
   Adding QEP driver support to BeagleBoneBlack BSP

  bsps/arm/beagle/headers.am              |   2 +
  bsps/arm/beagle/include/bsp/bbb-pwm.h   |  11 -
  bsps/arm/beagle/include/bsp/pwmss.h     |  54 +++
  bsps/arm/beagle/include/bsp/qep.h       | 382 ++++++++++++++++++++
  bsps/arm/beagle/pwm/pwm.c               |  60 +---
  bsps/arm/beagle/pwmss/pwmss.c           |  64 ++++
  bsps/arm/beagle/qep/qep.c               | 445 ++++++++++++++++++++++++
  c/src/lib/libbsp/arm/beagle/Makefile.am |   6 +
  spec/build/bsps/arm/beagle/obj.yml      |   5 +-
  9 files changed, 959 insertions(+), 70 deletions(-)
  create mode 100644 bsps/arm/beagle/include/bsp/pwmss.h
  create mode 100644 bsps/arm/beagle/include/bsp/qep.h
  create mode 100644 bsps/arm/beagle/pwmss/pwmss.c
  create mode 100644 bsps/arm/beagle/qep/qep.c

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to