diff --git a/adi/__init__.py b/adi/__init__.py
index 96580a6f7..d577ef229 100644
--- a/adi/__init__.py
+++ b/adi/__init__.py
@@ -23,7 +23,7 @@
 from adi.ad5754r import ad5754r
 from adi.ad5940 import ad5940
 from adi.ad6676 import ad6676
-from adi.ad7091r import ad7091rx
+from adi.ad7091rx import ad7091rx
 from adi.ad7124 import ad7124
 from adi.ad7134 import ad7134
 from adi.ad7291 import ad7291
diff --git a/adi/ad7091r.py b/adi/ad7091rx.py
similarity index 91%
rename from adi/ad7091r.py
rename to adi/ad7091rx.py
index c309cb0c0..3618cb42b 100644
--- a/adi/ad7091r.py
+++ b/adi/ad7091rx.py
@@ -94,24 +94,11 @@ def raw(self):
             """AD7091r channel raw value"""
             return self._get_iio_attr(self.name, "raw", False)
 
-        @property
-        def offset(self):
-            """AD7091r channel offset value"""
-            return self._get_iio_attr_str(self.name, "offset", False)
-
-        @offset.setter
-        def offset(self, value):
-            self._set_iio_attr(self.name, "offset", False, str(Decimal(value).real))
-
         @property
         def scale(self):
             """AD7091r channel scale"""
             return float(self._get_iio_attr_str(self.name, "scale", False))
 
-        @scale.setter
-        def scale(self, value):
-            self._set_iio_attr(self.name, "scale", False, str(Decimal(value).real))
-
         @property
         def thresh_falling_value(self):
             """Get channel threshold falling value"""
@@ -148,8 +135,8 @@ def thresh_either_hysteresis(self, value):
                 self.name, "thresh_either_hysteresis", False, str(Decimal(value))
             )
 
-    def to_volts(self, index, val):
-        """Converts raw value to SI"""
+    def to_mvolts(self, index, val):
+        """Converts raw value to mV"""
         _scale = self.channel[index].scale
 
         ret = None
diff --git a/doc/source/devices/adi.ad7091r.rst b/doc/source/devices/adi.ad7091rx.rst
similarity index 65%
rename from doc/source/devices/adi.ad7091r.rst
rename to doc/source/devices/adi.ad7091rx.rst
index 086b32fb6..80a8e5b5d 100644
--- a/doc/source/devices/adi.ad7091r.rst
+++ b/doc/source/devices/adi.ad7091rx.rst
@@ -1,7 +1,7 @@
-ad7091r
+ad7091rx
 =================
 
-.. automodule:: adi.ad7091r
+.. automodule:: adi.ad7091rx
    :members:
    :undoc-members:
    :show-inheritance:
diff --git a/doc/source/devices/index.rst b/doc/source/devices/index.rst
index e7eccf9af..b7b802614 100644
--- a/doc/source/devices/index.rst
+++ b/doc/source/devices/index.rst
@@ -23,7 +23,7 @@ Supported Devices
    adi.ad5754r
    adi.ad5940
    adi.ad6676
-   adi.ad7091r
+   adi.ad7091rx
    adi.ad7124
    adi.ad7134
    adi.ad717x
diff --git a/examples/ad7091r_example.py b/examples/ad7091rx_example.py
similarity index 55%
rename from examples/ad7091r_example.py
rename to examples/ad7091rx_example.py
index c05ab28c9..97e9b1740 100644
--- a/examples/ad7091r_example.py
+++ b/examples/ad7091rx_example.py
@@ -31,34 +31,61 @@
 # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
 # THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+import argparse
+
 import numpy as np
-from adi.ad7091r import ad7091rx
+from adi.ad7091rx import ad7091rx
+
+
+def main():
+    # Set up argument parser
+    parser = argparse.ArgumentParser(description="AD7091R Example Script")
+    parser.add_argument(
+        "--uri",
+        type=str,
+        help="The URI for the AD7091R device",
+        default="serial:COM7,230400,8n1",
+    )
+    parser.add_argument(
+        "--device_name",
+        type=str,
+        choices=["ad7091r-2", "ad7091r-4", "ad7091r-8"],
+        help="The device name (Supported devices are ad7091r-2, ad7091r-4, ad7091r-8)",
+        default="ad7091r-8",
+    )
+
+    # Parse arguments
+    args = parser.parse_args()
+
+    # Set up AD7091R device
+    ad7091r_dev = ad7091rx(uri=args.uri, device_name=args.device_name)
+
+    # Get ADC channel 0 raw value and print it
+    raw = ad7091r_dev.channel[0].raw
+    print(f"Raw value read from channel0 is {raw}")
 
-# Set up AD7091r8
-ad7091r8_dev = ad7091rx(uri="serial:COM46,230400,8n1", device_name="ad7091r-8")
+    # Set threshold falling and rising values for channel 0
+    ad7091r_dev.channel[0].thresh_rising_value = 0x10F
+    print(
+        f"Channel 0 threshold rising value set to {ad7091r_dev.channel[0].thresh_rising_value}"
+    )
 
-# Get ADC channel 0 raw value and print it
-raw = ad7091r8_dev.channel[0].raw
-print(f"Raw value read from channel0 is {raw}")
+    ad7091r_dev.channel[0].thresh_falling_value = 0x0F
+    print(
+        f"Channel 0 threshold falling value set to {ad7091r_dev.channel[0].thresh_falling_value}"
+    )
 
-# Set threshold falling and rising values for channel 0
-ad7091r8_dev.channel[0].thresh_rising_value = 0x10F
-print(
-    f"Channel 0 threshold rising value set to {ad7091r8_dev.channel[0].thresh_rising_value}"
-)
+    # Capture a buffer of 100 samples from channel 0 and display them
+    chn = 0
+    ad7091r_dev._rx_data_type = np.int32
+    ad7091r_dev.rx_output_type = "raw"
+    ad7091r_dev.rx_enabled_channels = [chn]
+    ad7091r_dev.rx_buffer_size = 100
 
-ad7091r8_dev.channel[0].thresh_falling_value = 0x0F
-print(
-    f"Channel 0 threshold falling value set to {ad7091r8_dev.channel[0].thresh_falling_value}"
-)
+    data = ad7091r_dev.rx()
 
-# Capture a buffer of 100 samples from channel 0 and display them
-chn = 0
-ad7091r8_dev._rx_data_type = np.int32
-ad7091r8_dev.rx_output_type = "raw"
-ad7091r8_dev.rx_enabled_channels = [chn]
-ad7091r8_dev.rx_buffer_size = 100
+    print(data)
 
-data = ad7091r8_dev.rx()
 
-print(data)
+if __name__ == "__main__":
+    main()
diff --git a/test/emu/devices/ad7091r.xml b/test/emu/devices/ad7091r.xml
deleted file mode 100644
index 3e5957e42..000000000
--- a/test/emu/devices/ad7091r.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?><!DOCTYPE context [<!ELEMENT context (device | context-attribute)*><!ELEMENT context-attribute EMPTY><!ELEMENT device (channel | attribute | debug-attribute | buffer-attribute)*><!ELEMENT channel (scan-element?, attribute*)><!ELEMENT attribute EMPTY><!ELEMENT scan-element EMPTY><!ELEMENT debug-attribute EMPTY><!ELEMENT buffer-attribute EMPTY><!ATTLIST context name CDATA #REQUIRED description CDATA #IMPLIED><!ATTLIST context-attribute name CDATA #REQUIRED value CDATA #REQUIRED><!ATTLIST device id CDATA #REQUIRED name CDATA #IMPLIED><!ATTLIST channel id CDATA #REQUIRED type (input|output) #REQUIRED name CDATA #IMPLIED><!ATTLIST scan-element index CDATA #REQUIRED format CDATA #REQUIRED scale CDATA #IMPLIED><!ATTLIST attribute name CDATA #REQUIRED filename CDATA #IMPLIED value CDATA #IMPLIED><!ATTLIST debug-attribute name CDATA #REQUIRED value CDATA #IMPLIED><!ATTLIST buffer-attribute name CDATA #REQUIRED value CDATA #IMPLIED>]><context name="serial" description="no-OS 0.1" ><context-attribute name="hw_carrier" value="SDP_K1" /><context-attribute name="hw_mezzanine" value="EVAL-AD7091R-8ARDZ" /><context-attribute name="hw_name" value="EVAL-AD7091R-8ARDZ" /><context-attribute name="uri" value="serial:/dev/ttyS0,230400,8n1n" /><context-attribute name="serial,port" value="/dev/ttyS0" /><context-attribute name="serial,description" value="ttyS0" /><device id="iio:device0" name="ad7091r-8" ><channel id="voltage0" name="Chn0" type="input" ><scan-element index="0" format="be:u12/16>>0" /><attribute name="raw" filename="in_voltage0_raw" value="0" /><attribute name="scale" filename="in_voltage0_scale" value="  0.6105006337" /><attribute name="offset" filename="in_voltage0_offset" value="0" /><attribute name="thresh_falling_value" filename="in_voltage0_thresh_falling_value" value="0" /></channel><attribute name="thresh_rising_value" filename="in_voltage0_thresh_rising_value" value="4095" /><attribute name="thresh_either_hysteresis" filename="in_voltage0_thresh_either_hysteresis" value="511" /><channel id="voltage1" name="Chn1" type="input" ><scan-element index="1" format="be:u12/16>>0" /><attribute name="raw" filename="in_voltage1_raw" value="0" /><attribute name="scale" filename="in_voltage1_scale" value="  0.6105006337" /><attribute name="offset" filename="in_voltage1_offset" value="0" /><attribute name="thresh_falling_value" filename="in_voltage1_thresh_falling_value" value="0" /></channel><attribute name="thresh_rising_value" filename="in_voltage1_thresh_rising_value" value="4095" /><attribute name="thresh_either_hysteresis" filename="in_voltage1_thresh_either_hysteresis" value="511" /><channel id="voltage2" name="Chn2" type="input" ><scan-element index="2" format="be:u12/16>>0" /><attribute name="raw" filename="in_voltage2_raw" value="0" /><attribute name="scale" filename="in_voltage2_scale" value="  0.6105006337" /><attribute name="offset" filename="in_voltage2_offset" value="0" /><attribute name="thresh_falling_value" filename="in_voltage2_thresh_falling_value" value="0" /></channel><attribute name="thresh_rising_value" filename="in_voltage2_thresh_rising_value" value="4095" /><attribute name="thresh_either_hysteresis" filename="in_voltage2_thresh_either_hysteresis" value="511" /><channel id="voltage3" name="Chn3" type="input" ><scan-element index="3" format="be:u12/16>>0" /><attribute name="raw" filename="in_voltage3_raw" value="0" /><attribute name="scale" filename="in_voltage3_scale" value="  0.6105006337" /><attribute name="offset" filename="in_voltage3_offset" value="0" /><attribute name="thresh_falling_value" filename="in_voltage3_thresh_falling_value" value="0" /></channel><attribute name="thresh_rising_value" filename="in_voltage3_thresh_rising_value" value="4095" /><attribute name="thresh_either_hysteresis" filename="in_voltage3_thresh_either_hysteresis" value="511" /><channel id="voltage4" name="Chn4" type="input" ><scan-element index="4" format="be:u12/16>>0" /><attribute name="raw" filename="in_voltage4_raw" value="0" /><attribute name="scale" filename="in_voltage4_scale" value="  0.6105006337" /><attribute name="offset" filename="in_voltage4_offset" value="0" /><attribute name="thresh_falling_value" filename="in_voltage4_thresh_falling_value" value="0" /></channel><attribute name="thresh_rising_value" filename="in_voltage4_thresh_rising_value" value="4095" /><attribute name="thresh_either_hysteresis" filename="in_voltage4_thresh_either_hysteresis" value="511" /><channel id="voltage5" name="Chn5" type="input" ><scan-element index="5" format="be:u12/16>>0" /><attribute name="raw" filename="in_voltage5_raw" value="0" /><attribute name="scale" filename="in_voltage5_scale" value="  0.6105006337" /><attribute name="offset" filename="in_voltage5_offset" value="0" /><attribute name="thresh_falling_value" filename="in_voltage5_thresh_falling_value" value="0" /></channel><attribute name="thresh_rising_value" filename="in_voltage5_thresh_rising_value" value="4095" /><attribute name="thresh_either_hysteresis" filename="in_voltage5_thresh_either_hysteresis" value="511" /><channel id="voltage6" name="Chn6" type="input" ><scan-element index="6" format="be:u12/16>>0" /><attribute name="raw" filename="in_voltage6_raw" value="0" /><attribute name="scale" filename="in_voltage6_scale" value="  0.6105006337" /><attribute name="offset" filename="in_voltage6_offset" value="0" /><attribute name="thresh_falling_value" filename="in_voltage6_thresh_falling_value" value="0" /></channel><attribute name="thresh_rising_value" filename="in_voltage6_thresh_rising_value" value="4095" /><attribute name="thresh_either_hysteresis" filename="in_voltage6_thresh_either_hysteresis" value="511" /><channel id="voltage7" name="Chn7" type="input" ><scan-element index="7" format="be:u12/16>>0" /><attribute name="raw" filename="in_voltage7_raw" value="0" /><attribute name="scale" filename="in_voltage7_scale" value="  0.6105006337" /><attribute name="offset" filename="in_voltage7_offset" value="0" /><attribute name="thresh_falling_value" filename="in_voltage7_thresh_falling_value" value="0" /></channel><attribute name="thresh_rising_value" filename="in_voltage7_thresh_rising_value" value="4095" /><attribute name="thresh_either_hysteresis" filename="in_voltage7_thresh_either_hysteresis" value="511" /><debug-attribute name="direct_reg_access" value="0" /></device><device id="trigger0" name="ad7091r_iio_trigger" ></device></context>
\ No newline at end of file
diff --git a/test/emu/devices/ad7091rx.xml b/test/emu/devices/ad7091rx.xml
new file mode 100644
index 000000000..2e1b4ce17
--- /dev/null
+++ b/test/emu/devices/ad7091rx.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE context [<!ELEMENT context (device | context-attribute)*><!ELEMENT context-attribute EMPTY><!ELEMENT device (channel | attribute | debug-attribute | buffer-attribute)*><!ELEMENT channel (scan-element?, attribute*)><!ELEMENT attribute EMPTY><!ELEMENT scan-element EMPTY><!ELEMENT debug-attribute EMPTY><!ELEMENT buffer-attribute EMPTY><!ATTLIST context name CDATA #REQUIRED description CDATA #IMPLIED><!ATTLIST context-attribute name CDATA #REQUIRED value CDATA #REQUIRED><!ATTLIST device id CDATA #REQUIRED name CDATA #IMPLIED><!ATTLIST channel id CDATA #REQUIRED type (input|output) #REQUIRED name CDATA #IMPLIED><!ATTLIST scan-element index CDATA #REQUIRED format CDATA #REQUIRED scale CDATA #IMPLIED><!ATTLIST attribute name CDATA #REQUIRED filename CDATA #IMPLIED value CDATA #IMPLIED><!ATTLIST debug-attribute name CDATA #REQUIRED value CDATA #IMPLIED><!ATTLIST buffer-attribute name CDATA #REQUIRED value CDATA #IMPLIED>]><context name="network" description="192.168.1.3 Linux raspberrypi 6.8.0-rc4-v8+ #4 SMP PREEMPT Thu Feb 15 10:45:25 -03 2024 aarch64" ><context-attribute name="local,kernel" value="6.8.0-rc4-v8+" /><context-attribute name="uri" value="ip:192.168.1.3" /><context-attribute name="ip,ip-addr" value="192.168.1.3" /><device id="iio:device0" name="ad7091r-8" ><channel id="voltage1" type="input" ><attribute name="raw" filename="in_voltage1_raw" value="2603" /><attribute name="scale" filename="in_voltage_scale" value="0.610351562" /></channel><channel id="voltage5" type="input" ><attribute name="raw" filename="in_voltage5_raw" value="0" /><attribute name="scale" filename="in_voltage_scale" value="0.610351562" /></channel><channel id="voltage2" type="input" ><attribute name="raw" filename="in_voltage2_raw" value="533" /><attribute name="scale" filename="in_voltage_scale" value="0.610351562" /></channel><channel id="voltage6" type="input" ><attribute name="raw" filename="in_voltage6_raw" value="1076" /><attribute name="scale" filename="in_voltage_scale" value="0.610351562" /></channel><channel id="voltage3" type="input" ><attribute name="raw" filename="in_voltage3_raw" value="1922" /><attribute name="scale" filename="in_voltage_scale" value="0.610351562" /></channel><channel id="voltage7" type="input" ><attribute name="raw" filename="in_voltage7_raw" value="1747" /><attribute name="scale" filename="in_voltage_scale" value="0.610351562" /></channel><channel id="voltage0" type="input" ><attribute name="raw" filename="in_voltage0_raw" value="2229" /><attribute name="scale" filename="in_voltage_scale" value="0.610351562" /></channel><channel id="voltage4" type="input" ><attribute name="raw" filename="in_voltage4_raw" value="2376" /><attribute name="scale" filename="in_voltage_scale" value="0.610351562" /></channel><attribute name="waiting_for_supplier" value="0" /></device></context>
\ No newline at end of file
diff --git a/test/emu/hardware_map.yml b/test/emu/hardware_map.yml
index 7b571d986..c0449c131 100644
--- a/test/emu/hardware_map.yml
+++ b/test/emu/hardware_map.yml
@@ -454,12 +454,12 @@ ad6676:
       - data_devices:
           - iio:device1
 
-ad7091r:
-  - ad7091r
+ad7091r8:
+  - ad7091r8
   - pyadi_iio_class_support:
-      - ad7091r
+      - ad7091rx
   - emulate:
-      - filename: ad7091r.xml
+      - filename: ad7091rx.xml
       - data_devices:
           - iio:device0
 
diff --git a/test/test_ad7091r.py b/test/test_ad7091r.py
deleted file mode 100644
index 88ee80861..000000000
--- a/test/test_ad7091r.py
+++ /dev/null
@@ -1,12 +0,0 @@
-import pytest
-
-hardware = "ad7091r-8"
-classname = "adi.ad7091rx"
-
-
-#########################################
-@pytest.mark.iio_hardware(hardware)
-@pytest.mark.parametrize("classname", [(classname)])
-@pytest.mark.parametrize("channel", [0])
-def test_ad7091rx_rx_data(test_dma_rx, iio_uri, classname, channel):
-    test_dma_rx(iio_uri, classname, channel)
diff --git a/test/test_ad7091rx.py b/test/test_ad7091rx.py
new file mode 100644
index 000000000..4930026a2
--- /dev/null
+++ b/test/test_ad7091rx.py
@@ -0,0 +1,31 @@
+import pytest
+
+hardware = "ad7091r8"
+classname = "adi.ad7091rx"
+
+
+#########################################
+@pytest.mark.iio_hardware(hardware)
+@pytest.mark.parametrize("classname", [(classname)])
+@pytest.mark.parametrize(
+    "attr, start, stop, step, tol, repeats, sub_channel",
+    [
+        ("raw", 0, 4000, 1000, 1, 3, "voltage0"),
+        ("raw", 0, 4000, 1000, 1, 3, "voltage1"),
+    ],
+)
+def test_ad7091rx_raw_attr(
+    test_attribute_single_value,
+    iio_uri,
+    classname,
+    attr,
+    start,
+    stop,
+    step,
+    tol,
+    repeats,
+    sub_channel,
+):
+    test_attribute_single_value(
+        iio_uri, classname, attr, start, stop, step, tol, repeats, sub_channel
+    )