Severson-Group / AMDC-Firmware

Embedded system code (C and Verilog) which runs the AMDC Hardware
http://docs.amdc.dev/firmware
BSD 3-Clause "New" or "Revised" License
31 stars 5 forks source link

v1: (1/3): REV E hardware support #214

Closed npetersen2 closed 2 years ago

npetersen2 commented 2 years ago

This PR adds support for the AMDC REV E hardware design, as well as removing support for REV C targets.

There are a few pieces of this PR:

  1. Remove drivers only for REV C target (i.e. drv/io.h and drv/gpio.h)
  2. Addition of amdc_gp3io_mux IP block. This is needed since the REV E hardware has 3 I/O lanes per GPIO port, while the REV D only has 2 I/O lanes. A significant number of Files changed are from this new IP block
  3. Remove #ifdef checks for AMDC_REV_D board. Since REV C is no longer supported, we can just assume the user has support for REV D features since REV E also does. This simplifies the drivers a bit.
  4. Add support in the drv/pwm.c PWM driver for the new hardware pin to disable PWM at boot. Only when the user explicitly turns on PWM capabilities can the hardware output gate signals -- otherwise, always logic low.