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.编译测试:

  • 相关阅读:
    记: Spring Data Jpa @OneToMany 级联查询被动触发的问题
    后端小白的Bootstrap笔记
    最短路径问题
    深度优先搜索 & 广度优先搜索
    检讨书板子
    关于计时器
    博客园美化
    P4819 杀人游戏 (图论 )
    水站 (二分)
    对拍
  • 原文地址:https://www.cnblogs.com/listenscience/p/13758272.html
Copyright © 2011-2022 走看看