Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CDL_LuFei
Docs
提交
0081d222
D
Docs
项目概览
CDL_LuFei
/
Docs
与 Fork 源项目一致
Fork自
OpenHarmony / Docs
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
0081d222
编写于
1月 12, 2022
作者:
O
openharmony_ci
提交者:
Gitee
1月 12, 2022
浏览文件
操作
浏览文件
下载
差异文件
!1171 【轻量级 PR】:【驱动】将MIPI-CI章节操作步骤中的接口说明整理为独立模块。
Merge pull request !1171 from liyan/N/A
上级
602268c6
c7e69cd5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
39 addition
and
40 deletion
+39
-40
zh-cn/device-dev/driver/driver-platform-mipicsi-develop.md
zh-cn/device-dev/driver/driver-platform-mipicsi-develop.md
+39
-40
未找到文件。
zh-cn/device-dev/driver/driver-platform-mipicsi-develop.md
浏览文件 @
0081d222
...
@@ -11,7 +11,43 @@ CSI(Camera Serial Interface)是由MIPI联盟下Camera工作组指定的接
...
@@ -11,7 +11,43 @@ CSI(Camera Serial Interface)是由MIPI联盟下Camera工作组指定的接
图 1 无服务模式结构图
图 1 无服务模式结构图
![
image1
](
figures/CSI无服务模式结构图.png
)
![
image1
](
figures/CSI无服务模式结构图.png
)
## 开发步骤 <a name="section2_MIPI_CSIDevelop"></a>
## 接口说明 <a name="section2_MIPI_CSIDevelop"></a>
MipiCsiCntlrMethod定义
```
c
struct
MipiCsiCntlrMethod
{
int32_t
(
*
setComboDevAttr
)(
struct
MipiCsiCntlr
*
cntlr
,
ComboDevAttr
*
pAttr
);
int32_t
(
*
setPhyCmvmode
)(
struct
MipiCsiCntlr
*
cntlr
,
uint8_t
devno
,
PhyCmvMode
cmvMode
);
int32_t
(
*
setExtDataType
)(
struct
MipiCsiCntlr
*
cntlr
,
ExtDataType
*
dataType
);
int32_t
(
*
setHsMode
)(
struct
MipiCsiCntlr
*
cntlr
,
LaneDivideMode
laneDivideMode
);
int32_t
(
*
enableClock
)(
struct
MipiCsiCntlr
*
cntlr
,
uint8_t
comboDev
);
int32_t
(
*
disableClock
)(
struct
MipiCsiCntlr
*
cntlr
,
uint8_t
comboDev
);
int32_t
(
*
resetRx
)(
struct
MipiCsiCntlr
*
cntlr
,
uint8_t
comboDev
);
int32_t
(
*
unresetRx
)(
struct
MipiCsiCntlr
*
cntlr
,
uint8_t
comboDev
);
int32_t
(
*
enableSensorClock
)(
struct
MipiCsiCntlr
*
cntlr
,
uint8_t
snsClkSource
);
int32_t
(
*
disableSensorClock
)(
struct
MipiCsiCntlr
*
cntlr
,
uint8_t
snsClkSource
);
int32_t
(
*
resetSensor
)(
struct
MipiCsiCntlr
*
cntlr
,
uint8_t
snsResetSource
);
int32_t
(
*
unresetSensor
)(
struct
MipiCsiCntlr
*
cntlr
,
uint8_t
snsResetSource
);
};
```
表1 MipiCsiCntlrMethod成员的回调函数功能说明
| 成员函数 | 入参 | 出参 | 返回状态 | 功能 |
| ------------------ | ------------------------------------------------------------ | ---- | ------------------ | -------------------------- |
| setComboDevAttr |
**cntlr**
:结构体指针,MipiCsi控制器 ;
<br>
**pAttr**
:结构体指针,MIPI-CSI相应配置结构体指针 | 无 | HDF_STATUS相关状态 | 写入MIPI-CSI配置 |
| setPhyCmvmode |
**cntlr**
:结构体指针,MipiCsi控制器 ;
<br>
**devno**
:uint8_t,设备编号;
<br>
**cmvMode**
:枚举类型,共模电压模式参数 | 无 | HDF_STATUS相关状态 | 设置共模电压模式 |
| setExtDataType |
**cntlr**
:结构体指针,MipiCsi控制器 ;
<br>
**dataType**
:结构体指针,定义YUV和原始数据格式以及位深度 | 无 | HDF_STATUS相关状态 | 设置YUV和RAW数据格式和位深 |
| setHsMode |
**cntlr**
:结构体指针,MipiCsi控制器 ;
<br>
**laneDivideMode**
:枚举类型,lane模式参数 | 无 | HDF_STATUS相关状态 | 设置MIPI RX的Lane分布 |
| enableClock |
**cntlr**
:结构体指针,MipiCsi控制器 ;
<br>
**comboDev**
:uint8_t,通路序号 | 无 | HDF_STATUS相关状态 | 使能mipi的时钟 |
| disableClock |
**cntlr**
:结构体指针,MipiCsi控制器 ;
<br/>
**comboDev**
:uint8_t,通路序号 | 无 | HDF_STATUS相关状态 | 关闭mipi的时钟 |
| resetRx |
**cntlr**
:结构体指针,MipiCsi控制器 ;
<br/>
**comboDev**
:uint8_t,通路序号 | 无 | HDF_STATUS相关状态 | 复位MIPI RX |
| unresetRx |
**cntlr**
:结构体指针,MipiCsi控制器 ;
<br/>
**comboDev**
:uint8_t,通路序号 | 无 | HDF_STATUS相关状态 | 撤销复位MIPI RX |
| enableSensorClock |
**cntlr**
:结构体指针,MipiCsi控制器 ;
<br/>
**snsClkSource**
:uint8_t,传感器的时钟信号线号 | 无 | HDF_STATUS相关状态 | 使能mipi上的Sensor时钟 |
| disableSensorClock |
**cntlr**
:结构体指针,MipiCsi控制器 ;
<br/>
**snsClkSource**
:uint8_t,传感器的时钟信号线号 | 无 | HDF_STATUS相关状态 | 关闭mipi上的Sensor时钟 |
| resetSensor |
**cntlr**
:结构体指针,MipiCsi控制器 ;
<br/>
**snsClkSource**
:uint8_t,传感器的时钟信号线号 | 无 | HDF_STATUS相关状态 | 复位Sensor |
| unresetSensor |
**cntlr**
:结构体指针,MipiCsi控制器 ;
<br/>
**snsClkSource**
:uint8_t,传感器的时钟信号线号 | 无 | HDF_STATUS相关状态 | 撤销复位Sensor |
## 开发步骤 <a name="section3_MIPI_CSIDevelop"></a>
MIPI-CSI模块适配的三个环节是配置属性文件、实例化驱动入、以及实例化核心层接口函数。
MIPI-CSI模块适配的三个环节是配置属性文件、实例化驱动入、以及实例化核心层接口函数。
...
@@ -31,45 +67,8 @@ MIPI-CSI模块适配的三个环节是配置属性文件、实例化驱动入、
...
@@ -31,45 +67,8 @@ MIPI-CSI模块适配的三个环节是配置属性文件、实例化驱动入、
4.
**驱动调试:**
4.
**驱动调试:**
-
【可选】针对新增驱动程序,建议验证驱动基本功能,例如挂载后的信息反馈,数据传输的成功与否等。
-
【可选】针对新增驱动程序,建议验证驱动基本功能,例如挂载后的信息反馈,数据传输的成功与否等。
> ![](W:\doc\docs\zh-cn\device-dev\public_sys-resources\icon-note.gif) **说明:**
>
## 开发实例 <a name="section4_MIPI_CSIDevelop"></a>
> MipiCsiCntlrMethod定义
>
> ```c
> struct MipiCsiCntlrMethod {
> int32_t (*setComboDevAttr)(struct MipiCsiCntlr *cntlr, ComboDevAttr *pAttr);
> int32_t (*setPhyCmvmode)(struct MipiCsiCntlr *cntlr, uint8_t devno, PhyCmvMode cmvMode);
> int32_t (*setExtDataType)(struct MipiCsiCntlr *cntlr, ExtDataType* dataType);
> int32_t (*setHsMode)(struct MipiCsiCntlr *cntlr, LaneDivideMode laneDivideMode);
> int32_t (*enableClock)(struct MipiCsiCntlr *cntlr, uint8_t comboDev);
> int32_t (*disableClock)(struct MipiCsiCntlr *cntlr, uint8_t comboDev);
> int32_t (*resetRx)(struct MipiCsiCntlr *cntlr, uint8_t comboDev);
> int32_t (*unresetRx)(struct MipiCsiCntlr *cntlr, uint8_t comboDev);
> int32_t (*enableSensorClock)(struct MipiCsiCntlr *cntlr, uint8_t snsClkSource);
> int32_t (*disableSensorClock)(struct MipiCsiCntlr *cntlr, uint8_t snsClkSource);
> int32_t (*resetSensor)(struct MipiCsiCntlr *cntlr, uint8_t snsResetSource);
> int32_t (*unresetSensor)(struct MipiCsiCntlr *cntlr, uint8_t snsResetSource);
> };
> ```
>
> 表1 MipiCsiCntlrMethod成员的回调函数功能说明
>
> | 成员函数 | 入参 | 出参 | 返回状态 | 功能 |
> | ------------------ | ------------------------------------------------------------ | ---- | ------------------ | -------------------------- |
> | setComboDevAttr | **cntlr**: 结构体指针,MipiCsi控制器 ;<br>**pAttr**: 结构体指针,MIPI-CSI相应配置结构体指针 | 无 | HDF_STATUS相关状态 | 写入MIPI-CSI配置 |
> | setPhyCmvmode | **cntlr**: 结构体指针,MipiCsi控制器 ;<br>**devno**: uint8_t,设备编号;<br>**cmvMode**: 枚举类型,共模电压模式参数 | 无 | HDF_STATUS相关状态 | 设置共模电压模式 |
> | setExtDataType | **cntlr**: 结构体指针,MipiCsi控制器 ;<br>**dataType**: 结构体指针,定义YUV和原始数据格式以及位深度 | 无 | HDF_STATUS相关状态 | 设置YUV和RAW数据格式和位深 |
> | setHsMode | **cntlr**: 结构体指针,MipiCsi控制器 ;<br>**laneDivideMode**: 枚举类型,lane模式参数 | 无 | HDF_STATUS相关状态 | 设置MIPI RX的 Lane分布 |
> | enableClock | **cntlr**: 结构体指针,MipiCsi控制器 ;<br>**comboDev**: uint8_t,通路序号 | 无 | HDF_STATUS相关状态 | 使能mipi的时钟 |
> | disableClock | **cntlr**: 结构体指针,MipiCsi控制器 ;<br/>**comboDev**: uint8_t,通路序号 | 无 | HDF_STATUS相关状态 | 关闭mipi的时钟 |
> | resetRx | **cntlr**: 结构体指针,MipiCsi控制器 ;<br/>**comboDev**: uint8_t,通路序号 | 无 | HDF_STATUS相关状态 | 复位MIPI RX |
> | unresetRx | **cntlr**: 结构体指针,MipiCsi控制器 ;<br/>**comboDev**: uint8_t,通路序号 | 无 | HDF_STATUS相关状态 | 撤销复位MIPI RX |
> | enableSensorClock | **cntlr**: 结构体指针,MipiCsi控制器 ;<br/>**snsClkSource**: uint8_t,传感器的时钟信号线号 | 无 | HDF_STATUS相关状态 | 使能mipi上的sensor时钟 |
> | disableSensorClock | **cntlr**: 结构体指针,MipiCsi控制器 ;<br/>**snsClkSource**: uint8_t,传感器的时钟信号线号 | 无 | HDF_STATUS相关状态 | 关闭mipi上的sensor时钟 |
> | resetSensor | **cntlr**: 结构体指针,MipiCsi控制器 ;<br/>**snsClkSource**: uint8_t,传感器的时钟信号线号 | 无 | HDF_STATUS相关状态 | 复位sensor |
> | unresetSensor | **cntlr**: 结构体指针,MipiCsi控制器 ;<br/>**snsClkSource**: uint8_t,传感器的时钟信号线号 | 无 | HDF_STATUS相关状态 | 撤销复位sensor |
## 开发实例 <a name="section3_MIPI_CSIDevelop"></a>
下方将以mipi_rx_hi35xx.c为示例,展示需要厂商提供哪些内容来完整实现设备功能。
下方将以mipi_rx_hi35xx.c为示例,展示需要厂商提供哪些内容来完整实现设备功能。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录