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