pqy 发表于 2015-10-29 10:40:24

rockchip_wifi_voltage_select()函数是做什么的?

    voltage = mrfkill->pdata->sdio_vol;
    if (voltage > 2700 && voltage < 3500) {
      writel_relaxed(0x00100000, RK_GRF_VIRT+0x380); //3.3
      LOG("%s: wifi & sdio reference voltage: 3.3V\n", __func__);
    } else if (voltage> 1500 && voltage < 1950) {
      writel_relaxed(0x00100010, RK_GRF_VIRT+0x380); //1.8
      LOG("%s: wifi & sdio reference voltage: 1.8V\n", __func__);
    } else {
      LOG("%s: unsupport wifi & sdio reference voltage!\n", __func__);
      return -1;
    }RK_GRF_VIRT+0x380代表的是什么?4.x内核并没有RK_GRF_VIRT这个宏定义,如果直接采用3.10的定义,内核调用这句之后就僵死了,说明这个地址不同的内核是不一样的。4.x怎么得到对应的地址呢?

zhansb 发表于 2015-10-30 10:40:21

RK_GRF_VIRT+0x380代表的是GRF_IO_VSEL
Address: Operational Base + offset (0x0380)   
IO voltage select

用于配置WIFI IO电压。

pqy 发表于 2015-11-5 16:43:00

zhansb 发表于 2015-10-30 10:40
RK_GRF_VIRT+0x380代表的是GRF_IO_VSEL
Address: Operational Base + offset (0x0380)   
IO voltage se ...

写入0x00100010是不是也同时设置了bb,audio,sdcard的电压?

zhansb 发表于 2015-11-5 16:47:21

pqy 发表于 2015-11-5 16:43
写入0x00100010是不是也同时设置了bb,audio,sdcard的电压?

使能wifi io电压为1.8v的意思,可以看看论坛上的手册,里面有详细说明。

pqy 发表于 2015-11-5 19:28:47

zhansb 发表于 2015-11-5 16:47
使能wifi io电压为1.8v的意思,可以看看论坛上的手册,里面有详细说明。

哦,明白了,一时脑抽,以为0x1的二进制是1111
页: [1]
查看完整版本: rockchip_wifi_voltage_select()函数是做什么的?