diff options
author | Michał Barnaś <mb@semihalf.com> | 2021-10-04 17:56:54 +0200 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-10-05 00:33:24 +0000 |
commit | 071a821a4caab683c420d85af868a320085a097a (patch) | |
tree | 4a1d5602f224e12fd53c5c77ac68d753e2507960 | |
parent | 07e1969eed461d0130f29a81f0a0b3da5e238170 (diff) | |
download | chrome-ec-071a821a4caab683c420d85af868a320085a097a.tar.gz |
zephyr: shim: remove gpio_data array
Removed gpio_data array to use config instead.
This structure was redundant and could be removed to save memory.
BRANCH=main
BUG=b:200693667
TEST=Compile and flash firmware for lazor.
Check that RAM and flash have more free bytes.
EC should work correctly.
Change-Id: I7aad3c255d1285ec453e164323e5ff03fa16c614
Signed-off-by: Michał Barnaś <mb@semihalf.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3178865
Reviewed-by: Keith Short <keithshort@chromium.org>
Commit-Queue: Keith Short <keithshort@chromium.org>
-rw-r--r-- | zephyr/shim/src/gpio.c | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/zephyr/shim/src/gpio.c b/zephyr/shim/src/gpio.c index 2bae272361..4ea17eaf7e 100644 --- a/zephyr/shim/src/gpio.c +++ b/zephyr/shim/src/gpio.c @@ -53,13 +53,6 @@ struct gpio_data { const struct device *dev; }; -#define GPIO_DATA(id) COND_CODE_1(DT_NODE_HAS_PROP(id, enum_name), ({}, ), ()) -static struct gpio_data data[] = { -#if DT_NODE_EXISTS(DT_PATH(named_gpios)) - DT_FOREACH_CHILD(DT_PATH(named_gpios), GPIO_DATA) -#endif -}; - /* Maps platform/ec gpio callback information */ struct gpio_signal_callback { /* The platform/ec gpio_signal */ @@ -194,7 +187,8 @@ int gpio_get_level(enum gpio_signal signal) if (!gpio_is_implemented(signal)) return 0; - const int l = gpio_pin_get_raw(data[signal].dev, configs[signal].pin); + const int l = gpio_pin_get_raw(configs[signal].dev, + configs[signal].pin); if (l < 0) { LOG_ERR("Cannot read %s (%d)", configs[signal].name, l); @@ -238,7 +232,9 @@ void gpio_set_level(enum gpio_signal signal, int value) if (!gpio_is_implemented(signal)) return; - int rv = gpio_pin_set_raw(data[signal].dev, configs[signal].pin, value); + int rv = gpio_pin_set_raw(configs[signal].dev, + configs[signal].pin, + value); if (rv < 0) { LOG_ERR("Cannot write %s (%d)", configs[signal].name, rv); @@ -312,10 +308,9 @@ static int init_gpios(const struct device *unused) /* Loop through all GPIOs in device tree to set initial configuration */ for (size_t i = 0; i < ARRAY_SIZE(configs); ++i) { - data[i].dev = configs[i].dev; int rv; - if (!device_is_ready(data[i].dev)) + if (!device_is_ready(configs[i].dev)) LOG_ERR("Not found (%s)", configs[i].name); /* @@ -330,7 +325,7 @@ static int init_gpios(const struct device *unused) ~(GPIO_OUTPUT_INIT_LOW | GPIO_OUTPUT_INIT_HIGH); } - rv = gpio_pin_configure(data[i].dev, configs[i].pin, flags); + rv = gpio_pin_configure(configs[i].dev, configs[i].pin, flags); if (rv < 0) { LOG_ERR("Config failed %s (%d)", configs[i].name, rv); } @@ -348,7 +343,7 @@ static int init_gpios(const struct device *unused) gpio_init_callback(&zephyr_gpio_callbacks[i], gpio_handler_shim, BIT(configs[signal].pin)); - rv = gpio_add_callback(data[signal].dev, + rv = gpio_add_callback(configs[signal].dev, &zephyr_gpio_callbacks[i]); if (rv < 0) { @@ -389,7 +384,8 @@ int gpio_enable_interrupt(enum gpio_signal signal) * Config interrupt flags (e.g. INT_EDGE_BOTH) & enable interrupt * together. */ - rv = gpio_pin_interrupt_configure(data[signal].dev, configs[signal].pin, + rv = gpio_pin_interrupt_configure(configs[signal].dev, + configs[signal].pin, (interrupt->flags | GPIO_INT_ENABLE) & ~GPIO_INT_DISABLE); if (rv < 0) { @@ -407,7 +403,8 @@ int gpio_disable_interrupt(enum gpio_signal signal) if (!gpio_is_implemented(signal)) return -1; - rv = gpio_pin_interrupt_configure(data[signal].dev, configs[signal].pin, + rv = gpio_pin_interrupt_configure(configs[signal].dev, + configs[signal].pin, GPIO_INT_DISABLE); if (rv < 0) { LOG_ERR("Failed to disable interrupt on %s (%d)", @@ -422,7 +419,7 @@ void gpio_reset(enum gpio_signal signal) if (!gpio_is_implemented(signal)) return; - gpio_pin_configure(data[signal].dev, configs[signal].pin, + gpio_pin_configure(configs[signal].dev, configs[signal].pin, configs[signal].init_flags); } @@ -431,7 +428,7 @@ void gpio_set_flags(enum gpio_signal signal, int flags) if (!gpio_is_implemented(signal)) return; - gpio_pin_configure(data[signal].dev, configs[signal].pin, + gpio_pin_configure(configs[signal].dev, configs[signal].pin, convert_to_zephyr_flags(flags)); } |