|
1 | 1 | /* mbed Microcontroller Library
|
2 |
| - * Copyright (c) 2018 Arm Limited |
| 2 | + * Copyright (c) 2017 Arm Limited |
3 | 3 | *
|
4 | 4 | * SPDX-License-Identifier: Apache-2.0
|
5 | 5 | *
|
|
23 | 23 | #include "platform/mbed_wait_api.h"
|
24 | 24 | #include "PinNames.h"
|
25 | 25 |
|
| 26 | +#define WAIT_AFTER_POWR_CHANGED (1000) // [msec.] |
| 27 | + |
26 | 28 | #if MODEM_ON_BOARD
|
27 | 29 |
|
28 | 30 | static void press_power_button(int time_ms)
|
29 | 31 | {
|
30 | 32 | gpio_t gpio;
|
31 | 33 |
|
32 | 34 | gpio_init_out_ex(&gpio, PWRKEY, 1);
|
33 |
| - gpio_write(&gpio, 1); |
34 | 35 | wait_ms(time_ms);
|
35 | 36 | gpio_write(&gpio, 0);
|
36 | 37 | }
|
37 | 38 |
|
38 | 39 | void onboard_modem_init()
|
39 | 40 | {
|
40 | 41 | gpio_t gpio;
|
41 |
| - // start with modem disabled |
| 42 | + |
| 43 | + // Power Supply |
| 44 | + gpio_init_out_ex(&gpio, M_POWR, 0); |
| 45 | + // Turn On/Off |
| 46 | + gpio_init_out_ex(&gpio, PWRKEY, 0); |
42 | 47 | gpio_init_out_ex(&gpio, RESET_MODULE, 0);
|
| 48 | + // Status Indication |
43 | 49 | gpio_init_in_ex(&gpio, MDMSTAT, PullUp);
|
44 |
| - gpio_init_out_ex(&gpio, MDMDTR, 0); |
45 |
| - gpio_init_out_ex(&gpio, M_POWR, 1); |
| 50 | + // Main UART Interface |
| 51 | + gpio_init_out_ex(&gpio, MDMDTR, 0); |
46 | 52 |
|
47 |
| -// gpio_write(&gpio, M_POWR, 1); |
48 |
| - wait_ms(500); |
| 53 | + wait_ms(WAIT_AFTER_POWR_CHANGED); |
49 | 54 | }
|
50 | 55 |
|
51 | 56 | void onboard_modem_deinit()
|
52 | 57 | {
|
53 |
| -// wio3g_mdm_powerOff(); |
| 58 | + onboard_modem_power_down(); |
54 | 59 | }
|
55 | 60 |
|
56 | 61 | void onboard_modem_power_up()
|
57 | 62 | {
|
58 |
| - /* keep the power line HIGH for 200 milisecond */ |
59 |
| - press_power_button(200); |
60 |
| - /* give modem a little time to respond */ |
61 |
| - wait_ms(100); |
| 63 | + gpio_t gpio; |
| 64 | + |
| 65 | + // Power supply ON |
| 66 | + gpio_init_out_ex(&gpio, M_POWR, 1); |
| 67 | + wait_ms(WAIT_AFTER_POWR_CHANGED); |
| 68 | + |
| 69 | + // Turn on |
| 70 | + wait_ms(100); |
| 71 | + press_power_button(200); |
62 | 72 | }
|
63 | 73 |
|
64 | 74 | void onboard_modem_power_down()
|
65 | 75 | {
|
66 |
| - /* keep the power line low for 1 second */ |
67 |
| -// press_power_button(1000); |
| 76 | + gpio_t gpio; |
68 | 77 |
|
69 |
| -// gpio_write(&mpowr, M_POWR, 0); |
| 78 | + // Power supply OFF |
| 79 | + gpio_init_out_ex(&gpio, M_POWR, 0); |
| 80 | + wait_ms(WAIT_AFTER_POWR_CHANGED); |
70 | 81 | }
|
71 | 82 | #endif //MODEM_ON_BOARD
|
| 83 | + |
72 | 84 | #endif //MBED_CONF_NSAPI_PRESENT
|
0 commit comments