blob: a95375dfbbaf30fa834c86d1afd7b7705be0ca7b [file] [log] [blame]
Runmin Wangdc8e9732016-10-06 11:14:08 -07001/* Copyright (c) 2013-2014, 2016, The Linux Foundation. All rights reserved.
Joonwoo Parke586c2e2014-04-02 11:04:10 -07002 *
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 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#include <reg.h>
30#include <platform/gpio.h>
31#include <platform/iomap.h>
Channagoud Kadabifdfee232015-10-07 11:55:47 -070032#include <pm8x41.h>
33#include <platform.h>
Joonwoo Parke586c2e2014-04-02 11:04:10 -070034
35/* GPIO that controls the button
36 * for FASTBOOT.
37 */
Smita Ghosh48a95cc2014-10-09 16:37:43 -070038#define FASTBOOT_KEY_GPIO_ID 92
Joonwoo Parke586c2e2014-04-02 11:04:10 -070039
40/*
41 * Returns fastboot button state.
42 * Returns 0 if button is not pressed, 1 when pressed.
43 */
44int get_fastboot_key_state(void)
45{
46 int ret;
47
Karthik Jadala8e6b2192017-02-08 12:59:16 +053048 if (platform_is_mdm9650() || platform_is_sdxhedgehog())
Channagoud Kadabifdfee232015-10-07 11:55:47 -070049 ret = pm8x41_resin_status();
50 else
51 {
52 gpio_tlmm_config(FASTBOOT_KEY_GPIO_ID, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA, GPIO_ENABLE);
Joonwoo Parke586c2e2014-04-02 11:04:10 -070053
Channagoud Kadabifdfee232015-10-07 11:55:47 -070054 ret = gpio_get_state(FASTBOOT_KEY_GPIO_ID);
55 }
Joonwoo Parke586c2e2014-04-02 11:04:10 -070056
57 return ret;
58}
59
60/*
61* Return 1 to trigger to fastboot
62*/
63int fastboot_trigger(void)
64{
65 int ret;
66
67 ret = get_fastboot_key_state();
68
69 return (ret);
70}
71