首页 > 常见问题 | 艾为电子 > [FAQ0101435]多数字PA独享以及共享reset gpio兼容方案.

[FAQ0101435]多数字PA独享以及共享reset gpio兼容方案.

Audio 2025-04-15 阅读量: 58 点赞量: 5

在多数字PA的应用中,常规应用是每个PA有独立的reset gpio,但有时候资源有限,需要多个PA共用一个gpio,例如,4个PA使用同一个reset gpio或者是4个PA每2个共用一个reset gpio等情况,针对这种应用,需要对驱动做些修改,修改点如下:

1、dts里节点中的reset配置全部加上;注:相同reset引脚号的设备树节点必须相邻

2、驱动代码按如下修改;

1)probe函数中的aw883xx_gpio_request以及aw883xx_hw_reset去掉返回值的判断,如下图红框中的修改;

2)修改aw883xx_gpio_request函数,增加黑色底纹的几行代码,修改如下;

int reset_gpio_request = -1;

static int aw883xx_gpio_request(struct aw883xx *aw883xx)

{

int ret = -1;

if (gpio_is_valid(aw883xx->reset_gpio)) {

if(aw883xx->reset_gpio != reset_gpio_request){

ret = devm_gpio_request_one(aw883xx->dev, aw883xx->reset_gpio,

GPIOF_OUT_INIT_LOW, "aw883xx_rst");

if (ret) {

aw_dev_err(aw883xx->dev, "rst request failed");

return ret;

}

reset_gpio_request = aw883xx->reset_gpio;

}else{

aw883xx->reset_gpio =-1;

aw_dev_info(aw883xx->dev,"rst gpio already requested.");

}

}

if (gpio_is_valid(aw883xx->irq_gpio)) {

ret = devm_gpio_request_one(aw883xx->dev, aw883xx->irq_gpio,

GPIOF_DIR_IN, "aw883xx_int");

if (ret) {

aw_dev_err(aw883xx->dev, "int request failed");

return ret;

}

}

return 0;

}

返回FAQ列表