本文转载自:http://blog.csdn.net/kris_fei/article/details/76919134

Platform: Rockchip 
OS: Android 6.0 
Kernel: 3.10.92

rk的pmu模块只提供了每次单个寄存器的读写,驱动提供了这个节点供使用:/sys/rk818/rk818_test 
举例:

  • 读取:

echo r 0x23 > /sys/rk818/rk818_test: 读取地址 0x23 的值,r 表示读;

  • 写入:

echo w 0x23 0x7f > /sys/rk818/rk818_test: 对地址 0x23 赋值为 0x7f, w 表示写。


代码实现部分: 
rk818.c

  1. static struct rk818_attribute rk818_attrs[] = {
  2. /* node_name permision show_func store_func */
  3. __ATTR(rk818_test, S_IRUGO | S_IWUSR, rk818_test_show, rk818_test_store),
  4. };
  • 1
  • 2
  • 3
  • 4
  1. static ssize_t rk818_test_store(struct kobject *kobj, struct kobj_attribute *attr,
  2. const char *buf, size_t n)
  3. {
  4. u32 getdata[8];
  5. u8 regAddr;
  6. u8 data;
  7. char cmd;
  8. const char *buftmp = buf;
  9. struct rk818 *rk818 = g_rk818;
  10. /**
  11. * W Addr(8Bit) regAddr(8Bit) data0(8Bit) data1(8Bit) data2(8Bit) data3(8Bit)
  12. * :data can be less than 4 byte
  13. * R regAddr(8Bit)
  14. * C gpio_name(poweron/powerhold/sleep/boot0/boot1) value(H/L)
  15. */
  16. sscanf(buftmp, "%c ", &cmd);
  17. printk("------zhangqing: get cmd = %c\n", cmd);
  18. switch (cmd) {
  19. case 'w':
  20. sscanf(buftmp, "%c %x %x ", &cmd, &getdata[0], &getdata[1]);
  21. regAddr = (u8)(getdata[0] & 0xff);
  22. data = (u8)(getdata[1] & 0xff);
  23. printk("get value = %x\n", data);
  24. rk818_i2c_write(rk818, regAddr, 1, data);
  25. rk818_i2c_read(rk818, regAddr, 1, &data);
  26. printk("%x %x\n", getdata[1], data);
  27. break;
  28. case 'r':
  29. sscanf(buftmp, "%c %x ", &cmd, &getdata[0]);
  30. printk("CMD : %c %x\n", cmd, getdata[0]);
  31. regAddr = (u8)(getdata[0] & 0xff);
  32. rk818_i2c_read(rk818, regAddr, 1, &data);
  33. printk("%x %x\n", getdata[0], data);
  34. break;
  35. default:
  36. printk("Unknown command\n");
  37. break;
  38. }
  39. return n;
  40. }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

如果要实现所有寄存器dump,可以添加一个选项,其他pmu模块方法一样。

[RK3288][Android6.0] 调试笔记 --- pmu(rk818)寄存器读写【转】的更多相关文章

  1. [RK3288][Android6.0] 调试笔记 --- Goodix GT9和GT9F区别【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/78341425 Platform: RK3288 OS: Android 6.0 Kernel ...

  2. [RK3288][Android6.0] 调试笔记 --- 普通串口的添加 【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/54574073   标签: rk3288 串口添加 2017-01-16 14:52 1079 ...

  3. [RK3288][Android6.0] 调试笔记 --- 替换系统签名【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/55100299 Platform: RK3288OS: Android 6.0Kernel: ...

  4. [RK3288][Android6.0] 调试笔记 --- eMMC分区号和名字的对应【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/77318410 Platform: Rockchip OS: Android 6.0 Kern ...

  5. [RK3288][Android6.0] 调试笔记 --- 软硬键盘同时使用【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/78748313 Platform: RK3288 OS: Android 6.0 Kernel ...

  6. [RK3288][Android6.0] 调试笔记 --- 通用GPIO驱动控制LED【转】

    本文转载自:http://m.blog.csdn.net/kris_fei/article/details/69553422 Platform: ROCKCHIPOS: Android 6.0Kern ...

  7. [RK3288][Android6.0] 调试笔记 --- 测试I2C设备正常传输方法【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/71515020 Platform: RockchipOS: Android 6.0Kernel ...

  8. [RK3288][Android6.0] 调试笔记 --- 如何确认声卡是否注册成功【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/78399875 Platform: RK3288 OS: Android 6.0 Kernel ...

  9. [RK3288][Android6.0] 调试笔记 --- user版本默认显示开发者选项【转】

    本文转载自:https://blog.csdn.net/kris_fei/article/details/70157137 Platform: ROCKCHIPOS: Android 6.0Kerne ...

随机推荐

  1. 【强连通分量缩点】poj 1236 Network of Schools

    poj.org/problem?id=1236 [题意] 给定一个有向图,求: (1)至少要选几个顶点,才能做到从这些顶点出发,可以到达全部顶点 (2)至少要加多少条边,才能使得从任何一个顶点出发,都 ...

  2. uva 10515 规律打表

    Problem G Power et al. Input: Standard Input Output: Standard Output Finding the exponent of any num ...

  3. 济南学习 Day 5 T3 pm

    科普一下: φ函数的值 通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数,x是不为0的整数.φ(1)= ...

  4. h5表单验证的css和js方法

    1.css3 提示只适用于高级浏览器: Chrome,Firefox,Safari,IE9+ valid.invalid.required的定义 代码如下: input:required, input ...

  5. hdu 4961 数论 o(nlogn)

    Boring Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Tot ...

  6. ftrace简介

    ftrace 的作用是帮助开发人员了解 Linux 内核的运行时行为,以便进行故障调试或性能分析. 最早 ftrace 是一个 function tracer,仅能够记录内核的函数调用流程.如今 ft ...

  7. webstorm(二):拼写warning

    逼死强迫症之对拼写进行检查,警告 typo:in word “msgfromfather”

  8. kafka exactly-once

    2018年,Apache Kafka以一种特殊的设计和方法实现了强语义的exactly-once和事务性. 这篇文章将讲解kafka中exactly-once和事务操作的原理,具体为 (1)exact ...

  9. Java截取视频首帧并旋转正向

    package test; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.Image; import j ...

  10. 前端进阶之路:初涉Less

    阅读目录 一.Less介绍 1.官方介绍 2.自己理解 3.Less.Sass.Stylus 二.Less使用入门 1.开发模式下使用Less 2.运行模式下使用Less 三.常见用法示例 1.从第一 ...