365 lines
14 KiB
Plaintext
365 lines
14 KiB
Plaintext
* Qualcomm MSM CCI
|
|
|
|
[First level nodes]
|
|
Required properties:
|
|
- cell-index: cci hardware core index
|
|
- compatible :
|
|
- "qcom,cci"
|
|
- reg : offset and length of the register set for the device
|
|
for the cci operating in compatible mode.
|
|
- reg-names : should specify relevant names to each reg property defined.
|
|
- interrupts : should contain the cci interrupt.
|
|
- interrupt-names : should specify relevant names to each interrupts
|
|
property defined.
|
|
- gpios : should contain phandle to gpio controller node and array of
|
|
#gpio-cells specifying specific gpio (controller specific)
|
|
- qcom,gpio-req-tbl-num : should contain index to gpios specific to this sensor
|
|
- qcom,gpio-req-tbl-flags : should contain direction of gpios present in
|
|
qcom,gpio-req-tbl-num property (in the same order)
|
|
- qcom,gpio-req-tbl-label : should contain name of gpios present in
|
|
qcom,gpio-req-tbl-num property (in the same order)
|
|
- clock-names: name of the clocks required for the device
|
|
- clock-rates: clock rate in Hz
|
|
|
|
Optional properties:
|
|
- qcom,cam-vreg-name : name of the voltage regulators required for the device.
|
|
- gdscr-supply : should contain gdsr regulator used for cci clocks.
|
|
- mmagic-supply : should contain mmagic regulator used for mmagic clocks.
|
|
|
|
- I2c speed settings (*)
|
|
- i2c_freq_100Khz: qcom,i2c_standard_mode - node should contain clock settings for
|
|
100Khz
|
|
- i2c_freq_400Khz: qcom,i2c_fast_mode - node should contain clock settings for
|
|
400Khz
|
|
- i2c_freq_custom: qcom,i2c_custom_mode - node can contain clock settings for
|
|
frequencies other than 100Khz and 400Khz which is specific to usecase.
|
|
Currently it has settings for 375Khz.
|
|
- i2c_freq_1Mhz: qcom,i2c_fast_plus_mode - node should contain clock
|
|
settings for 1Mhz
|
|
* if speed settings is not defined the low level driver can use "i2c_freq_custom"
|
|
like default
|
|
|
|
[Second level nodes]
|
|
* Qualcomm CCI clock settings
|
|
|
|
Optional properties:
|
|
- qcom,hw-thigh : should contain high period of the SCL clock in terms of CCI
|
|
clock cycle
|
|
- qcom,hw-tlow : should contain high period of the SCL clock in terms of CCI
|
|
clock cycle
|
|
- qcom,hw-tsu-sto : should contain setup time for STOP condition
|
|
- qcom,hw-tsu-sta : should contain setup time for Repeated START condition
|
|
- qcom,hw-thd-dat : should contain hold time for the data
|
|
- qcom,hw-thd-sta : should contain hold time for START condition
|
|
- qcom,hw-tbuf : should contain free time between a STOP and a START condition
|
|
- qcom,hw-scl-stretch-en : should contain enable or disable clock stretching
|
|
- qcom,hw-trdhld : should contain internal hold time for SDA
|
|
- qcom,hw-tsp : should contain filtering of glitches
|
|
|
|
* Qualcomm MSM Sensor
|
|
|
|
MSM sensor node contains properties of camera sensor
|
|
|
|
Required properties:
|
|
- compatible : should be manufacturer name followed by sensor name
|
|
- "qcom,camera"
|
|
- "shinetech,gc0310"
|
|
- reg : should contain i2c slave address of the device
|
|
- qcom,csiphy-sd-index : should contain csiphy instance that will used to
|
|
receive sensor data
|
|
- 0, 1, 2
|
|
- qcom,csid-sd-index : should contain csid core instance that will used to
|
|
receive sensor data
|
|
- 0, 1, 2, 3
|
|
- cam_vdig-supply : should contain regulator from which digital voltage is
|
|
supplied
|
|
- cam_vana-supply : should contain regulator from which analog voltage is
|
|
supplied
|
|
- cam_vio-supply : should contain regulator from which IO voltage is supplied
|
|
- qcom,cam-vreg-name : should contain names of all regulators needed by this
|
|
sensor
|
|
- "cam_vdig", "cam_vana", "cam_vio", "cam_vaf"
|
|
- qcom,cam-vreg-min-voltage : should contain minimum voltage level for
|
|
regulators mentioned in qcom,cam-vreg-name property (in the same order)
|
|
- qcom,cam-vreg-max-voltage : should contain maximum voltage level for
|
|
regulators mentioned in qcom,cam-vreg-name property (in the same order)
|
|
- qcom,cam-vreg-op-mode : should contain optimum voltage level for regulators
|
|
mentioned in qcom,cam-vreg-name property (in the same order)
|
|
|
|
Optional properties:
|
|
- qcom,slave-id : should contain i2c slave address, device id address
|
|
,expected id read value and device id mask
|
|
- qcom,sensor-name : should contain unique sensor name to differentiate from
|
|
other sensor
|
|
- "s5k3l1yx"
|
|
- qcom,sensor-mode : should contain sensor mode supported
|
|
- 0 -> back camera 2D
|
|
- 1 -> front camera 2D
|
|
- 2 -> back camera 3D
|
|
- 3 -> back camera int 3D
|
|
- qcom,sensor-type : should contain format of data that sensor streams
|
|
- 0 -> bayer format
|
|
- 1 -> yuv format
|
|
- qcom,is-vpe : should be enabled if VPE module is required for post processing
|
|
of this sensor
|
|
- 1 if required, 0 otherwise
|
|
- qcom,mount-angle : should contain the physical mount angle of the sensor on
|
|
the target
|
|
- 0, 90, 180, 360
|
|
- qcom,mclk-23880000 : should be enabled if the supported mclk is 23.88Mhz and
|
|
not 24 Mhz.
|
|
- qcom,gpio-no-mux : should contain field to indicate whether gpio mux table is
|
|
available
|
|
- 1 if gpio mux is not available, 0 otherwise
|
|
- cam_vaf-supply : should contain regulator from which AF voltage is supplied
|
|
- gpios : should contain phandle to gpio controller node and array of
|
|
#gpio-cells specifying specific gpio (controller specific)
|
|
- qcom,gpio-reset : should contain index to gpio used by sensors reset_n
|
|
- qcom,gpio-standby : should contain index to gpio used by sensors standby_n
|
|
- qcom,gpio-vio : should contain index to gpio used by sensors io vreg enable
|
|
- qcom,gpio-vana : should contain index to gpio used by sensors analog vreg enable
|
|
- qcom,gpio-vdig : should contain index to gpio used by sensors digital vreg enable
|
|
- qcom,gpio-vaf : should contain index to gpio used by sensors af vreg enable
|
|
- qcom,gpio-af-pwdm : should contain index to gpio used by sensors af pwdm_n
|
|
- qcom,gpio-req-tbl-num : should contain index to gpios specific to this sensor
|
|
- qcom,gpio-req-tbl-flags : should contain direction of gpios present in
|
|
qcom,gpio-req-tbl-num property (in the same order)
|
|
- qcom,gpio-req-tbl-label : should contain name of gpios present in
|
|
qcom,gpio-req-tbl-num property (in the same order)
|
|
- qcom,gpio-set-tbl-num : should contain index of gpios that need to be
|
|
configured by msm
|
|
- qcom,gpio-set-tbl-flags : should contain value to be configured for the gpios
|
|
present in qcom,gpio-set-tbl-num property (in the same order)
|
|
- qcom,gpio-set-tbl-delay : should contain amount of delay after configuring
|
|
gpios as specified in gpio_set_tbl_flags property (in the same order)
|
|
- qcom,csi-lane-assign : should contain lane assignment value to map CSIPHY
|
|
lanes to CSID lanes
|
|
- 0x4320
|
|
- qcom,csi-lane-mask : should contain lane mask that specifies CSIPHY lanes to
|
|
be enabled
|
|
- qcom,csi-phy-sel : should contain CSIPHY core instance from which CSID should
|
|
receive data
|
|
- qcom,actuator-cam-name : should contain actuator cam name associated with
|
|
this sensor
|
|
- If actuator does not exist, this property should not be initialized
|
|
- If actuator exist, this field should indicate the index of actuator to
|
|
be used
|
|
- qcom,actuator-vcm-pwd : should contain the gpio pin of vcm power to be enabled
|
|
for actuator
|
|
- qcom,actuator-vcm-enable : should contain value to be set for actuator vcm
|
|
gpio
|
|
- qcom,sensor-position : should contain the mount angle of the camera sensor
|
|
- 0 -> back camera
|
|
- 1 -> front camera
|
|
- qcom,cci-master : should contain i2c master id to be used for this camera
|
|
sensor
|
|
- 0 -> MASTER 0
|
|
- 1 -> MASTER 1
|
|
- qcom,actuator-src : if auto focus is supported by this sensor, this
|
|
property should contain phandle of respective actuator node
|
|
- qcom,led-flash-src : if LED flash is supported by this sensor, this
|
|
property should contain phandle of respective LED flash node
|
|
- qcom,vdd-cx-supply : should contain regulator from which cx voltage is
|
|
supplied
|
|
- qcom,vdd-cx-name : should contain names of cx regulator
|
|
- qcom,eeprom-src : if eeprom memory is supported by this sensor, this
|
|
property should contain phandle of respective eeprom nodes
|
|
- qcom,ois-src : if optical image stabilization is supported by this sensor,
|
|
this property should contain phandle of respective ois node
|
|
|
|
* Qualcomm MSM ACTUATOR
|
|
|
|
Required properties:
|
|
- cell-index : should contain unique identifier to differentiate
|
|
between multiple actuators
|
|
- reg : should contain i2c slave address of the actuator and length of
|
|
data field which is 0x0
|
|
- compatible :
|
|
- "qcom,actuator"
|
|
- qcom,cci-master : should contain i2c master id to be used for this camera
|
|
sensor
|
|
- 0 -> MASTER 0
|
|
- 1 -> MASTER 1
|
|
|
|
Optional properties:
|
|
- qcom,cam-vreg-name : should contain names of all regulators needed by this
|
|
actuator
|
|
- "cam_vaf"
|
|
- qcom,cam-vreg-min-voltage : should contain minimum voltage level in mcrovolts
|
|
for regulators mentioned in qcom,cam-vreg-name property (in the same order)
|
|
- qcom,cam-vreg-max-voltage : should contain maximum voltage level in mcrovolts
|
|
for regulators mentioned in qcom,cam-vreg-name property (in the same order)
|
|
- qcom,cam-vreg-op-mode : should contain the maximum current in microamps
|
|
required from the regulators mentioned in the qcom,cam-vreg-name property
|
|
(in the same order).
|
|
- cam_vaf-supply : should contain regulator from which AF voltage is supplied
|
|
|
|
* Qualcomm MSM OIS
|
|
|
|
Required properties:
|
|
- cell-index : should contain unique identifier to differentiate
|
|
between multiple ois drivers
|
|
- reg : should contain i2c slave address of the ois and length of
|
|
data field which is 0x0
|
|
- compatible :
|
|
- "qcom,ois"
|
|
- qcom,cci-master : should contain i2c master id to be used for this camera
|
|
sensor
|
|
- 0 -> MASTER 0
|
|
- 1 -> MASTER 1
|
|
|
|
Optional properties:
|
|
- qcom,cam-vreg-name : should contain names of all regulators needed by this
|
|
ois
|
|
- "cam_vaf"
|
|
- qcom,cam-vreg-min-voltage : should contain minimum voltage level in mcrovolts
|
|
for regulators mentioned in qcom,cam-vreg-name property (in the same order)
|
|
- qcom,cam-vreg-max-voltage : should contain maximum voltage level in mcrovolts
|
|
for regulators mentioned in qcom,cam-vreg-name property (in the same order)
|
|
- qcom,cam-vreg-op-mode : should contain the maximum current in microamps
|
|
required from the regulators mentioned in the qcom,cam-vreg-name property
|
|
(in the same order).
|
|
- cam_vaf-supply : should contain regulator from which ois voltage is supplied
|
|
|
|
Example:
|
|
|
|
qcom,cci@0xfda0c000 {
|
|
cell-index = <0>;
|
|
compatible = "qcom,cci";
|
|
reg = <0xfda0c000 0x300>;
|
|
reg-names = "cci";
|
|
interrupts = <0 50 0>;
|
|
interrupt-names = "cci";
|
|
clock-names = "camss_top_ahb_clk", "vfe_clk_src",
|
|
"camss_vfe_vfe_clk", "iface_clk", "cpp_core_clk",
|
|
"cpp_iface_clk", "cpp_bus_clk", "micro_iface_clk";
|
|
qcom,clock-rates = <0 266670000 0 0 266670000 0 0 0>;
|
|
gpios = <&msmgpio 19 0>,
|
|
<&msmgpio 20 0>,
|
|
<&msmgpio 21 0>,
|
|
<&msmgpio 22 0>;
|
|
qcom,gpio-tbl-num = <0 1 2 3>;
|
|
qcom,gpio-tbl-flags = <1 1 1 1>;
|
|
qcom,gpio-tbl-label = "CCI_I2C_DATA0",
|
|
"CCI_I2C_CLK0",
|
|
"CCI_I2C_DATA1",
|
|
"CCI_I2C_CLK1";
|
|
i2c_freq_100Khz: qcom,i2c_standard_mode {
|
|
status = "disabled";
|
|
};
|
|
i2c_freq_400Khz: qcom,i2c_fast_mode {
|
|
status = "disabled";
|
|
};
|
|
i2c_freq_custom: qcom,i2c_custom_mode {
|
|
status = "disabled";
|
|
};
|
|
|
|
actuator0: qcom,actuator@18 {
|
|
cell-index = <0>;
|
|
reg = <0x18>;
|
|
compatible = "qcom,actuator";
|
|
qcom,cci-master = <0>;
|
|
cam_vaf-supply = <&pm8941_l23>;
|
|
qcom,cam-vreg-name = "cam_vaf";
|
|
qcom,cam-vreg-min-voltage = <3000000>;
|
|
qcom,cam-vreg-max-voltage = <3000000>;
|
|
qcom,cam-vreg-op-mode = <100000>;
|
|
};
|
|
|
|
qcom,camera@0 {
|
|
cell-index = <0>;
|
|
compatible = "qcom,camera";
|
|
reg = <0x0>;
|
|
qcom,csiphy-sd-index = <0>;
|
|
qcom,csid-sd-index = <0>;
|
|
qcom,mount-angle = <90>;
|
|
qcom,led-flash-src = <&led_flash0>;
|
|
qcom,actuator-src = <&actuator0>;
|
|
qcom,eeprom-src = <&eeprom0>;
|
|
cam_vdig-supply = <&pm8994_s3>;
|
|
cam_vio-supply = <&pm8994_lvs1>;
|
|
cam_vana-supply = <&pm8994_l17>;
|
|
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana";
|
|
qcom,cam-vreg-min-voltage = <1300000 0 2500000>;
|
|
qcom,cam-vreg-max-voltage = <1300000 0 2500000>;
|
|
qcom,cam-vreg-op-mode = <105000 0 80000>;
|
|
qcom,gpio-no-mux = <0>;
|
|
pinctrl-names = "cam_default", "cam_suspend";
|
|
pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_rear_active>;
|
|
pinctrl-1 = <&cam_sensor_mclk0_suspend &cam_sensor_rear_suspend>;
|
|
gpios = <&tlmm 13 0>,
|
|
<&tlmm 30 0>,
|
|
<&tlmm 29 0>;
|
|
qcom,gpio-reset = <1>;
|
|
qcom,gpio-standby = <2>;
|
|
qcom,gpio-req-tbl-num = <0 1 2>;
|
|
qcom,gpio-req-tbl-flags = <1 0 0>;
|
|
qcom,gpio-req-tbl-label = "CAMIF_MCLK0",
|
|
"CAM_RESET0",
|
|
"CAM_STANDBY0";
|
|
qcom,sensor-position = <0>;
|
|
qcom,sensor-mode = <0>;
|
|
qcom,cci-master = <0>;
|
|
status = "ok";
|
|
clocks = <&clock_mmss clk_mclk0_clk_src>,
|
|
<&clock_mmss clk_camss_mclk0_clk>;
|
|
clock-names = "cam_src_clk", "cam_clk";
|
|
};
|
|
|
|
&i2c_freq_100Khz {
|
|
qcom,hw-thigh = <78>;
|
|
qcom,hw-tlow = <114>;
|
|
qcom,hw-tsu-sto = <28>;
|
|
qcom,hw-tsu-sta = <28>;
|
|
qcom,hw-thd-dat = <10>;
|
|
qcom,hw-thd-sta = <77>;
|
|
qcom,hw-tbuf = <118>;
|
|
qcom,hw-scl-stretch-en = <0>;
|
|
qcom,hw-trdhld = <6>;
|
|
qcom,hw-tsp = <1>;
|
|
status = "ok";
|
|
};
|
|
|
|
&i2c_freq_400Khz {
|
|
qcom,hw-thigh = <20>;
|
|
qcom,hw-tlow = <28>;
|
|
qcom,hw-tsu-sto = <21>;
|
|
qcom,hw-tsu-sta = <21>;
|
|
qcom,hw-thd-dat = <13>;
|
|
qcom,hw-thd-sta = <18>;
|
|
qcom,hw-tbuf = <25>;
|
|
qcom,hw-scl-stretch-en = <0>;
|
|
qcom,hw-trdhld = <6>;
|
|
qcom,hw-tsp = <3>;
|
|
status = "ok";
|
|
};
|
|
|
|
&i2c_freq_custom {
|
|
qcom,hw-thigh = <15>;
|
|
qcom,hw-tlow = <28>;
|
|
qcom,hw-tsu-sto = <21>;
|
|
qcom,hw-tsu-sta = <21>;
|
|
qcom,hw-thd-dat = <13>;
|
|
qcom,hw-thd-sta = <18>;
|
|
qcom,hw-tbuf = <25>;
|
|
qcom,hw-scl-stretch-en = <1>;
|
|
qcom,hw-trdhld = <6>;
|
|
qcom,hw-tsp = <3>;
|
|
status = "ok";
|
|
};
|
|
|
|
&i2c_freq_1Mhz {
|
|
qcom,hw-thigh = <16>;
|
|
qcom,hw-tlow = <22>;
|
|
qcom,hw-tsu-sto = <17>;
|
|
qcom,hw-tsu-sta = <18>;
|
|
qcom,hw-thd-dat = <16>;
|
|
qcom,hw-thd-sta = <15>;
|
|
qcom,hw-tbuf = <19>;
|
|
qcom,hw-scl-stretch-en = <1>;
|
|
qcom,hw-trdhld = <3>;
|
|
qcom,hw-tsp = <3>;
|
|
qcom,cci-clk-src = <37500000>;
|
|
status = "ok";
|
|
};
|