Day38 - IIO Sysfs Control¶
🎯 Objective¶
Verify sysfs-based control for:
- sampling_frequency
- fifo_enable
- watermark
🔍 Step 1: Check sysfs nodes¶
Expected:
- sampling_frequency
- fifo_enable
- watermark
🔍 Step 2: Read default values¶
cat /sys/bus/iio/devices/iio:device0/sampling_frequency
cat /sys/bus/iio/devices/iio:device0/fifo_enable
cat /sys/bus/iio/devices/iio:device0/watermark
✏️ Step 3: Write valid values¶
echo 1 | sudo tee /sys/bus/iio/devices/iio:device0/fifo_enable
echo 8 | sudo tee /sys/bus/iio/devices/iio:device0/watermark
echo 2 | sudo tee /sys/bus/iio/devices/iio:device0/sampling_frequency
❌ Step 4: Write invalid values¶
echo 16 | sudo tee /sys/bus/iio/devices/iio:device0/watermark
echo 8 | sudo tee /sys/bus/iio/devices/iio:device0/sampling_frequency
Expected:
- Return:
Invalid argument
🔒 Step 5: Test runtime protection¶
Enable buffer streaming first, then:
echo 1 | sudo tee /sys/bus/iio/devices/iio:device0/fifo_enable
echo 4 | sudo tee /sys/bus/iio/devices/iio:device0/watermark
Expected:
- Return:
Device or resource busy(-EBUSY)
🔄 Step 6: Verify behavior¶
Check:
- FIFO enable affects IRQ frequency
- Watermark affects interrupt rate
- Sample rate changes output rate
📊 Expected Result¶
- Sysfs values match driver state
- Hardware behavior matches configuration
- Invalid values are rejected
- Runtime protection works