zoukankan      html  css  js  c++  java
  • F1C100S添加USB驱动

    1.添加设备树节点:

      在.dti文件中添加如下节点:

    otg_sram: sram-section@0 {
        compatible = "allwinner,suniv-f1c100s-sram-d",
                 "allwinner,sun4i-a10-sram-d";
        reg = <0x0000 0x1000>;
        status = "disabled";
    };

    usb_otg: usb@1c13000 {
        compatible = "allwinner,suniv-musb";
        reg = <0x01c13000 0x0400>;
        clocks = <&ccu CLK_BUS_OTG>;
        resets = <&ccu RST_BUS_OTG>;
        interrupts = <26>;
        interrupt-names = "mc";
        phys = <&usbphy 0>;
        phy-names = "usb";
        extcon = <&usbphy 0>;
        allwinner,sram = <&otg_sram 1>;
        status = "disabled";
    };
    
    usbphy: phy@1c13400 {
        compatible = "allwinner,suniv-usb-phy";
        reg = <0x01c13400 0x10>;
        reg-names = "phy_ctrl";
        clocks = <&ccu CLK_USB_PHY0>;
        clock-names = "usb0_phy";
        resets = <&ccu RST_USB_PHY0>;
        reset-names = "usb0_reset";
        #phy-cells = <1>;
        status = "disabled";
    };

      然后在dts中开启设备节点:

    &otg_sram {
            status = "okay";
    };
    
    &usb_otg {
            dr_mode = "otg";
            status = "okay";
    };
    
    &usbphy {
            usb0_id_det-gpio = <&pio 4 2 GPIO_ACTIVE_HIGH>; /* PE2 */
            status = "okay";
    };

    2.由于linux并没有对F1C100s写驱动,因此我们需要添加其驱动程序,步骤如下:

    drivers/phy/allwinner/phy-sun4i-usb.c文件修改如下

    大约在100行处添加:
    suniv_phy,

     大约在862处添加:

    static const struct sun4i_usb_phy_cfg suniv_cfg = {
        .num_phys = 1,
        .type = suniv_phy,
        .disc_thresh = 3,
        .phyctl_offset = REG_PHYCTL_A10,
        .dedicated_clocks = true,
    };

     大约在985处添加:

    { .compatible = "allwinner,suniv-usb-phy", .data = &suniv_cfg },

    drivers/usb/musb/sunxi.c文件修改如下

    大约在717行添加如下:
    ||of_device_is_compatible(np, "allwinner,suniv-musb")

     大约在724处添加如下:

    ||of_device_is_compatible(np, "allwinner,suniv-musb")

    大约在817处添加如下:

    { .compatible = "allwinner,suniv-musb", },

    修改好后保存所有修改文件

    3.选择usb驱动添加到内核:

     

     

     然后保存退出

    4.编译测试:

  • 相关阅读:
    bzoj:1299: [LLH邀请赛]巧克力棒
    [51nod][cf468D]1558 树中的配对
    HDU5447 Good Numbers
    Timus Online Judge:ural:1006. Square Frames
    poj1830:开关问题
    bzoj:1776: [Usaco2010 Hol]cowpol 奶牛政坛
    bzoj:1725: [Usaco2006 Nov]Corn Fields牧场的安排
    bzoj:1828: [Usaco2010 Mar]balloc 农场分配
    bzoj:1584: [Usaco2009 Mar]Cleaning Up 打扫卫生
    bzoj:1598: [Usaco2008 Mar]牛跑步
  • 原文地址:https://www.cnblogs.com/listenscience/p/13758272.html
Copyright © 2011-2022 走看看