blob: 4e15ea8824452657b33f11a2ec8d2ff40eccf2e5 [file] [log] [blame]
Reut Zysmanbcfd67a2016-02-18 13:40:49 +02001/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
Reut Zysmanad5d81d2015-08-09 19:20:09 +03002 *
3 * Redistribution and use in source and binary forms, with or without
4 * modification, are permitted provided that the following conditions are
5 * met:
6 * * Redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer.
8 * * Redistributions in binary form must reproduce the above
9 * copyright notice, this list of conditions and the following
10 * disclaimer in the documentation and/or other materials provided
11 * with the distribution.
12 * * Neither the name of The Linux Foundation, Inc. nor the names of its
13 * contributors may be used to endorse or promote products derived
14 * from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
17 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
20 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
26 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 */
29
Reut Zysmanbd6c6872015-08-26 17:36:10 +030030#include "platform.h"
Reut Zysman561d81a2015-08-26 17:37:28 +030031#include "mdtp_defs.h"
Reut Zysmanad5d81d2015-08-09 19:20:09 +030032
Reut Zysmanbd6c6872015-08-26 17:36:10 +030033#define MDTP_EFUSE_ADDRESS_MSM8952 0x0005C250 // QFPROM_CORR_QC_SPARE_REG_LSB_ADDR
34#define MDTP_EFUSE_START_MSM8952 0
35
36#define MDTP_EFUSE_ADDRESS_MSM8956 0x000A4408 // QFPROM_CORR_SPARE_REG18_LSB_ADDR
37#define MDTP_EFUSE_START_MSM8956 0
38
Amit Blaya450ac72015-12-06 10:29:27 +020039#define MDTP_EFUSE_ADDRESS_MSM8937 0x000A43B0 // QFPROM_CORR_SPARE_REG18_ROW0_LSB_ADDR
40#define MDTP_EFUSE_START_MSM8937 0
41
Reut Zysmanbd6c6872015-08-26 17:36:10 +030042
43int mdtp_get_target_efuse(struct mdtp_target_efuse* target_efuse)
44{
45 if (target_efuse == NULL)
46 {
47 dprintf(CRITICAL, "mdtp: mdtp_get_target_efuse: ERROR, target_efuse is NULL\n");
48 return -1;
49 }
50
51 if (platform_is_msm8956())
52 {
53 target_efuse->address = MDTP_EFUSE_ADDRESS_MSM8956;
54 target_efuse->start = MDTP_EFUSE_START_MSM8956;
55 }
Amit Blayc03d6152016-02-25 17:26:31 +020056 else if (platform_is_msm8952())
57 {
58 target_efuse->address = MDTP_EFUSE_ADDRESS_MSM8952;
59 target_efuse->start = MDTP_EFUSE_START_MSM8952;
60 }
Parth Dixit05f3c9f2016-03-18 17:14:57 +053061 else if (platform_is_msm8937() || platform_is_msm8917())
Amit Blaya450ac72015-12-06 10:29:27 +020062 {
63 target_efuse->address = MDTP_EFUSE_ADDRESS_MSM8937;
64 target_efuse->start = MDTP_EFUSE_START_MSM8937;
65 }
Reut Zysmanbd6c6872015-08-26 17:36:10 +030066 else
67 {
Amit Blayc03d6152016-02-25 17:26:31 +020068 dprintf(CRITICAL, "mdtp: mdtp_get_target_efuse: ERROR, target is not supported\n");
69 return -1;
Reut Zysmanbd6c6872015-08-26 17:36:10 +030070 }
71
72 return 0;
73}