Placa RK3288 customizada com AP6212A - pendura do kernel do driver BCMDHD

1

Eu tenho uma placa customizada baseada em RK3288 com chipset AP6212A wifi / bt. Eu estou usando o rockhip-linux 4.4 com o driver bcmdhd. Está usando o protocolo SDIO. Após o carregamento do driver, o kernel congela ao tentar executar o comando "WLC_UP" em qualquer lugar do driver.

dhd_conf_set_intiovar (dhd, WLC_UP, "acima", 0, 0, FALSE);

O console fica congelado e o HDMI também congela. Se eu comentar as linhas com o WLC_UP no driver, então eu recebo uma inicialização normal e também o wlan0 é registrado e está ativo, mas não pode escanear ou conectar-se ao wifi.

Aqui está o snippet do dts para a seção sdio e wireless:

wireless-bluetooth {
    compatible = "bluetooth-platdata";
    clocks = <&rk818 1>;
    clock-names = "ext_clock";
    uart_rts_gpios = <&gpio4 19 GPIO_ACTIVE_LOW>;
    pinctrl-names = "default", "rts_gpio";
    pinctrl-0 = <&uart0_rts>;
    pinctrl-1 = <&uart0_gpios>;
    BT,reset_gpio    = <&gpio4 29 GPIO_ACTIVE_HIGH>;
    BT,wake_gpio     = <&gpio4 26 GPIO_ACTIVE_HIGH>;
    BT,wake_host_irq = <&gpio4 31 GPIO_ACTIVE_HIGH>;
    status = "okay";
};

wireless-wlan {
    compatible = "wlan-platdata";
    rockchip,grf = <&grf>;
    wifi_chip_type = "ap6212";
    sdio_vref = <1800>;
    WIFI,host_wake_irq = <&gpio4 30 GPIO_ACTIVE_HIGH>;
    status = "okay";
};

&sdio0 {

    clock-frequency = <50000000>;
    clock-freq-min-max = <200000 50000000>;

    bus-width = <4>;
    cap-sd-highspeed;
    cap-sdio-irq;
    disable-wp;
    ignore-pm-notify;
    keep-power-in-suspend;
    mmc-pwrseq = <&sdio_pwrseq>;
    non-removable;
    num-slots = <1>;
    pinctrl-names = "default";
    pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk &sdio0_int>;
    sd-uhs-sdr104;
    supports-sdio;
    vmmc-supply = <&vcc_wlin>;
    vqmmc-supply = <&vccio_wl>;
    status = "okay";

};
    
por Abhi 20.11.2018 / 01:15

0 respostas