tiny4412 linux-4.2 移植(十)USB4604

本文介绍了在tiny4412平台上,如何将Linux 4.2内核移植到USB4604设备。内容包括理解USB4604挂载在HSCI0上的原理,dts中启用PHY和EHCI的配置,以及针对硬件特点修改的USB4604驱动代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

通过前面几篇usb的文章,可以知道usb4604是挂载在芯片的hsci0上面,hsci0是usb phy的其中一类,它隶属于EHCI host controller。
在这里插入图片描述
在这里插入图片描述

dts

由于hsci0是usb phy的其中一类,而且它隶属于EHCI host controller,所以需要在dts中使能phy和ehci。关于这些属性是在samsung usb框架中是怎么解析的,可以参考前面几篇文章。

# exynos4.dtsi
exynos_usbphy: exynos-usbphy@125B0000 {
   
    compatible = "samsung,exynos4210-usb2-phy";
    reg = <0x125B0000 0x100>;
    samsung,pmureg-phandle = <&pmu_system_controller>;
    clocks = <&clock CLK_USB_DEVICE>, <&clock CLK_XUSBXTI>;
    clock-names = "phy", "ref";
    #phy-cells = <1>;
    status = "disabled";
};
# exynos4412.dtsi
&exynos_usbphy {
   
    compatible = "samsung,exynos4x12-usb2-phy";
    samsung,sysreg-phandle = <&sys_reg>;
};
# exynos4412-tiny4412.dts
&exynos_usbphy {
   
        status = "okay";
};
# exynos4.dtsi
ehci: ehci@12580000 {
   
    compatible = "samsung,exynos4210-ehci";
    reg = <0x12580000 0x100>;
    interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
    clocks = <&clock CLK_USB_HOST>;
    clock-names = "usbhost";
    status = "disabled";
    #address-cells = <1>;
    #size-cells = <0>;
    port@0 {
   
      reg = <0>;                                    
      phys = <&exynos_usbphy 1>;    //1代表 host
      status = "disabled";
    };
    port@1 {
   
      reg = <1>;
      phys = <&exynos_usbphy 2>;    //2代表 hsci0
      status = "disabled";
    };
    port@2 {
   
      reg = <2>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值