summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Barnaś <mb@semihalf.com>2021-10-04 17:56:54 +0200
committerCommit Bot <commit-bot@chromium.org>2021-10-05 00:33:24 +0000
commit071a821a4caab683c420d85af868a320085a097a (patch)
tree4a1d5602f224e12fd53c5c77ac68d753e2507960
parent07e1969eed461d0130f29a81f0a0b3da5e238170 (diff)
downloadchrome-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.c31
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));
}