Merge pull request #11765 from yarbcy/pr/dev-arm-issue-11643

Cypress: fix GPIO mode NONE
pull/11785/head
Martin Kojtal 2019-10-31 09:59:28 +01:00 committed by GitHub
commit 0744e672ed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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;