From c39f4d831709aa2a276ae1a79f9968e28949ae4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABtan=20Harter?= 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 zcmeI(eT)=m0mt#-MJp<8BdDCEaVruzTDY0L-P^@P3-JyENQl5SJ!0L?&dlBp%Ubks$pYE9BhU4~aRCgE^(=t}-hMic9cu^!E z5}0WMV_s!NalX`_Rb>C8OTO?>X2GY1XIhGQzeqqNAQBJ>hy+9eA_0+rNI)d;Ax^-v zXG`Cs{j=MBIMRNc6?mM}e!i{!cr@^O`>A*k35Wzl0wMvCfJi_jAQBJ>hy+9eA_0+r zNZ|i40ab6U{a^Dp0Qmm@=KBBKeUfw*uVOEr!XAuZ05bY87yrChl75HZ;y3sSzK5j6En}1dn4S7U9|_CFx(dgp)Xq19%quQO0U4$3onT`S{x> zXcK;o!?3UkU&k7(Mi1uT(#Iv~Pk0Llu^Zd46{aU3t>ASR&Vt5}TB z;M4fW$0X?--oz_7j6)d5x3Ctg@hEz5;~q)+J1*e&ID_LjfM>BEDmGvUgZM12ew04o z4>*rs;CcK2&*0lwk31g0^^fowT)}C)f*;{|JO>?X@OkuL5iZY_q(9>wT)@xqBF4}_ z9cv+DIePIwHjXahEKcJTUcz2Hg*_O-05bR-dT^Qfcm|X6a`L>%WY!L?**d&=XiI7H z&^L$IZ5|rTJp7f6Z8)Y~Eot_csY@~Maa7%GlY9KSHQti>m%ukZ|4!pv}TX3Qu1UC8|%1dWph}(l1 ze<_N8g^$KuqylxsjgY2gbJ_T*a`Sc}P}*qS(Mp=8D6)Uu30)5-UvBqGH!A9w6^b)Z zVDv1HIv;MyB2;gyMX@8-aR!xZ&1_K)UMi;AG2@w8t}Ug!bamfOEw++S%XF=dPCb-k zxvCWMa%J31*PRb?{??odSJ+(2;O}Bf15vA9ae$^ao8fihQ!UDXtQ z)2G_1BFEpXOxN_#)Km4Q)t}3UTDTH7RV{NJ)Kn|e zaCF1zmHhSp1nbBDvi9`X|2MzizsS1&ulNhzz%l#~`>_vCVm$`&H7v$Gm<0(JSmXZ+ z2e1nsTx>)E3S{_u0#{h)pT%jM!cn|{eb@^X8!&`HJc#S8@!!SU_!<0tfn(T>ZPXZ8y}#m4 zvG$L+XVaD{TIiN7vL)RweJr;&pu1LVHA%OcGukM&%~HLQawB?-|4dq{s#c|>kJ*+H zad)rptgAJ%X~Z|YW2B}puwodVq20-SR=>`!20qx>*sg1@WMadax4q}o&NK84QT z$tvTQpHU47m*G@y_ZthBBD!BmMh6ydr&*Aj&DgZ?Rwm%z6DFy xpO~+koY6Ahy`?LnJr6^%+L~U>=W;VDBrsz2aYwC%cSj}<```4XE4y`Zc@H)=kD~wp 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])); }