[RK3288][Android6.0] 調試筆記 --- pmu(rk818)寄存器讀寫【轉】

來源:互聯網
上載者:User

標籤:ret   blank   power   java   uft   attr   代碼實現   javadoc   attrs   

本文轉載自: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

static struct rk818_attribute rk818_attrs[] = {    /*     node_name    permision       show_func   store_func */    __ATTR(rk818_test,  S_IRUGO | S_IWUSR,  rk818_test_show,    rk818_test_store),};
  • 1
  • 2
  • 3
  • 4
static ssize_t rk818_test_store(struct kobject *kobj, struct kobj_attribute *attr,                                const char *buf, size_t n){    u32 getdata[8];    u8 regAddr;    u8 data;    char cmd;    const char *buftmp = buf;    struct rk818 *rk818 = g_rk818;    /**     * W Addr(8Bit) regAddr(8Bit) data0(8Bit) data1(8Bit) data2(8Bit) data3(8Bit)     *      :data can be less than 4 byte     * R regAddr(8Bit)     * C gpio_name(poweron/powerhold/sleep/boot0/boot1) value(H/L)     */    sscanf(buftmp, "%c ", &cmd);    printk("------zhangqing: get cmd = %c\n", cmd);    switch (cmd) {    case ‘w‘:        sscanf(buftmp, "%c %x %x ", &cmd, &getdata[0], &getdata[1]);        regAddr = (u8)(getdata[0] & 0xff);        data = (u8)(getdata[1] & 0xff);        printk("get value = %x\n", data);        rk818_i2c_write(rk818, regAddr, 1, data);        rk818_i2c_read(rk818, regAddr, 1, &data);        printk("%x   %x\n", getdata[1], data);        break;    case ‘r‘:        sscanf(buftmp, "%c %x ", &cmd, &getdata[0]);        printk("CMD : %c %x\n", cmd, getdata[0]);        regAddr = (u8)(getdata[0] & 0xff);        rk818_i2c_read(rk818, regAddr, 1, &data);        printk("%x %x\n", getdata[0], data);        break;    default:        printk("Unknown command\n");        break;    }    return n;}
  • 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)寄存器讀寫【轉】

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.