移植linux-2.6.38出现 error: implicit declaration of function ‘irq_to_gpio’

我在移植linux-2.6.38出现以下问题:

drivers/input/touchscreen/eeti_ts.c: In function 'eeti_ts_irq_active':
drivers/input/touchscreen/eeti_ts.c:65:2: error: implicit declaration of function 'irq_to_gpio'
make[3]: *** [drivers/input/touchscreen/eeti_ts.o] Error 1
make[2]: *** [drivers/input/touchscreen] Error 2
make[1]: *** [drivers/input] Error 2
make: *** [drivers] Error 2

以下为解决问题的方法:

更改的地方总共包括三个文件
1.arch/arm/mach-pxa/raumfeld.c
 
2.drivers/input/touchscreen/eeti_ts.c
 
3.include/Linux/input/eeti_ts.h
 
1.raumfeld.c
static struct eeti_ts_platform_data eeti_ts_pdata = {
    .irq_active_high = 1,
    .gpio = GPIO_TOUCH_IRQ,//添加
};

 

2./drivers/input/touchscreen/eeti_ts.c
struct eeti_ts_priv {
    struct input_dev *input;
    struct work_struct work;
    struct mutex mutex;
    int irq, irq_active_high;//删除
    int irq, gpio, irq_active_high;//添加
};

static inline int eeti_ts_irq_active(struct eeti_ts_priv *priv)
{
    return gpio_get_value(irq_to_gpio(priv->irq)) == priv->irq_active_high;//删除
    return gpio_get_value(priv->gpio) == priv->irq_active_high;//添加
}

static int __devinit eeti_ts_probe(struct i2c_client *client,
pdata = client->dev.platform_data;

将下面两句
==========================================
if (pdata)
    priv->irq_active_high = pdata->irq_active_high;
============================================


替换为
==========================================
if (pdata) {
    priv->gpio = pdata->gpio;
    priv->irq_active_high = pdata->irq_active_high;
}
===============================================

3、/include/linux/input/eeti_ts.h

struct eeti_ts_platform_data {
    unsigned int irq_active_high;
    unsigned int gpio;//添加
};
 

OK,修改之后再编译,通过了。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值