diff options
author | Bernardo Perez Priego <bernardo.perez.priego@intel.com> | 2022-12-08 15:28:58 -0800 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-12-16 00:24:33 +0000 |
commit | 4c39e44cb5c1f852ac54508d9b7375aca6c9f72a (patch) | |
tree | 27da33d645dd2a44d6e14490b1e933146c604ab2 /zephyr/subsys | |
parent | 55a0acd2796d53bdd9bef2898886528a67701119 (diff) | |
download | chrome-ec-4c39e44cb5c1f852ac54508d9b7375aca6c9f72a.tar.gz |
zephyr: ap_pwrseq: Switch `retain` flag into `initialized`
This simplifies logic when initializing power signals from devicetree.
BUG=b:222933615
TEST=zmake test test-ap_power
BRANCH=None
Signed-off-by: Bernardo Perez Priego <bernardo.perez.priego@intel.com>
Change-Id: I8af6b55e63917a056d58a1c42f182fc9f84e2b35
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4091523
Reviewed-by: Peter Marheine <pmarheine@chromium.org>
Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
Commit-Queue: Andrew McRae <amcrae@google.com>
Diffstat (limited to 'zephyr/subsys')
-rw-r--r-- | zephyr/subsys/emul/ap_pwrseq/emul_power_signals.c | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/zephyr/subsys/emul/ap_pwrseq/emul_power_signals.c b/zephyr/subsys/emul/ap_pwrseq/emul_power_signals.c index e8f211bb56..1783bc7897 100644 --- a/zephyr/subsys/emul/ap_pwrseq/emul_power_signals.c +++ b/zephyr/subsys/emul/ap_pwrseq/emul_power_signals.c @@ -58,7 +58,7 @@ struct power_signal_emul_output { const int deassert_value; const int deassert_delay_ms; const int init_value; - const bool retain; + const bool initialized; const bool invert; struct k_work_delayable d_work; int value; @@ -77,7 +77,7 @@ struct power_signal_emul_input { struct power_signal_emul_signal_desc desc; const int assert_value; const int init_value; - const bool retain; + const bool initialized; const enum power_signal_edge edge; struct gpio_callback cb; int value; @@ -130,7 +130,7 @@ struct power_signal_emul_node { .assert_value = DT_PROP(inst, assert_value), \ .init_value = DT_PROP_OR(inst, init_value, 0), \ .edge = DT_STRING_TOKEN(inst, edge), \ - .retain = !DT_NODE_HAS_PROP(inst, init_value), \ + .initialized = DT_NODE_HAS_PROP(inst, init_value), \ } #define EMUL_POWER_SIGNAL_OUT_DEF(inst) \ @@ -141,7 +141,7 @@ struct power_signal_emul_node { .deassert_value = DT_PROP(inst, deassert_value), \ .deassert_delay_ms = DT_PROP(inst, deassert_delay_ms), \ .init_value = DT_PROP_OR(inst, init_value, 0), \ - .retain = !DT_NODE_HAS_PROP(inst, init_value), \ + .initialized = DT_NODE_HAS_PROP(inst, init_value), \ .invert = DT_PROP(inst, invert_value), \ }, @@ -421,27 +421,25 @@ static int power_signal_init_node(struct power_signal_emul_node *node) for (int i = 0; i < node->outputs_count; i++) { out_signal = &node->outputs[i]; - if (out_signal->retain) { - out_signal->value = - power_signal_emul_get_value(&out_signal->desc); - } else { - /* Not retaining previous value, override */ + if (out_signal->initialized) { power_signal_emul_set_value(&out_signal->desc, out_signal->init_value); out_signal->value = out_signal->init_value; + } else { + out_signal->value = + power_signal_emul_get_value(&out_signal->desc); } k_work_init_delayable(&out_signal->d_work, emul_signal_work_hanlder); } - if (in_signal->retain) { - in_signal->value = - power_signal_emul_get_value(&in_signal->desc); - } else { - /* Not retaining previous value, override */ + if (in_signal->initialized) { power_signal_emul_set_value(&in_signal->desc, in_signal->init_value); in_signal->value = in_signal->init_value; + } else { + in_signal->value = + power_signal_emul_get_value(&in_signal->desc); } if (in_signal->desc.source == PWR_SIG_EMUL_SRC_GPIO) { gpio_init_callback(&in_signal->cb, |