Firefly开源社区

打印 上一主题 下一主题

GPIO在dts中的定义

98

积分

0

威望

0

贡献

技术小白

积分
98

GPIO在dts中的定义

发表于 2015-1-23 10:22:46      浏览:24175 | 回复:8        打印      只看该作者   [复制链接] 楼主
HI,各位大师们,比如说有下面的原理图:

比如说像图中的GPIO7_A3_D,我在dts中是不是该如下定义fpc,gpio_reset = <&gpio7 GPIO_A3 GPIO_ACTIVE_HIGH>;
我这样定义对吗
像图中的GPIO0_A7_U,我在dts中是这样定义的,这样对吗,fpc,gpio_reset = <&gpio7 GPIO_A3 GPIO_ACTIVE_HIGH>;

不知道这样定义对不对
fpc1020@00 {
         compatible = "fpc,fpc1020";
         reg = <0>;
         spi-max-frequency = <24000000>;
       //  spi-cpha;
       //  spi-cpol;
  fpc,gpio_irq = <&gpio0 GPIO_A7  GPIO_ACTIVE_LOW >;
  fpc,gpio_reset = <&gpio7 GPIO_A3 GPIO_ACTIVE_HIGH>;
  fpc,gpio_cs    = <>;
  //fpc,vddtx_mv =<1>;
  //fpc,txout_boost_enable = <1>;
         poll_mode = <0>;
         type = <0>;
  enable_dma = <0>;         
};
这是我在SPI中的定义,这里的reg=<0>,不知道有没有人知道是什么意思,这样定义对吗

回复

使用道具 举报

2918

积分

56

威望

46

贡献

高级创客

Rank: 6Rank: 6

积分
2918

优秀版主论坛元老

发表于 2015-1-23 14:33:19        只看该作者  沙发
GPIO是这样配置,但关键还是要看源码里面怎么处理fpc,gpio_reset,可以直接打印出来看看那他的值
回复

使用道具 举报

98

积分

0

威望

0

贡献

技术小白

积分
98
发表于 2015-1-23 15:26:14        只看该作者  板凳
我现在移植的是一个指纹模块的驱动,FPC1020,驱动里面也打印出来了值 fpc,gpio_irq = <&gpio0 GPIO_A7  GPIO_ACTIVE_LOW >;

关于GPIO IRQ的这个居然gpio_get_value失败啦,我应该传入的GPIO值没错啊,然后供应商的驱动应该也不会有问题啊,现在真不知道该如何处理啦,
在这里失败:
                error = gpio_get_value(fpc1020->irq_gpio) ? 0 : -EIO;

                if (!error) {
                        printk(KERN_INFO "%s OK !\n", __func__);
                        counter = 0;
                } else {
                        printk(KERN_INFO "%s timed out,retrying ...\n",
                                __func__);

                        udelay(1250);
                }
        }
        return error;
}
回复

使用道具 举报

2918

积分

56

威望

46

贡献

高级创客

Rank: 6Rank: 6

积分
2918

优秀版主论坛元老

发表于 2015-1-23 19:05:56        只看该作者  地板
可以打印一下这个值fpc1020->irq_gpio,并跟进gpio_get_value里面,看看具体报什么错误。
回复

使用道具 举报

98

积分

0

威望

0

贡献

技术小白

积分
98
发表于 2015-1-24 13:47:20        只看该作者  5#
HI,
zhansb,
我现在忽然发现了一个问题, 就是好像我无法控制到我的GPIO的电平,比如说像上图的GPIO7_A3_D,我是把它当作复位引脚来用的,今天我尝试着用gpio_direction_output去控制它的电压,发现他的电压根本无法让我受控啊,fpc1020@00 {
         compatible = "fpc,fpc1020";
         reg = <0>;
         spi-max-frequency = <24000000>;
       //  spi-cpha;
       //  spi-cpol;
  fpc,gpio_irq = <&gpio0 GPIO_A7  GPIO_ACTIVE_LOW >;
  fpc,gpio_reset = <&gpio7 GPIO_A3 GPIO_ACTIVE_HIGH>;
  fpc,gpio_cs    = <>;
  //fpc,vddtx_mv =<1>;
  //fpc,txout_boost_enable = <1>;
         poll_mode = <0>;
         type = <0>;
  enable_dma = <0>;         
};
fpc,gpio_reset = <&gpio7 GPIO_A3 GPIO_ACTIVE_HIGH>;,这个是我对复位IO的定义


我的程序代码片段是这样的,static int __devinit fpc1020_reset_init(fpc1020_data_t *fpc1020,
                                        struct fpc1020_platform_data *pdata)
{
        int error = 0;

        if (gpio_is_valid(pdata->reset_gpio)) {

                dev_info(&fpc1020->spi->dev,
                        "Assign HW reset -> GPIO%d\n", pdata->reset_gpio);

                fpc1020->soft_reset_enabled = false;

                error = gpio_request(pdata->reset_gpio, "fpc1020_reset");

                if (error) {
                        dev_err(&fpc1020->spi->dev,
                                "gpio_request (reset) failed.\n");
                        return error;
                }

                fpc1020->reset_gpio = pdata->reset_gpio;

                printk("has already begin to input a high voltage================================================\n");
                while(1){
                //error = gpio_direction_output(fpc1020->reset_gpio, 1);
                error = gpio_direction_output(fpc1020->reset_gpio, 1);
               

                }
我现在是不断的输出高电平,但是发现根本就没有高电平出来,


fpc1020 spi0.0: Assign HW reset -> GPIO143

就这个复位引脚,GPIO分配为143,这对吗,

我现在实在不知道什么情况呢,我居然去输出高电平它也不受控,到底是我GPIO引脚定义有问题还是怎么回事,你能不能给一点好的建议等


回复

使用道具 举报

2918

积分

56

威望

46

贡献

高级创客

Rank: 6Rank: 6

积分
2918

优秀版主论坛元老

发表于 2015-1-27 11:51:14        只看该作者  6#
用这个接口:rst_pin = of_get_named_gpio_flags(np, "reset-gpio", 0, &rst_flags);

143是错的
回复

使用道具 举报

98

积分

0

威望

0

贡献

技术小白

积分
98
发表于 2015-1-27 14:00:28        只看该作者  7#
好的,明白
回复

使用道具 举报

2918

积分

56

威望

46

贡献

高级创客

Rank: 6Rank: 6

积分
2918

优秀版主论坛元老

发表于 2015-1-27 14:44:40        只看该作者  8#
想了解更多,可以查看官网wiki:http://wiki.t-firefly.com/index.php/Firefly-RK3288/GPIO
已有 1评分威望 +30 灯泡 +33 贡献 +36 收起 理由
dragon.wei + 30 + 33 + 36

查看全部评分

回复

使用道具 举报

132

积分

0

威望

0

贡献

技术小白

积分
132
发表于 2016-8-16 16:14:26        只看该作者  9#
厉害,多学习
回复

使用道具 举报

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

本版积分规则

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