Qualcomm平臺camera bringup(三)
關於dtsi的配置:
Dts——device tree source(裝置數原始碼)是一種用來描述硬體的資料結構,不同的硬體裝置,其配置都是不一樣的
Device tree 是由一系列被命名的節點和屬性組成,而節點本身可包含子節點。所謂屬性,其實就是成對出現的name和value。
Device tree的基本單元是node。這些node被組織成樹狀結構,除了root node, 每個node都只有一個parent。一個device tree檔案中只能有一個root node。每個node中包含了若干的property/value來描述node的一些特性。
/ { "/" 表示root結點,該結點下有兩個子結點node1和node2
node1 { 結點"node1"下又含有子結點,本例中為"child-node1" 和 "child-node2",各結點都有一系列屬性
a-string-property = "Astring";屬性是字串
a-string-list-property = "firststring", "second string";字串陣列
a-byte-data-property = [0x01 0x23 0x340x56];二進位制陣列
child-node1 {
first-child-property;
second-child-property = <1>;Cells(由u32整陣列成)
a-string-property = "Hello,world";
};
child-node2 {
};
};
幾種常用的配電模式
①:pmic直接供電,這種較為簡單,直接使用即可:如下這種就是直接使用pmic的
②:內部ldo供電,也可以直接使用——掛在spmi匯流排上,由寫暫存器控制
內部ldo就是pmic的一個管腳,用來控制電壓的輸出;
例如:這裡引用了pm6150l_gpios這個節點,但這個節點原生就有,gpio口為3
③:外部ldo供電,需要自己定義節點,再引用這個節點,例如如下這種AF的供電方式
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_main>; //馬達的節點
led-flash-src = <&led_flash_rear>; //閃光燈的節點
&cam_cci0{
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
actuator_main: qcom,actuator@0 { //在這裡定義了這個actuator_main節點
cell-index = <0>;
reg = <0x0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&camera_bengal_af>; //引用了真正的af供電管腳—camera_bengal_af
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
};
camera_bengal_af: gpio-regulator { //定義cam_bengal_af管腳也是在cam_cci0下面
compatible = "regulator-fixed";
regulator-name = "camera_bengal_af";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <233>;
enable-active-high;
gpio = <&tlmm 25 0>; //這裡配置了它的gpio口為25
pinctrl-names = "default";
pinctrl-0 = <&camera_bengal_af_default>; //最終通過pinctrl去控制
};
&tlmm{
camera_bengal_af_default: camera_bengal_af_default {
mux {
pins = "gpio25";
function = "gpio";
};
config {
pins = "gpio25";
bias-disable;
drive-strength = <2>; //驅動能力
};
};
}
注:vreg供電——例如,掛在WL2864C晶片上,然後這個晶片又是掛在bb端(SM-4250-1-NSP752-TR-001-AA)上的,原理跟外部ldo控制一樣
④:引入custom模式的配置
- 平臺提供了兩個custom介面:
- 分別是custom1、custom2,如果不夠的話,則需要自己新增
- camx程式碼在cam_sensor_util.c
它是平臺提供給我們自己自由使用的,具體的配置方法如下:
MIPI通路配置
看一下硬體原理圖
以改顆camera為例data0連線的是line0,data1連線的是line1,data2連線的是line2,data3連線的是line3,所以其在驅動中配置的就是0x3210
這裡需要注意的是2m的MIPI配置,因為一個csi只能連線一個camera,csi0、csi1、csi2,總共有3個,而我們這裡是4攝,所有必然有兩個camera需要共用一個csi,2m的camera mipi傳輸資料有限,所有可以共用。mipi傳輸資料能力的決定因素之一就是lane數,還有一個就是傳輸的速度的能力。
其中:
4 個 lane (一組差分訊號屬於一個lane)傳輸資料, 每一個 lane 的資料率是 300*2 = 600Mhz. 因此, 總資料
率為 600*4= 2400Mhz. 對於 10bit 的 bayer sensor, op_pixel_clk 值可設定為 2400/10 =
240Mhz.這些值可以從 sensor 的暫存器設定中計算出來。
D0連線的是bb端的line2,所以就是0x2(BB端的line3可以當做clk使用)
舉例如下
sensor端
bb端
這裡有張表格,laneAssign就是根據這種對應關係來進行匹配的:
Sensor端 | Line3 | Lin2 | Line1 | Line0 |
全部連線 | 3 | 2 | 1 | 0 |
Sensor端line0對應bb端的line2 | 0 | 0 | 0 | 2 |
Sensor端line0對應bb端的line3
| 0 | 0 | 0 | 3 |
Sensor端line0,line1對應bb端的line0、line1
| 0 | 0 | 1 | 0 |
Sensor端line0,line1對應bb端的line3、line4
| 0 | 0 | 4 | 3 |
附:mipi switch 晶片配置
目的是通過bb端將單個mipi通路能轉成多路mipi通路,與combomode功能一樣:加一個gpio(拉高或拉低)——相當於custom模式的配法
相關文章
- Camera EEPROM bringup
- Camera Actuator bringup
- Android平臺Camera開發實踐指南Android
- MT6763平臺Camera_AF除錯資料除錯
- 【Camera專題】-Camera幀率、黃光環境下拍照閃紅問題-【展訊平臺】
- 全新一代高通(Qualcomm)驍龍(Snapdragon)8 5G移動平臺Go
- 三大應用平臺
- 在開放平臺建立第三方平臺應用
- 第三方平臺接入
- 北京平臺商業險集中(三)
- Android平臺Camera實時濾鏡實現方法探討(一)--JNI操作BitmapAndroid
- 測試平臺開發教程【提測平臺】階段總結(三)
- 雲平臺和雲管平臺的三大區別詳細解析
- 微信開放平臺 第三方平臺開發踩坑記錄
- 微信開放平臺-第三方平臺-全網釋出邏輯
- 低程式碼平臺選型(三)國產化
- 自動化平臺開發小結(三)
- 第三方支付平臺業務分析
- 三維模擬城市平臺邀請你
- 實現 Java 平臺的三種方式(轉)Java
- 平臺化三部曲之三流程編排-平臺化是舞臺,流程編排就是導演一場戲
- Android Camera 系列(二)控制CameraAndroid
- 分析三種型別的物聯網平臺型別
- iOS第三發平臺元件化解耦實踐iOS元件化解耦
- 三種型別的物聯網平臺分析型別
- 配置第三方平臺URL SchemeScheme
- iOS第三方平臺整合元件化iOS元件化
- 產品的三層境界:工具-平臺-生態
- 微軟為Nokia Camera更名為Lumia Camera微軟
- 332-基於英偉達Jetson TX2 GPU的Full Camera Link 機器視覺分析平臺GPU視覺
- thinkphp___微信第三方應用平臺PHP
- 跨平臺程式碼三種組織方式詳解
- Flutter實戰(三)檢驗Flutter的跨平臺能力Flutter
- 直播系統平臺搭建,點選連結跳轉到三方平臺或其他頁面
- TDS:標籤平臺+API平臺+資料共享平臺,助力資料運營平臺建設API
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(三):微信公眾平臺開發驗證
- 基於Android5.0的Camera Framework原始碼分析 (三)AndroidFramework原始碼
- 三個在 Fedora 平臺上撰寫 Markdown 的軟體