添加一些gpio_mtx注释

This commit is contained in:
2025-04-12 17:17:49 +08:00
parent 2b2135eb98
commit fc6412adf0

View File

@@ -153,6 +153,9 @@ uint8_t gpio_pin_func_get(uint32_t gpio)
return 0; return 0;
} }
// 配置gpio输入的时候如果有gpio的func选通了这个外设则这个外设可以选择接收mtx的信号还是gpio的信号
// 指定外设输入连接的通路0通过矩阵连接1直连到gpio对于有func的那一路起作用
// offset要操作的寄存器偏移地址 val值
void IRAM_ATTR gpio_mtx_sig_in_set_core(uint32_t offset, uint32_t val) void IRAM_ATTR gpio_mtx_sig_in_set_core(uint32_t offset, uint32_t val)
{ {
uint32_t tmp; uint32_t tmp;
@@ -163,6 +166,7 @@ void IRAM_ATTR gpio_mtx_sig_in_set_core(uint32_t offset, uint32_t val)
GPIO_MTX_WRITE_REG(offset, tmp); GPIO_MTX_WRITE_REG(offset, tmp);
} }
// mtx sig信号到外设的输入源0通过mtx进来1常为02常为13通过mtx反向
void IRAM_ATTR gpio_mtx_sig_in_set_def(uint32_t offset, uint32_t val) void IRAM_ATTR gpio_mtx_sig_in_set_def(uint32_t offset, uint32_t val)
{ {
uint32_t tmp; uint32_t tmp;
@@ -171,6 +175,7 @@ void IRAM_ATTR gpio_mtx_sig_in_set_def(uint32_t offset, uint32_t val)
GPIO_MTX_WRITE_REG(offset, tmp); GPIO_MTX_WRITE_REG(offset, tmp);
} }
// mtx 信号来自哪个gpioval gpio序号
void IRAM_ATTR gpio_mtx_sig_in_set_gpio(uint32_t offset, uint32_t val) void IRAM_ATTR gpio_mtx_sig_in_set_gpio(uint32_t offset, uint32_t val)
{ {
uint32_t tmp; uint32_t tmp;
@@ -180,6 +185,7 @@ void IRAM_ATTR gpio_mtx_sig_in_set_gpio(uint32_t offset, uint32_t val)
GPIO_MTX_WRITE_REG(offset, tmp); GPIO_MTX_WRITE_REG(offset, tmp);
} }
// 找到指定信号连接的gpio序号
uint8_t IRAM_ATTR gpio_mtx_sig_in_get_gpio(uint8_t sig_id) uint8_t IRAM_ATTR gpio_mtx_sig_in_get_gpio(uint8_t sig_id)
{ {
uint32_t sig_addr; uint32_t sig_addr;
@@ -190,6 +196,8 @@ uint8_t IRAM_ATTR gpio_mtx_sig_in_get_gpio(uint8_t sig_id)
return (uint8_t)REG_FIELD_GET(SIG_IN_GPIO_SEL, rd_gpio); return (uint8_t)REG_FIELD_GET(SIG_IN_GPIO_SEL, rd_gpio);
} }
// 指定gpio输出到哪个mtx sig上为255时使用gpio软控
// offset 寄存器偏移地址, val mtx sig信号id
void IRAM_ATTR gpio_mtx_sig_out_set_sel(uint32_t offset, uint32_t val) void IRAM_ATTR gpio_mtx_sig_out_set_sel(uint32_t offset, uint32_t val)
{ {
uint32_t tmp; uint32_t tmp;
@@ -198,6 +206,7 @@ void IRAM_ATTR gpio_mtx_sig_out_set_sel(uint32_t offset, uint32_t val)
GPIO_MTX_WRITE_REG(offset, tmp); GPIO_MTX_WRITE_REG(offset, tmp);
} }
// 为mtx sig id绑定gpio输入是sig绑定gpio输出是gpio绑sig
void IRAM_ATTR gpio_mtx_sig_in(uint8_t id, uint8_t gpio, uint32_t mode) void IRAM_ATTR gpio_mtx_sig_in(uint8_t id, uint8_t gpio, uint32_t mode)
{ {
uint32_t offset; uint32_t offset;
@@ -226,6 +235,8 @@ void IRAM_ATTR gpio_mtx_sig_in_default(uint8_t id)
gpio_mtx_sig_in_set_def(offset, 2); gpio_mtx_sig_in_set_def(offset, 2);
} }
// 外设要通过mtx输出信号到gpiogpio的func必须设置为0并且id不为255
// 如果id为255则连接到gpio控制
void IRAM_ATTR gpio_mtx_sig_out(uint8_t id, uint8_t gpio) void IRAM_ATTR gpio_mtx_sig_out(uint8_t id, uint8_t gpio)
{ {
uint32_t offset; uint32_t offset;
@@ -257,7 +268,8 @@ void gpio_module_pin_select(gpio_sig_info_t *info)
} }
} }
void gpio_module_sig_select(gpio_sig_info_t *info, uint32_t mode) // 选择gpio到外设的信号通路mode为0时通过func连接mode为1时通过mtx连接
void gpio_module_sig_select(gpio_sig_info_t* info, uint32_t mode)
{ {
int i = 0; int i = 0;
uint8_t gpio = 0; uint8_t gpio = 0;