Skip to content

Commit 395b41d

Browse files
authored
GPIO PinMode Fixed (ARMmbed#30)
* GPIO port * fixed hw_types * delete TODO * remove ARCM_BASE * fixed naming issue * possible fixed for LED3 * working GPIO * GPIO is working * add function for gpio_is_connected * fixed PinMode bug
1 parent 70a3612 commit 395b41d

File tree

1 file changed

+9
-28
lines changed
  • targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF

1 file changed

+9
-28
lines changed

targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/gpio_api.c

Lines changed: 9 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -35,27 +35,16 @@ static const unsigned long g_ulPinToGPIOPinBit[64] =
3535
};
3636

3737
/* Table of GPIO input types */
38-
const uint16_t inPinTypes [] = {
38+
const uint16_t PinTypes [] = {
3939
PIN_TYPE_STD, /* GPIO_CFG_IN_NOPULL */
40-
PIN_TYPE_STD_PD, /* GPIO_CFG_IN_PD */
41-
PIN_TYPE_STD_PU /* GPIO_CFG_IN_PU */
42-
40+
PIN_TYPE_STD_PU, /* GPIO_CFG_IN_PU */
41+
PIN_TYPE_STD_PD, /* GPIO_CFG_IN_PD */
42+
PIN_TYPE_OD, /* GPIO_CFG_OUT_OD_NOPULL */
43+
PIN_TYPE_OD_PU, /* GPIO_CFG_OUT_OD_PU */
44+
PIN_TYPE_OD_PD, /* GPIO_CFG_OUT_OD_PD */
45+
PIN_TYPE_ANALOG
4346
};
4447

45-
/* Table of GPIO output types */
46-
const uint16_t outPinTypes [] = {
47-
PIN_TYPE_STD, /* GPIO_CFG_OUT_STD */
48-
PIN_TYPE_OD_PD, /* GPIO_CFG_OUT_OD_PD */
49-
PIN_TYPE_OD_PU, /* GPIO_CFG_OUT_OD_PU */
50-
PIN_TYPE_OD /* GPIO_CFG_OUT_OD_NOPULL */
51-
};
52-
53-
/* Table of GPIO drive strengths */
54-
const uint16_t outPinStrengths [] = {
55-
PIN_STRENGTH_2MA, /* GPIO_CFG_OUT_STR_LOW */
56-
PIN_STRENGTH_4MA, /* GPIO_CFG_OUT_STR_MED */
57-
PIN_STRENGTH_6MA /* GPIO_CFG_OUT_STR_HIGH */
58-
};
5948

6049
static const PinMap PinMap_GPIO[] = {
6150
{PIN_50, CC3220SF_GPIOA0_BASE, 0}, //GPIO_00 (PM/Dig Mux)
@@ -149,16 +138,8 @@ void gpio_mode(gpio_t *obj, PinMode mode)
149138
{
150139
obj->mode = mode;
151140

152-
153-
if(obj->dir == PIN_INPUT){ //setting the correct input pin mode from STD, PULL_UP, or PULL_DOWN
154-
PinModeSet(obj->pin, inPinTypes[mode]);
155-
pin_mode(obj->pin, mode);
156-
}
157-
else if(obj->dir == PIN_OUTPUT){ //setting the correct output pin mode from STD, open-drain PULL_UP, or open drain PULL_DOWN.
158-
PinModeSet(obj->pin, outPinTypes[mode]);
159-
pin_mode(obj->pin, mode);
160-
}
161-
141+
PinModeSet(obj->pin, PinTypes[mode]);
142+
pin_mode(obj->pin, mode);
162143
}
163144

164145
void gpio_dir(gpio_t *obj, PinDirection direction)

0 commit comments

Comments
 (0)