前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux_驱动_IIC_BLSP

linux_驱动_IIC_BLSP

作者头像
全栈程序员站长
发布2022-11-02 16:49:22
7790
发布2022-11-02 16:49:22
举报

原文链接:http://huaqianlee.github.io/2016/04/27/Uav/Qualcomm-uav-blsp-port/ 笔记: 1. 每一块BLSP对应六位,每一位对应一个GPIO,每一位的GPIO都可以作为UART、SPI、IIC的链接线 2. 需要通过平台的数据手册 来确定用哪块BLSP的哪个QUP链接是哪个GPIO,这些个GPIO支持的是什么类型的总线(三大总线之一),每一位又是作为三大总线的哪一条 3. BAM中断与外设中断:BAM中断意味着数据读取/写入完成 外设状态和错误的等级会引发外设中断

应用实例:

1.基础概念

(1) Bus Access Module (BAM),总线访问模块

BAM is used to move data to/from the peripheral buffers.

(2) BAM Low-Speed Peripheral (BLSP),低速接口的总线访问模块

(3) QUP:Qualcomm Universal Peripheral,高通统一的外设

2.Msm8937 BLSP

linux_驱动_IIC_BLSP
linux_驱动_IIC_BLSP
linux_驱动_IIC_BLSP
linux_驱动_IIC_BLSP

BLSP是高通对于低速接口的一种管理方式,8937 平台含有两个BLSP(BAM Low-Speed Peripheral) 块,对应于12个BLSP端口。 每一个BLSP块含有最多六个Qualcomm Universal Peripheral (QUP)和六个UART cores、其中SPI和IC2核心集成到一个名字为QUP核心,并且共享同一个FIFO,而UART_DM单独集成并有自己的FIFO,所有的这3个core共享同一个总线接口,也就是对外共用相同的I/O接口,比如:

linux_驱动_IIC_BLSP
linux_驱动_IIC_BLSP

但是对于只使用两个UART引脚的UART_DM,比如只用到GPIO_4(TX)和GPIO_5(RX),也是使用两个引脚的I2C接口这时也可以同时使用:

linux_驱动_IIC_BLSP
linux_驱动_IIC_BLSP

通过相关手册查询到每个外设属于BLSP多少。

3. 确认我们使用的I2C对应哪个BLSP和QUP

比如我们采用SDA—GPIO6,SCL—GPIO7,

(1) 到msm8937-pinctrl.dsti确认GPIO6和GPIO7对应设备树中是哪组I2C

linux_驱动_IIC_BLSP
linux_驱动_IIC_BLSP

其实从上图可知道是第1个BLSP的第2个QUDP,但我们从设备树上找到相关的

(2) 通过i2c_2_active找到msm8937.dtsi下有引用

linux_驱动_IIC_BLSP
linux_驱动_IIC_BLSP

这里可知是采用BLSP1的QUP2,I2C核基准地址是0x78b6000

(3) Lk部分确定所用的I2C对应的BLSP和QUP

来看bootable\bootloader\lk\platform\msm_shared\include\blsp_qup.h下的定义

linux_驱动_IIC_BLSP
linux_驱动_IIC_BLSP

从这里可以看出QUP是从QUP_ID_0开始,那么我们的使用的GPIO6和GPIO7的I2C对应QUP_ID_1,使用示例如下:

linux_驱动_IIC_BLSP
linux_驱动_IIC_BLSP

4. QUP基地址和IRQs

linux_驱动_IIC_BLSP
linux_驱动_IIC_BLSP

BLSP routes the following interrupts from its subcores:

BAM_IRQ – Indicates that a BAM operation has completed

PERIPHERAL_IRQ – Driven by UART or QUP; shared at the peripheral level for status updates and errors of the peripheral; a status register in the peripheral core allows software to distinguish between interrupt sources

参考:

高通无人机8074 BLSP接口说明

http://huaqianlee.github.io/2016/04/27/Uav/Qualcomm-uav-blsp-port/

高通APQ8074 spi 接口配置

https://blog.csdn.net/jumper511/article/details/25622833 ———————

原文:https://blog.csdn.net/LoongEmbedded/article/details/83070030

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/180262.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档