1.使用老方法(android L)配置中断,调用request_irq函数时出错,错误代码 -22
 Dear Customer:
您好!
如电话沟通,贵司可以在发过来的code基础上做下面的修改再试试:
(1)修改aw8155.c

static int aw8155_drv_probe(struct platform_device *dev)
{
//...

// ------------------ here add your code to init device tree
-------------------- start
aw8155_pinctrl1 =
devm_pinctrl_get(&dev->dev);
if (IS_ERR(aw8155_pinctrl1)) {

AW8155_LOGE("devm_pinctrl_get error\n");
}
else{ //add

pins_default = pinctrl_lookup_state(aw8155_pinctrl1, "default");
if
(IS_ERR(pins_default)) {
AW8155_LOGE("pinctrl_lookup_state default
error\n");
}

pa_pins_int = pinctrl_lookup_state(aw8155_pinctrl1,
"pa_ctl_output0");
if (IS_ERR(pa_pins_int)) {

AW8155_LOGE("pinctrl_lookup_state pa_ctl_output0 error\n");
}
else
//add
pinctrl_select_state(aw8155_pinctrl1, pa_pins_int);
}
//
------------------ here add your code to init device tree ----------------------
end
//...

#if 0 //add
static struct platform_device
aw8155_platform_device = {
.name = "aw8155",
.id = -1,
.dev = {

.release = aw8155_dev_release,
}
};
#endif
static int __init
aw8155_init(void)
{
int ret = 0;
AW8155_LOGD("+%s\n", __func__);

#if 0 //add
ret = platform_device_register
(&aw8155_platform_device);
if (ret) {

AW8155_LOGE("platform_device_register fail\n");
return ret;
}

#endif

(2)修改fc8180_spi.c
static int dtveint_drv_probe(struct
platform_device *dev)
{
//...
eint_pinctrl =
devm_pinctrl_get(&dev->dev);
if (IS_ERR(eint_pinctrl)) {

printk(KERN_INFO "eintDebug devm_pinctrl_get error\n");
}
else{
//add
pins_default = pinctrl_lookup_state(eint_pinctrl, "default");
if
(IS_ERR(pins_default)) {
printk(KERN_INFO "eintDebug pinctrl_lookup_state
default error\n");
}

eint_pins = pinctrl_lookup_state(eint_pinctrl,
"eint_cfg");
if (IS_ERR(eint_pins)) {
printk(KERN_INFO "eintDebug
pinctrl_lookup_state pa_ctl_output0 error\n");
}
else //add

pinctrl_select_state(eint_pinctrl, eint_pins);
}
//...

#if 0
//add
static struct platform_device dtveint_platform_device = {
.name =
"dtveint",
.id = -1,
.dev = {
.release = dtveint_dev_release,
}

};
#endif
static int dtveint_init(void)
{
int ret = 0;

printk(KERN_INFO "eintDebug +%s\n", __func__);
#if 0 //add
ret =
platform_device_register (&dtveint_platform_device);
if (ret) {

printk("eintDebug platform_device_register fail\n");
return ret;
}

#endif
//...
谢谢!

2.使用spi_device驱动调用devm_pinctrl_get(&spi->dev),出现错误,反复重启,错误
”log见反复重启.log“

 
Dear Customer:
您好!
您这个cust_eint.dtsi文件是通过window下运行dct
tool生成的吧,这个只是做个参考。我们真正使用的是编译生成的cust.dtsi。所以您要check的话,可以check文件cust.dtsi。或者在linux下运行
dct生成相应的文件。

example:
(1)在window下运行dct
tool生成的cust_eint.dtsi文件中的accdet中断为:
ACCDET@6 {
compatible = "mediatek,
ACCDET-eint";
interrupt-parent = <&eintc>;
interrupts = <6
8>;
debounce = <6 256000>;
};
(2)在linux下运行dct
生成的cust_eint_dtsi文件会在编译生成cust.dtsi文件中的accdet中断为:
&accdet {

interrupt-parent = <&eintc>;
interrupts = <6
IRQ_TYPE_LEVEL_LOW>;
debounce = <6 256000>;
status = "okay";

};

谢谢!

 
3.能否提供一个spi驱动设备树配置的样板,可能过后需要在spi驱动的probe中进行中断和gpio的配置?
 
Dear Customer:
您好!
举例,在SPI0 bus上挂device
(kernel-3.18\arch\arm64\boot\dts\xxxx.dts)

&spi0 {

#address-cells = <1>;
#size-cells = <0>;

label:Your
device name@0 {
compatible = "your compatible name";
reg = <0>;
=> 表示SPI0上的第一个device
spi-max-frequency = <xxxx>; =>
如有需要,可自行添加SPI相关的info,这里以max freq为例
/* your device info ….*/
};
};

 
 
 

最新文章

  1. A星寻路算法介绍
  2. Unity Shader入门
  3. GIT 配置管理
  4. win7下安装mysql5.7[zip包]
  5. WebBrowser内核指定
  6. web桌面程序之图标拖动排序的分析
  7. django admin中保存添加的数据提示need string or buffer, int found
  8. ACM/ICPC 之 BFS(离线)+康拓展开 (HDU1430-魔板)
  9. SarePoint Powershell Add user to Group
  10. Java 之 I/O 系列 02 ——序列化(一)
  11. mac中用命令行运行mysql
  12. POJ 3419 Difference Is Beautiful(RMQ变形)
  13. css3百叶窗轮播图效果
  14. 【POJ1417】【带标记并查集+DP】True Liars
  15. IIS MIME的 映射 网站有些类型的文件不能通过网页访问
  16. Caliburn.Micro - 框架搭建
  17. 使用myeclipse出现中文乱码的情况以及解决办法
  18. [济南集训 2017] 求gcd之和
  19. 如何使用EasyUI显示表格界面
  20. day08读取文件

热门文章

  1. Normal equations 正规方程组
  2. 简述SVN服务器配置和客户端操作
  3. cron - 定期执行指定命令的守护程序 (Vixie Cron)
  4. bdflush - 将dirty缓存写回到磁盘的核心守护进程
  5. CE工具里自带的学习工具--第六关
  6. 【leetcode-03】给定一个字符串,请你找出其中不含有重复字符的最长子串的长度
  7. pycharm激活2018
  8. 第2节 mapreduce深入学习:2、3
  9. viewstate 与 session 区别
  10. 如何判断页面是在移动端还是PC端打开的呢