musb-hdrcドライバをどのように設定しますか?

musb-hdrcドライバをどのように設定しますか?

configfsを介してUSBガジェットデバイス(携帯電話)をホストとして使用したいと思います。 configfsを設定した後、ホストペリフェラル(電話)にガジェットは設定されません。 initスクリプトを実行すると、次の結果が生成されます。

[0.678485] file system registered
[0.681070] UDC core: g1: couldn't find an available UDC or it's busy

g1 は configfs に設定されたガジェット機能です。問題は、デバイスツリーにUSBプラットフォームドライバが正しく設定されていないことです。次のようにデバイスツリーにノードを作成しようとしています。

デバイスツリー

    usb: usb@11200000 {
        status = "ok";
        compatible = "mediatek,mt2701-musb", "mediatek,mtk-musb";
        reg = <0 0x11200000 0 0x10000>;
        interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_LOW>;
        interrupt-names = "mc";
        clocks = <&infracfg_ao CLK_INFRA_ICUSB>, <&topckgen CLK_TOP_USB_TOP>, <&topckgen CLK_TOP_UNIVPLL_D3_D4>;
        clock-names = "main", "mcu", "univpll";
        phys = <&u2port0 PHY_TYPE_USB2>;
        usb-role-switch;
        dr_mode = "otg";
        power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
        mode = <2>;
        multipoint = <1>;
        num_eps = <16>;
        pericfg = <&pericfg>;
        connector {
            status = "ok";
            compatible = "usb-c-connector";
            label = "USB-C";
            vbus-supply = <&mt6370_otg_vbus>;
            power-role = "dual";
            try-power-role = "sink";
            data-role = "dual";
            typec-power-opmode = "default";
            pd-disable;
        };
    };

    u2phy0: t-phy@11cc0000 {
        status = "ok";
        compatible = "mediatek,mt2701-tphy", "mediatek,generic-tphy-v1";
        reg = <0 0x11cc0000 0 0x800>;
        mediatek,src-ref-clk-mhz = <26>;
        mediatek,src-coef = <17>;
        #address-cells = <2>;
        #size-cells = <2>;
        ranges;

        u2port0: usb-phy@11cc0800 {
            reg = <0 0x11cc0800 0 0x100>;
            clocks = <&clk26m>;
            clock-names = "ref";
            #phy-cells = <1>;
            mediatek,eye-term = <3>;
            mediatek,eye-vrt = <5>;
            mediatek,eye-rev6 = <3>;
            mediatek,eye-disc = <15>;
            mediatek,host-eye-term = <3>;
            mediatek,host-eye-vrt = <5>;
            mediatek,host-eye-rev6 = <3>;
            mediatek,host-eye-disc = <8>;
            status = "okay";
        };
    };

UDCデバイスを見つけるためにmusb-hdrcドライバをロードするためにツリーに他の設定がないようです。中間ノードの内容/sys/devices/platform/11200000.usbは次のとおりです。

> event
    OF_NAME=usb
    OF_FULLNAME=/usb@11200000
    OF_COMPATIBLE_0=mediatek,mt2701-musb
    OF_COMPATIBLE_1=mediatek,mtk-musb
    OF_COMPATIBLE_N=2
    MODALIAS=of:NusbT(null)Cmediatek,mt2701-musbCmediatek,mtk-musb

> /power/runtime_active_time
    0

> /power/runtime_status
    unsupported

> waiting_for_supplier
    0

私のノードに依存関係がありませんが、まだガジェットを実行していません。 musb-hdrcガジェットドライバが利用可能なUDCを見つけるには、ガジェットドライバに何が必要ですか?

ベストアンサー1

おすすめ記事