基于Cix P1芯片的Bring up系列文章--USB(三)
·
系列文章目录
https://blog.csdn.net/weixin_44177847/article/details/154943373?spm=1011.2124.3001.6209
前言
前面介绍了基于Cix P1芯片的整体Bring Up需要事项,以及BU过程中GPIO合入配置。本文中主要深入的介绍BU过程中Uefi的模组配置规则。
一、有哪些SOC 模组需要配置
首先客户已经提供了模组的mapping信息,比如PCIE、USB、I2C等,和前一章节对应的PCIE<–>port对应关系一致,X4是port1对应的是SSD的CLK, 前面配置好了pio reset pin,还有USB, PD, EC等需要根据实际需要来决定是都要Enable。


二、Uefi Enable USB/GMAC
1.以USB为例
代码如下(示例):SOC持10个USB Port
- 4个USB TypeC Port: USBC0 supports dual-role mode, USBC1/USBC2/USBC3 are host mode only
- 2个USB3.2 Gen2 TypeA Port: Support 10Gbps port and dual role mode
- 4个USB2.0 Port: Host mode only
参考平台提供了如下USB 配置项,每个配置项的意义如下:
| 参数 | 电路图管脚 | 描述 |
|---|---|---|
| PcdUsbCDrdControl0Enable | USB0 or USBC0 | 使能或者关闭 USBC Drd Control, TRUE:使能 FALSE:关闭 |
| PcdUsbCDrdControl0DataRole | USB0 or USBC0 | 设置USBC Drd Control 作为host controller 还是device FALSE:host, TRUE:device |
| PcdUsbCDrdControl0MaxSpeed | USB0 or USBC0 | 设置USBC Drd Control 最大速度 3:high, 2:full, 4:super, 5:super plus |
# USBC0
gCixTokenSpaceGuid.PcdUsbCDrdControl0Enable|TRUE
gCixTokenSpaceGuid.PcdUsbCDrdControl0DataRole|TRUE
# USBC1
... ...
2.DTS enable usb
以USB C0为例,其对应的GPIO pin就是CPIO036
{ 36, INPUT, INOUT_VALUE_DEFAULT, INTERRUPT_ENABLE_DEFAULT, INTERRUPT_TYPE_DEFAULT }, //
DTS中需要配置对应的GPIO Function:
&sky1_usbss_0 {
sof_clk_freq = <8000000>;
lpm_clk_freq = <32000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb0>;
oc-gpio = <&s5_gpio0 25 IRQ_TYPE_LEVEL_LOW>;
status = "okay";
};
pinctrl_usb0: pinctrl_usb0_oc_grp {
sky1,pins = <
CIX_PAD_GPIO036_FUNC_GPIO036 (PULL_UP|DS_LEVEL4)
>;
};
总结
以上就是今天要讲的内容,本文仅仅简单介绍了usb为例的UEFI gpio map,以及DTS中配置对应的GPIO Func。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)