我现在研究spi驱动,在2.6.29内核里,有一个问题想问你,就是
/* setup any gpio we can */
if (!pdata->set_cs) {
if (pdata->pin_cs < 0) {
dev_err(&pdev->dev, "No chipselect pin\n");
goto err_register;
}
err = gpio_request(pdata->pin_cs, dev_name(&pdev->dev));
if (err) {
dev_err(&pdev->dev, "Failed to get gpio for cs\n");
goto err_register;
}
hw->set_cs = s3c24xx_spi_gpiocs;
gpio_direction_output(pdata->pin_cs, 1);
} else
hw->set_cs = pdata->set_cs;
上面代码是不是设置片选呢?为什么我设置的不对(我的不是三星的芯片),快崩溃了,望回复!!感激不尽
我板子上电时的错误:
<3>s3c2410-spi s3c2410-spi.0: Failed to get gpio for cs
s3c2410-spi s3c2410-spi.0: Failed to get gpio for cs
<4>s3c2410-spi: probe of s3c2410-spi.0 failed with error -38
s3c2410-spi: probe of s3c2410-spi.0 failed with error -38
为什么会失败呢???怎么解决??望指点。。。
如果我上面得if里的注释掉,会有部分乱码,但别的都对。也能注册。。好奇怪