zoukankan      html  css  js  c++  java
  • RK3288 OTG切换为Host模式

    OTG = On The Go,是USB的一种工作模式

    USB协议中规定了两类设备,一类是Host、一类是Device.

    Host为主控设备,如PC,Device为从设备,如鼠标、U盘等,Device只能连接到Host上并由Host控制。

    OTG是一种特殊的USB设备,它本身是Device,可以连接Host,并被Host所控制。但它同时也能作为Host连接Device。

    OTG 在硬件上由 ID 引脚决定做 Host 还是 Device,上拉为 Device,下拉为 Host。

    目前大部分手机都支持 OTG,根据原理自己可以动手制作一根 OTG 线。

    RK3288 的 OTG 转换为 Host 模式有 3 中方法。

    1、修改硬件

    RK3288 的 ID 引脚默认上拉,作为 Device 设备,如要转换为 Host 模式,只需将 ID 引脚下拉到地即可。

    简单点就是接一根 OTG 线即可。

    2、修改 dts 文件

    文件路径:/kernel/arch/arm/boot/dts/rk3288.dtsi

    usb0: usb@ff580000 {
        compatible = "rockchip,rk3288_usb20_otg";
        reg = <0xff580000 0x40000>;
        interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&clk_gates13 4>, <&clk_gates7 4>;
        clock-names = "clk_usbphy0", "hclk_usb0";
        resets = <&reset RK3288_SOFT_RST_USBOTG_H>, <&reset RK3288_SOFT_RST_USBOTGPHY>,
                <&reset RK3288_SOFT_RST_USBOTGC>;
        reset-names = "otg_ahb", "otg_phy", "otg_controller";
        /*0 - Normal, 1 - Force Host, 2 - Force Device*/
    //    rockchip,usb-mode = <0>;
        /* 0-正常模式,ID决定,1-Host模式,2-Device模式*/
        rockchip,usb-mode = <1>;
    };

    3、使用指令修改 force_usb_mode 的值

         0 - 正常模式,ID 决定

         1 - Host 模式

         2 - Device 模式

    root@rk3288:/ # cd /sys/bus/platform/drivers/usb20_otg
    cd /sys/bus/platform/drivers/usb20_otg
    root@rk3288:/sys/bus/platform/drivers/usb20_otg # ls
    ls
    bind
    debuglevel
    dwc_otg_conn_en
    ff580000.usb
    force_usb_mode
    op_state
    uevent
    unbind
    vbus_status
    version
    // 默认是正常模式,ID决定
    root@rk3288:/sys/bus/platform/drivers/usb20_otg # cat force_usb_mode
    cat force_usb_mode
    0
    // 修改为 Host 模式,会自动退出 adb
    root@rk3288:/sys/bus/platform/drivers/usb20_otg # echo 1 > force_usb_mode

    通过指令可以修改,即可在上层的设置菜单中增加一个 USB 模式切换开关,即用户可以通过界面修改 OTG 的模式。

  • 相关阅读:
    牛客 小乐乐和25
    codeforces 1303 D 二进制瞎搞
    codeforces 1307 D 最短路bz+贪心
    codeforces 1316 C math
    codeforces 1328E LCA
    codeforces 1335 E2 思维
    codeforces 1335 E1 思维
    codeforces 1342 D 贪心+后缀和
    codeforces 1348D (思维+贪心)
    codeforces 1362 E 进制的性质
  • 原文地址:https://www.cnblogs.com/lialong1st/p/9103224.html
Copyright © 2011-2022 走看看