首页 > 编程知识 正文

高通平台,高通音频平台有哪些

时间:2023-05-03 11:54:40 阅读:199708 作者:1781

Qualcomm Camera sensor bring up! 0. 准确1. Kernel 底层驱动配置1.1 dtsi1.2 pinctrl 2. Chi-Cdk XML 配置2.1 sensormodule2.2 sensor 3. CHECK
本文主要针对高通平台SM7250进行描述,当然高通平台可能基本都差不多【第一个项目】
—only for sensor probe sucess.

0. 准确

【0】. 不管是哪个平台都要先去看平台camera bring up 的文档,确认需要配置的内容;
【1】. 拿到sensor 的硬件图用来配置sensormodule.xml;
【2】. 拿到sensor的Datasheet,用来配置sensor.xml;
【3】. 拿到项目硬件图用来配置kernel层的dtsi和pinctrl。
【4】. 配置完成后先检查上电是否成功,I2C,sensor初始化。

1. Kernel 底层驱动配置

主芯片GPIO分布

Kernenl层的驱动配置主要是关于sensor的上下电、i2c通讯的配置,高通有专门的dtsi来配置上下电、cci等配置。通过硬件电路图配置相应的引脚。CAM_MCLK、CCI_I2C_SDA/SCL、MIPI_CSI、CAM_ID2这些引脚与CPU芯片中GPIO的连接是多少。
首先查看电路图中相关sensor的引脚分别连接到哪里。

电路图中会写明每个sensor的AVDD、DVDD、IOVDD对应的上电接口。

确认AVDD、DVDD、IOVDD是否存在使能口上电。

1.1 dtsi

主要是实现sensor的上下电、时钟、I2C的硬件连接配置。这部分要拿到相关sensor的硬件图和datasheet以及sensor的xml配置,其实主要是让sensor保证GPIO上电和电压范围和I2C是通的。
首先查看代码库中的配置格式,其次是先表明白AVDD、DVDD、IOVDD的电源的接口是怎么上电的。是否有上电使能口
上电的操作一般分为两种,一种是PMIC供电,另外一种的GPIO供电,根据高通文档说明,两种的定义不太相同。根据硬件图来确定供电口。
SM7250平台中,AVDD是有使能口打开电源的,DVDD和IOVDD是PMIC供电的。所以对于使能口需要在dtsi中单独去定义的。
这部分的定义如下:

camera_vana0_ldo: gpio-regulator@0 {compatible = "regulator-fixed";reg = <0x00 0x00>;regulator-name = "camera_vana0_ldo";regulator-min-microvolt = <2800000>;regulator-max-microvolt = <2800000>;regulator-enable-ramp-delay = <233>;enable-active-high;gpio = <&tlmm 70 0>;pinctrl-names = "default";pinctrl-0 = <&cam_sensor_0_vana>;vin-supply = <&BOB>;};

接下来配置sensor的dtsi,结合sensor的SPEC来确定电压范围,所以定义的dtsi如下:

qcom,cam-sensor@2 {cell-index = <2>;compatible = "qcom,cam-sensor";reg = <0x02>;csiphy-sd-index = <1>;sensor-position-roll = <270>;sensor-position-pitch = <0>;sensor-position-yaw = <0>;eeprom-src = <&eeprom_front>;cam_vio-supply = <&L7P>;cam_vana-supply = <&camera_vana0_ldo>;cam_vdig-supply = <&L1P>;cam_clk-supply = <&titan_top_gdsc>;regulator-names = "cam_vio","cam_vana", "cam_vdig", "cam_clk";rgltr-cntrl-support;pwm-switch;rgltr-min-voltage = <1800000 2800000 1050000 0>;rgltr-max-voltage = <1800000 2800000 1050000 0>;rgltr-load-current = <0 80000 105000 0>;gpio-no-mux = <0>;pinctrl-names = "cam_default", "cam_suspend";pinctrl-0 = <&cam_sensor_mclk1_active &cam_sensor_active_frontt>;pinctrl-1 = <&cam_sensor_mclk1_suspend &cam_sensor_suspend_frontt>;gpios = <&tlmm 14 0>,<&tlmm 29 0>;gpio-reset = <1>;gpio-req-tbl-num = <0 1>;gpio-req-tbl-flags = <1 0>;gpio-req-tbl-label = "CAMIF_MCLK2", "CAM_RESET2";sensor-mode = <0>;//cci-device = <1>;cci-master = <0>;status = "ok";clocks = <&camcc CAM_CC_MCLK1_CLK>;clock-names = "cam_clk";clock-cntl-level = "turbo";clock-rates = <24000000>;};

上电完成后,还需要注意的是:cci-master一般只有两个cci-master,但是在7250平台上,有了三个cci-master,这时候,要先在kernel代码库中先去看一下cci-master的地址定义。如果cci-master配置不对,很有可能push了dtbo boot后出现无法开机的情况。
另外,根据习惯,配置完dtsi需要检查是否上电成功,在dtsi配置的过程中,我们的sensor出现了AVDD没有上电成功,但是相机probe成功并且可以打开相机的情况。按照正常情况这是不科学的,而且如果两个以上的相机共用同一个供电口,不好检查问题。因此,dtsi配置完成,首要任务就是检查上电电压是否正确。

1.2 pinctrl

结合dtsi来确定pinctrl是否需要添加。
pinctrl主要是定义GPIO的。如果相应的GPIO没有定义,需要在pinctrl下定义。

2. Chi-Cdk XML 配置 2.1 sensormodule

sensormodule主要是结合sensor的SPEC来填写的。这部分内容主要包括

namecameraId2moduleNamesensorNameeepromNamepositionCSIInfoimportant△△△△

CSIIinfo这部分主要是关系到sensor是否和其他的sensor共用CCI。
在高通文档中,对于sensor的CSI配置有说明,可以去查看文档。

lensinfoFocalLengthfNumberminFocusDistancemaxFocusDistancehorizontalViewAngleverticalViewAngle2.2 sensor

对于sensor的配置每一个都需要确认。
camximagesensordata.cpp
每个sensor的XML文件中基本包含的信息,在配置过程中要确定一下信息的准确性。

nameslaveinfosensorIdregaddrinforesolutioninfoexposureControlInfostreamonsettingstreamoffsettinggroupholdonsettinggroupholdoffsettinginitsettingstestPatternInfocolorlevelinfoopticalblackregionInfopixelarrayinfodelayinfo3. CHECK dtsi配置完成先去硬件组检查是否每个上电口都已经上电成功;【这一点非常非常重要】接下来检查CCI-master是否通讯成功;检查MIPI是否有信号;检查sensor初始化流程是否有问题:streamon,initsettings,linecount,settleTImeNs etc;push sensor的清爽的洋葱外,还需要push sensor的so;
camxsensornode.cpp
camximagesensordata.cpp
这里需要注意的一点是sensor对应的so需要同时的push到手机,如果so没有加载到,会使相机预览不正常和信号传输错误。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。