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를 찾으려면 가젯 드라이버에 무엇이 필요합니까?

관련 정보