Files
chrg/apps/chrg/applications/bsp/chrg_gpio.c
T
2025-10-25 23:44:23 +08:00

61 lines
2.2 KiB
C

#include <rtthread.h>
#include "chrg_gpio.h"
struct chrg_io_t chrgios[TOTAL_IOS] = {
[IDX_GPO_LED1] = {GPO_PIN_LED1, PIN_MODE_OUTPUT, PIN_HIGH},
[IDX_GPO_LED2] = {GPO_PIN_LED2, PIN_MODE_OUTPUT, PIN_HIGH},
[IDX_GPO_LED3] = {GPO_PIN_LED3, PIN_MODE_OUTPUT, PIN_HIGH},
[IDX_GPO_UART_SW1] = {GPO_PIN_UART_SW1, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_UART_SW2] = {GPO_PIN_UART_SW2, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_UART_SW3] = {GPO_PIN_UART_SW3, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_UART_SW4] = {GPO_PIN_UART_SW4, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_CH1_P0] = {GPO_PIN_CH1_P0, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_CH1_P1] = {GPO_PIN_CH1_P1, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_CH1_P2] = {GPO_PIN_CH1_P2, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_CH2_P0] = {GPO_PIN_CH2_P0, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_CH2_P1] = {GPO_PIN_CH2_P1, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_CH2_P2] = {GPO_PIN_CH2_P2, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_CH3_P0] = {GPO_PIN_CH3_P0, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_CH3_P1] = {GPO_PIN_CH3_P1, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_CH3_P2] = {GPO_PIN_CH3_P2, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_CH4_P0] = {GPO_PIN_CH4_P0, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_CH4_P1] = {GPO_PIN_CH4_P1, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_CH4_P2] = {GPO_PIN_CH4_P2, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_NOR_SW_A] = {GPO_PIN_NOR_SW_A, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_NOR_SW_B] = {GPO_PIN_NOR_SW_B, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_SOU_SW_LV1_A] = {GPO_PIN_SOU_SW_LV1_A, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_SOU_SW_LV1_B] = {GPO_PIN_SOU_SW_LV1_B, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_SOU_SW_LV2_A1] = {GPO_PIN_SOU_SW_LV2_A1, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_SOU_SW_LV2_B1] = {GPO_PIN_SOU_SW_LV2_B1, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_SOU_SW_LV2_A2] = {GPO_PIN_SOU_SW_LV2_A2, PIN_MODE_OUTPUT, PIN_LOW},
[IDX_GPO_SOU_SW_LV2_B2] = {GPO_PIN_SOU_SW_LV2_B2, PIN_MODE_OUTPUT, PIN_LOW}
};
static int chrg_gpios_init (void)
{
int i = 0;
struct chrg_io_t *pIO = RT_NULL;
for (i = 0; i < TOTAL_IOS; i++) {
pIO = &chrgios[i];
rt_pin_mode(pIO->base, pIO->mode);
if (PIN_MODE_OUTPUT == pIO->mode) {
rt_pin_write(pIO->base, pIO->value);
} else {
continue;
}
}
return 0;
}
INIT_ENV_EXPORT(chrg_gpios_init);