drivers: adc: adc_ad559x: fix 5593 adc read

The AD5593 conversion result also contains the channel read and not just a
value:
| adc channel (3 bits) | adc value (12 bits) |

This value was not removed from the result before using it as an adc value.

Reuse the AD5592 code to fix the issue.

Signed-off-by: Jeppe Odgaard <jeppe.odgaard@prevas.dk>
diff --git a/drivers/adc/adc_ad559x.c b/drivers/adc/adc_ad559x.c
index 21ee1e6..b0e7bb9 100644
--- a/drivers/adc/adc_ad559x.c
+++ b/drivers/adc/adc_ad559x.c
@@ -130,9 +130,6 @@
 		if (ret < 0) {
 			return ret;
 		}
-
-		*result = sys_get_be16((uint8_t *)&val);
-
 	} else {
 		/*
 		 * Invalid data:
@@ -145,31 +142,31 @@
 		if (ret < 0) {
 			return ret;
 		}
-
-		val = sys_be16_to_cpu(val);
-
-		/*
-		 * Invalid data:
-		 * See "ADC section" in "Theory of operation" chapter.
-		 * Valid ADC result has MSB bit set to 0.
-		 */
-		if ((val & AD559X_ADC_RES_IND_BIT) != 0) {
-			return -EAGAIN;
-		}
-
-		/*
-		 * Invalid channel converted:
-		 * See "ADC section" in "Theory of operation" chapter.
-		 * Conversion result contains channel number which should match requested channel.
-		 */
-		conv_channel = FIELD_GET(AD559X_ADC_RES_CHAN_MASK, val);
-		if (conv_channel != channel) {
-			return -EIO;
-		}
-
-		*result = val & AD559X_ADC_RES_VAL_MASK;
 	}
 
+	val = sys_be16_to_cpu(val);
+
+	/*
+	 * Invalid data:
+	 * See AD5592 "ADC section" in "Theory of operation" chapter.
+	 * Valid ADC result has MSB bit set to 0.
+	 */
+	if ((val & AD559X_ADC_RES_IND_BIT) != 0) {
+		return -EAGAIN;
+	}
+
+	/*
+	 * Invalid channel converted:
+	 * See AD5592 "ADC section" in "Theory of operation" chapter.
+	 * Conversion result contains channel number which should match requested channel.
+	 */
+	conv_channel = FIELD_GET(AD559X_ADC_RES_CHAN_MASK, val);
+	if (conv_channel != channel) {
+		return -EIO;
+	}
+
+	*result = val & AD559X_ADC_RES_VAL_MASK;
+
 	return 0;
 }