diff options
Diffstat (limited to 'firmware/target')
-rw-r--r-- | firmware/target/arm/imx233/creative-zen/backlight-zen.c | 6 | ||||
-rw-r--r-- | firmware/target/arm/imx233/creative-zen/button-target.h | 6 | ||||
-rw-r--r-- | firmware/target/arm/imx233/creative-zen/button-zen.c | 16 | ||||
-rw-r--r-- | firmware/target/arm/imx233/creative-zen/power-zen.c | 12 | ||||
-rw-r--r-- | firmware/target/arm/imx233/emi-imx233.c | 2 | ||||
-rw-r--r-- | firmware/target/arm/imx233/power-imx233.c | 4 | ||||
-rw-r--r-- | firmware/target/arm/imx233/power-imx233.h | 9 | ||||
-rw-r--r-- | firmware/target/arm/imx233/powermgmt-imx233.c | 2 |
8 files changed, 53 insertions, 4 deletions
diff --git a/firmware/target/arm/imx233/creative-zen/backlight-zen.c b/firmware/target/arm/imx233/creative-zen/backlight-zen.c index 0d223b52e9..74e1e91a49 100644 --- a/firmware/target/arm/imx233/creative-zen/backlight-zen.c +++ b/firmware/target/arm/imx233/creative-zen/backlight-zen.c | |||
@@ -29,6 +29,9 @@ | |||
29 | 29 | ||
30 | void _backlight_set_brightness(int level) | 30 | void _backlight_set_brightness(int level) |
31 | { | 31 | { |
32 | #ifdef CREATIVE_ZENV | ||
33 | lcd_set_contrast(level); | ||
34 | #else | ||
32 | unsigned val = (level + 200) * level / 1000; | 35 | unsigned val = (level + 200) * level / 1000; |
33 | if(level != 0) | 36 | if(level != 0) |
34 | { | 37 | { |
@@ -39,14 +42,17 @@ void _backlight_set_brightness(int level) | |||
39 | } | 42 | } |
40 | else | 43 | else |
41 | imx233_pinctrl_set_gpio(1, 12, false); | 44 | imx233_pinctrl_set_gpio(1, 12, false); |
45 | #endif | ||
42 | } | 46 | } |
43 | 47 | ||
44 | bool _backlight_init(void) | 48 | bool _backlight_init(void) |
45 | { | 49 | { |
50 | #ifndef CREATIVE_ZENV | ||
46 | imx233_pinctrl_acquire(1, 12, "backlight_enable"); | 51 | imx233_pinctrl_acquire(1, 12, "backlight_enable"); |
47 | imx233_pinctrl_set_function(1, 12, PINCTRL_FUNCTION_GPIO); | 52 | imx233_pinctrl_set_function(1, 12, PINCTRL_FUNCTION_GPIO); |
48 | imx233_pinctrl_enable_gpio(1, 12, true); | 53 | imx233_pinctrl_enable_gpio(1, 12, true); |
49 | imx233_uartdbg_init(BAUD_38400); | 54 | imx233_uartdbg_init(BAUD_38400); |
55 | #endif | ||
50 | return true; | 56 | return true; |
51 | } | 57 | } |
52 | 58 | ||
diff --git a/firmware/target/arm/imx233/creative-zen/button-target.h b/firmware/target/arm/imx233/creative-zen/button-target.h index cddff4d9cc..7974ae42ad 100644 --- a/firmware/target/arm/imx233/creative-zen/button-target.h +++ b/firmware/target/arm/imx233/creative-zen/button-target.h | |||
@@ -47,8 +47,12 @@ bool button_debug_screen(void); | |||
47 | #define BUTTON_TOPLEFT 0x00001000 | 47 | #define BUTTON_TOPLEFT 0x00001000 |
48 | #define BUTTON_TOPRIGHT 0x00002000 | 48 | #define BUTTON_TOPRIGHT 0x00002000 |
49 | #endif | 49 | #endif |
50 | #ifdef CREATIVE_ZENV | ||
51 | #define BUTTON_VOL_UP 0x00004000 | ||
52 | #define BUTTON_VOL_DOWN 0x00008000 | ||
53 | #endif | ||
50 | 54 | ||
51 | #define BUTTON_MAIN 0x00003fff | 55 | #define BUTTON_MAIN 0x0000ffff |
52 | 56 | ||
53 | /* Software power-off */ | 57 | /* Software power-off */ |
54 | #define POWEROFF_BUTTON BUTTON_POWER | 58 | #define POWEROFF_BUTTON BUTTON_POWER |
diff --git a/firmware/target/arm/imx233/creative-zen/button-zen.c b/firmware/target/arm/imx233/creative-zen/button-zen.c index 1997f91357..8f20961a57 100644 --- a/firmware/target/arm/imx233/creative-zen/button-zen.c +++ b/firmware/target/arm/imx233/creative-zen/button-zen.c | |||
@@ -57,6 +57,20 @@ struct imx233_button_lradc_mapping_t imx233_button_lradc_mapping[] = | |||
57 | {2945, BUTTON_PLAYPAUSE}, | 57 | {2945, BUTTON_PLAYPAUSE}, |
58 | {3400, 0}, | 58 | {3400, 0}, |
59 | {0, IMX233_BUTTON_LRADC_END}, | 59 | {0, IMX233_BUTTON_LRADC_END}, |
60 | #elif defined(CREATIVE_ZENV) | ||
61 | {190, IMX233_BUTTON_LRADC_HOLD}, | ||
62 | {250, BUTTON_PLAYPAUSE}, | ||
63 | {530, BUTTON_BACK}, | ||
64 | {785, BUTTON_VOL_UP}, | ||
65 | {1040, BUTTON_VOL_DOWN}, | ||
66 | {1295, BUTTON_MENU}, | ||
67 | {1540, BUTTON_UP}, | ||
68 | {1800, BUTTON_SELECT}, | ||
69 | {2070, BUTTON_LEFT}, | ||
70 | {2315, BUTTON_RIGHT}, | ||
71 | {2550, BUTTON_DOWN}, | ||
72 | {3450, 0}, | ||
73 | {0, IMX233_BUTTON_LRADC_END}, | ||
60 | #elif defined(CREATIVE_ZENMOZAIC) | 74 | #elif defined(CREATIVE_ZENMOZAIC) |
61 | {0, IMX233_BUTTON_LRADC_HOLD}, | 75 | {0, IMX233_BUTTON_LRADC_HOLD}, |
62 | {200, BUTTON_MENU}, | 76 | {200, BUTTON_MENU}, |
@@ -100,7 +114,7 @@ bool headphones_inserted(void) | |||
100 | int button_read_device(void) | 114 | int button_read_device(void) |
101 | { | 115 | { |
102 | int btn = 0; | 116 | int btn = 0; |
103 | if(BF_RD(POWER_STS, PSWITCH) == 1) | 117 | if(imx233_power_read_pswitch() == 1) |
104 | btn |= BUTTON_POWER; | 118 | btn |= BUTTON_POWER; |
105 | return imx233_button_lradc_read(btn); | 119 | return imx233_button_lradc_read(btn); |
106 | } | 120 | } |
diff --git a/firmware/target/arm/imx233/creative-zen/power-zen.c b/firmware/target/arm/imx233/creative-zen/power-zen.c index 2c68325432..c1ad5989c0 100644 --- a/firmware/target/arm/imx233/creative-zen/power-zen.c +++ b/firmware/target/arm/imx233/creative-zen/power-zen.c | |||
@@ -58,4 +58,14 @@ bool tuner_power(bool enable) | |||
58 | bool tuner_powered(void) | 58 | bool tuner_powered(void) |
59 | { | 59 | { |
60 | return tuner_enable; | 60 | return tuner_enable; |
61 | } \ No newline at end of file | 61 | } |
62 | |||
63 | void ide_power_enable(bool on) | ||
64 | { | ||
65 | (void) on; | ||
66 | } | ||
67 | |||
68 | bool ide_powered(void) | ||
69 | { | ||
70 | return true; | ||
71 | } | ||
diff --git a/firmware/target/arm/imx233/emi-imx233.c b/firmware/target/arm/imx233/emi-imx233.c index 1ae6e22f48..259ada0e94 100644 --- a/firmware/target/arm/imx233/emi-imx233.c +++ b/firmware/target/arm/imx233/emi-imx233.c | |||
@@ -196,11 +196,13 @@ struct imx233_emi_info_t imx233_emi_get_info(void) | |||
196 | { | 196 | { |
197 | struct imx233_emi_info_t info; | 197 | struct imx233_emi_info_t info; |
198 | memset(&info, 0, sizeof(info)); | 198 | memset(&info, 0, sizeof(info)); |
199 | #if IMX233_SUBTARGET >= 3700 | ||
199 | info.rows = 13 - BF_RD(DRAM_CTL10, ADDR_PINS); | 200 | info.rows = 13 - BF_RD(DRAM_CTL10, ADDR_PINS); |
200 | info.columns = 12 - BF_RD(DRAM_CTL11, COLUMN_SIZE); | 201 | info.columns = 12 - BF_RD(DRAM_CTL11, COLUMN_SIZE); |
201 | info.cas = BF_RD(DRAM_CTL13, CASLAT_LIN); | 202 | info.cas = BF_RD(DRAM_CTL13, CASLAT_LIN); |
202 | info.banks = 4; | 203 | info.banks = 4; |
203 | info.chips = __builtin_popcount(BF_RD(DRAM_CTL14, CS_MAP)); | 204 | info.chips = __builtin_popcount(BF_RD(DRAM_CTL14, CS_MAP)); |
204 | info.size = 2 * (1 << (info.rows + info.columns)) * info.chips * info.banks; | 205 | info.size = 2 * (1 << (info.rows + info.columns)) * info.chips * info.banks; |
206 | #endif | ||
205 | return info; | 207 | return info; |
206 | } \ No newline at end of file | 208 | } \ No newline at end of file |
diff --git a/firmware/target/arm/imx233/power-imx233.c b/firmware/target/arm/imx233/power-imx233.c index b0e614afe7..af333dea59 100644 --- a/firmware/target/arm/imx233/power-imx233.c +++ b/firmware/target/arm/imx233/power-imx233.c | |||
@@ -124,7 +124,9 @@ void INT_VDD5V(void) | |||
124 | 124 | ||
125 | void imx233_power_init(void) | 125 | void imx233_power_init(void) |
126 | { | 126 | { |
127 | #if IMX233_SUBTARGET >= 3700 | ||
127 | BF_CLR(POWER_MINPWR, HALF_FETS); | 128 | BF_CLR(POWER_MINPWR, HALF_FETS); |
129 | #endif | ||
128 | /* setup vbusvalid parameters: set threshold to 4v and power up comparators */ | 130 | /* setup vbusvalid parameters: set threshold to 4v and power up comparators */ |
129 | BF_CLR(POWER_5VCTRL, VBUSVALID_TRSH); | 131 | BF_CLR(POWER_5VCTRL, VBUSVALID_TRSH); |
130 | BF_SETV(POWER_5VCTRL, VBUSVALID_TRSH, 1); | 132 | BF_SETV(POWER_5VCTRL, VBUSVALID_TRSH, 1); |
@@ -155,8 +157,10 @@ void imx233_power_init(void) | |||
155 | BF_SET(POWER_CTRL, POLARITY_VDD5V_GT_VDDIO); | 157 | BF_SET(POWER_CTRL, POLARITY_VDD5V_GT_VDDIO); |
156 | BF_SET(POWER_CTRL, ENIRQ_VDD5V_GT_VDDIO); | 158 | BF_SET(POWER_CTRL, ENIRQ_VDD5V_GT_VDDIO); |
157 | /* make the vbusvalid detection way is not enabled */ | 159 | /* make the vbusvalid detection way is not enabled */ |
160 | #if IMX233_SUBTARGET >= 3700 | ||
158 | BF_CLR(POWER_CTRL, ENIRQ_VBUS_VALID); | 161 | BF_CLR(POWER_CTRL, ENIRQ_VBUS_VALID); |
159 | #endif | 162 | #endif |
163 | #endif | ||
160 | /* the VDD5V IRQ is shared by several sources, disable them */ | 164 | /* the VDD5V IRQ is shared by several sources, disable them */ |
161 | #if IMX233_SUBTARGET >= 3700 | 165 | #if IMX233_SUBTARGET >= 3700 |
162 | BF_CLR(POWER_CTRL, ENIRQ_PSWITCH); | 166 | BF_CLR(POWER_CTRL, ENIRQ_PSWITCH); |
diff --git a/firmware/target/arm/imx233/power-imx233.h b/firmware/target/arm/imx233/power-imx233.h index 59ffcd37a2..9888bebe1f 100644 --- a/firmware/target/arm/imx233/power-imx233.h +++ b/firmware/target/arm/imx233/power-imx233.h | |||
@@ -119,6 +119,15 @@ static inline void imx233_power_set_dcdc_freq(bool pll, unsigned freq) | |||
119 | } | 119 | } |
120 | #endif | 120 | #endif |
121 | 121 | ||
122 | static inline unsigned imx233_power_read_pswitch(void) | ||
123 | { | ||
124 | #if IMX233_SUBTARGET >= 3700 | ||
125 | return BF_RD(POWER_STS, PSWITCH); | ||
126 | #else | ||
127 | return BF_RD(DIGCTL_STATUS, PSWITCH); | ||
128 | #endif | ||
129 | } | ||
130 | |||
122 | #if IMX233_SUBTARGET < 3700 | 131 | #if IMX233_SUBTARGET < 3700 |
123 | /* return -1 on error */ | 132 | /* return -1 on error */ |
124 | int imx233_power_sense_die_temperature(int *min, int *max); | 133 | int imx233_power_sense_die_temperature(int *min, int *max); |
diff --git a/firmware/target/arm/imx233/powermgmt-imx233.c b/firmware/target/arm/imx233/powermgmt-imx233.c index 9819406974..895c91dda2 100644 --- a/firmware/target/arm/imx233/powermgmt-imx233.c +++ b/firmware/target/arm/imx233/powermgmt-imx233.c | |||
@@ -48,9 +48,9 @@ void imx233_powermgmt_init(void) | |||
48 | { | 48 | { |
49 | imx233_power_set_charge_current(IMX233_CHARGE_CURRENT); | 49 | imx233_power_set_charge_current(IMX233_CHARGE_CURRENT); |
50 | imx233_power_set_stop_current(IMX233_STOP_CURRENT); | 50 | imx233_power_set_stop_current(IMX233_STOP_CURRENT); |
51 | #if IMX233_SUBTARGET >= 3700 | ||
51 | /* assume that adc_init was called and battery monitoring via LRADC setup */ | 52 | /* assume that adc_init was called and battery monitoring via LRADC setup */ |
52 | BF_WR(POWER_BATTMONITOR, EN_BATADJ, 1); | 53 | BF_WR(POWER_BATTMONITOR, EN_BATADJ, 1); |
53 | #if IMX233_SUBTARGET >= 3700 | ||
54 | /* setup linear regulator offsets to 25 mV below to prevent contention between | 54 | /* setup linear regulator offsets to 25 mV below to prevent contention between |
55 | * linear regulators and DCDC */ | 55 | * linear regulators and DCDC */ |
56 | BF_WR(POWER_VDDDCTRL, LINREG_OFFSET, 2); | 56 | BF_WR(POWER_VDDDCTRL, LINREG_OFFSET, 2); |