Skip to content

Day38 - IIO Sysfs Control

🎯 Objective

Verify sysfs-based control for:

  • sampling_frequency
  • fifo_enable
  • watermark

🔍 Step 1: Check sysfs nodes

ls /sys/bus/iio/devices/iio:device0

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