blob: 79e046672928bb08ba1fd01370ef5c1c66eaa3fa [file] [log] [blame]
Travis Geiselbrecht1d0df692008-09-01 02:26:09 -07001/*
Casey Pipera277d882013-10-21 10:11:04 -07002 * Copyright (c) 2008 Travis Geiselbrecht
Travis Geiselbrecht1d0df692008-09-01 02:26:09 -07003 *
4 * Permission is hereby granted, free of charge, to any person obtaining
5 * a copy of this software and associated documentation files
6 * (the "Software"), to deal in the Software without restriction,
7 * including without limitation the rights to use, copy, modify, merge,
8 * publish, distribute, sublicense, and/or sell copies of the Software,
9 * and to permit persons to whom the Software is furnished to do so,
10 * subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be
13 * included in all copies or substantial portions of the Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 */
23#include <err.h>
24#include <debug.h>
25#include <target.h>
26#include <compiler.h>
Pavel Nedeva4c9d3a2013-05-15 14:42:34 +030027#include <dload_util.h>
Channagoud Kadabi41c81a62014-10-08 19:55:30 -070028#include <sdhci_msm.h>
Travis Geiselbrecht1d0df692008-09-01 02:26:09 -070029
Subbaraman Narayanamurthyf17b4ae2011-02-16 20:19:56 -080030#define EXPAND(NAME) #NAME
31#define TARGET(NAME) EXPAND(NAME)
Amol Jadi57abe4c2011-05-24 15:47:27 -070032/*
Travis Geiselbrecht1d0df692008-09-01 02:26:09 -070033 * default implementations of these routines, if the target code
34 * chooses not to implement.
35 */
36
37__WEAK void target_early_init(void)
38{
39}
40
41__WEAK void target_init(void)
42{
43}
44
David Ng3679bc52010-02-09 15:43:43 -080045__WEAK void *target_get_scratch_address(void)
46{
47 return (void *)(SCRATCH_ADDR);
48}
49
Vivek Mehta5f1c9d42011-04-01 20:11:59 -070050__WEAK unsigned target_get_max_flash_size(void)
51{
52 return (120 * 1024 * 1024);
53}
54
David Ng183a7422009-12-07 14:55:21 -080055__WEAK int target_is_emmc_boot(void)
56{
David Ng025c1d92009-12-09 23:46:00 -080057#if _EMMC_BOOT
58 return 1;
59#else
David Ng183a7422009-12-07 14:55:21 -080060 return 0;
David Ng025c1d92009-12-09 23:46:00 -080061#endif
David Ng183a7422009-12-07 14:55:21 -080062}
Chandan Uddarajude85d3f2010-01-05 16:32:33 -080063
64__WEAK unsigned check_reboot_mode(void)
65{
66 return 0;
67}
Chandan Uddaraju94183c02010-01-15 15:13:59 -080068
69__WEAK void reboot_device(unsigned reboot_reason)
70{
71}
Chandan Uddaraju7f5b9012010-02-06 16:37:48 -080072
Matthew Qindefd5562014-07-11 18:02:40 +080073__WEAK uint32_t is_user_force_reset(void)
74{
75 return 0;
76}
77
Pavel Nedeva4c9d3a2013-05-15 14:42:34 +030078__WEAK int set_download_mode(enum dload_mode mode)
Pavel Nedev76a3e212013-05-09 10:37:21 +030079{
80 return -1;
81}
82
David Ngf773dde2010-07-26 19:55:08 -070083__WEAK unsigned target_pause_for_battery_charge(void)
84{
85 return 0;
86}
Ajay Dudanid04110c2011-01-17 23:55:07 -080087
88__WEAK unsigned target_baseband()
89{
90 return 0;
91}
Subbaraman Narayanamurthyf17b4ae2011-02-16 20:19:56 -080092
93__WEAK void target_serialno(unsigned char *buf)
94{
Ajay Dudanif63d02f2011-10-01 08:29:53 -070095 snprintf((char *) buf, 13, "%s",TARGET(BOARD));
Subbaraman Narayanamurthyf17b4ae2011-02-16 20:19:56 -080096}
Amol Jadi57abe4c2011-05-24 15:47:27 -070097
98__WEAK void target_fastboot_init()
99{
100}
Subbaraman Narayanamurthy0e445b02011-06-19 21:34:46 -0700101
102__WEAK int emmc_recovery_init(void)
103{
104 return 0;
105}
Shashank Mittalcd98d472011-08-02 14:29:24 -0700106
107__WEAK bool target_use_signed_kernel(void)
108{
109#if _SIGNED_KERNEL
110 return 1;
111#else
112 return 0;
113#endif
114}
Amol Jadi6834f1a2012-06-29 14:42:59 -0700115
Stanimir Varbanov8bc68c72013-07-08 18:22:04 +0300116__WEAK bool target_is_ssd_enabled(void)
117{
118#ifdef SSD_ENABLE
119 return 1;
120#else
121 return 0;
122#endif
123}
124
Stanimir Varbanov677001e2013-07-18 18:16:39 +0300125__WEAK void target_load_ssd_keystore(void)
126{
127}
Amol Jadi6834f1a2012-06-29 14:42:59 -0700128
129/* Default target does not support continuous splash screen feature. */
130__WEAK int target_cont_splash_screen()
131{
132 return 0;
133}
Amol Jadida118b92012-07-06 19:53:18 -0700134
135/* Default target specific initialization before using USB */
136__WEAK void target_usb_init(void)
137{
138}
139
140/* Default target specific usb shutdown */
141__WEAK void target_usb_stop(void)
142{
143}
Channagoud Kadabifa6179e2013-06-18 18:35:14 -0700144
145/* Default target specific target uninit */
146__WEAK void target_uninit(void)
147{
148}
Dhaval Patelcdcb6462013-07-18 14:46:57 -0700149
Ajay Singh Parmar430bbb32014-03-18 15:26:30 -0700150__WEAK bool target_display_panel_node(char *panel_name, char *pbuf,
151 uint16_t buf_size)
Dhaval Patelcdcb6462013-07-18 14:46:57 -0700152{
153 return false;
154}
Channagoud Kadabi9fbdcdf2013-09-19 16:24:16 -0700155
Aravind Venkateswaran6385f7e2014-02-25 16:45:11 -0800156__WEAK void target_display_init(const char *panel_name)
Aravind Venkateswarandd50c1a2014-02-25 14:42:43 -0800157{
158}
159
160__WEAK void target_display_shutdown(void)
161{
162}
163
Casey Piperf8cebb62013-09-11 15:56:17 -0700164__WEAK uint8_t target_panel_auto_detect_enabled()
165{
166 return 0;
167}
168
Casey Piper48bfc0d2013-11-18 13:24:35 -0800169__WEAK uint8_t target_is_edp()
170{
171 return 0;
172}
173
Amol Jadi417c7f22013-10-07 12:52:21 -0700174/* default usb controller to be used. */
175__WEAK const char * target_usb_controller()
176{
177 return "ci";
178}
Amol Jadi9ff7bb52013-10-11 14:11:45 -0700179
180/* override for target specific usb phy reset. */
181__WEAK void target_usb_phy_reset(void)
182{
183}
Hanumant Singh8e1ac232014-01-29 13:41:51 -0800184
185/* determine if target is in warm boot. */
186__WEAK bool target_warm_boot(void)
187{
188 return false;
189}
Aparna Mallavarapu373d38b2014-05-23 14:47:19 +0530190
191/* Determine the HLOS subtype of the target */
192__WEAK uint32_t target_get_hlos_subtype(void)
193{
194 return 0;
195}
Channagoud Kadabi82cf5c62014-08-24 22:17:34 -0700196
197/* Initialize crypto parameters */
198__WEAK void target_crypto_init_params()
199{
200}
Channagoud Kadabi41c81a62014-10-08 19:55:30 -0700201
202/* Default CFG delay value */
203__WEAK uint32_t target_ddr_cfg_val()
204{
205 return DDR_CONFIG_VAL;
206}