Hello,
I am trying to use both the “cape-bone-iio” device tree overlay for analog input, and a simple pin-muxing overlay (see attached DTS file) to change the direction of various gpio pins. Although they both work on their own, it seems that there is a problem when loaded together. The first overlay always works, and the second seems to load just fine, but does not take effect…
Example 1 (first load cape-bone-iio, then DM-GPIO-Test)
root@beaglebone:~# echo cape-bone-iio > $SLOTS
[ 70.330541] bone-capemgr bone_capemgr.8: part_number ‘cape-bone-iio’, version ‘N/A’
[ 70.341287] bone-capemgr bone_capemgr.8: slot #7: generic override
[ 70.347943] bone-capemgr bone_capemgr.8: bone: Using override eeprom data at slot 7
[ 70.355978] bone-capemgr bone_capemgr.8: slot #7: ‘Override Board Name,00A0,Override Manuf,cape-bone-iio’
[ 70.368667] bone-capemgr bone_capemgr.8: slot #7: Requesting part number/version based 'cape-bone-iio-00A0.dtbo
[ 70.380219] bone-capemgr bone_capemgr.8: slot #7: Requesting firmware ‘cape-bone-iio-00A0.dtbo’ for board-name ‘Override Board Name’, version ‘00A0’
[ 70.395034] bone-capemgr bone_capemgr.8: slot #7: dtbo ‘cape-bone-iio-00A0.dtbo’ loaded; converting to live tree
[ 70.407309] bone-capemgr bone_capemgr.8: slot #7: #1 overlays
[ 70.421631] bone-iio-helper helper.14: ready
[ 70.433579] bone-capemgr bone_capemgr.8: slot #7: Applied #1 overlays.
root@beaglebone:~# ls /sys/devices/ocp.2/helper.14/
AIN0 AIN1 AIN2 AIN3 AIN4 AIN5 AIN6 AIN7 driver modalias power subsystem uevent
root@beaglebone:~# ls /sys/bus/iio/devices/iio:device0
buffer in_voltage0_raw in_voltage2_raw in_voltage4_raw in_voltage6_raw name scan_elements trigger
dev in_voltage1_raw in_voltage3_raw in_voltage5_raw in_voltage7_raw power subsystem uevent
root@beaglebone:~# echo DM-GPIO-Test > $SLOTS
[ 286.033107] bone-capemgr bone_capemgr.8: part_number ‘DM-GPIO-Test’, version ‘N/A’
[ 286.043079] bone-capemgr bone_capemgr.8: slot #8: generic override
[ 286.049605] bone-capemgr bone_capemgr.8: bone: Using override eeprom data at slot 8
[ 286.057622] bone-capemgr bone_capemgr.8: slot #8: ‘Override Board Name,00A0,Override Manuf,DM-GPIO-Test’
[ 286.071044] bone-capemgr bone_capemgr.8: slot #8: Requesting part number/version based 'DM-GPIO-Test-00A0.dtbo
[ 286.082390] bone-capemgr bone_capemgr.8: slot #8: Requesting firmware ‘DM-GPIO-Test-00A0.dtbo’ for board-name ‘Override Board Name’, version ‘00A0’
[ 286.103360] bone-capemgr bone_capemgr.8: slot #8: dtbo ‘DM-GPIO-Test-00A0.dtbo’ loaded; converting to live tree
[ 286.115233] bone-capemgr bone_capemgr.8: slot #8: #2 overlays
[ 286.122388] bone-capemgr bone_capemgr.8: slot #8: Applied #2 overlays.
root@beaglebone:~# cat $PINS | grep 998
pin 102 (44e10998) 00000027 pinctrl-single ← unchanged
0: 54:PF—
1: 55:PF—
2: 56:PF—
3: 57:PF—
4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
5: ff:P-O-L Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
7: ff:P-O-L Override Board Name,00A0,Override Manuf,cape-bone-iio
8: ff:P-O-L Override Board Name,00A0,Override Manuf,DM-GPIO-Test
Example 2 (first load DM-GPIO-Test, then cape-bone-iio)
root@beaglebone:~# cat $PINS | grep 998
pin 102 (44e10998) 00000027 pinctrl-single ← default value
root@beaglebone:~# echo DM-GPIO-Test > $SLOTS
[ 90.459668] bone-capemgr bone_capemgr.8: part_number ‘DM-GPIO-Test’, version ‘N/A’
[ 90.469663] bone-capemgr bone_capemgr.8: slot #7: generic override
[ 90.476312] bone-capemgr bone_capemgr.8: bone: Using override eeprom data at slot 7
[ 90.484332] bone-capemgr bone_capemgr.8: slot #7: ‘Override Board Name,00A0,Override Manuf,DM-GPIO-Test’
[ 90.496939] bone-capemgr bone_capemgr.8: slot #7: Requesting part number/version based 'DM-GPIO-Test-00A0.dtbo
[ 90.508493] bone-capemgr bone_capemgr.8: slot #7: Requesting firmware ‘DM-GPIO-Test-00A0.dtbo’ for board-name ‘Override Board Name’, version ‘00A0’
[ 90.530293] bone-capemgr bone_capemgr.8: slot #7: dtbo ‘DM-GPIO-Test-00A0.dtbo’ loaded; converting to live tree
[ 90.542078] bone-capemgr bone_capemgr.8: slot #7: #2 overlays
[ 90.554967] bone-capemgr bone_capemgr.8: slot #7: Applied #2 overlays.
root@beaglebone:~# cat $PINS | grep 998
pin 102 (44e10998) 00000037 pinctrl-single ← expected value from what was in the overlay
root@beaglebone:~# echo cape-bone-iio > $SLOTS
[ 224.500468] bone-capemgr bone_capemgr.8: part_number ‘cape-bone-iio’, version ‘N/A’
[ 224.510629] bone-capemgr bone_capemgr.8: slot #8: generic override
[ 224.517183] bone-capemgr bone_capemgr.8: bone: Using override eeprom data at slot 8
[ 224.525207] bone-capemgr bone_capemgr.8: slot #8: ‘Override Board Name,00A0,Override Manuf,cape-bone-iio’
[ 224.538451] bone-capemgr bone_capemgr.8: slot #8: Requesting part number/version based 'cape-bone-iio-00A0.dtbo
[ 224.550076] bone-capemgr bone_capemgr.8: slot #8: Requesting firmware ‘cape-bone-iio-00A0.dtbo’ for board-name ‘Override Board Name’, version ‘00A0’
[ 224.564897] bone-capemgr bone_capemgr.8: slot #8: dtbo ‘cape-bone-iio-00A0.dtbo’ loaded; converting to live tree
[ 224.576965] bone-capemgr bone_capemgr.8: slot #8: #1 overlays
[ 224.591865] bone-capemgr bone_capemgr.8: slot #8: Applied #1 overlays.
root@beaglebone:~# ls /sys/devices/ocp.2/helper.14/
driver modalias power state subsystem uevent ← missing AIN* files here, but the files in /sys/bus/iio/… seem to get populated as expected
root@beaglebone:~# ls /sys/bus/iio/devices/iio:device0
buffer in_voltage0_raw in_voltage2_raw in_voltage4_raw in_voltage6_raw name scan_elements trigger
dev in_voltage1_raw in_voltage3_raw in_voltage5_raw in_voltage7_raw power subsystem uevent
0: 54:PF—
1: 55:PF—
2: 56:PF—
3: 57:PF—
4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
5: ff:P-O-L Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
7: ff:P-O-L Override Board Name,00A0,Override Manuf,DM-GPIO-Test
8: ff:P-O-L Override Board Name,00A0,Override Manuf,cape-bone-iio
If anyone can provide some insight on this, it would be greatly appreciated. I’m not sure if this is an issue with the cape manager, or maybe the bone-iio-helper or bone-pinmux-helper driver? I have also tried the “BB-SPI0-01” overlay with my others and they seem to get along just fine. FYI I am running Linux beaglebone 3.8.13 #1 SMP Wed Sep 4 and Cloud9 GNOME Image 2013.09.04. Thanks so much for any help!!
- Chris