Cypress: fix gpio mode none

pull/11765/head
yarb 2019-10-24 13:52:41 +03:00
parent 87b150a1fe
commit 50b0847003
3 changed files with 12 additions and 1 deletions

View File

@ -23,7 +23,7 @@
#include "cybsp_types.h"
// Pin Modes
#define PullNone CYHAL_GPIO_DRIVE_STRONG
#define PullNone CYHAL_GPIO_DRIVE_PULL_NONE
#define PullDefault CYHAL_GPIO_DRIVE_NONE
#define PullDown CYHAL_GPIO_DRIVE_PULLDOWN
#define PullUp CYHAL_GPIO_DRIVE_PULLUP

View File

@ -79,6 +79,7 @@ typedef enum {
CYHAL_GPIO_DRIVE_OPENDRAINDRIVESHIGH, /**< Open-drain, Drives High */
CYHAL_GPIO_DRIVE_STRONG, /**< Strong output */
CYHAL_GPIO_DRIVE_PULLUPDOWN, /**< Pull-up and pull-down resistors */
CYHAL_GPIO_DRIVE_PULL_NONE, /**< No Pull-up or pull-down resistors */
} cyhal_gpio_drive_mode_t;
/** GPIO callback function type */

View File

@ -105,6 +105,16 @@ static uint32_t cyhal_gpio_convert_drive_mode(cyhal_gpio_drive_mode_t drive_mode
case CYHAL_GPIO_DRIVE_PULLUPDOWN:
drvMode = CY_GPIO_DM_PULLUP_DOWN;
break;
case CYHAL_GPIO_DRIVE_PULL_NONE:
if (direction == CYHAL_GPIO_DIR_OUTPUT || direction == CYHAL_GPIO_DIR_BIDIRECTIONAL)
{
drvMode = CY_GPIO_DM_STRONG;
}
else
{
drvMode = CY_GPIO_DM_HIGHZ;
}
break;
default:
CY_ASSERT(false);
drvMode = CY_GPIO_DM_HIGHZ;