0

SDIO ベースの Wi-Fi モジュールがあり、Zynq Petalinux で使用するためにプレイしています。したがって、デバイス ツリーには SDIO1 インターフェイスがあり、さらに固定レギュレータがあります。しかし、Linux でこの SDIO1 インターフェイスを Wi-Fi に使用する方法がわかりませんでした。

Linux が RTC に 1 つの I2C デバイスを使用するには、何かをエコーする必要があることを覚えています。では、ここは似ていますか?

ここに私のデバイスツリーがあります:

  wlcore {
        compatible = "wlcore";
        interrupt-parent = <&intc>;
        irq = <0x0>;
        platform-quirks = <0x1>;
        board-ref-clock = <0x4>;
    };
  fixedregulator@1 {
        compatible = "regulator-fixed";
        regulator-name = "wlan-en-regulator";
        regulator-min-microvolt = <0x325aa0>;
        regulator-max-microvolt = <0x325aa0>;
        /* WLAN_EN GPIO for this board - Bank1, pin9, what does 4 mean? */
        gpio = <&gpio0 0x9 0x4>;
        startup-delay-us = <0x11170>;
        enable-active-high;
        linux,phandle = <0x6>;
        phandle = <0x6>;
    };
};
&sdhci1{
        xlnx,has-cd = <0x1>;
        xlnx,has-power = <0x0>;
        xlnx,has-wp = <0x0>;
        vmmc-supply = <0x6>;
        cap-power-off-card;
            status = "okay";
            compatible = "arasan,sdhci-8.9a";
            clock-names = "clk_xin", "clk_ahb";
            clocks = <&clkc 22>, <&clkc 33>;
            interrupt-parent = <&intc>;
            interrupts = <0 47 4>;
            reg = <0xe0101000 0x1000>;
    };

質問

この SDIO1 を Wi-Fi に使用するように Linux に指示するにはどうすればよいですか?

4

1 に答える 1

1

私はつい最近、Petalinux 2014.4 を実行する PicoZed ボードを TI の WiLink 8 Wi-Fi モジュールと連携させました。これも SDIO インターフェイスを使用しています。

これは、固定レギュレータと SDIO1 インターフェイスを説明するデバイス ツリー (system-top.dts) のコピーです。コメントを表すために「<<<」を使用しました。これらは、最終的なデバイス ツリー用に削除する必要があります。

/dts-v1/;
/include/ "system-conf.dtsi"
/ {
    wlan_en: fixedregulator@2 {
    compatible = "regulator-fixed";
    regulator-name = "wlan-en-regulator";
    regulator-min-microvolt = <0x325aa0>;
    regulator-max-microvolt = <0x325aa0>;
    gpio = <&gpio0 0x9 0x4>; <<<< GPIO 9 for the WLAN_EN; 0x4 flag is controller-specific.
                             <<<<  see include/dt-bindings/gpio/gpio.h
    startup-delay-us = <0x11170>;
    enable-active-high;
    };
};

&gem0 {
    phy-handle = <&phy0>;
    phy-mode = "rgmii-id";

    mdio {
        #address-cells = <1>;
        #size-cells = <0>;
        phy0: phy@0 {
            compatible = "marvell,88e1510";
            device_type = "ethernet-phy";
            reg = <0x0>;
            marvell,reg-init = <3 16 0xff00 0x1e 3 17 0xfff0 0x00>;
        };
    };
};

&qspi {
    flash0: flash@0 {
        compatible = "micron,n25q128a13";
    };
};

&gpio0 {  <<<<< make GPIO0 an interrupt controller for GPIO interrupts
    interrupt-controller;
    #interrupt-cells = <2>;
};

&sdhci1{ <<<<<<< SDIO 1
    vmmc-supply = <&wlan_en>;
    bus-width = <4>;
    ti,non-removable;
    ti,needs-special-hs-handling;
    cap-power-off-card;
    keep-power-in-suspend;

    #address-cells = <1>;
    #size-cells = <0>;

    wlcore: wlcore@0 {
            compatible = "ti,wl1837";
            interrupt-parent = <&gpio0>;  <<< NOTE: GPIO use as interrupt parent
            interrupts = <0 4>;  <<<<<<<< using GPIO 0 for IRQ; 4 = input sense high
            reg = <2>;
            platform-quirks = <0x1>;
            board-ref-clock = <0x4>;
    };
};

ハードウェア セットアップの有効化に使用する GPIO ピンと割り込みに使用する GPIO ピンを変更する必要があるだけですが、これらは推奨されるピンです。

デバイス ツリーを正しく設定することは、Wi-Fi モジュールをボードで動作させるための 1 つのステップにすぎません。私の完全なセットアップ手順を参照したい場合は、http: //picozed.org/content/steps-get-wlink8-working-using-petalinux-picozedにアクセスしてください。

そこには、MicroZed ボードを操作するための別の貢献者からのリンクもあります。

于 2016-01-29T20:28:33.340 に答える