diff options
-rw-r--r-- | firmware/drivers/rtc/rtc_as3514.c | 7 | ||||
-rw-r--r-- | firmware/export/as3514.h | 8 | ||||
-rw-r--r-- | firmware/target/arm/i2c-pp.c | 3 | ||||
-rw-r--r-- | firmware/target/arm/sandisk/backlight-c200_e200.c | 5 | ||||
-rw-r--r-- | firmware/target/arm/sandisk/power-c200_e200.c | 5 | ||||
-rw-r--r-- | firmware/target/arm/system-pp502x.c | 3 |
6 files changed, 22 insertions, 9 deletions
diff --git a/firmware/drivers/rtc/rtc_as3514.c b/firmware/drivers/rtc/rtc_as3514.c index 2190b20a53..15d543ec3f 100644 --- a/firmware/drivers/rtc/rtc_as3514.c +++ b/firmware/drivers/rtc/rtc_as3514.c | |||
@@ -16,9 +16,10 @@ | |||
16 | * KIND, either express or implied. | 16 | * KIND, either express or implied. |
17 | * | 17 | * |
18 | ****************************************************************************/ | 18 | ****************************************************************************/ |
19 | #include <stdbool.h> | ||
19 | #include "rtc.h" | 20 | #include "rtc.h" |
20 | #include "i2c-pp.h" | 21 | #include "i2c-pp.h" |
21 | #include <stdbool.h> | 22 | #include "as3514.h" |
22 | 23 | ||
23 | #define MINUTE_SECONDS 60 | 24 | #define MINUTE_SECONDS 60 |
24 | #define HOUR_SECONDS 3600 | 25 | #define HOUR_SECONDS 3600 |
@@ -54,7 +55,7 @@ int rtc_read_datetime(unsigned char* buf) | |||
54 | 55 | ||
55 | /* RTC_AS3514's slave address is 0x46*/ | 56 | /* RTC_AS3514's slave address is 0x46*/ |
56 | for (i=0;i<4;i++){ | 57 | for (i=0;i<4;i++){ |
57 | tmp[i] = i2c_readbyte(0x46,0x2a+i); | 58 | tmp[i] = i2c_readbyte(AS3514_I2C_ADDR, RTC_0 + i); |
58 | } | 59 | } |
59 | seconds = tmp[0] + (tmp[1]<<8) + (tmp[2]<<16) + (tmp[3]<<24); | 60 | seconds = tmp[0] + (tmp[1]<<8) + (tmp[2]<<16) + (tmp[3]<<24); |
60 | 61 | ||
@@ -159,7 +160,7 @@ int rtc_write_datetime(unsigned char* buf) | |||
159 | 160 | ||
160 | /* Send data to RTC */ | 161 | /* Send data to RTC */ |
161 | for (i=0;i<4;i++){ | 162 | for (i=0;i<4;i++){ |
162 | pp_i2c_send(0x46, 0x2a+i,((seconds>>(8*i)) & 0xff)); | 163 | pp_i2c_send(AS3514_I2C_ADDR, RTC_0 + i, ((seconds >> (8 * i)) & 0xff)); |
163 | } | 164 | } |
164 | return 1; | 165 | return 1; |
165 | } | 166 | } |
diff --git a/firmware/export/as3514.h b/firmware/export/as3514.h index 8df228f105..955019f0b1 100644 --- a/firmware/export/as3514.h +++ b/firmware/export/as3514.h | |||
@@ -59,10 +59,18 @@ extern void audiohw_set_monitor(int enable); | |||
59 | #define AUDIOSET3 0x16 | 59 | #define AUDIOSET3 0x16 |
60 | #define PLLMODE 0x1d | 60 | #define PLLMODE 0x1d |
61 | 61 | ||
62 | #define SYSTEM 0x20 | ||
63 | #define DCDC15 0x23 | ||
64 | #define SUPERVISOR 0x24 | ||
65 | |||
62 | #define IRQ_ENRD0 0x25 | 66 | #define IRQ_ENRD0 0x25 |
63 | #define IRQ_ENRD1 0x26 | 67 | #define IRQ_ENRD1 0x26 |
64 | #define IRQ_ENRD2 0x27 | 68 | #define IRQ_ENRD2 0x27 |
65 | 69 | ||
70 | #define RTC_0 0x2a | ||
71 | #define RTC_1 0x2b | ||
72 | #define RTC_2 0x2c | ||
73 | #define RTC_3 0x2d | ||
66 | #define ADC_0 0x2e | 74 | #define ADC_0 0x2e |
67 | #define ADC_1 0x2f | 75 | #define ADC_1 0x2f |
68 | 76 | ||
diff --git a/firmware/target/arm/i2c-pp.c b/firmware/target/arm/i2c-pp.c index e5813f9f9a..69bc60e672 100644 --- a/firmware/target/arm/i2c-pp.c +++ b/firmware/target/arm/i2c-pp.c | |||
@@ -30,6 +30,7 @@ | |||
30 | #include "logf.h" | 30 | #include "logf.h" |
31 | #include "system.h" | 31 | #include "system.h" |
32 | #include "i2c-pp.h" | 32 | #include "i2c-pp.h" |
33 | #include "as3514.h" | ||
33 | 34 | ||
34 | /* Local functions definitions */ | 35 | /* Local functions definitions */ |
35 | 36 | ||
@@ -217,7 +218,7 @@ void i2c_init(void) | |||
217 | outl(0, 0x600060a4); | 218 | outl(0, 0x600060a4); |
218 | outl(0x1e, 0x600060a4); | 219 | outl(0x1e, 0x600060a4); |
219 | 220 | ||
220 | pp_i2c_send(0x46, 0x24, 5); | 221 | pp_i2c_send(AS3514_I2C_ADDR, SUPERVISOR, 5); |
221 | #endif | 222 | #endif |
222 | #endif | 223 | #endif |
223 | 224 | ||
diff --git a/firmware/target/arm/sandisk/backlight-c200_e200.c b/firmware/target/arm/sandisk/backlight-c200_e200.c index f7835e1bd9..a9fc862966 100644 --- a/firmware/target/arm/sandisk/backlight-c200_e200.c +++ b/firmware/target/arm/sandisk/backlight-c200_e200.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include "lcd.h" | 21 | #include "lcd.h" |
22 | #include "backlight.h" | 22 | #include "backlight.h" |
23 | #include "i2c-pp.h" | 23 | #include "i2c-pp.h" |
24 | #include "as3514.h" | ||
24 | 25 | ||
25 | static unsigned short backlight_brightness = DEFAULT_BRIGHTNESS_SETTING; | 26 | static unsigned short backlight_brightness = DEFAULT_BRIGHTNESS_SETTING; |
26 | 27 | ||
@@ -39,12 +40,12 @@ void __backlight_on(void) | |||
39 | #ifdef HAVE_LCD_ENABLE | 40 | #ifdef HAVE_LCD_ENABLE |
40 | lcd_enable(true); /* power on lcd */ | 41 | lcd_enable(true); /* power on lcd */ |
41 | #endif | 42 | #endif |
42 | pp_i2c_send( 0x46, 0x23, backlight_brightness); | 43 | pp_i2c_send(AS3514_I2C_ADDR, DCDC15, backlight_brightness); |
43 | } | 44 | } |
44 | 45 | ||
45 | void __backlight_off(void) | 46 | void __backlight_off(void) |
46 | { | 47 | { |
47 | pp_i2c_send( 0x46, 0x23, 0x0); | 48 | pp_i2c_send(AS3514_I2C_ADDR, DCDC15, 0x0); |
48 | #ifdef HAVE_LCD_ENABLE | 49 | #ifdef HAVE_LCD_ENABLE |
49 | lcd_enable(false); /* power off lcd */ | 50 | lcd_enable(false); /* power off lcd */ |
50 | #endif | 51 | #endif |
diff --git a/firmware/target/arm/sandisk/power-c200_e200.c b/firmware/target/arm/sandisk/power-c200_e200.c index 8745aa3fb6..da86d97d26 100644 --- a/firmware/target/arm/sandisk/power-c200_e200.c +++ b/firmware/target/arm/sandisk/power-c200_e200.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include "cpu.h" | 22 | #include "cpu.h" |
23 | #include "i2c-pp.h" | 23 | #include "i2c-pp.h" |
24 | #include "tuner.h" | 24 | #include "tuner.h" |
25 | #include "as3514.h" | ||
25 | 26 | ||
26 | void power_init(void) | 27 | void power_init(void) |
27 | { | 28 | { |
@@ -39,9 +40,9 @@ void power_off(void) | |||
39 | COP_INT_CLR = -1; | 40 | COP_INT_CLR = -1; |
40 | 41 | ||
41 | /* Send shutdown command to PMU */ | 42 | /* Send shutdown command to PMU */ |
42 | byte = i2c_readbyte(0x46, 0x20); | 43 | byte = i2c_readbyte(AS3514_I2C_ADDR, SYSTEM); |
43 | byte &= ~0x1; | 44 | byte &= ~0x1; |
44 | pp_i2c_send(0x46, 0x20, byte); | 45 | pp_i2c_send(AS3514_I2C_ADDR, SYSTEM, byte); |
45 | 46 | ||
46 | /* Halt everything and wait for device to power off */ | 47 | /* Halt everything and wait for device to power off */ |
47 | while (1) | 48 | while (1) |
diff --git a/firmware/target/arm/system-pp502x.c b/firmware/target/arm/system-pp502x.c index 0882d9f212..8d253a70db 100644 --- a/firmware/target/arm/system-pp502x.c +++ b/firmware/target/arm/system-pp502x.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include "thread.h" | 20 | #include "thread.h" |
21 | #include "i2s.h" | 21 | #include "i2s.h" |
22 | #include "i2c-pp.h" | 22 | #include "i2c-pp.h" |
23 | #include "as3514.h" | ||
23 | 24 | ||
24 | #ifndef BOOTLOADER | 25 | #ifndef BOOTLOADER |
25 | extern void TIMER1(void); | 26 | extern void TIMER1(void); |
@@ -310,7 +311,7 @@ void system_reboot(void) | |||
310 | #ifdef SANSA_C200 | 311 | #ifdef SANSA_C200 |
311 | CACHE_CTL &= ~CACHE_CTL_VECT_REMAP; | 312 | CACHE_CTL &= ~CACHE_CTL_VECT_REMAP; |
312 | 313 | ||
313 | pp_i2c_send( 0x46, 0x23, 0x0); /* backlight off */ | 314 | pp_i2c_send(AS3514_I2C_ADDR, DCDC15, 0x0); /* backlight off */ |
314 | 315 | ||
315 | /* Magic used by the c200 OF: 0x23066000 | 316 | /* Magic used by the c200 OF: 0x23066000 |
316 | Magic used by the c200 BL: 0x23066b7b | 317 | Magic used by the c200 BL: 0x23066b7b |