Firefly开源社区

打印 上一主题 下一主题

如何修改代码,实现GPIO引脚的复用功能

16

积分

0

威望

0

贡献

游客

积分
16
发表于 2016-9-19 19:53:31      楼主
rockchip,pull = <VALUE_PULL_DISABLE>;rockchip,drive = <VALUE_DRV_DEFAULT>;这两个属性代表什么意思?
回复

使用道具 举报

16

积分

0

威望

0

贡献

游客

积分
16
发表于 2016-9-29 09:38:54      沙发
static int rockchip_i2c_probe(struct platform_device *pdev){        struct rockchip_i2c *i2c = NULL;        struct resource *res;        struct device_node *np = pdev->dev.of_node;        int ret;// ...                i2c->sda_gpio = of_get_gpio(np, 0);                if (!gpio_is_valid(i2c->sda_gpio)) {                        dev_err(&pdev->dev, "sda gpio is invalid\n");                        return -EINVAL;                }                ret = devm_gpio_request(&pdev->dev, i2c->sda_gpio, dev_name(&i2c->adap.dev));                if (ret) {                        dev_err(&pdev->dev, "failed to request sda gpio\n");                        return ret;                }                i2c->scl_gpio = of_get_gpio(np, 1);                if (!gpio_is_valid(i2c->scl_gpio)) {                        dev_err(&pdev->dev, "scl gpio is invalid\n");                        return -EINVAL;                }                ret = devm_gpio_request(&pdev->dev, i2c->scl_gpio, dev_name(&i2c->adap.dev));                if (ret) {                        dev_err(&pdev->dev, "failed to request scl gpio\n");                        return ret;                }                i2c->gpio_state = pinctrl_lookup_state(i2c->dev->pins->p, "gpio");                if (IS_ERR(i2c->gpio_state)) {                        dev_err(&pdev->dev, "no gpio pinctrl state\n");                        return PTR_ERR(i2c->gpio_state);                }                pinctrl_select_state(i2c->dev->pins->p, i2c->gpio_state);                gpio_direction_input(i2c->sda_gpio);                gpio_direction_input(i2c->scl_gpio);                pinctrl_select_state(i2c->dev->pins->p, i2c->dev->pins->default_state);// ...}
这个函数中为什么先去申请gpio,然后再设置pin脚为gpio功能呢?我理解应该先去设置pin脚为gpio后,才能去申请gpio然后对gpio进行操作。
那请问下,如何才能把引脚复用改成i2c呢?


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表