• STM32MP157A驱动开发 | 03-usb host接口的使用(U盘 )


    硬件原理图

    一、STM32MP1的USB接口

    STM32MP1有两个USB host控制器,都是USB2.0,带宽最大480Mbit/s,两个USB接口都内置了高速PHY。其中USB2接口支持OTG功能。

    STM32MP1内部集成了三个和USB相关的控制器:UST HS PHY控制器、USB Host控制器、USB OTG控制器。

    1. PHY控制器

    PHY控制器主要提供两个端口,端口1规定分配给USB Host控制器、端口2分配给USB OTG和USB Host。

    2. OTG控制器

    3. USBH控制器

    主控制器USBH由EHCI和OHCI控制器组成。

    OCHI:FS低速模式
    ECHI:HS高速模式

    二、USB HOST设备树描述

    1. USBH控制器节点信息

    在stm32mp1芯片级描述文件arch/arm/boot/dts/stm32mp151.dtsi中:

    USBH控制器使用USB2.0需要配置usbh_ehci这个节点,使用USB1.1就需要配置usbh_ohci这个节点。

    使用的驱动是通用驱动:drivers/usb/host/ohci-platform.cdrivers/usb/host/ehci-platform.c

    2. PHY控制器

    在stm32mp1芯片级描述文件arch/arm/boot/dts/stm32mp151.dtsi中:

    usbphyc节点就是STM32MP1的USB PHY,有两个端口,兼容性是"st,stm32mp1-usbphyc"。

    在板级配置文件中,有如下节点,用来配置USB PHY:

    绑定文档为:Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml

    对应的驱动文件为:drivers/phy/st/phy-stm32-usbphyc.c

    在开发板中描述文件中,继续添加对usbphyc的描述,使能usbphyc控制器:

    &usbphyc {
    	status = "okay";
    };
    
    &usbphyc_port0 {
    	phy-supply = <&vdd_usb>;
    	st,phy-tuning = <&usb_phy_tuning>;
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3. 配置usbh_ehci

    在usbh节点描述中,指定PHY端口:

    &usbh_ehci {
    	phys = <&usbphyc_port0>;
    	status = "okay";
    };
    
    • 1
    • 2
    • 3
    • 4

    至此,设备树修改完成,查看内核启动日志:

    三、使能U盘驱动

  • 相关阅读:
    苹果iOS系统开发APP应用启动几种速度优化技巧与实践
    人工智能发展前景
    Python解释器与Python编辑器的详细下载与安装过程
    1.44寸OLED的Linux驱动
    项目之旅(第三周)
    2023最全的性能测试种类介绍,这6个种类特别重要!
    19.9 Boost Asio 同步字典传输
    2024.06.04 校招 实习 内推 面经
    深入理解python虚拟机:黑科技的幕后英雄——描述器
    【设计模式】Java设计模式 - 桥接模式
  • 原文地址:https://blog.csdn.net/Mculover666/article/details/126193870