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怎么得到对应的地址呢?

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

用于配置WIFI IO电压。

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的电压?

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

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

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

哦,明白了,一时脑抽,以为0x1的二进制是1111