From c39f4d831709aa2a276ae1a79f9968e28949ae4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABtan=20Harter?= <gaetan.harter@fu-berlin.de> Date: Fri, 8 Sep 2017 13:58:47 +0200 Subject: [PATCH] saul/gpio: add support to initialized state --- drivers/.Makefile.dep.swo | Bin 0 -> 16384 bytes drivers/include/saul/periph.h | 4 ++-- sys/auto_init/saul/auto_init_gpio.c | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 drivers/.Makefile.dep.swo diff --git a/drivers/.Makefile.dep.swo b/drivers/.Makefile.dep.swo new file mode 100644 index 0000000000000000000000000000000000000000..db7d17170f1a1549c2bbae151e6b5b0624249bf5 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/drivers/include/saul/periph.h b/drivers/include/saul/periph.h index ec6575cfa7..460a045477 100644 --- a/drivers/include/saul/periph.h +++ b/drivers/include/saul/periph.h @@ -34,8 +34,8 @@ extern "C" { #ifdef MODULE_SAUL_GPIO typedef enum { SAUL_GPIO_INVERTED = (1 << 0), /**< pin is used as inverted */ - SAUL_GPIO_INIT_CLEAR = 1 << 1, /**< set pin inactive after initialization */ - SAUL_GPIO_INIT_SET = 1 << 2, /**< set pin active after initialization */ + SAUL_GPIO_INIT_CLEAR = (1 << 1), /**< set pin inactive after init */ + SAUL_GPIO_INIT_SET = (1 << 2), /**< set pin active after init */ } saul_gpio_flags_t; /** diff --git a/sys/auto_init/saul/auto_init_gpio.c b/sys/auto_init/saul/auto_init_gpio.c index 4de96eeced..c2a400a4bb 100644 --- a/sys/auto_init/saul/auto_init_gpio.c +++ b/sys/auto_init/saul/auto_init_gpio.c @@ -66,6 +66,12 @@ void auto_init_gpio(void) } /* initialize the GPIO pin */ gpio_init(p->pin, p->mode); + /* set initial pin state if configured */ + if (p->flags & (SAUL_GPIO_INIT_CLEAR | SAUL_GPIO_INIT_SET)) { + phydat_t s; + s.val[0] = (p->flags & SAUL_GPIO_INIT_SET); + saul_reg_entries[i].driver->write(p, &s); + } /* add to registry */ saul_reg_add(&(saul_reg_entries[i])); } -- GitLab