rk3288 gpio控制

来源:互联网 发布:云南大学 知乎 编辑:程序博客网 时间:2024/06/05 08:54

1. 先在dts

3g_reset_gpio = <&gpio5 GPIO_C3 GPIO_ACTIVE_HIGH>;
3g_pwr_gpio = <&gpio5 GPIO_C2 GPIO_ACTIVE_HIGH>;

2.在驱动代码里


//3G module open power and reset gpio

//power
gpio = of_get_named_gpio(np, "3g_pwr_gpio", 0);


if (!gpio_is_valid(gpio)) {
dev_err(&pdev->dev, "invalid power gpio%d\n", gpio);
} else {
err = devm_gpio_request(&pdev->dev, gpio, "3g_pwr_gpio");
if (err) {
dev_err(&pdev->dev,
"failed to request GPIO%d for power\n", gpio);
ret = err;
goto out;
}
gpio_direction_output(gpio, 1);
}
//reset
gpio = of_get_named_gpio(np, "3g_reset_gpio", 0);


if (!gpio_is_valid(gpio)) {
dev_err(&pdev->dev, "invalid power gpio%d\n", gpio);
} else {
err = devm_gpio_request(&pdev->dev, gpio, "3g_reset_gpio");
if (err) {
dev_err(&pdev->dev,
"failed to request GPIO%d for power\n", gpio);
ret = err;
goto out;
}
gpio_direction_output(gpio, 1);
}