2019-12-16 06:10:59 +00:00
|
|
|
/****************************************************************************
|
|
|
|
*
|
2020-01-13 05:15:03 +00:00
|
|
|
* Copyright 2020 Samsung Electronics All Rights Reserved.
|
2019-12-16 06:10:59 +00:00
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
|
|
*
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
*
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
*
|
|
|
|
* Unless required by applicable law or agreed to in writing,
|
|
|
|
* software distributed under the License is distributed on an
|
|
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
|
|
|
* either express or implied. See the License for the specific
|
|
|
|
* language governing permissions and limitations under the License.
|
|
|
|
*
|
|
|
|
****************************************************************************/
|
|
|
|
|
|
|
|
#ifndef __S5JS100_PWR_H__
|
|
|
|
#define __S5JS100_PWR_H__
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
PWR_DSTOP,
|
|
|
|
PWR_STOP,
|
|
|
|
} PWR_MODE;
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
MCPU_BLK = (0x1 << 0),
|
|
|
|
RFIP_BLK = (0x1 << 1),
|
|
|
|
} PWR_BLK;
|
|
|
|
typedef enum {
|
|
|
|
GPIO_ALIVE_0,
|
|
|
|
GPIO_ALIVE_1,
|
|
|
|
GPIO_ALIVE_NONE,
|
|
|
|
} PORT_NUM;
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
OUTPUT = (0x1 << 0),
|
|
|
|
INPUT = (0x1 << 1),
|
|
|
|
} PORT_DIR;
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
PULL_DIS = 0,
|
|
|
|
PULL_DOWN = 1,
|
|
|
|
PULL_UP = 3,
|
|
|
|
} PUD_CON;
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
LOWLEVEL,
|
|
|
|
HIGHLEVEL,
|
|
|
|
FALLING,
|
|
|
|
RISING,
|
|
|
|
} FILTER_TYPE;
|
|
|
|
|
|
|
|
// wakeup source define
|
|
|
|
#define TEMPMON (1<<4)
|
|
|
|
#define GPIO_ALV1 (1<<3)
|
|
|
|
#define GPIO_ALV0 (1<<2)
|
|
|
|
#define APSLPCNT (1<<1)
|
|
|
|
#define NSLEEP (1<<0)
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
MCPU_CP = 0,
|
|
|
|
MCPU_GNSS = 1,
|
|
|
|
MCPU_NONE = -1,
|
|
|
|
} MCPU_MODE;
|
|
|
|
|
|
|
|
#define GNSS_BIN_BASE (0x4063C000)
|
|
|
|
#define CP_BIN_BASE (0x40050000)
|
|
|
|
#define TCM_BASE (0x20000000)
|
|
|
|
#define MCPU_BINARY_SIZE (0x20000)
|
|
|
|
|
|
|
|
extern int s5js100_pwr_dbg_on;
|
|
|
|
extern MCPU_MODE mcpu_device_mode;
|
|
|
|
|
|
|
|
|
|
|
|
#define WAKEUP_BOOT 0
|
|
|
|
#define COLD_BOOT 1
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
unsigned int wakeup_src;
|
|
|
|
unsigned int wakeup_status;
|
|
|
|
FILTER_TYPE alv0_gpio_int_type;
|
|
|
|
FILTER_TYPE alv1_gpio_int_type;
|
|
|
|
unsigned int time_msec;
|
|
|
|
unsigned int upper_temp;
|
|
|
|
unsigned int lower_temp;
|
|
|
|
unsigned int nbiot_time_msec;
|
|
|
|
} PMU_SLEEP_INFO;
|
|
|
|
|
|
|
|
|
|
|
|
extern unsigned int get_bootflag(void);
|
|
|
|
extern void pmu_nb_sleep(void);
|
|
|
|
extern void pmu_short_sleep(void);
|
|
|
|
extern void s5js100_pmu_sleep(PMU_SLEEP_INFO *info);
|
|
|
|
extern void mcpu_reset(void);
|
|
|
|
extern void mcpu_init(MCPU_MODE device);
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|