+/*
+ * The default serial communication settings on the device are 9600
+ * baud, 9 data bits. The 9th bit isn't actually used, and the vendor
+ * software uses Mark parity to absorb the extra bit.
+ *
+ * Since 9 data bits is not a standard available in POSIX, we use two
+ * stop bits to skip over the extra bit instead.
+ */
+#define SERIALCOMM "9600/8n2"
+
+static const int32_t scanopts[] = {
+ SR_CONF_CONN,
+ SR_CONF_SERIALCOMM,
+};
+
+static const int32_t devopts[] = {
+ SR_CONF_POWER_SUPPLY,
+ SR_CONF_CONTINUOUS,
+ SR_CONF_OUTPUT_CHANNEL,
+ SR_CONF_OVER_CURRENT_PROTECTION,
+};
+
+static const int32_t devopts_cg[] = {
+ SR_CONF_OUTPUT_VOLTAGE,
+ SR_CONF_OUTPUT_VOLTAGE_MAX,
+ SR_CONF_OUTPUT_CURRENT,
+ SR_CONF_OUTPUT_CURRENT_MAX,
+ SR_CONF_OUTPUT_ENABLED,
+};
+
+static const char *channel_modes[] = {
+ "Independent",
+ "Series",
+ "Parallel",
+};
+
+static struct pps_model models[] = {
+ { PPS_3203T_3S, "PPS3203T-3S",
+ CHANMODE_INDEPENDENT | CHANMODE_SERIES | CHANMODE_PARALLEL,
+ 3,
+ {
+ /* Channel 1 */
+ { { 0, 32, 0.01 }, { 0, 3, 0.001 } },
+ /* Channel 2 */
+ { { 0, 32, 0.01 }, { 0, 3, 0.001 } },
+ /* Channel 3 */
+ { { 0, 6, 0.01 }, { 0, 3, 0.001 } },
+ },
+ },
+};
+
+
+SR_PRIV struct sr_dev_driver atten_pps3203_driver_info;
+static struct sr_dev_driver *di = &atten_pps3203_driver_info;