Hi Jonathan, I was speaking with Rodrigo and here is what I think must be done to move ADE7878 out of staging
Here are the steps as I see them: 1) Define the IIO Attributes so they are consistent with the IIO ABI. This should be pretty simple given agreement on the naming convention. 2) Map the ADE7854 interrupt status to IIO events. This requires an interrupt processing section. 3) Add DeviceTree support. 4) Create DeviceTree overlay for the ADE7854. 5) Update ADE7854 probe to read in the DeviceTree register settings. 6) Add support for power modes (PM1, PM2). 7) Not sure if we will support measurement streaming on the ADE7854. The problem is ADE7854 is designed as an SPI master, which means it controls the SPI clock, so the driver must support SPI slave mode. However, the Linux Kernel does not currently support SPI slave mode. We have three choices to make this work and they are all a lot of work: 1) Add support for SPI Slave mode to the kernel, 2) Use hardware to convert SPI signals to I2S signals and with the use of a custom codec, use the ALSA framework to stream the samples (this is an approach I used, but I don’t like it), 3) Move the I2S driver out of the sound subsystem and use it together with DMA to stream samples directly into the ADE7854 driver (my preferred solutions). Perhaps Mark Brown has some ideas on how to make this work. The ADE9000 will be much easier because it uses an SPI Slave interface. I hope I have captured everything, but let me know if I have missed anything. Regards, John