Re: Doubts in getting started with the Analog AD7928 driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2019-09-16 at 20:50 -0300, Daniel Junho wrote:
> [External]
> 
> Hello everybody.
> 
> I am still learning about kernel developing. I would like to try to
> develop a device driver for the AD7928 [1], from Analog Device.
> 
> Can someone give some words to guide me?
> 
> I was thinking about forking the analog kernel repo [2] but I don't
> know to which branch should I commit to when doing a pull request. Or
> if this is the correct way for the devices from Analog.
> 

Hey,

Thanks for the interest in writing the driver for this.

In some cases, some new parts may have an existing driver available already
that can be re-used partially or completely.

You're in luck.
There is driver seems to be partially implemented via 
drivers/iio/adc/ad7923.c

I've done only a minor/quick check but the control register bits are
compatible for the AD7928 as well.

Typically, you can extend that driver and add the new parts and test them.

So, my suggestion would be:
1. Get an eval-board or a AD7928 part; depending on the case we could help
with this
2. Try to set it up with a Raspberry Pi with the eval board
   a. it looks to me that you need a 7V-9V power-supply
   b. you can hook the SPI to the test-points on the eval board
3. Write a basic device-tree overlay ; you can adapt something from other
examples.
Look here:
https://github.com/analogdevicesinc/linux/blob/rpi-4.19.y/arch/arm/boot/dts/overlays/Makefile
Usually  rpi-adXXX.dts  are ADI parts.
4. Enable the driver for the kernel.
If using the ADI kernel, there's a guide here for RPi.
https://wiki.analog.com/resources/tools-software/linux-build/generic/raspberrypi
Check the branch that matches your Raspbian image (rpi-4.19.y is the
latest)
5. Build the kernel
6. Write it to the SD-card image
7. Test
8. Modify & repeat

Thanks
Alex

> [1] https://www.analog.com/en/products/ad7928.html
> [2] https://github.com/analogdevicesinc/linux
> 
> Daniel Junho




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux