From 609e3947f93b8066c86686457ab7fc77e346bce9 Mon Sep 17 00:00:00 2001 From: Rahix <rahix@rahix.de> Date: Thu, 3 Oct 2019 08:14:11 +0200 Subject: [PATCH] fix(portexpander): Fix only configuring with MXC_ASSERT enabled When MXC_ASSERT is disabled, the portexpander_config() call is not compiled into the bootloader which leads to the portexpander not being setup correctly and thus neither the screen turns on nor does the button to switch into MSC mode work correctly (bootloader always goes into MSC mode). Fix this by moving the portexpander_config() call outside the MXC_ASSERT and only keep the return value check inside. Additionally fix the pull-up/pull-down selection in portexpander_config() not being set correctly. Ref #171 Signed-off-by: Rahix <rahix@rahix.de> --- lib/card10/portexpander.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/card10/portexpander.c b/lib/card10/portexpander.c index 52eb8897..8d4c3891 100644 --- a/lib/card10/portexpander.c +++ b/lib/card10/portexpander.c @@ -102,9 +102,8 @@ int portexpander_init(void) // Enable outputs for the transistors, the LED and the LCD reset for (int i = 0; i < sizeof(pe_pin_config) / sizeof(pe_pin_config[0]); i++) { - MXC_ASSERT( - portexpander_config(&pe_pin_config[i]) == E_NO_ERROR - ); + ret = portexpander_config(&pe_pin_config[i]); + MXC_ASSERT(ret == E_NO_ERROR); } // Latch inputs so we can figure out whether an interrupt was caused by a rising or falling edge @@ -161,7 +160,7 @@ int portexpander_config(const portexpander_cfg_t *cfg) return E_BAD_PARAM; } - portexpander_write(PE_C_PULL_ENABLE, pull_selection_state); + portexpander_write(PE_C_PULL_SEL, pull_selection_state); portexpander_write(PE_C_PULL_ENABLE, pull_enable_state); return E_NO_ERROR; -- GitLab