summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers')
-rw-r--r--firmware/drivers/adc.c9
-rw-r--r--firmware/drivers/pcf50605.c12
2 files changed, 7 insertions, 14 deletions
diff --git a/firmware/drivers/adc.c b/firmware/drivers/adc.c
index e5dd4c1e53..a75f788417 100644
--- a/firmware/drivers/adc.c
+++ b/firmware/drivers/adc.c
@@ -298,12 +298,17 @@ static struct adc_struct adcdata[NUM_ADC_CHANNELS] IDATA_ATTR;
298 * a 13 bit value corresponding to 0-5.4v, the resulting range is 13FB-17FA, 298 * a 13 bit value corresponding to 0-5.4v, the resulting range is 13FB-17FA,
299 * representing 3.1-5.4v */ 299 * representing 3.1-5.4v */
300static unsigned short ten_bit_subtractor(unsigned short data) { 300static unsigned short ten_bit_subtractor(unsigned short data) {
301 return (data<<2)+0x13FB; 301 return (data<<2)+0x4FB;
302} 302}
303 303
304static unsigned short _adc_scan(struct adc_struct *adc) 304static unsigned short _adc_scan(struct adc_struct *adc)
305{ 305{
306 unsigned short data = pcf50605_a2d_read(adc->channelnum); 306 unsigned short data;
307
308 /* ADCC1, 8 bit, start */
309 pcf50605_write(0x2f, 0x80 | (adc->channelnum << 1) | 0x1);
310 data = pcf50605_read(0x30); /* ADCS1 */
311
307 if (adc->conversion) { 312 if (adc->conversion) {
308 data = adc->conversion(data); 313 data = adc->conversion(data);
309 } 314 }
diff --git a/firmware/drivers/pcf50605.c b/firmware/drivers/pcf50605.c
index 7d2036e807..c8ea4a499f 100644
--- a/firmware/drivers/pcf50605.c
+++ b/firmware/drivers/pcf50605.c
@@ -98,18 +98,6 @@ int pcf50605_write_multiple(int address, const unsigned char* buf, int count)
98 return 0; 98 return 0;
99} 99}
100 100
101unsigned short pcf50605_a2d_read(int adc_input)
102{
103 unsigned short hi;
104 unsigned char lo;
105
106 ipod_i2c_send(0x8, 0x2f, (adc_input<<1) | 0x1); /* ADCC2, ADCMUX = adc_input, ADCSTART = 1 */
107 hi = i2c_readbyte(0x8, 0x30); /* ADCS1 */
108 lo = (i2c_readbyte(0x8, 0x31) & 0x3); /* ADCS2 */
109
110 return (hi << 2) | lo;
111}
112
113/* The following command puts the iPod into a deep sleep. Warning 101/* The following command puts the iPod into a deep sleep. Warning
114 from the good people of ipodlinux - never issue this command 102 from the good people of ipodlinux - never issue this command
115 without setting CHGWAK or EXTONWAK if you ever want to be able to 103 without setting CHGWAK or EXTONWAK if you ever want to be able to