Skip to content

Commit 098e60a

Browse files
committed
GPIO HAL - gpio_set implementation
1 parent 2bfebbf commit 098e60a

File tree

2 files changed

+10
-13
lines changed

2 files changed

+10
-13
lines changed

libraries/mbed/targets/hal/TARGET_Freescale/KPSDK/drivers/gpio/src/fsl_gpio_driver.c

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,6 @@ void sdk_gpio_inout_pin_init(const gpio_input_output_pin_t *inoutPin)
164164
*END**************************************************************************/
165165
uint32_t sdk_gpio_get_pin_direction(uint32_t pinName)
166166
{
167-
// assert(pinName <= gpioPinCount);
168167
uint32_t gpioInstance = pinName >> GPIO_PORT_SHIFT;
169168
uint32_t pin = pinName & 0xFF;
170169

@@ -173,7 +172,6 @@ uint32_t sdk_gpio_get_pin_direction(uint32_t pinName)
173172

174173
void sdk_gpio_set_pin_direction(uint32_t pinName, gpio_pin_direction_t direction)
175174
{
176-
// assert(pinName <= gpioPinCount);
177175
uint32_t gpioInstance = pinName >> GPIO_PORT_SHIFT;
178176
uint32_t pin = pinName & 0xFF;
179177

@@ -188,7 +186,6 @@ void sdk_gpio_set_pin_direction(uint32_t pinName, gpio_pin_direction_t direction
188186
*END**************************************************************************/
189187
void sdk_gpio_write_pin_output(uint32_t pinName, uint32_t output)
190188
{
191-
// assert(pinName <= gpioPinCount);
192189
uint32_t gpioInstance = pinName >> GPIO_PORT_SHIFT;
193190
uint32_t pin = pinName & 0xFF;
194191

@@ -203,7 +200,6 @@ void sdk_gpio_write_pin_output(uint32_t pinName, uint32_t output)
203200
*END**************************************************************************/
204201
void sdk_gpio_set_pin_output(uint32_t pinName)
205202
{
206-
// assert(pinName <= gpioPinCount);
207203
uint32_t gpioInstance = pinName >> GPIO_PORT_SHIFT;
208204
uint32_t pin = pinName & 0xFF;
209205

@@ -218,7 +214,6 @@ void sdk_gpio_set_pin_output(uint32_t pinName)
218214
*END**************************************************************************/
219215
void sdk_gpio_clear_pin_output(uint32_t pinName)
220216
{
221-
// assert(pinName <= gpioPinCount);
222217
uint32_t gpioInstance = pinName >> GPIO_PORT_SHIFT;
223218
uint32_t pin = pinName & 0xFF;
224219

@@ -233,7 +228,6 @@ void sdk_gpio_clear_pin_output(uint32_t pinName)
233228
*END**************************************************************************/
234229
void sdk_gpio_toggle_pin_output(uint32_t pinName)
235230
{
236-
// assert(pinName <= gpioPinCount);
237231
uint32_t gpioInstance = pinName >> GPIO_PORT_SHIFT;
238232
uint32_t pin = pinName & 0xFF;
239233

@@ -248,7 +242,6 @@ void sdk_gpio_toggle_pin_output(uint32_t pinName)
248242
*END**************************************************************************/
249243
uint32_t sdk_gpio_read_pin_input(uint32_t pinName)
250244
{
251-
// assert(pinName <= gpioPinCount);
252245
uint32_t gpioInstance = pinName >> GPIO_PORT_SHIFT;
253246
uint32_t pin = pinName & 0xFF;
254247

@@ -264,7 +257,6 @@ uint32_t sdk_gpio_read_pin_input(uint32_t pinName)
264257
*END**************************************************************************/
265258
void sdk_gpio_configure_digital_filter(uint32_t pinName, bool isDigitalFilterEnabled)
266259
{
267-
// assert(pinName <= gpioPinCount);
268260
uint32_t gpioInstance = pinName >> GPIO_PORT_SHIFT;
269261
uint32_t pin = pinName & 0xFF;
270262

@@ -280,7 +272,6 @@ void sdk_gpio_configure_digital_filter(uint32_t pinName, bool isDigitalFilterEna
280272
*END**************************************************************************/
281273
void sdk_gpio_clear_pin_interrupt_flag(uint32_t pinName)
282274
{
283-
// assert(pinName <= gpioPinCount);
284275
uint32_t gpioInstance = pinName >> GPIO_PORT_SHIFT;
285276
uint32_t pin = pinName & 0xFF;
286277

libraries/mbed/targets/hal/TARGET_Freescale/TARGET_K64F/gpio_api.c

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,17 @@
1818
#include "fsl_gpio_driver.h"
1919

2020
uint32_t gpio_set(PinName pin) {
21-
return 1;
21+
uint32_t instance = pin >> GPIO_PORT_SHIFT;
22+
uint32_t pin_num = pin & 0xFF;
23+
24+
port_hal_mux_control(instance, pin_num, kPortMuxAsGpio);
25+
return 1 << pin_num;
2226
}
2327

2428
void gpio_init(gpio_t *obj, PinName pin, PinDirection direction) {
29+
if (pin == NC)
30+
return;
31+
2532
if (direction) {
2633
obj->pinName = pin;
2734
obj->out_config.outputLogic = 0;
@@ -44,7 +51,6 @@ void gpio_mode(gpio_t *obj, PinMode mode) {
4451
uint32_t instance = obj->pinName >> GPIO_PORT_SHIFT;
4552
uint32_t pin = obj->pinName & 0xFF;
4653

47-
/* TODO: in KPSDK driver should be set pull */
4854
switch (mode) {
4955
case PullNone:
5056
obj->in_config.isPullEnable = false;
@@ -54,13 +60,13 @@ void gpio_mode(gpio_t *obj, PinMode mode) {
5460
break;
5561
case PullDown:
5662
obj->in_config.isPullEnable = true;
57-
obj->in_config.pullSelect = kPortPullUp;
63+
obj->in_config.pullSelect = kPortPullDown;
5864
port_hal_configure_pull(instance, pin, 1);
5965
port_hal_pull_select(instance, pin, kPortPullDown);
6066
break;
6167
case PullUp:
6268
obj->in_config.isPullEnable = true;
63-
obj->in_config.pullSelect = kPortPullDown;
69+
obj->in_config.pullSelect = kPortPullUp;
6470
port_hal_configure_pull(instance, pin, 1);
6571
port_hal_pull_select(instance, pin, kPortPullUp);
6672
break;

0 commit comments

Comments
 (0)