添加一些gpio_mtx注释
This commit is contained in:
@@ -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常为0,2常为1,3通过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 信号来自哪个gpio,val 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输出信号到gpio,gpio的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;
|
||||||
|
Reference in New Issue
Block a user