Skip to content

Commit 20d08f3

Browse files
authored
Merge pull request #93 from abelvesa/master
cdba: add per-board power key press duration
2 parents 2a820ca + fd3f591 commit 20d08f3

4 files changed

Lines changed: 12 additions & 1 deletion

File tree

device.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,10 @@ static void device_tick(void *data)
213213
device_key(device, DEVICE_KEY_POWER, true);
214214

215215
device->state = DEVICE_STATE_RELEASE_PWR;
216-
watch_timer_add(100, device_tick, device);
216+
if (device->power_key_press_ms)
217+
watch_timer_add(device->power_key_press_ms, device_tick, device);
218+
else
219+
watch_timer_add(100, device_tick, device);
217220
break;
218221
case DEVICE_STATE_RELEASE_PWR:
219222
/* Release power key */

device.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ struct device {
4545
bool power_always_on;
4646
struct fastboot *fastboot;
4747
unsigned int fastboot_key_timeout;
48+
unsigned int power_key_press_ms;
4849
int state;
4950
bool has_power_key;
5051

device_parser.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,8 @@ static void parse_board(struct device_parser *dp)
203203
dev->description = strdup(value);
204204
} else if (!strcmp(key, "fastboot_key_timeout")) {
205205
dev->fastboot_key_timeout = strtoul(value, NULL, 10);
206+
} else if (!strcmp(key, "power_key_press_ms")) {
207+
dev->power_key_press_ms = MAX(100, strtoul(value, NULL, 10));
206208
} else if (!strcmp(key, "usb_always_on")) {
207209
dev->usb_always_on = !strcmp(value, "true");
208210
} else if (!strcmp(key, "ppps_path")) {

schema.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ properties:
4949
type: integer
5050
minimum: 1
5151

52+
power_key_press_ms:
53+
description: duration of the power key press in milliseconds
54+
type: integer
55+
minimum: 100
56+
5257
cdba:
5358
description: CDB Assist device path
5459
$ref: "#/$defs/device_path"

0 commit comments

Comments
 (0)