Ok, so the following does *NOT* work on a 4.4.x kernel, but does on a 4.1.x kernel.
Starting off with 4.4.x kernelwilliam@beaglebone:~$ cat ti/WH-ADC-00A0.dts
/dts-v1/;
/plugin/;
/ {
compatible = "ti,beaglebone", "ti,beaglebone-black";
/* identification */
part-number = "WH-ADC";
version = "00A0";
fragment@0 {
target = <&tscadc>;
__overlay__ {
compatible = "uio";
uio-alias = "adc";
status = "okay";
};
};
};
william@beaglebone:~$ sudo touch /etc/modprobe.d/uio.conf
william@beaglebone:~$ sudo nano /etc/modprobe.d/uio.conf
# put in /etc/modprobe.d/uio.conf
#
# make driver match on compatible = "uio";
options uio_pdrv_genirq of_id=uio
william@beaglebone:~$ ls /dev | grep uio /* Crickets . . .*/
william@beaglebone:~$ sudo sh -c "echo ' WH-ADC' > /sys/devices/platform/bone_capemgr/slots"
[ 3658.413635] bone_capemgr bone_capemgr: part_number ' WH-ADC', version 'N/A'
[ 3658.420830] bone_capemgr bone_capemgr: slot #5: override
[ 3658.426181] bone_capemgr bone_capemgr: Using override eeprom data at slot 5
[ 3658.433959] bone_capemgr bone_capemgr: slot #5: 'Override Board Name,00A0,Override Manuf, WH-ADC'
Changing to 4.1.x kernel
william@beaglebone:~$ sudo nano /boot/uEnv.txt
uname_r=4.1.18-bone-rt-r19
william@beaglebone:~$ sudo reboot
william@beaglebone:~$ sudo sh -c "echo 'WH-ADC' > /sys/devices/platform/bone_capemgr/slots"
[ 62.607962] bone_capemgr bone_capemgr: part_number 'WH-ADC', version 'N/A'
[ 62.614993] bone_capemgr bone_capemgr: slot #4: override
[ 62.620338] bone_capemgr bone_capemgr: Using override eeprom data at slot 4
[ 62.627374] bone_capemgr bone_capemgr: slot #4: 'Override Board Name,00A0,Override Manuf,WH-ADC'
[ 62.649771] bone_capemgr bone_capemgr: slot #4: dtbo 'WH-ADC-00A0.dtbo' loaded; overlay id #0
So, something between these two versions, has changed, and has broken what worked initially. Perhaps it could even be the adc alias in the main board file ? I haven't looked yet . . .