linux icon indicating copy to clipboard operation
linux copied to clipboard

Add driver for new axi-tdd-ng

Open Yamakaja opened this issue 2 years ago • 2 comments

Disclaimer: The device for this driver is still undergoing development and verification, thus this might not necessarily be the final register layout, however significant changes are not expected to occur.

This PR introduces the driver, device tree documentation and an example device tree for demonstration purposes. The driver can be tested using a script like the following, and once more device documentation becomes available it will be linked accordingly.

The development progress of the HDL can be tracked here: https://github.com/analogdevicesinc/hdl/tree/dev_tdd/library/axi_tdd_ng

Note that this driver is still missing some input verification features, i.e. it is not verifying if the provided values will actually fit the registers, who's width can be configured at synthesis time. It also does not warn the user if they attempt to write to registers which are not accepting new data because the device is enabled. The exact shape of those features and limitations and how they should be presented to userspace is something i'd like to get some feedback on. (Do we actually return an error, silently ignore the write, truncate/clamp the value to fit?)

To test the driver, a script like the following can be used:

#!/usr/bin/bash

BASE_DIR="/sys/bus/platform/devices/fpga-axi@0/84a00000.tdd"
cd $BASE_DIR

echo 1000 > frame_length_ms
echo 1000 > startup_delay_ms
echo 100 > burst_count


for CHANNEL in {0..7}
do
	echo 1 > out_channel${CHANNEL}_enable
	echo $((${CHANNEL} * 100)) > out_channel${CHANNEL}_on_ms
	echo $(((1+${CHANNEL}) * 100)) > out_channel${CHANNEL}_off_ms
done

echo 1 > enable
echo 1 > sync_soft

Yamakaja avatar May 01 '22 22:05 Yamakaja

Closing this as there was no more feedback on it....

nunojsa avatar Jul 13 '22 13:07 nunojsa

Update:

  • Created the following branch: https://github.com/analogdevicesinc/linux/tree/axi_tdd
  • Removed 'NG' from the IP name and driver since the new IP will be named: axi_tdd
  • Tested in hardware on a ZedBoard with adv7511 as an example
  • The development progress of the HDL was moved here: https://github.com/analogdevicesinc/hdl/tree/dev_tdd_pr

podgori avatar Oct 14 '22 14:10 podgori

Update: The HDL code has been merged into master.

podgori avatar Dec 19 '22 12:12 podgori

Update: The driver development has been moved to: https://github.com/analogdevicesinc/linux/tree/dev_phaser

podgori avatar Feb 03 '23 14:02 podgori

Closing this one... Being done in #2168

nunojsa avatar Jun 12 '23 07:06 nunojsa