summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreddielan <eddielan@google.com>2021-05-19 21:52:32 +0800
committereddielan <eddielan@google.com>2021-05-20 08:57:25 +0800
commitb6aad74e5fb83080ff7808c92df349443b406539 (patch)
tree89b06ab6b2b530baadc62fea007564fb001d615e
parent0d9550dd234087646e320d6c795e94f29d66cdcb (diff)
downloadfpc-android-gs-raviole-5.10-s-qpr3-beta-3.tar.gz
fingerprint: fpc: Config power down mode for rst pinandroid-u-preview-1_r0.4android-u-preview-1_r0.3android-u-preview-1_r0.2android-t-qpr2-beta-3_r0.5android-t-qpr2-beta-3_r0.4android-t-qpr2-beta-3_r0.3android-t-qpr2-beta-3.2_r0.6android-t-qpr2-beta-3.2_r0.5android-t-qpr2-beta-3.2_r0.4android-t-qpr2-beta-2_r0.5android-t-qpr2-beta-2_r0.4android-t-qpr2-beta-2_r0.3android-t-qpr2-beta-1_r0.6android-t-qpr2-beta-1_r0.5android-t-qpr2-beta-1_r0.4android-t-qpr1-beta-3_r0.4android-t-qpr1-beta-3_r0.3android-t-qpr1-beta-2_r0.5android-t-qpr1-beta-2_r0.4android-t-qpr1-beta-1_r0.4android-t-qpr1-beta-1_r0.3android-t-preview-2_r0.4android-t-preview-1_r0.4android-t-beta-4_r0.6android-t-beta-4_r0.5android-t-beta-4_r0.4android-t-beta-3_r0.4android-t-beta-3.3_r0.4android-t-beta-3.2_r0.4android-t-beta-2_r0.4android-t-beta-1_r0.4android-s-v2-beta-3_r0.6android-s-qpr3-beta-3_r0.5android-s-qpr3-beta-2_r0.5android-s-qpr3-beta-1_r0.6android-s-qpr3-beta-1_r0.5android-13.0.0_r0.91android-13.0.0_r0.77android-13.0.0_r0.75android-13.0.0_r0.74android-13.0.0_r0.73android-13.0.0_r0.70android-13.0.0_r0.69android-13.0.0_r0.68android-13.0.0_r0.65android-13.0.0_r0.64android-13.0.0_r0.63android-13.0.0_r0.59android-13.0.0_r0.58android-13.0.0_r0.54android-13.0.0_r0.53android-13.0.0_r0.5android-13.0.0_r0.49android-13.0.0_r0.48android-13.0.0_r0.44android-13.0.0_r0.43android-13.0.0_r0.4android-13.0.0_r0.20android-13.0.0_r0.19android-13.0.0_r0.15android-13.0.0_r0.14android-12.1.0_r0.6android-12.1.0_r0.40android-12.1.0_r0.35android-12.1.0_r0.28android-12.1.0_r0.22android-12.1.0_r0.16android-12.0.0_r0.9android-12.0.0_r0.8android-12.0.0_r0.42android-12.0.0_r0.36android-12.0.0_r0.26android-12.0.0_r0.17android-12.0.0_r0.16main-16k-gs-raviole-5.10android13-gs-raviole-5.15android-gs-tangorpro-5.10-android13-d2android-gs-raviole-mainlineandroid-gs-raviole-5.10-u-preview-1android-gs-raviole-5.10-t-qpr2-beta-3.2android-gs-raviole-5.10-t-qpr2-beta-1android-gs-raviole-5.10-t-qpr1-beta-2android-gs-raviole-5.10-t-preview-2android-gs-raviole-5.10-t-preview-1android-gs-raviole-5.10-t-beta-4android-gs-raviole-5.10-t-beta-3android-gs-raviole-5.10-t-beta-2android-gs-raviole-5.10-t-beta-1android-gs-raviole-5.10-s-v2-beta-3android-gs-raviole-5.10-s-qpr3-beta-3android-gs-raviole-5.10-s-qpr3-beta-2android-gs-raviole-5.10-android13-qpr2-betaandroid-gs-raviole-5.10-android13-qpr2android-gs-raviole-5.10-android13-qpr1-beta-3android-gs-raviole-5.10-android13-qpr1-betaandroid-gs-raviole-5.10-android13-qpr1android-gs-raviole-5.10-android13android-gs-raviole-5.10-android12Landroid-gs-raviole-5.10-android12-qpr3android-gs-raviole-5.10-android12-qpr1-dandroid-gs-raviole-5.10-android12-d1android-gs-pantah-5.10-u-preview-1android-gs-pantah-5.10-t-qpr2-beta-3.2android-gs-pantah-5.10-t-qpr2-beta-1android-gs-pantah-5.10-android13-qpr2-betaandroid-gs-pantah-5.10-android13-qpr2android-gs-lynx-5.10-android13-qpr2-bandroid-gs-bluejay-5.10-u-preview-1android-gs-bluejay-5.10-t-qpr2-beta-3android-gs-bluejay-5.10-t-qpr2-beta-1android-gs-bluejay-5.10-t-qpr1-beta-2android-gs-bluejay-5.10-t-beta-4android-gs-bluejay-5.10-android13-qpr2-betaandroid-gs-bluejay-5.10-android13-qpr2android-gs-bluejay-5.10-android13-qpr1-beta-3android-gs-bluejay-5.10-android13-qpr1-betaandroid-gs-bluejay-5.10-android13-qpr1android-gs-bluejay-5.10-android13android-gs-bluejay-5.10-android12L-d2
pin 131 (gpp4-3) 3:gpp4 CON(0x1) DAT(0x1) PUD(0x1) DRV(0x0) CON_PDN(0x1) PUD_PDN(0x3) Bug: 187150932 Test: build pass, verify on device Change-Id: I7c21a7f7e4350a0e209125b168ce94af11835826
-rw-r--r--fpc1020_platform_tee.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/fpc1020_platform_tee.c b/fpc1020_platform_tee.c
index a7a8338..43e631d 100644
--- a/fpc1020_platform_tee.c
+++ b/fpc1020_platform_tee.c
@@ -48,6 +48,8 @@
#define NUM_PARAMS_REG_ENABLE_SET 2
+const char *rst_gpio_power_down_state = "rst,power_down";
+
struct vreg_config {
char *name;
unsigned long vmin;
@@ -72,6 +74,8 @@ struct fpc1020_data {
struct mutex lock; /* To set/get exported values in sysfs */
bool prepared;
atomic_t wakeup_enabled; /* Used both in ISR and non-ISR */
+ struct pinctrl *rst_pinctrl;
+ struct pinctrl_state *rst_state;
};
static int vreg_setup(struct fpc1020_data *fpc1020, const char *name,
@@ -466,6 +470,34 @@ static int fpc1020_config_gpio(struct fpc1020_data *fpc1020)
}
+static int config_rst_power_down(struct fpc1020_data *fpc_data) {
+
+ struct device *dev = fpc_data->dev;
+ int result = 0;
+
+ fpc_data->rst_pinctrl = devm_pinctrl_get(dev);
+ if (IS_ERR(fpc_data->rst_pinctrl)) {
+ dev_err(dev, "%s: Can't get pinctrl\n",__func__);
+ return -1;
+ }
+
+ fpc_data->rst_state = pinctrl_lookup_state(fpc_data->rst_pinctrl, rst_gpio_power_down_state);
+ if (IS_ERR_OR_NULL(fpc_data->rst_state)) {
+ dev_err(dev, "%s: Failed to lookup reset lower power state\n",__func__);
+ return -1;
+ }
+
+ result = pinctrl_select_state(fpc_data->rst_pinctrl, fpc_data->rst_state);
+ if (result) {
+ dev_err(dev, "%s: Can not set %s state\n",__func__, rst_gpio_power_down_state);
+ return -1;
+ }
+
+ dev_info(dev, "%s: finish\n",__func__);
+ return 0;
+}
+
+
static int fpc1020_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
@@ -491,6 +523,11 @@ static int fpc1020_probe(struct platform_device *pdev)
goto exit;
}
+ // Config reset lower power state
+ rc = config_rst_power_down(fpc1020);
+ if (rc)
+ goto exit;
+
// Request IRQ and Reset pin GPIO
rc = fpc1020_request_named_gpio(fpc1020, "fpc,gpio_irq",
&fpc1020->irq_gpio);