diff options
Diffstat (limited to 'firmware/target/arm/imx31/gigabeat-s/adc-imx31.c')
-rw-r--r-- | firmware/target/arm/imx31/gigabeat-s/adc-imx31.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/firmware/target/arm/imx31/gigabeat-s/adc-imx31.c b/firmware/target/arm/imx31/gigabeat-s/adc-imx31.c index 3c66c42adc..52293228f8 100644 --- a/firmware/target/arm/imx31/gigabeat-s/adc-imx31.c +++ b/firmware/target/arm/imx31/gigabeat-s/adc-imx31.c | |||
@@ -57,8 +57,8 @@ unsigned short adc_read(int channel) | |||
57 | { | 57 | { |
58 | /* Keep enable, start conversion, increment from channel 0, | 58 | /* Keep enable, start conversion, increment from channel 0, |
59 | * increment from channel 4 */ | 59 | * increment from channel 4 */ |
60 | uint32_t adc1 = MC13783_ADEN | MC13783_ASC | MC13783_ADA1w(0) | | 60 | uint32_t adc1 = MC13783_ADEN | MC13783_ASC | |
61 | MC13783_ADA2w(4); | 61 | (0 << MC13783_ADA1_POS) | (4 << MC13783_ADA2_POS); |
62 | 62 | ||
63 | if (input_select == 1) | 63 | if (input_select == 1) |
64 | adc1 |= MC13783_ADSEL; /* 2nd set of inputs */ | 64 | adc1 |= MC13783_ADSEL; /* 2nd set of inputs */ |
@@ -81,7 +81,9 @@ unsigned short adc_read(int channel) | |||
81 | mutex_unlock(&adc_mtx); | 81 | mutex_unlock(&adc_mtx); |
82 | 82 | ||
83 | /* Channels 0-3/8-11 in ADD1, 4-7/12-15 in ADD2 */ | 83 | /* Channels 0-3/8-11 in ADD1, 4-7/12-15 in ADD2 */ |
84 | return (channel & 4) ? MC13783_ADD2r(data) : MC13783_ADD1r(data); | 84 | return (channel & 4) ? |
85 | ((data & MC13783_ADD2) >> MC13783_ADD2_POS) : | ||
86 | ((data & MC13783_ADD1) >> MC13783_ADD1_POS); | ||
85 | } | 87 | } |
86 | 88 | ||
87 | bool adc_enable_channel(int channel, bool enable) | 89 | bool adc_enable_channel(int channel, bool enable) |