qcom SDM660平台外接aw35615CSR芯片驱动调试
时间: 2023-07-31 08:13:38 浏览: 242
要在SDM660平台上驱动AW35615CSR芯片,你需要进行以下步骤:
1. 确保你的SDM660平台上已经安装了相应版本的Linux内核,并且内核中已经包含了AW35615CSR芯片的驱动程序。
2. 连接SDM660平台和AW35615CSR芯片,确保硬件连接正常。
3. 在Linux内核中加载AW35615CSR芯片的驱动程序。你可以使用modprobe命令来加载模块,例如:
```
modprobe aw35615csr
```
4. 确认AW35615CSR芯片已经被成功识别并加载了驱动程序。你可以使用dmesg命令来查看内核日志,例如:
```
dmesg | grep aw35615csr
```
如果AW35615CSR芯片已经被成功识别并加载了驱动程序,你应该能够在日志中看到对应的信息。
5. 进行调试。如果你遇到了问题,可以通过打印日志、使用调试工具等方式进行调试。
需要注意的是,这只是一个大致的调试流程,具体的调试步骤和方法可能因具体情况而异。在实际调试中,你还需要深入了解AW35615CSR芯片的硬件和软件特性,以及SDM660平台的驱动程序实现方式等方面的知识。
相关问题
qcom SDM660平台外接aw35615CSR芯片驱动怎么兼容SDM660平台本身的usb phy
在SDM660平台上同时兼容外接的AW35615CSR芯片和内置的USB PHY,你需要对SDM660平台的USB PHY驱动程序进行修改,以便同时支持两种PHY。具体的修改步骤如下:
1. 在SDM660平台上加载AW35615CSR芯片的驱动程序,并确保AW35615CSR芯片已经被成功识别。
2. 在SDM660平台上加载USB PHY驱动程序,并确保内置的USB PHY已经被成功识别。
3. 在USB PHY驱动程序中添加对AW35615CSR芯片的支持。具体来说,你需要修改驱动程序中的probe函数,以便在检测到AW35615CSR芯片时将其作为备选PHY,并在AW35615CSR芯片不可用时使用内置的USB PHY。具体代码实现可能因驱动程序而异,以下是一个简单的示例:
```c
static int usb_phy_probe(struct platform_device *pdev)
{
struct usb_phy *phy;
struct device *dev = &pdev->dev;
int ret;
phy = devm_kzalloc(dev, sizeof(*phy), GFP_KERNEL);
if (!phy)
return -ENOMEM;
// 检测AW35615CSR芯片是否可用
if (aw35615csr_detect())
phy->type = USB_PHY_TYPE_EXTERNAL;
else
phy->type = USB_PHY_TYPE_INTERNAL;
// 初始化PHY
switch (phy->type) {
case USB_PHY_TYPE_EXTERNAL:
// 初始化外部PHY
ret = aw35615csr_phy_init();
if (ret) {
dev_err(dev, "failed to initialize external PHY\n");
return ret;
}
break;
case USB_PHY_TYPE_INTERNAL:
// 初始化内部PHY
ret = msm_usb_phy_init();
if (ret) {
dev_err(dev, "failed to initialize internal PHY\n");
return ret;
}
break;
default:
dev_err(dev, "unsupported PHY type\n");
return -EINVAL;
}
// 注册PHY
phy_set_drvdata(phy, dev);
ret = usb_add_phy_dev(dev, phy);
if (ret) {
dev_err(dev, "failed to register PHY\n");
goto err_phy_exit;
}
return 0;
err_phy_exit:
switch (phy->type) {
case USB_PHY_TYPE_EXTERNAL:
aw35615csr_phy_exit();
break;
case USB_PHY_TYPE_INTERNAL:
msm_usb_phy_exit();
break;
}
return ret;
}
```
在这个示例代码中,我们在probe函数中使用aw35615csr_detect函数来检测AW35615CSR芯片是否可用,如果可用,就将其作为备选PHY,并在初始化PHY时使用aw35615csr_phy_init函数初始化AW35615CSR芯片的PHY。如果AW35615CSR芯片不可用,则使用内置的USB PHY,并在初始化PHY时使用msm_usb_phy_init函数初始化内置的USB PHY。
4. 编译和安装修改后的USB PHY驱动程序,并重新启动SDM660平台。在重新启动后,SDM660平台应该可以同时支持内置的USB PHY和外接的AW35615CSR芯片了。
qcom SDM660平台外接aw35615CSR芯片驱动怎么兼容SDM660平台本身的USB Type-C controller
在SDM660平台上同时兼容外接的AW35615CSR芯片和内置的USB Type-C controller,你需要对SDM660平台的USB Type-C controller驱动程序进行修改,以便同时支持两种控制器。具体的修改步骤如下:
1. 在SDM660平台上加载AW35615CSR芯片的驱动程序,并确保AW35615CSR芯片已经被成功识别。
2. 在SDM660平台上加载USB Type-C controller驱动程序,并确保内置的USB Type-C controller已经被成功识别。
3. 在USB Type-C controller驱动程序中添加对AW35615CSR芯片的支持。具体来说,你需要修改驱动程序中的probe函数,以便在检测到AW35615CSR芯片时将其作为备选controller,并在AW35615CSR芯片不可用时使用内置的USB Type-C controller。具体代码实现可能因驱动程序而异,以下是一个简单的示例:
```c
static int usb_tc_probe(struct platform_device *pdev)
{
struct usb_tc *tc;
struct device *dev = &pdev->dev;
int ret;
tc = devm_kzalloc(dev, sizeof(*tc), GFP_KERNEL);
if (!tc)
return -ENOMEM;
// 检测AW35615CSR芯片是否可用
if (aw35615csr_detect())
tc->type = USB_TC_TYPE_EXTERNAL;
else
tc->type = USB_TC_TYPE_INTERNAL;
// 初始化Type-C controller
switch (tc->type) {
case USB_TC_TYPE_EXTERNAL:
// 初始化外部Type-C controller
ret = aw35615csr_tc_init();
if (ret) {
dev_err(dev, "failed to initialize external Type-C controller\n");
return ret;
}
break;
case USB_TC_TYPE_INTERNAL:
// 初始化内部Type-C controller
ret = msm_usb_tc_init();
if (ret) {
dev_err(dev, "failed to initialize internal Type-C controller\n");
return ret;
}
break;
default:
dev_err(dev, "unsupported Type-C controller type\n");
return -EINVAL;
}
// 注册Type-C controller
tc_set_drvdata(tc, dev);
ret = usb_add_tc_dev(dev, tc);
if (ret) {
dev_err(dev, "failed to register Type-C controller\n");
goto err_tc_exit;
}
return 0;
err_tc_exit:
switch (tc->type) {
case USB_TC_TYPE_EXTERNAL:
aw35615csr_tc_exit();
break;
case USB_TC_TYPE_INTERNAL:
msm_usb_tc_exit();
break;
}
return ret;
}
```
在这个示例代码中,我们在probe函数中使用aw35615csr_detect函数来检测AW35615CSR芯片是否可用,如果可用,就将其作为备选controller,并在初始化Type-C controller时使用aw35615csr_tc_init函数初始化AW35615CSR芯片的Type-C controller。如果AW35615CSR芯片不可用,则使用内置的USB Type-C controller,并在初始化Type-C controller时使用msm_usb_tc_init函数初始化内置的USB Type-C controller。
4. 编译和安装修改后的USB Type-C controller驱动程序,并重新启动SDM660平台。在重新启动后,SDM660平台应该可以同时支持内置的USB Type-C controller和外接的AW35615CSR芯片了。
阅读全文