展讯平台gpio 兼容调试方法------sc8830
来源:互联网 发布:淘宝网实拍保护入口 编辑:程序博客网 时间:2024/05/17 01:38
在项目过程中经常需要通过判别gpio 的状态来对某些硬件实现兼容,如通过判别gpio口的状态来实现不同射频nv参数的下载,如采用gpio脚的拉高和拉低来实现屏的兼容!
以GPIO216为例,设置gpio口的状态
查找SC8830的spec
1,设置引脚为gpio模式
IISD0管脚复用,mode3为gpio的状态
设置复用方式为gpio模式也就是mode3,参考spec
设置[5:4]位为0x11,这样就设置了管脚为gpio状态
2,配置gpio模式
1,设置gpio为输入模式
2,打开gpio的msk标志
3,读取gpio的状态
介绍几种调试方法
在写入代码之前,通过adb 写入寄存器数据,读取状态是否正确,然后在进行下一步动作
adb shell
root@android:/ # lookat 0x402a041c //获取引脚状态,[5:4]=0X11,说明已经是gpio状态,[7:6]=0X10,说明gpio为弱上拉状态
0x000021b8
root@android:/ # lookat 0x40280684 //MSK的值为11,说明216管脚的值是可读的
0x00000300
root@android:/ # lookat 0x40280688 //dir方向为0,说明设置为输入状态
0x00000000
root@android:/ # lookat 0x40280680 //读取gpio的值,此时的值为1,硬件上的状态为解高,vdd1.8v
0x00000100
root@android:/ # lookat -s 0x21780x402a041c // 设置gpio的状态为弱下拉
root@android:/ # lookat 0x40280680 //在读取gpio的状态为1,说明外部已经生效,可以读成功
0x00000100
这是通过寄存器来查看gpio的状态,另外一种可以通过命令直接查看gpio的状态
root@android:/ # cd d
root@android:/d # cat gpio
GPIOs 0-255, sprd-d-gpio:
gpio-71 (sdio0_detect ) in hi
gpio-72 (USB OTG CABLE ) in hi
gpio-81 (ts_rst_pin ) out hi
gpio-188 (sub camera ) in hi
gpio-216 (gpio_lcd_diff ) in hi //此gpio即为我们配置的gpio的,需要在kernel中加入代码
gpio-217 (tmd2771_pls irq ) in lo
gpio-230 (wifi_pwd ) out lo
gpio-231 (bt_power ) out hi
gpio-232 (bt_host_wake ) in hi
gpio-233 (bt_reset ) out hi
gpio-234 (oob_irq ) in lo
gpio-235 (bt_ext_wake ) out hi
在代码中添加读取gpio的方法
如需在uboot中获取gpio的状态,可参考如下设置,此为gpio86
*(volatile u32 *) (0x8b000008) |=((1<<5)|(1<<13));
*(volatile u32 *) (0x8c000364) &= 0x0;
*(volatile u32 *) (0x8c000364) |=((3<<4)|(1<<7));
*(volatile u32 *) (0x8a000204) |=1<<6;
gpio86_value=*(volatile u32 *)(0x8a000200);
在kernel中添加gpio,可参考如下
ret = gpio_request(GPIO_LCD_DIFF,"gpio_lcd_diff");
if (ret < 0) {
printk("failed to requestGPIO_%d(gpio_lcd-diff)\n", GPIO_LCD_DIFF);
}
gpio_direction_input(GPIO_LCD_DIFF);
LCM_SLEEP(150);
ret = gpio_get_value(GPIO_LCD_DIFF);
printk(" GPIO_%d(gpio_lcd_diff) =%d\n", GPIO_LCD_DIFF,ret)
- 展讯平台gpio 兼容调试方法------sc8830
- x86平台GPIO调试注意事项
- 利用用平台GPIO LED调试
- MT6735平台GPIO中断调试记录
- imx6q平台的gpio配置方法
- imx6q平台的gpio配置方法
- imx6q平台的gpio配置方法
- Linux下的gpio调试方法
- 高通平台中gpio简单操作和调试
- 高通平台中gpio简单操作和调试
- 高通平台中gpio简单操作和调试
- imx6q平台将gpio口设置成高阻的方法
- [GPIO]MT2601平台L1.MP9版本DWS配置方法
- 展讯平台如何使用adc来兼容多LCD
- 平台移植 GPIO
- 平台移植 GPIO CONFIG
- MTK平台GPIO模式
- DM8168硬件调试-GPIO
- C++其他几个常见操作程序
- USB Power Delivery快速充电通信原理
- Swift中文教程(一)基础数据类型
- 宏的使用积累
- wpa_supplicant与kernel的接口
- 展讯平台gpio 兼容调试方法------sc8830
- 四色原型图进行业务建模的思考
- Swift中文教程(二)基本运算符
- Ubuntu14.04 安装CodeBlocks
- Swift中文教程(三) 字符串和字符
- leedcode做题总结,题目Two Sum2011-03-13
- CM9源码下载和编译
- Swift中文教程(四) 集合类型
- TortoiseSVN无法查看日志