summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Winans <nick@winans.codes>2021-02-16 13:43:12 -0600
committerPete Johanson <peter@peterjohanson.com>2021-02-16 14:51:32 -0500
commit57661362ea3deee3cd2c4cc7e25b8e4cd4b49f1d (patch)
treeee4a2adda462db591726ffc6a5535f7451cd9792
parentb43fb8502e246de679518bc96492ec4478722f18 (diff)
refactor(ext-power): Add init-delay-ms option
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
-rw-r--r--app/dts/bindings/zmk,ext-power-generic.yaml4
-rw-r--r--app/src/ext_power_generic.c8
2 files changed, 11 insertions, 1 deletions
diff --git a/app/dts/bindings/zmk,ext-power-generic.yaml b/app/dts/bindings/zmk,ext-power-generic.yaml
index acaf9cc..ddb4b3d 100644
--- a/app/dts/bindings/zmk,ext-power-generic.yaml
+++ b/app/dts/bindings/zmk,ext-power-generic.yaml
@@ -15,3 +15,7 @@ properties:
label:
type: string
required: true
+ init-delay-ms:
+ type: int
+ description: Number of milliseconds to delay after initializing driver
+ required: false
diff --git a/app/src/ext_power_generic.c b/app/src/ext_power_generic.c
index 7909749..1f2e0d7 100644
--- a/app/src/ext_power_generic.c
+++ b/app/src/ext_power_generic.c
@@ -23,6 +23,7 @@ struct ext_power_generic_config {
const char *label;
const uint8_t pin;
const uint8_t flags;
+ const uint16_t init_delay_ms;
};
struct ext_power_generic_data {
@@ -171,6 +172,10 @@ static int ext_power_generic_init(const struct device *dev) {
ext_power_enable(dev);
#endif
+ if (config->init_delay_ms) {
+ k_msleep(config->init_delay_ms);
+ }
+
return 0;
}
@@ -210,7 +215,8 @@ static int ext_power_generic_pm_control(const struct device *dev, uint32_t ctrl_
static const struct ext_power_generic_config config = {
.label = DT_INST_GPIO_LABEL(0, control_gpios),
.pin = DT_INST_GPIO_PIN(0, control_gpios),
- .flags = DT_INST_GPIO_FLAGS(0, control_gpios)};
+ .flags = DT_INST_GPIO_FLAGS(0, control_gpios),
+ .init_delay_ms = DT_INST_PROP_OR(0, init_delay_ms, 0)};
static struct ext_power_generic_data data = {
.status = false,