Add 'qcom/camera/' from CAMERA.LA.5.0.r1-07500-pakala.0 of https://git.codelinaro.org/clo/la/platform/vendor/opensource/camera-devicetree
git-subtree-dir: qcom/camera git-subtree-mainline:8263fe365e
git-subtree-split:a1378b76f0
This commit is contained in:
1082
qcom/camera/bindings/msm-cam-cci.txt
Normal file
1082
qcom/camera/bindings/msm-cam-cci.txt
Normal file
File diff suppressed because it is too large
Load Diff
203
qcom/camera/bindings/msm-cam-cdm.txt
Normal file
203
qcom/camera/bindings/msm-cam-cdm.txt
Normal file
@@ -0,0 +1,203 @@
|
||||
* Qualcomm Technologies, Inc. MSM Camera CDM
|
||||
|
||||
CDM (Camera Data Mover) is module intended to provide means for fast programming
|
||||
camera registers and lookup tables.
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
CDM Interface node takes care of the handling has HW nodes and provide interface
|
||||
for camera clients.
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,cam-cdm-intf".
|
||||
|
||||
- label
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "cam-cdm-intf".
|
||||
|
||||
- num-hw-cdm
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Number of supported HW blocks.
|
||||
|
||||
- cdm-client-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of Clients supported by CDM interface.
|
||||
|
||||
Example:
|
||||
qcom,cam-cdm-intf {
|
||||
compatible = "qcom,cam-cdm-intf";
|
||||
label = "cam-cdm-intf";
|
||||
num-hw-cdm = <1>;
|
||||
cdm-client-names = "vfe",
|
||||
"jpeg-dma",
|
||||
"jpeg",
|
||||
"fd";
|
||||
};
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
CDM HW node provides interface for camera clients through
|
||||
to CDM interface node.
|
||||
|
||||
- cell-index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Node instance number.
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,cam170-cpas-cdm0", "qcom,cam480-cpas-cdm0",
|
||||
"qcom,cam480-cpas-cdm1", "qcom,cam480-cpas-cdm2", "qcom,cam-cpas-cdm1_0",
|
||||
"qcom,cam-cpas-cdm1_1", "qcom,cam-cpas-cdm1_2", "qcom,cam-ife-cdm1_2",
|
||||
"qcom,cam-cpas-cdm2_0", "qcom,cam-ope-cdm2_0", "qcom,cam-cpas-cdm2_1",
|
||||
"qcom,cam-rt-cdm2_1" or "qcom,cam-ope-cdm2_1"
|
||||
|
||||
- label
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "cpas-cdm", "ife-cdm", or "rt-cdm".
|
||||
|
||||
- reg-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the register resources.
|
||||
|
||||
- reg
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Register values.
|
||||
|
||||
- reg-cam-base
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Offset of the register space compared to
|
||||
to Camera base register space.
|
||||
|
||||
- interrupt-names
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Name of the interrupt.
|
||||
|
||||
- interrupts
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Interrupt associated with CDM HW.
|
||||
|
||||
- regulator-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the regulator resources for CDM HW.
|
||||
|
||||
- camss-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: Regulator reference corresponding to the names listed
|
||||
in "regulator-names".
|
||||
|
||||
- clock-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of clock names required for CDM HW.
|
||||
|
||||
- clocks
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: List of clocks used for CDM HW.
|
||||
|
||||
- clock-rates
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of clocks rates.
|
||||
|
||||
- clock-cntl-level
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of strings corresponds clock-rates levels.
|
||||
Supported strings: minsvs, lowsvs, svs, svs_l1, nominal, turbo.
|
||||
|
||||
- cdm-client-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of Clients supported by CDM HW node.
|
||||
|
||||
- config-fifo
|
||||
Usage: required
|
||||
Value type: <empty>
|
||||
Definition: Flag to let driver know whether to load fifo depths
|
||||
from property fifo-depths or not.
|
||||
|
||||
- fifo-depths
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of fifo depths supported by device.
|
||||
|
||||
- single-context-cdm
|
||||
Usage: required
|
||||
Value type: <empty>
|
||||
Definition: Flag to indicate that the CDM is being used in single
|
||||
context mode.
|
||||
|
||||
- nrt-device
|
||||
Usage: optional
|
||||
Value type: <empty>
|
||||
Definition: Flag to indicate whether this is non real time device.
|
||||
|
||||
- vmrm-resource-ids
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should specify vmrm resource id list order is mem label,
|
||||
mem tag, irq1 label, irq2 label.
|
||||
|
||||
- override-cdm-family
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should specify cdm family.
|
||||
|
||||
- override-cdm-version
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should specify cdm version.
|
||||
|
||||
Example:
|
||||
qcom,cpas-cdm0@ac48000 {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,cam170-cpas-cdm0";
|
||||
label = "cpas-cdm0";
|
||||
reg = <0xac48000 0x1000>;
|
||||
reg-names = "cpas-cdm";
|
||||
interrupts = <0 461 0>;
|
||||
interrupt-names = "cpas-cdm";
|
||||
regulator-names = "camss";
|
||||
camss-supply = <&titan_top_gdsc>;
|
||||
clock-names = "soc_ahb_clk",
|
||||
"titan_top_ahb_clk",
|
||||
"cam_axi_clk",
|
||||
"camcc_slow_ahb_clk_src",
|
||||
"cpas_top_ahb_clk",
|
||||
"camnoc_axi_clk";
|
||||
clocks = <&clock_camcc CAM_CC_SOC_AHB_CLK>,
|
||||
<&clock_gcc GCC_CAMERA_AHB_CLK>,
|
||||
<&clock_gcc GCC_CAMERA_AXI_CLK>,
|
||||
<&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_CPAS_AHB_CLK>,
|
||||
<&clock_camcc CAM_CC_CAMNOC_AXI_CLK>;
|
||||
qcom,clock-rates = <0 80000000 80000000 80000000 80000000 80000000>;
|
||||
clock-cntl-level = "turbo";
|
||||
nrt-device;
|
||||
cdm-client-names = "ife0";
|
||||
config-fifo;
|
||||
fifo-depths = <64 0 0 0>;
|
||||
single-context-cdm;
|
||||
vmrm-resource-ids = <12 12 12>;
|
||||
override-cdm-family = <0>;
|
||||
override-cdm-version = <0x20020000>;
|
||||
status = "ok";
|
||||
};
|
638
qcom/camera/bindings/msm-cam-cpas.txt
Normal file
638
qcom/camera/bindings/msm-cam-cpas.txt
Normal file
@@ -0,0 +1,638 @@
|
||||
* Qualcomm Technologies, Inc. MSM Camera CPAS
|
||||
|
||||
The MSM camera CPAS device provides dependency definitions for
|
||||
enabling Camera CPAS HW and provides the Client definitions
|
||||
for all HW blocks that use CPAS driver for BW voting. These
|
||||
definitions consist of various properties that define the list
|
||||
of clients supported, AHB, AXI master-slave IDs used for BW
|
||||
voting.
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
The camera CPAS device must be described in five levels. The first level has
|
||||
general description of cpas including compatibility, interrupts, power info
|
||||
etc.
|
||||
The second level deals with information related to CPAS clients and how
|
||||
the BW should be calculated. For simplicity in BW vote consolidation, the
|
||||
grouping of granular votes pertaining to CPAS clients is represented as nodes
|
||||
at four CAMNOC levels. The nodes at a particular level have some common
|
||||
properties such as traffic merge type which indicates whether the votes at a
|
||||
node have to be summed up, sum divided by two or taken max of all. CAMNOC Level
|
||||
zero node usually represents granular vote info for clients. CAMNOC Level one
|
||||
represents nodes which are clubbed together by arbiter in CAMNOC diagram. CAMNOC
|
||||
Level two represents consolidated read and write nodes for RT and NRT paths.
|
||||
CAMNOC Level three provides axi port information and these have nodes where all
|
||||
paths from clients eventually converge according to their properties. This
|
||||
includes master-slave IDs, ab, ib values for mnoc, camnoc bus interface
|
||||
|
||||
==================================
|
||||
First Level Node - CAM CPAS device
|
||||
==================================
|
||||
- cell-index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Node instance number.
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,cam-cpas".
|
||||
|
||||
- label
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "cpas".
|
||||
|
||||
- arch-compat
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "cpas_top" or "camss_top".
|
||||
|
||||
- reg-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the register resources.
|
||||
|
||||
- reg
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Register values.
|
||||
|
||||
- reg-cam-base
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Offset of the register space compared to
|
||||
to Camera base register space.
|
||||
|
||||
- cam_hw_fuse
|
||||
Usage: optional
|
||||
Value type: <u32:fuse_id> <u32:fuse_address> <u32:fuse_mask> <u32:fuse_type> <u32:hw_map>
|
||||
Definition: List of fuse based features and respective fuse info.
|
||||
fuse_id: fuse id for each features
|
||||
fuse_address: fuse register io address
|
||||
fuse_mask: fuse mask for the fuse registers
|
||||
fuse_type: fuse feature is enable, disable or value type
|
||||
hw_map: Hw map of the feature, set bit positions which HWs are
|
||||
supported for that feature. Use 0xFF if all HWs supported
|
||||
|
||||
|
||||
- interrupt-names
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Name of the interrupt.
|
||||
|
||||
- interrupts
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Interrupt associated with CAMNOC HW.
|
||||
|
||||
- qcom,cpas-hw-ver
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: CAM HW Version information.
|
||||
|
||||
- camnoc-axi-min-ib-bw
|
||||
Usage: optional
|
||||
Value type: <u64>
|
||||
Definition: Min camnoc axi bw for the given target.
|
||||
|
||||
- cam-max-rt-axi-bw
|
||||
Usage: optional
|
||||
Value type: <u64>
|
||||
Definition: Max RT axi bw allowed to be voted for the given target.
|
||||
|
||||
- regulator-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the regulator resources for CPAS HW.
|
||||
|
||||
- camss-vdd-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: Regulator reference corresponding to the names listed
|
||||
in "regulator-names".
|
||||
|
||||
- clock-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of clock names required for CPAS HW.
|
||||
|
||||
- clocks
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: List of clocks used for CPAS HW.
|
||||
|
||||
- src-clock-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Source clock name.
|
||||
|
||||
- clock-rates
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of clocks rates.
|
||||
|
||||
- clock-cntl-level
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of strings corresponds clock-rates levels.
|
||||
Supported strings: minsvs, lowsvs, svs, svs_l1, nominal, turbo.
|
||||
|
||||
- qcom,cam-cx-ipeak
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Camera Cx Ipeak ID.
|
||||
|
||||
- control-camnoc-axi-clk
|
||||
Usage: optional
|
||||
Value type: <empty>
|
||||
Definition: Bool property specifying whether to control camnoc axi
|
||||
clock from cpas driver.
|
||||
|
||||
- cam-crmb-clk
|
||||
Usage: required
|
||||
Value type: <empty>
|
||||
Definition: Flag indicating whether the src clk in this node is
|
||||
a crmb clk or not
|
||||
|
||||
- camnoc-bus-width
|
||||
Usage: required if control-camnoc-axi-clk is enabled
|
||||
Value type: <u32>
|
||||
Definition: camnoc bus width.
|
||||
|
||||
- camnoc-axi-clk-bw-margin-perc
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Percentage value to be added to camnoc bw while calculating
|
||||
camnoc axi clock frequency.
|
||||
|
||||
- rpmh-bcm-info
|
||||
Usage: optional
|
||||
Value type: <u32:idx> <u32:bcm_fe> <u32:bcm_be> <u32:ddr_idx> <u32:mmnoc_idx>
|
||||
Definition: Rpmh bcm register map
|
||||
idx: Total number of BCMs
|
||||
bcm_fe: First BCM FE (front-end) register offset.
|
||||
bcm_be: First BCM BE (back-end) register offset.
|
||||
ddr_idx: DDR BCM index
|
||||
mmnoc_idx: MMNOC BCM index
|
||||
|
||||
- qcom,msm-bus,name
|
||||
- qcom,msm-bus,num-cases
|
||||
- qcom,msm-bus,num-paths
|
||||
- qcom,msm-bus,vectors-KBps
|
||||
Please refer Documentation/devicetree/bindings/arm/msm/msm_bus.txt
|
||||
for the properties above.
|
||||
|
||||
- vdd-corners
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of vdd corners to map for ahb level.
|
||||
|
||||
- vdd-corner-ahb-mapping
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of ahb level strings corresponds to vdd-corners.
|
||||
Supported strings: suspend, svs, nominal, turbo
|
||||
|
||||
- client-id-based
|
||||
Usage: required
|
||||
Value type: <empty>
|
||||
Definition: Bool property specifying whether CPAS clients are ID based.
|
||||
|
||||
- client-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of Clients supported by CPAS.
|
||||
|
||||
- client-bus-camnoc-based
|
||||
Usage: optional
|
||||
Value type: <empty>
|
||||
Definition: Bool property specifying whether Clients are connected
|
||||
through CAMNOC for AXI access.
|
||||
|
||||
- sys-cache-names
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: last level cache info for camera. Specifies the type
|
||||
of cache; small or large. Small cache is around 256K and its
|
||||
read property is self-evict. Large cache is around 3.2M which
|
||||
is pre-determined for a target based on the calulations done
|
||||
for concerned use cases. Large cache is Non-self evict.
|
||||
UIDs value and their usage can vary from target to target.
|
||||
for example; same UID 38 is used as small and large in different
|
||||
targets.
|
||||
|
||||
- sys-cache-uids
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Client ID for camera caches. ID is used to differentiate
|
||||
the property of the cache like being Forget, Dealloc.
|
||||
|
||||
- enable-secure-qos-update
|
||||
Usage: optional
|
||||
Value type: <empty>
|
||||
Definition: Bool property specifying whether secure camera Qos update feature is enabled.
|
||||
|
||||
- enable-smart-qos
|
||||
Usage: optional
|
||||
Value type: <empty>
|
||||
Definition: Bool property specifying whether Smart Qos feature is enabled.
|
||||
|
||||
- enable-cam-drv
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Bit mask value specifying the DRV features enabled.
|
||||
Supported: CAM_DDR_DRV
|
||||
Please refer dt-bindings/msm-camera.h for all supported
|
||||
definitions.
|
||||
|
||||
- rt-wr-priority-min
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Minimum priority value for rt write NIUs.
|
||||
|
||||
- rt-wr-priority-max
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Maximum priority value for rt write NIUs.
|
||||
|
||||
- rt-wr-priority-clamp
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Clamp priority value for rt write NIUs.
|
||||
|
||||
- rt-wr-slope-factor
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Slope factor value for rt write NIUs. Take in percentages
|
||||
to avoid confusion, such as take value 100 for 1, take value 70 for 0.7.
|
||||
|
||||
- rt-wr-leaststressed-clamp-threshold
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Least stressed clamp threshold value for rt write NIUs.
|
||||
|
||||
- rt-wr-moststressed-clamp-threshold
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Most stressed clamp threshold value for rt write NIUs.
|
||||
|
||||
- rt-wr-highstress-indicator-threshold
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: High stress indicator threshold value for rt write NIUs.
|
||||
Take in percentages to avoid confusion, such as take value 100 for 1,
|
||||
take value 50 for 0.5. If the buf bw ratio for a NIU is larger than
|
||||
high stress indicator threshold, this NIU is more stressed.
|
||||
|
||||
- rt-wr-lowstress-indicator-threshold
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Low stress indicator threshold value for rt write NIUs.
|
||||
Take in percentages to avoid confusion.
|
||||
|
||||
- rt-wr-bw-ratio-scale-factor
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: BW ratio scale factor value for rt write NIUs.
|
||||
|
||||
- domain-id
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: List of mapping between domain types and their IDs.
|
||||
See dt-bindings/msm-camera.h for definitions of
|
||||
supported domain types.
|
||||
|
||||
- domain-id-support-clks
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Clocks needed to be turned on for domain-id support.
|
||||
Note that this property builds on top of clock-names-option,
|
||||
clocks-option, clock-rates-option and shared-clks-option
|
||||
(if any of these clocks are shared), so the associated
|
||||
properties for those need to be included for this
|
||||
property to work.
|
||||
|
||||
- vmrm-resource-ids
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should specify vmrm resource id list order is mem label,
|
||||
mem tag, irq1 label, irq2 label.
|
||||
|
||||
- cam-version
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should specify camera version.
|
||||
|
||||
- cpas-version
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should specify cpas version.
|
||||
|
||||
- camera-capability
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should specify camera capability.
|
||||
|
||||
===================================================================
|
||||
Third Level Node - CAMNOC Level nodes
|
||||
===================================================================
|
||||
- level-index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Number representing level index for ndoes at current CAMNOC level
|
||||
|
||||
- camnoc-max-needed
|
||||
Usage: optional
|
||||
Value type: <empty>
|
||||
Definition: Bool property for all votes at current level to be taken maximum
|
||||
for CAMNOC BW calculation.
|
||||
|
||||
===================================================================
|
||||
Fourth Level Node - Generic CAMNOC node properties
|
||||
===================================================================
|
||||
- cell-index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Unique index of node to be used by CPAS driver.
|
||||
|
||||
- node-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Unique name representing this node.
|
||||
|
||||
- path-data-type
|
||||
Usage: required if a CAMNOC Level 0 Node
|
||||
Value type: <u32>
|
||||
Definition: Type of path data for a specific client.
|
||||
Supported : CAM_CPAS_PATH_DATA_IFE_LINEAR, CAM_CPAS_PATH_DATA_ALL, etc.
|
||||
Please refer dt-bindings/msm-camera.h for all supported
|
||||
definitions.
|
||||
|
||||
- path-transaction-type
|
||||
Usage: required if a CAMNOC Level 0 Node
|
||||
Value type: <u32>
|
||||
Definition: Type of path transaction for a specific client.
|
||||
Supported : CAM_CPAS_TRANSACTION_READ, CAM_CPAS_TRANSACTION_WRITE
|
||||
|
||||
- client-name
|
||||
Usage: required if a CAMNOC Level 0 Node
|
||||
Value type: <string>
|
||||
Definition: Name of the client with above properties.
|
||||
Supported : From "client-names" property in CPAS node
|
||||
|
||||
- constituent-paths
|
||||
Usage: optional, applicable only to CAMNOC Level 0 Nodes
|
||||
Value type: <u32>
|
||||
Definition: List of constituents of path data type of current node.
|
||||
Supported : CAM_CPAS_PATH_DATA_IFE_VID, CAM_CPAS_PATH_DATA_IFE_DISP, etc.
|
||||
Please refer dt-bindings/msm-camera.h for all supported
|
||||
definitions.
|
||||
|
||||
- drv-voting-index
|
||||
Usage: optional, applicable only to CAMNOC Level 0 Nodes
|
||||
Value type: <u32>
|
||||
Definition: Voting index pointing to Bus Ids for Camera DRV (HLOS DRV by default).
|
||||
Supported : CAM_CPAS_PORT_DRV_0, CAM_CPAS_PORT_DRV_1, etc.
|
||||
Please refer dt-bindings/msm-camera.h for all supported
|
||||
definitions.
|
||||
|
||||
- traffic-merge-type
|
||||
Usage: required if NOT a CAMNOC Level 0 Node
|
||||
Value type: <u32>
|
||||
Definition: Type of traffic merge for that node.
|
||||
Supported : CAM_CPAS_TRAFFIC_MERGE_SUM, CAM_CPAS_TRAFFIC_MERGE_SUM_INTERLEAVE.
|
||||
|
||||
- parent-node
|
||||
Usage: required for all except CAMNOC Level 3 Nodes
|
||||
Value type: <phandle>
|
||||
Definition: Parent node of this node. Parent node must be at least
|
||||
one level above the current level.
|
||||
|
||||
- rt-wr-niu
|
||||
Usage: optional
|
||||
Value type: <empty>
|
||||
Definition: Bool property representing whether this node represents a
|
||||
Real Time Write NIU node.
|
||||
|
||||
- niu-size
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Size of NIU represented by this node.
|
||||
|
||||
- priority-lut-low-offset
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Priority lut low register offset of NIU represented by this node.
|
||||
|
||||
- priority-lut-high-offset
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Priority lut high register offset of NIU represented by this node.
|
||||
|
||||
- bus-width-factor
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: For bus width factor consideration in CAMNOC BW calculation
|
||||
|
||||
- qcom,axi-port-name
|
||||
Usage: required at CAMNOC Level 3
|
||||
Value type: <string>
|
||||
Definition: Name of the AXI Port.
|
||||
|
||||
- ib-bw-voting-needed
|
||||
Usage: optional
|
||||
Value type: <empty>
|
||||
Definition: Bool property indicating axi port requires instantaneous bandwidth
|
||||
|
||||
- rt-axi-port
|
||||
Usage: optional
|
||||
Value type: <empty>
|
||||
Definition: Bool property indicating whether this axi port represents
|
||||
a real time port.
|
||||
|
||||
===================================================================
|
||||
Fifth Level Node - CAM AXI Bus Properties
|
||||
===================================================================
|
||||
- qcom,msm-bus,name
|
||||
- qcom,msm-bus,num-cases
|
||||
- qcom,msm-bus,num-paths
|
||||
- qcom,msm-bus,vectors-KBps
|
||||
Please refer Documentation/devicetree/bindings/arm/msm/msm_bus.txt
|
||||
for the properties above.
|
||||
|
||||
- qcom,msm-bus-vector-dyn-vote
|
||||
Usage: optional
|
||||
Value type: <empty>
|
||||
Definition: Bool property specifying whether this bus client
|
||||
is dynamic vote based.
|
||||
|
||||
Example:
|
||||
|
||||
qcom,cam-cpas@ac40000 {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,cam-cpas";
|
||||
label = "cpas";
|
||||
arch-compat = "cpas_top";
|
||||
status = "ok";
|
||||
reg-names = "cam_cpas_top", "cam_camnoc";
|
||||
reg = <0xac40000 0x1000>,
|
||||
<0xac42000 0x5000>;
|
||||
reg-cam-base = <0x40000 0x42000>;
|
||||
cam_hw_fuse = <CAM_CPAS_QCFA_BINNING_ENABLE 0x00780210 29>,
|
||||
<CAM_CPAS_SECURE_CAMERA_ENABLE 0x00780210 18>;
|
||||
interrupt-names = "cpas_camnoc";
|
||||
interrupts = <0 459 0>;
|
||||
qcom,cpas-hw-ver = <0x170100>; /* Titan v170 v1.0.0 */
|
||||
regulator-names = "camss-vdd";
|
||||
camss-vdd-supply = <&titan_top_gdsc>;
|
||||
clock-names = "gcc_ahb_clk",
|
||||
"gcc_axi_clk",
|
||||
"soc_ahb_clk",
|
||||
"cpas_ahb_clk",
|
||||
"slow_ahb_clk_src",
|
||||
"camnoc_axi_clk";
|
||||
clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
|
||||
<&clock_gcc GCC_CAMERA_AXI_CLK>,
|
||||
<&clock_camcc CAM_CC_SOC_AHB_CLK>,
|
||||
<&clock_camcc CAM_CC_CPAS_AHB_CLK>,
|
||||
<&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_CAMNOC_AXI_CLK>;
|
||||
src-clock-name = "slow_ahb_clk_src";
|
||||
domain-id-support-clks = "ife_lite_csid_clk",
|
||||
"ife_lite_ahb", "csid_clk_src", "csid_clk";
|
||||
/* domain-id-support-clks property dependent on below clock option properties */
|
||||
clock-names-option = "cam_icp_clk",
|
||||
"ife_lite_csid_clk",
|
||||
"ife_lite_ahb", "csid_clk_src", "csid_clk";
|
||||
clocks-option = <&camcc CAM_CC_ICP_CLK>,
|
||||
<&camcc CAM_CC_IFE_LITE_CSID_CLK>,
|
||||
<&camcc CAM_CC_IFE_LITE_AHB_CLK>,
|
||||
<&camcc CAM_CC_CSID_CLK_SRC>,
|
||||
<&camcc CAM_CC_CSID_CLK>;
|
||||
clock-rates-option = <400000000>,
|
||||
<0>, <0>, <0>, <0>;
|
||||
shared-clks-option = <0 0 0 1 0>;
|
||||
domain-id = <CAM_CPAS_SECURE_DOMAIN 16>,
|
||||
<CAM_CPAS_NON_SECURE_DOMAIN 0>;
|
||||
clock-rates = <0 0 0 0 80000000 0>;
|
||||
clock-cntl-level = "turbo";
|
||||
qcom,cam-cx-ipeak = <&cx_ipeak_lm 8>;
|
||||
control-camnoc-axi-clk;
|
||||
cam-crmb-clk;
|
||||
camnoc-bus-width = <32>;
|
||||
camnoc-axi-clk-bw-margin-perc = <10>;
|
||||
qcom,msm-bus,name = "cam_ahb";
|
||||
qcom,msm-bus,num-cases = <4>;
|
||||
qcom,msm-bus,num-paths = <1>;
|
||||
qcom,msm-bus,vectors-KBps =
|
||||
<MSM_BUS_MASTER_AMPSS_M0
|
||||
MSM_BUS_SLAVE_CAMERA_CFG 0 0>,
|
||||
<MSM_BUS_MASTER_AMPSS_M0
|
||||
MSM_BUS_SLAVE_CAMERA_CFG 0 300000>,
|
||||
<MSM_BUS_MASTER_AMPSS_M0
|
||||
MSM_BUS_SLAVE_CAMERA_CFG 0 640000>,
|
||||
<MSM_BUS_MASTER_AMPSS_M0
|
||||
MSM_BUS_SLAVE_CAMERA_CFG 0 640000>;
|
||||
client-id-based;
|
||||
client-names =
|
||||
"csiphy0", "csiphy1", "csiphy2", "csiphy3",
|
||||
"csiphy4", "csiphy5", "cci0", "cci1",
|
||||
"csid0", "csid1", "csid2", "csid3",
|
||||
"csid4", "csid5", "csid6",
|
||||
"ife0", "ife1", "ife2", "ife3", "custom0",
|
||||
"ipe0", "cam-cdm-intf0", "cpas-cdm0", "cpas-cdm1",
|
||||
"cpas-cdm2",
|
||||
"bps0", "icp0", "jpeg-dma0", "jpeg-enc0",
|
||||
"fd0";
|
||||
sys-cache-names = "small-1", "large-1", "large-2", "large-3", "large-4";
|
||||
sys-cache-uids = <34 38 50 51 52>;
|
||||
enable-smart-qos;
|
||||
rt-wr-priority-min = <3>;
|
||||
rt-wr-priority-max = <6>;
|
||||
rt-wr-priority-clamp = <6>;
|
||||
rt-wr-slope-factor = <100>;
|
||||
rt-wr-leaststressed-clamp-threshold = <7>;
|
||||
rt-wr-moststressed-clamp-threshold = <7>;
|
||||
rt-wr-highstress-indicator-threshold = <100>;
|
||||
rt-wr-lowstress-indicator-threshold = <0>;
|
||||
rt-wr-bw-ratio-scale-factor = <1>;
|
||||
enable-cam-drv;
|
||||
vmrm-resource-ids = <10 10 10>;
|
||||
cam-version = <0x80800>;
|
||||
cpas-version = <0x10000000>;
|
||||
camera-capability = <0x9fffedeb 0x8>;
|
||||
camera-bus-nodes {
|
||||
level3-nodes {
|
||||
level-index = <3>;
|
||||
level3_rt0_rd_wr_sum: level3-rt0-rd-wr-sum {
|
||||
cell-index = <0>;
|
||||
node-name = "level3-rt0-rd-wr-sum";
|
||||
traffic-merge-type =
|
||||
<CAM_CPAS_TRAFFIC_MERGE_SUM>;
|
||||
qcom,axi-port-name = "cam_hf_0";
|
||||
ib-bw-voting-needed;
|
||||
rt-axi-port;
|
||||
qcom,axi-port-mnoc {
|
||||
qcom,msm-bus,name =
|
||||
"cam_hf_0_mnoc";
|
||||
qcom,msm-bus-vector-dyn-vote;
|
||||
qcom,msm-bus,num-cases = <2>;
|
||||
qcom,msm-bus,num-paths = <1>;
|
||||
qcom,msm-bus,vectors-KBps =
|
||||
<MSM_BUS_MASTER_CAMNOC_HF
|
||||
MSM_BUS_SLAVE_EBI_CH0 0 0>,
|
||||
<MSM_BUS_MASTER_CAMNOC_HF
|
||||
MSM_BUS_SLAVE_EBI_CH0 0 0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
level2-nodes {
|
||||
level-index = <2>;
|
||||
camnoc-max-needed;
|
||||
level2_rt0_wr: level2-rt0-wr {
|
||||
cell-index = <3>;
|
||||
node-name = "level2-rt0-wr";
|
||||
parent-node = <&level3_rt0_rd_wr_sum>;
|
||||
traffic-merge-type =
|
||||
<CAM_CPAS_TRAFFIC_MERGE_SUM_INTERLEAVE>;
|
||||
};
|
||||
};
|
||||
level1-nodes {
|
||||
level-index = <1>;
|
||||
camnoc-max-needed;
|
||||
level1_rt0_wr0: level1-rt0-wr0 {
|
||||
cell-index = <8>;
|
||||
node-name = "level1-rt0-wr0";
|
||||
parent-node = <&level2_rt0_wr>;
|
||||
traffic-merge-type =
|
||||
<CAM_CPAS_TRAFFIC_MERGE_SUM>;
|
||||
rt-wr-niu;
|
||||
niu-size = <175>;
|
||||
priority-lut-low-offset = <0x5830>;
|
||||
priority-lut-high-offset = <0x5834>;
|
||||
};
|
||||
};
|
||||
level0-nodes {
|
||||
level-index = <0>;
|
||||
ife0_ubwc_stats_wr: ife0-ubwc-stats-wr {
|
||||
cell-index = <16>;
|
||||
node-name = "ife0-ubwc-stats-wr";
|
||||
client-name = "ife0";
|
||||
traffic-data =
|
||||
<CAM_CPAS_PATH_DATA_IFE_UBWC_STATS>;
|
||||
traffic-transaction-type =
|
||||
<CAM_CPAS_TRANSACTION_WRITE>;
|
||||
constituent-paths =
|
||||
<CAM_CPAS_PATH_DATA_IFE_VID
|
||||
CAM_CPAS_PATH_DATA_IFE_DISP
|
||||
CAM_CPAS_PATH_DATA_IFE_STATS>;
|
||||
drv-voting-index =
|
||||
<CAM_CPAS_PORT_DRV_0>;
|
||||
parent-node = <&level1_rt0_wr0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
163
qcom/camera/bindings/msm-cam-cre.txt
Normal file
163
qcom/camera/bindings/msm-cam-cre.txt
Normal file
@@ -0,0 +1,163 @@
|
||||
* Qualcomm Technologies, Inc. MSM Camera CRE
|
||||
|
||||
The cre device node has properties defined to hint the driver
|
||||
about the number of CRE nodes available during the
|
||||
probe sequence. Each node has multiple properties defined
|
||||
for interrupts, clocks and regulators.
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
CRE root interface node takes care of the handling account for number
|
||||
of CRE devices present on the hardware.
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,cam-cre".
|
||||
|
||||
- compat-hw-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,cre".
|
||||
|
||||
- num-cre
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Number of supported CRE HW blocks.
|
||||
|
||||
Example:
|
||||
qcom,cam-cre {
|
||||
compatible = "qcom,cam-cre";
|
||||
compat-hw-name = "qcom,cre";
|
||||
num-cre = <2>;
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
CRE Node provides interface for Image Control Processor driver
|
||||
about the CRE register map, interrupt map, clocks, regulators.
|
||||
|
||||
- cell-index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Node instance number.
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,cre".
|
||||
|
||||
- reg-names
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Name of the register resources.
|
||||
|
||||
- reg
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Register values.
|
||||
|
||||
- reg-cam-base
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Register values.
|
||||
|
||||
- interrupt-names
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Name of the interrupt.
|
||||
|
||||
- interrupts
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Interrupt associated with CRE HW.
|
||||
|
||||
- regulator-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the regulator resources for CRE HW.
|
||||
|
||||
- camss-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: Regulator reference corresponding to the names listed
|
||||
in "regulator-names".
|
||||
|
||||
- clock-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of clock names required for CDM HW.
|
||||
|
||||
- src-clock-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Source clock name.
|
||||
|
||||
- clock-control-debugfs
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Enable/Disable clk rate control.
|
||||
|
||||
- clocks
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: List of clocks used for CDM HW.
|
||||
|
||||
- clock-cntl-level
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of strings corresponds clock-rates levels.
|
||||
Supported strings: lowsvs, svs, svs_l1, nominal, turbo.
|
||||
|
||||
- clock-rates
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of clocks rates.
|
||||
|
||||
Examples:
|
||||
qcom,cam-cre {
|
||||
compatible = "qcom,cam-cre";
|
||||
compat-hw-name = "qcom,cre";
|
||||
num-cre = <1>;
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
cre: qcom,cre@ac00000 {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,cre";
|
||||
reg =
|
||||
<0xFA000 0x400>,
|
||||
<0xFA400 0xB0>,
|
||||
<0xFAB00 0x300>;
|
||||
reg-names =
|
||||
"cre_top",
|
||||
"cre_bus_rd",
|
||||
"cre_bus_wr";
|
||||
reg-cam-base = <0xFA000 0xFA400 0xFAB00>;
|
||||
interrupts = <GIC_SPI 463 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "cre";
|
||||
regulator-names = "camss-vdd";
|
||||
camss-vdd-supply = <&gcc_camss_top_gdsc>;
|
||||
clock-names =
|
||||
"cre_ahb_clk",
|
||||
"cre_clk_src",
|
||||
"cre_clk";
|
||||
clocks =
|
||||
<&gcc GCC_CAMSS_CRE_AHB_CLK>,
|
||||
<&gcc GCC_CAMSS_CRE_CLK_SRC>,
|
||||
<&gcc GCC_CAMSS_CRE_CLK>;
|
||||
|
||||
clock-rates =
|
||||
<80000000 30000000 30000000>,
|
||||
<80000000 41000000 41000000>,
|
||||
<80000000 46000000 46000000>,
|
||||
<80000000 60000000 60000000>,
|
||||
<80000000 70000000 70000000>;
|
||||
|
||||
clock-cntl-level = "lowsvs", "maxsvs", "svs", "nom", "turbo";
|
||||
src-clock-name = "cre_clk_src";
|
||||
status = "ok";
|
||||
};
|
182
qcom/camera/bindings/msm-cam-csiphy.txt
Normal file
182
qcom/camera/bindings/msm-cam-csiphy.txt
Normal file
@@ -0,0 +1,182 @@
|
||||
* Qualcomm Technologies, Inc. MSM CSI Phy
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
The camera CSIPHY node must be described in First level of device nodes. The
|
||||
first level describe the overall CSIPHY node structure.
|
||||
|
||||
======================================
|
||||
First Level Node - CSIPHY device
|
||||
======================================
|
||||
- cell-index: csiphy hardware core index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Should specify the Hardware index id.
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,csiphy-v1.0",
|
||||
"qcom,csiphy-v1.1", "qcom,csiphy-v1.2", "qcom,csiphy-v1.2.1",
|
||||
"qcom,csiphy-v1.2.2", "qcom,csiphy-v2.0", "qcom,csiphy-v1.2.2.2",
|
||||
"qcom,csiphy-v1.2.3", "qcom,csiphy-v2.0.1", "qcom,csiphy-v2.1.0",
|
||||
"qcom,csiphy-v1.2.4", "qcom,csiphy-v1.2.5", "qcom,csiphy".
|
||||
|
||||
- reg
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: offset and length of the register set
|
||||
for the device for the csiphy operating in
|
||||
compatible mode.
|
||||
|
||||
- reg-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should specify relevant names to each
|
||||
reg property defined.
|
||||
|
||||
- reg-cam-base
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: offset of CSIPHY in camera hw block
|
||||
|
||||
- interrupts
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Interrupt associated with CCI HW.
|
||||
|
||||
- interrupt-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the interrupt.
|
||||
|
||||
- regulator-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: name of the voltage regulators required for the device.
|
||||
|
||||
- gdscr-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: should contain gdsr regulator used for CSIPHY clocks.
|
||||
|
||||
- mipi-csi-vdd-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: should contain phandle for mipi-csi-vdd regulator used for
|
||||
CSIPHY device.
|
||||
|
||||
- csi-vdd-xxx-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: should contain phandles for csi-vdd-1p2 and csi-vdd-0p9
|
||||
regulators used for CSIPHY.
|
||||
|
||||
- csi-vdd-voltage
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should contain required voltage for csi-vdd supply
|
||||
for CSIPHY.
|
||||
|
||||
- rgltr-cntrl-support
|
||||
Usage: required
|
||||
Value type: <empty>
|
||||
Definition: Flag to indicate whether regulator control support is
|
||||
enabled or not.
|
||||
|
||||
- rgltr-min-voltage
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should contain required min voltage for gdsr, csi-vdd-1p2
|
||||
and csi-vdd-0p9 supply for CSIPHY.
|
||||
|
||||
- rgltr-max-voltage
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should contain required max voltage for gdsr, csi-vdd-1p2
|
||||
and csi-vdd-0p9 supply for CSIPHY.
|
||||
|
||||
- rgltr-load-current
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should contain peak current for gdsr, csi-vdd-1p2
|
||||
and csi-vdd-0p9 supply for CSIPHY.
|
||||
|
||||
- rgltr-enable-sync
|
||||
Usage: required
|
||||
Value type: <u8>
|
||||
Definition: Decides whether regulator enable should be done in sync
|
||||
for all the csiphys together or not.
|
||||
|
||||
- clocks
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: all clock phandle and source clocks.
|
||||
|
||||
- clock-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of clock names required for CSIPHY HW.
|
||||
|
||||
- clock-cntl-level
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: All different clock level node can support.
|
||||
|
||||
- src-clock-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Source clock name.
|
||||
|
||||
- clock-rates
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of clock rates in Hz for CSIPHY HW.
|
||||
|
||||
- shared-clks
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: List of 0 or 1 values indicating whether shared clk or not.
|
||||
|
||||
- vmrm-resource-ids
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should specify vmrm resource id list order is mem label,
|
||||
mem tag, irq1 label, irq2 label.
|
||||
|
||||
Example:
|
||||
|
||||
cam_csiphy0: qcom,csiphy0@ace4000 {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,csiphy-v2.1.0", "qcom,csiphy";
|
||||
reg = < 0x0ace4000 0x2000>;
|
||||
reg-names = "csiphy";
|
||||
reg-cam-base = <0xe4000>;
|
||||
interrupts = <GIC_SPI 477 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "csiphy0";
|
||||
gdscr-supply = <&cam_cc_titan_top_gdsc>;
|
||||
csi-vdd-1p2-supply = <&pm8350_l6>;
|
||||
csi-vdd-0p9-supply = <&pm8350_l5>;
|
||||
rgltr-cntrl-support;
|
||||
rgltr-enable-sync = <1>;
|
||||
regulator-names = "gdscr", "csi-vdd-1p2", "csi-vdd-0p9";
|
||||
rgltr-min-voltage = <0 1200000 880000>;
|
||||
rgltr-max-voltage = <0 1248000 912000>;
|
||||
rgltr-load-current = <0 54700 102000>;
|
||||
shared-clks = <1 0 0 0>;
|
||||
clocks = <&clock_camcc CAM_CC_CPHY_RX_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_CSIPHY0_CLK>,
|
||||
<&clock_camcc CAM_CC_CSI0PHYTIMER_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_CSI0PHYTIMER_CLK>;
|
||||
clock-names = "cphy_rx_clk_src",
|
||||
"csiphy0_clk",
|
||||
"csi0phytimer_clk_src",
|
||||
"csi0phytimer_clk";
|
||||
src-clock-name = "csi0phytimer_clk_src";
|
||||
clock-cntl-level = "nominal";
|
||||
clock-rates =
|
||||
<480000000 0 400000000 0>;
|
||||
vmrm-resource-ids = <1 1 1>;
|
||||
status = "ok";
|
||||
};
|
28
qcom/camera/bindings/msm-cam-custom-hw.txt
Normal file
28
qcom/camera/bindings/msm-cam-custom-hw.txt
Normal file
@@ -0,0 +1,28 @@
|
||||
* Qualcomm Technologies, Inc. MSM Camera Custom HW
|
||||
|
||||
Camera Custom device provides the definitions for enabling
|
||||
the custom hardware. It also provides the functions for the client
|
||||
to control the Custom hardware.
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
The Custom device is described in one level of the device node.
|
||||
|
||||
======================================
|
||||
First Level Node - CAM Custom device
|
||||
======================================
|
||||
Required properties:
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should specify the compatibility string for matching the
|
||||
driver. e.g. "qcom,cam_custom_hw_sub_mod".
|
||||
|
||||
Example:
|
||||
|
||||
qcom,cam-custom-hw {
|
||||
compatible = "qcom,cam_custom_hw_sub_mod";
|
||||
arch-compat = "custom";
|
||||
status = "ok";
|
||||
};
|
31
qcom/camera/bindings/msm-cam-custom.txt
Normal file
31
qcom/camera/bindings/msm-cam-custom.txt
Normal file
@@ -0,0 +1,31 @@
|
||||
* Qualcomm Technologies, Inc. MSM Camera Custom
|
||||
|
||||
The MSM camera Custom driver provides the definitions for enabling
|
||||
the Camera custom hadware. It provides the functions for the Client to
|
||||
control the custom hardware.
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
The camera Custom device is described in one level of device node.
|
||||
|
||||
==================================
|
||||
First Level Node - CAM CUSTOM device
|
||||
==================================
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,cam-custom".
|
||||
|
||||
- arch-compat
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "custom".
|
||||
|
||||
Example:
|
||||
|
||||
qcom,cam-custom {
|
||||
compatible = "qcom,cam-custom";
|
||||
arch-compat = "custom";
|
||||
status = "ok";
|
||||
};
|
510
qcom/camera/bindings/msm-cam-eeprom.txt
Normal file
510
qcom/camera/bindings/msm-cam-eeprom.txt
Normal file
@@ -0,0 +1,510 @@
|
||||
* Qualcomm Technologies, Inc. MSM EEPROM
|
||||
|
||||
EEPROM is a one time programmed(OTP) device that stores the calibration data
|
||||
use for camera sensor. It may either be integrated in the sensor module or in
|
||||
the sensor itself. As a result, the power, clock and GPIOs may be the same as
|
||||
the camera sensor. The following describes the page block map, power supply,
|
||||
clock, GPIO and power on sequence properties of the EEPROM device.
|
||||
|
||||
=======================================================
|
||||
Required Node Structure if probe happens from userspace
|
||||
=======================================================
|
||||
The EEPROM device is described in one level of the device node.
|
||||
|
||||
======================================
|
||||
First Level Node - CAM EEPROM device
|
||||
======================================
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,eeprom".
|
||||
|
||||
- cell-index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Should specify the hardware index id.
|
||||
|
||||
- reg
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Register values.
|
||||
|
||||
- regulator-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the regulator resources for EEPROM HW.
|
||||
|
||||
- xxxx-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: Regulator reference corresponding to the names listed in
|
||||
"regulator-names".
|
||||
|
||||
- rgltr-cntrl-support
|
||||
Usage: required
|
||||
Value type: <bool>
|
||||
Definition: This property specifies if the regulator control is supported
|
||||
e.g. rgltr-min-voltage.
|
||||
|
||||
- rgltr-min-voltage
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should contain minimum voltage level for regulators
|
||||
mentioned in regulator-names property.
|
||||
|
||||
- rgltr-max-voltage
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should contain maximum voltage level for regulators
|
||||
mentioned in regulator-names property.
|
||||
|
||||
- rgltr-load-current
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should contain the maximum current in microamps required for
|
||||
the regulators mentioned in regulator-names property.
|
||||
|
||||
- gpio-no-mux
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should specify the gpio mux type.
|
||||
|
||||
- gpios
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: should specify the gpios to be used for the eeprom.
|
||||
|
||||
- gpio-reset
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should specify the reset gpio index.
|
||||
|
||||
- gpio-standby
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should specify the standby gpio index.
|
||||
|
||||
- gpio-req-tbl-num
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should specify the gpio table index.
|
||||
|
||||
- gpio-req-tbl-flags
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should specify the gpio functions.
|
||||
|
||||
- gpio-req-tbl-label
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: should specify the gpio labels.
|
||||
|
||||
- sensor-position
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should contain the mount angle of the camera sensor.
|
||||
|
||||
- cci-device
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should contain i2c device id to be used for this camera
|
||||
sensor
|
||||
|
||||
- cci-master
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should contain i2c master id to be used for this camera
|
||||
sensor.
|
||||
|
||||
- sensor-mode
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should contain sensor mode supported.
|
||||
|
||||
- clock-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of clock names required for EEPROM HW.
|
||||
|
||||
- clocks
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: List of clocks used for EEPROM HW.
|
||||
|
||||
- clock-cntl-level
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: says what all different clock levels eeprom node has.
|
||||
|
||||
- clock-rates
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of clocks rates.
|
||||
|
||||
- vmrm-resource-ids
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should specify vmrm resource id list order is mem label,
|
||||
mem tag, irq1 label, irq2 label.
|
||||
|
||||
Example:
|
||||
|
||||
eeprom0: qcom,eeprom@0 {
|
||||
cell-index = <0>;
|
||||
reg = <0x0>;
|
||||
compatible = "qcom,eeprom";
|
||||
cam_vdig-supply = <&pm8998_l5>;
|
||||
cam_vio-supply = <&pm8998_lvs1>;
|
||||
regulator-names = "cam_vdig", "cam_vio";
|
||||
rgltr-cntrl-support;
|
||||
rgltr-min-voltage = <1200000 0>;
|
||||
rgltr-max-voltage = <1200000 0>;
|
||||
rgltr-load-current = <0 80000 105000 0>;
|
||||
gpio-no-mux = <0>;
|
||||
gpios = <&msmgpio 26 0>,
|
||||
<&msmgpio 37 0>,
|
||||
<&msmgpio 36 0>;
|
||||
gpio-reset = <1>;
|
||||
gpio-standby = <2>;
|
||||
gpio-req-tbl-num = <0 1 2>;
|
||||
gpio-req-tbl-flags = <1 0 0>;
|
||||
gpio-req-tbl-label = "CAMIF_MCLK",
|
||||
"CAM_RESET1",
|
||||
"CAM_STANDBY";
|
||||
sensor-position = <0>;
|
||||
sensor-mode = <0>;
|
||||
cci-device = <0>;
|
||||
cci-master = <0>;
|
||||
status = "ok";
|
||||
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
|
||||
clock-names = "cam_clk";
|
||||
clock-cntl-level = "turbo";
|
||||
clock-rates = <24000000>;
|
||||
vmrm-resource-ids = <32 32>;
|
||||
};
|
||||
|
||||
=======================================================
|
||||
Required Node Structure if probe happens from kernel
|
||||
=======================================================
|
||||
The EEPROM device is described in one level of the device node.
|
||||
|
||||
======================================
|
||||
First Level Node - CAM EEPROM device
|
||||
======================================
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,eeprom".
|
||||
|
||||
- cell-index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Should specify the hardware index id.
|
||||
|
||||
- reg
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Register values.
|
||||
|
||||
- qcom,eeprom-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the EEPROM HW.
|
||||
|
||||
- qcom,slave-addr
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Slave address of the EEPROM HW.
|
||||
|
||||
- qcom,num-blocks
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Total block number that eeprom contains.
|
||||
|
||||
- qcom,pageX
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of values specifying page size, start address,
|
||||
address type, data, data type, delay in ms.
|
||||
size 0 stand for non-paged.
|
||||
|
||||
- qcom,pollX
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of values specifying poll size, poll reg address,
|
||||
address type, data, data type, delay in ms.
|
||||
size 0 stand for not used.
|
||||
|
||||
- qcom,memX
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of values specifying memory size, start address,
|
||||
address type, data, data type, delay in ms.
|
||||
size 0 stand for not used.
|
||||
|
||||
- qcom,saddrX
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: property should specify the slave address for block (%d).
|
||||
|
||||
- regulator-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the regulator resources for EEPROM HW.
|
||||
|
||||
- qcom,cmm-data-support
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Camera MultiModule data capability flag..
|
||||
|
||||
- qcom,cmm-data-compressed
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Camera MultiModule data compression flag.
|
||||
|
||||
- qcom,cmm-data-offset
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Camera MultiModule data start offset.
|
||||
|
||||
- qcom,cmm-data-size
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Camera MultiModule data size.
|
||||
|
||||
- qcom,cam-power-seq-type
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: should specify the power on sequence types.
|
||||
|
||||
- qcom,cam-power-seq-val
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: should specify the power on sequence values.
|
||||
|
||||
- qcom,cam-power-seq-cfg-val
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should specify the power on sequence config values.
|
||||
|
||||
- qcom,cam-power-seq-delay
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should specify the power on sequence delay time in ms.
|
||||
|
||||
- spiop-read
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: this array provides SPI read operation related data.
|
||||
|
||||
- spiop-readseq
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: this array provides SPI read sequence operation realted data.
|
||||
|
||||
- spiop-queryid
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: this array provides SPI query eeprom id operation related data.
|
||||
|
||||
- spiop-pprog:
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: this array provides SPI page program operation related data.
|
||||
|
||||
- spiop-wenable
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: this array provides SPI write enable operation related data.
|
||||
|
||||
- spiop-readst
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: this array provides SPI read destination operation related data.
|
||||
|
||||
- spiop-erase
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: this array provides SPI erase operation related data.
|
||||
|
||||
- eeprom-idx
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: this array provides eeprom id realted data.
|
||||
|
||||
- xxxx-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: Regulator reference corresponding to the names listed in
|
||||
"regulator-names".
|
||||
|
||||
- rgltr-cntrl-support
|
||||
Usage: required
|
||||
Value type: <bool>
|
||||
Definition: This property specifies if the regulator control is supported
|
||||
e.g. rgltr-min-voltage.
|
||||
|
||||
- rgltr-min-voltage
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should contain minimum voltage level for regulators
|
||||
mentioned in regulator-names property.
|
||||
|
||||
- rgltr-max-voltage
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should contain maximum voltage level for regulators
|
||||
mentioned in regulator-names property.
|
||||
|
||||
- rgltr-load-current
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should contain the maximum current in microamps required for
|
||||
the regulators mentioned in regulator-names property.
|
||||
|
||||
- gpio-no-mux
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should specify the gpio mux type.
|
||||
|
||||
- gpios
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: should specify the gpios to be used for the eeprom.
|
||||
|
||||
- gpio-reset
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should specify the reset gpio index.
|
||||
|
||||
- gpio-standby
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should specify the standby gpio index.
|
||||
|
||||
- gpio-req-tbl-num
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should specify the gpio table index.
|
||||
|
||||
- gpio-req-tbl-flags
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should specify the gpio functions.
|
||||
|
||||
- gpio-req-tbl-label
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: should specify the gpio labels.
|
||||
|
||||
- sensor-position
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should contain the mount angle of the camera sensor.
|
||||
|
||||
- cci-device
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should contain i2c device id to be used for this camera
|
||||
sensor
|
||||
|
||||
- cci-master
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should contain i2c master id to be used for this camera
|
||||
sensor.
|
||||
|
||||
- sensor-mode
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: should contain sensor mode supported.
|
||||
|
||||
- clock-cntl-level
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: says what all different clock levels eeprom node has.
|
||||
|
||||
- clock-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of clock names required for EEPROM HW.
|
||||
|
||||
- clocks
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: List of clocks used for EEPROM HW.
|
||||
|
||||
- clock-rates
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of clocks rates.
|
||||
|
||||
Example:
|
||||
|
||||
eeprom0: qcom,eeprom0 {
|
||||
cell-index = <0>;
|
||||
reg = <0x0>;
|
||||
qcom,eeprom-name = "msm_eeprom";
|
||||
eeprom-id0 = <0xF8 0x15>;
|
||||
eeprom-id1 = <0xEF 0x15>;
|
||||
eeprom-id2 = <0xC2 0x36>;
|
||||
eeprom-id3 = <0xC8 0x15>;
|
||||
compatible = "qcom,eeprom";
|
||||
qcom,slave-addr = <0x60>;
|
||||
qcom,num-blocks = <2>;
|
||||
qcom,page0 = <1 0x100 2 0x01 1 1>;
|
||||
qcom,poll0 = <0 0x0 2 0 1 1>;
|
||||
qcom,mem0 = <0 0x0 2 0 1 0>;
|
||||
qcom,page1 = <1 0x0200 2 0x8 1 1>;
|
||||
qcom,pageen1 = <1 0x0202 2 0x01 1 10>;
|
||||
qcom,poll1 = <0 0x0 2 0 1 1>;
|
||||
qcom,mem1 = <32 0x3000 2 0 1 0>;
|
||||
qcom,saddr1 = <0x62>;
|
||||
qcom,cmm-data-support;
|
||||
qcom,cmm-data-compressed;
|
||||
qcom,cmm-data-offset = <0>;
|
||||
qcom,cmm-data-size = <0>;
|
||||
spiop-read = <0x03 3 0 0 0>;
|
||||
spiop-readseq = <0x03 3 0 0 0>;
|
||||
spiop-queryid = <0x90 3 0 0 0>;
|
||||
spiop-pprog = <0x02 3 0 3 100>;
|
||||
spiop-wenable = <0x06 0 0 0 0>;
|
||||
spiop-readst = <0x05 0 0 0 0>;
|
||||
spiop-erase = <0x20 3 0 10 100>;
|
||||
qcom,cam-power-seq-type = "sensor_vreg",
|
||||
"sensor_vreg", "sensor_clk",
|
||||
"sensor_gpio", "sensor_gpio";
|
||||
qcom,cam-power-seq-val = "cam_vdig",
|
||||
"cam_vio", "sensor_cam_mclk",
|
||||
"sensor_gpio_reset",
|
||||
"sensor_gpio_standby";
|
||||
qcom,cam-power-seq-cfg-val = <1 1 24000000 1 1>;
|
||||
qcom,cam-power-seq-delay = <1 1 5 5 10>;
|
||||
cam_vdig-supply = <&pm8998_l5>;
|
||||
cam_vio-supply = <&pm8998_lvs1>;
|
||||
regulator-names = "cam_vdig", "cam_vio";
|
||||
rgltr-cntrl-support;
|
||||
rgltr-min-voltage = <1200000 0>;
|
||||
rgltr-max-voltage = <1200000 0>;
|
||||
rgltr-load-current = <0 80000 105000 0>;
|
||||
qcom,gpio-no-mux = <0>;
|
||||
gpios = <&msmgpio 26 0>,
|
||||
<&msmgpio 37 0>,
|
||||
<&msmgpio 36 0>;
|
||||
gpio-reset = <1>;
|
||||
gpio-standby = <2>;
|
||||
gpio-req-tbl-num = <0 1 2>;
|
||||
gpio-req-tbl-flags = <1 0 0>;
|
||||
gpio-req-tbl-label = "CAMIF_MCLK",
|
||||
"CAM_RESET1",
|
||||
"CAM_STANDBY";
|
||||
sensor-position = <0>;
|
||||
sensor-mode = <0>;
|
||||
cci-device = <0>;
|
||||
cci-master = <0>;
|
||||
status = "ok";
|
||||
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
|
||||
clock-cntl-level = "turbo";
|
||||
clock-names = "cam_clk";
|
||||
clock-rates = <24000000>;
|
||||
};
|
154
qcom/camera/bindings/msm-cam-fd.txt
Normal file
154
qcom/camera/bindings/msm-cam-fd.txt
Normal file
@@ -0,0 +1,154 @@
|
||||
* Qualcomm Technologies, Inc. MSM Camera FD
|
||||
|
||||
The MSM camera Face Detection device provides dependency definitions
|
||||
for enabling Camera FD HW. MSM camera FD is implemented in multiple
|
||||
device nodes. The root FD device node has properties defined to hint
|
||||
the driver about the FD HW nodes available during the probe sequence.
|
||||
Each node has multiple properties defined for interrupts, clocks and
|
||||
regulators.
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
FD root interface node takes care of the handling Face Detection high level
|
||||
driver handling and controls underlying FD hardware present.
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,cam-fd".
|
||||
|
||||
- compat-hw-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,fd".
|
||||
|
||||
- num-fd
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Number of supported FD HW blocks.
|
||||
|
||||
Example:
|
||||
qcom,cam-fd {
|
||||
compatible = "qcom,cam-fd";
|
||||
compat-hw-name = "qcom,fd";
|
||||
num-fd = <1>;
|
||||
};
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
FD Node provides interface for Face Detection hardware driver
|
||||
about the device register map, interrupt map, clocks, regulators.
|
||||
|
||||
- cell-index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Node instance number.
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be one of "qcom,fd41", "qcom,fd501",
|
||||
"qcom,fd600".
|
||||
|
||||
- reg-names
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Name of the register resources.
|
||||
|
||||
- reg
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Register values.
|
||||
|
||||
- reg-cam-base
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Offset of the register space compared to
|
||||
to Camera base register space.
|
||||
|
||||
- interrupt-names
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Name of the interrupt.
|
||||
|
||||
- interrupts
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Interrupt line associated with FD HW.
|
||||
|
||||
- regulator-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the regulator resources for FD HW.
|
||||
|
||||
- camss-vdd-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: Regulator reference corresponding to the names listed
|
||||
in "regulator-names".
|
||||
|
||||
- clock-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of clock names required for FD HW.
|
||||
|
||||
- clocks
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: List of clocks required for FD HW.
|
||||
|
||||
- clock-rates
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of clocks rates.
|
||||
|
||||
- src-clock-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Source clock name.
|
||||
|
||||
- clock-control-debugfs
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Enable/Disable clk rate control.
|
||||
|
||||
- clock-cntl-level
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of strings corresponds clock-rates levels.
|
||||
Supported strings: minsvs, lowsvs, svs, svs_l1, nominal, turbo.
|
||||
|
||||
Examples:
|
||||
cam_fd: qcom,fd@ac5a000 {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,fd600";
|
||||
reg-names = "fd_core", "fd_wrapper";
|
||||
reg = <0xac5a000 0x1000>,
|
||||
<0xac5b000 0x400>;
|
||||
reg-cam-base = <0x5a000 0x5b000>;
|
||||
interrupt-names = "fd";
|
||||
interrupts = <0 462 0>;
|
||||
regulator-names = "camss-vdd";
|
||||
camss-vdd-supply = <&titan_top_gdsc>;
|
||||
clock-names = "gcc_ahb_clk",
|
||||
"gcc_axi_clk",
|
||||
"soc_ahb_clk",
|
||||
"cpas_ahb_clk",
|
||||
"camnoc_axi_clk",
|
||||
"fd_core_clk_src",
|
||||
"fd_core_clk",
|
||||
"fd_core_uar_clk";
|
||||
clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
|
||||
<&clock_gcc GCC_CAMERA_AXI_CLK>,
|
||||
<&clock_camcc CAM_CC_SOC_AHB_CLK>,
|
||||
<&clock_camcc CAM_CC_CPAS_AHB_CLK>,
|
||||
<&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
|
||||
<&clock_camcc CAM_CC_FD_CORE_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_FD_CORE_CLK>,
|
||||
<&clock_camcc CAM_CC_FD_CORE_UAR_CLK>;
|
||||
src-clock-name = "fd_core_clk_src";
|
||||
clock-cntl-level = "svs";
|
||||
clock-rates = <0 0 0 0 0 400000000 0 0>;
|
||||
};
|
377
qcom/camera/bindings/msm-cam-icp.txt
Normal file
377
qcom/camera/bindings/msm-cam-icp.txt
Normal file
@@ -0,0 +1,377 @@
|
||||
* Qualcomm Technologies, Inc. MSM Camera ICP
|
||||
|
||||
The MSM camera ICP devices are implemented multiple device nodes.
|
||||
The root icp device node has properties defined to hint the driver
|
||||
about the number of ICP, IPE and BPS nodes available during the
|
||||
probe sequence. Each node has multiple properties defined
|
||||
for interrupts, clocks and regulators. icp_v1 and icp_v2 are names
|
||||
corresponding to a5 and lx7 processors respectively.
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
ICP root interface node takes care of the handling account for number
|
||||
of A5, LX7, IPE and BPS devices present on the hardware.
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,cam-icp".
|
||||
|
||||
- compat-hw-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,icp", "qcom,ipe0",
|
||||
"qcom,ipe1" or "qcom,bps".
|
||||
|
||||
- num-icp
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Number of supported icp processors. ICP can either be a5 or lx7.
|
||||
|
||||
- num-ipe
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Number of supported IPE HW blocks.
|
||||
|
||||
- num-bps
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Number of supported BPS HW blocks.
|
||||
|
||||
Example:
|
||||
qcom,cam-icp {
|
||||
compatible = "qcom,cam-icp";
|
||||
compat-hw-name = "qcom,icp", "qcom,ipe0",
|
||||
"qcom,ipe0", "qcom,bps";
|
||||
num-icp = <1>;
|
||||
num-ipe = <2>;
|
||||
num-bps = <1>;
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
A5/LX7/IPE/BPS Node's provides interface for Image Control Processor driver
|
||||
about the A5/LX7 register map, interrupt map, clocks, regulators
|
||||
and name of firmware image.
|
||||
|
||||
- cell-index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Node instance number.
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,cam-a5", "qcom,cam-lx7",
|
||||
"qcom,cam-ipe", "qcom,cam-ipe680", "qcom,cam-bps" or
|
||||
"qcom,cam-bps680".
|
||||
|
||||
- icp-version
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: <0x0100> or <0x0200>. 0x0100 is a version tag for icp_v1 (a5).
|
||||
0x0200 is a version tag for icp_v2 (lx7). [15:8] indicates major version.
|
||||
[7:0] indicates minor version.
|
||||
|
||||
- reg-names
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Name of the register resources.
|
||||
|
||||
- reg
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Register values.
|
||||
|
||||
- reg-cam-base
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Register values.
|
||||
|
||||
- interrupt-names
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Name of the interrupt.
|
||||
|
||||
- interrupts
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Interrupt associated with ICP HW.
|
||||
|
||||
- regulator-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the regulator resources for ICP HW.
|
||||
|
||||
- camss-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: Regulator reference corresponding to the names listed
|
||||
in "regulator-names".
|
||||
|
||||
- clock-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of clock names required for ICP HW.
|
||||
|
||||
- src-clock-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Source clock name.
|
||||
|
||||
- clock-control-debugfs
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Enable/Disable clk rate control.
|
||||
|
||||
- clocks
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: List of clocks used for ICP HW.
|
||||
|
||||
- clock-cntl-level
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of strings corresponds clock-rates levels.
|
||||
Supported strings: lowsvs, svs, svs_l1, nominal, turbo.
|
||||
|
||||
- clock-rates
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of clocks rates.
|
||||
|
||||
- fw_name
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Name of firmware image.
|
||||
|
||||
- ubwc-ipe-fetch-cfg
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: UBWC IPE fetch configuration based on DDR device type.
|
||||
|
||||
- ubwc-ipe-write-cfg
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: UBWC IPE write configuration based on DDR device type.
|
||||
|
||||
- ubwc-bps-fetch-cfg
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: UBWC BPS fetch configuration based on DDR device type.
|
||||
|
||||
- ubwc-bps-write-cfg
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: UBWC BPS write configuration based on DDR device type.
|
||||
|
||||
- ubwc-cfg
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: UBWC configuration, this is mandatory if above
|
||||
ipe/bps ubwc properties are not used.
|
||||
|
||||
- nrt-device
|
||||
Usage: optional
|
||||
Value type: <empty>
|
||||
Definition: Flag to indicate whether this is non real time device.
|
||||
|
||||
- vmrm-resource-ids
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should specify vmrm resource id list order is mem label,
|
||||
mem tag, irq1 label, irq2 label.
|
||||
|
||||
Examples:
|
||||
cam_a5: qcom,a5 {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,cam-a5";
|
||||
reg = <0xac00000 0x6000>,
|
||||
<0xac10000 0x8000>,
|
||||
<0xac18000 0x3000>;
|
||||
reg-names = "a5_qgic", "a5_sierra", "a5_csr";
|
||||
reg-cam-base = <0x00000 0x10000 0x18000>;
|
||||
interrupts = <GIC_SPI 463 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "a5";
|
||||
regulator-names = "camss-vdd";
|
||||
camss-vdd-supply = <&cam_cc_titan_top_gdsc>;
|
||||
clock-names =
|
||||
"soc_fast_ahb",
|
||||
"icp_ahb_clk",
|
||||
"icp_clk_src",
|
||||
"icp_clk";
|
||||
src-clock-name = "icp_clk_src";
|
||||
clocks =
|
||||
<&clock_camcc CAM_CC_FAST_AHB_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_ICP_AHB_CLK>,
|
||||
<&clock_camcc CAM_CC_ICP_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_ICP_CLK>;
|
||||
|
||||
clock-rates =
|
||||
<0 0 400000000 0>,
|
||||
<0 0 480000000 0>,
|
||||
<0 0 600000000 0>,
|
||||
<0 0 600000000 0>,
|
||||
<0 0 600000000 0>;
|
||||
clock-cntl-level = "lowsvs", "svs", "svs_l1", "nominal",
|
||||
"turbo";
|
||||
nrt-device;
|
||||
fw_name = "CAMERA_ICP.elf";
|
||||
ubwc-ipe-fetch-cfg = <0x707b 0x7083>;
|
||||
ubwc-ipe-write-cfg = <0x161ef 0x1620f>;
|
||||
ubwc-bps-fetch-cfg = <0x707b 0x7083>;
|
||||
ubwc-bps-write-cfg = <0x161ef 0x1620f>;
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
cam_lx7: qcom,lx7 {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,cam-lx7";
|
||||
reg = <0xac01000 0x400>,
|
||||
<0xac01800 0x400>;
|
||||
reg-names = "lx7_csr", "lx7_cirq";
|
||||
reg-cam-base = <0x1000 0x1800>;
|
||||
interrupts = <GIC_SPI 463 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "lx7";
|
||||
regulator-names = "camss-vdd";
|
||||
camss-vdd-supply = <&cam_cc_titan_top_gdsc>;
|
||||
clock-names =
|
||||
"soc_slow_ahb",
|
||||
"icp_ahb_clk",
|
||||
"icp_clk_src",
|
||||
"icp_clk";
|
||||
src-clock-name = "icp_clk_src";
|
||||
clocks =
|
||||
<&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_ICP_AHB_CLK>,
|
||||
<&clock_camcc CAM_CC_ICP_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_ICP_CLK>;
|
||||
|
||||
clock-rates =
|
||||
<80000000 0 400000000 0>,
|
||||
<80000000 0 480000000 0>,
|
||||
<80000000 0 600000000 0>,
|
||||
<80000000 0 600000000 0>,
|
||||
<80000000 0 600000000 0>;
|
||||
clock-cntl-level = "lowsvs", "svs", "svs_l1", "nominal",
|
||||
"turbo";
|
||||
nrt-device;
|
||||
fw_name = "CAMERA_ICP.elf";
|
||||
ubwc-ipe-fetch-cfg = <0x707b 0x7083>;
|
||||
ubwc-ipe-write-cfg = <0x161ef 0x1620f>;
|
||||
ubwc-bps-fetch-cfg = <0x707b 0x7083>;
|
||||
ubwc-bps-write-cfg = <0x161ef 0x1620f>;
|
||||
vmrm-resource-ids = <29 29 29>;
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
cam_ipe0: qcom,ipe0@ac42000 {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,cam-ipe", "qcom,cam-ipe680";
|
||||
reg = <0xac42000 0x18000>;
|
||||
reg-names = "ipe0_top";
|
||||
reg-cam-base = <0x42000>;
|
||||
regulator-names = "ipe0-vdd";
|
||||
ipe0-vdd-supply = <&cam_cc_ipe_0_gdsc>;
|
||||
clock-names =
|
||||
"ipe_nps_ahb_clk_src",
|
||||
"ipe_nps_ahb_clk",
|
||||
"ipe_fast_ahb_clk_src",
|
||||
"ipe_nps_fast_ahb_clk",
|
||||
"ipe_pps_fast_ahb_clk",
|
||||
"ipe_nps_clk_src",
|
||||
"ipe_nps_clk";
|
||||
"ipe_pps_clk";
|
||||
src-clock-name = "ipe_nps_clk_src";
|
||||
clock-control-debugfs = "true";
|
||||
clocks =
|
||||
<&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_IPE_NPS_AHB_CLK>,
|
||||
<&clock_camcc CAM_CC_FAST_AHB_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_IPE_NPS_FAST_AHB_CLK>,
|
||||
<&clock_camcc CAM_CC_IPE_PPS_FAST_AHB_CLK>,
|
||||
<&clock_camcc CAM_CC_IPE_NPS_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_IPE_NPS_CLK>,
|
||||
<&clock_camcc CAM_CC_IPE_PPS_CLK>;
|
||||
|
||||
clock-rates =
|
||||
<80000000 0 100000000 0 0 364000000 0 0>,
|
||||
<80000000 0 200000000 0 0 500000000 0 0>,
|
||||
<80000000 0 300000000 0 0 600000000 0 0>,
|
||||
<80000000 0 400000000 0 0 700000000 0 0>,
|
||||
<80000000 0 400000000 0 0 700000000 0 0>;
|
||||
clock-cntl-level = "lowsvs", "svs", "svs_l1", "nominal",
|
||||
"turbo";
|
||||
nrt-device;
|
||||
vmrm-resource-ids = <30 30 30>;
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
qcom,ipe1 {
|
||||
cell-index = <1>;
|
||||
compatible = "qcom,cam-ipe";
|
||||
regulator-names = "ipe1-vdd";
|
||||
ipe1-vdd-supply = <&ipe_1_gdsc>;
|
||||
clock-names = "ipe_1_ahb_clk",
|
||||
"ipe_1_areg_clk",
|
||||
"ipe_1_axi_clk",
|
||||
"ipe_1_clk",
|
||||
"ipe_1_clk_src";
|
||||
src-clock-name = "ipe_1_clk_src";
|
||||
clocks = <&clock_camcc CAM_CC_IPE_1_AHB_CLK>,
|
||||
<&clock_camcc CAM_CC_IPE_1_AREG_CLK>,
|
||||
<&clock_camcc CAM_CC_IPE_1_AXI_CLK>,
|
||||
<&clock_camcc CAM_CC_IPE_1_CLK>,
|
||||
<&clock_camcc CAM_CC_IPE_1_CLK_SRC>;
|
||||
|
||||
clock-rates = <0 0 0 0 240000000>,
|
||||
<0 0 0 0 404000000>,
|
||||
<0 0 0 0 480000000>,
|
||||
<0 0 0 0 538000000>,
|
||||
<0 0 0 0 600000000>;
|
||||
clock-cntl-level = "lowsvs", "svs",
|
||||
"svs_l1", "nominal", "turbo";
|
||||
vmrm-resource-ids = <31 31 31>;
|
||||
nrt-device;
|
||||
};
|
||||
|
||||
cam_bps: qcom,bps@ac2c000 {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,cam-bps", "qcom,cam-bps680";
|
||||
reg = <0xac2c000 0xB000>;
|
||||
reg-names = "bps_top";
|
||||
reg-cam-base = <0x2c000>;
|
||||
regulator-names = "bps-vdd";
|
||||
bps-vdd-supply = <&cam_cc_bps_gdsc>;
|
||||
clock-names =
|
||||
"bps_ahb_clk_src",
|
||||
"bps_ahb_clk",
|
||||
"bps_fast_ahb_clk_src",
|
||||
"bps_fast_ahb_clk",
|
||||
"bps_clk_src",
|
||||
"bps_clk";
|
||||
src-clock-name = "bps_clk_src";
|
||||
clock-control-debugfs = "true";
|
||||
clocks =
|
||||
<&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_BPS_AHB_CLK>,
|
||||
<&clock_camcc CAM_CC_FAST_AHB_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_BPS_FAST_AHB_CLK>,
|
||||
<&clock_camcc CAM_CC_BPS_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_BPS_CLK>;
|
||||
|
||||
clock-rates =
|
||||
<80000000 0 100000000 0 200000000 0>,
|
||||
<80000000 0 200000000 0 400000000 0>,
|
||||
<80000000 0 300000000 0 480000000 0>,
|
||||
<80000000 0 400000000 0 600000000 0>,
|
||||
<80000000 0 400000000 0 600000000 0>;
|
||||
clock-cntl-level = "lowsvs", "svs", "svs_l1", "nominal",
|
||||
"turbo";
|
||||
nrt-device;
|
||||
vmrm-resource-ids = <32 32 32>;
|
||||
status = "ok";
|
||||
};
|
147
qcom/camera/bindings/msm-cam-ife-csid.txt
Normal file
147
qcom/camera/bindings/msm-cam-ife-csid.txt
Normal file
@@ -0,0 +1,147 @@
|
||||
* Qualcomm Technologies, Inc. MSM Camera IFE CSID
|
||||
|
||||
Camera IFE CSID device provides the definitions for enabling
|
||||
the IFE CSID hardware. It also provides the functions for the client
|
||||
to control the IFE CSID hardware.
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
The IFE CSID device is described in one level of the device node.
|
||||
|
||||
======================================
|
||||
First Level Node - CAM IFE CSID device
|
||||
======================================
|
||||
- cell-index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Should specify the hardware index id.
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,csid170", "qcom,csid170_200", "qcom,csid175",
|
||||
"qcom,csid175_200", "qcom,csid480", "qcom,csid570", "qcom,csid580",
|
||||
"qcom,csid680", "qcom,csid680_110", "qcom,csid165_204", "qcom,csid-lite170",
|
||||
"qcom,csid-lite175", "qcom,csid-lite480", "qcom,csid-custom480",
|
||||
"qcom,csid-lite580", "qcom,csid-lite580", "qcom,csid-custom580",
|
||||
"qcom,csid-lite680", "qcom,csid-lite680_110" or "qcom,csid-custom680",
|
||||
"qcom,csid-lite165".
|
||||
|
||||
- reg-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "csid".
|
||||
|
||||
- reg
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Register values.
|
||||
|
||||
- reg-cam-base
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of bases.
|
||||
|
||||
- rt-wrapper-base
|
||||
Usage: required
|
||||
Value type: u32
|
||||
Definition: Titan offset of start of the RT Wrapper.
|
||||
|
||||
- interrupt-names
|
||||
Usage: Required
|
||||
Value type: <string>
|
||||
Definition: Name of the interrupt.
|
||||
|
||||
- interrupts
|
||||
Usage: Required
|
||||
Value type: <u32>
|
||||
Definition: Interrupt associated with IFE CSID HW.
|
||||
|
||||
- regulator-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the regulator resources for IFE CSID HW.
|
||||
|
||||
- xxxx-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: Regulator reference corresponding to the names listed in
|
||||
"regulator-names".
|
||||
|
||||
- clock-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of clock names required for IFE CSID HW.
|
||||
|
||||
- clocks
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: List of clocks used for IFE CSID HW.
|
||||
|
||||
- clock-rates
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of clocks rates.
|
||||
|
||||
- clock-cntl-level
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: All different clock level node can support.
|
||||
|
||||
- src-clock-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Source clock name.
|
||||
|
||||
- clock-control-debugfs
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Enable/Disable clk rate control.
|
||||
|
||||
- shared-clks
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: List of 0 or 1 values indicating whether shared clk or not.
|
||||
|
||||
Example:
|
||||
|
||||
cam_csid0: qcom,csid0@acb7000 {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,csid680";
|
||||
reg-names = "csid", "csid_top";
|
||||
reg = <0xacb7000 0xd00>,
|
||||
<0xacb6000 0x1000>;
|
||||
reg-cam-base = <0xb7000 0xb6000>;
|
||||
rt-wrapper-base = <0x62000>;
|
||||
interrupt-names = "csid";
|
||||
interrupts = <GIC_SPI 464 IRQ_TYPE_EDGE_RISING>;
|
||||
regulator-names = "camss";
|
||||
camss-supply = <&cam_cc_titan_top_gdsc>;
|
||||
shared-clks = <1 0 0 0 0 0>;
|
||||
clock-names =
|
||||
"csid_clk_src",
|
||||
"csid_clk",
|
||||
"cphy_rx_clk_src",
|
||||
"csiphy_rx_clk",
|
||||
"cpas_fast_ahb_src",
|
||||
"cpas_fast_ahb";
|
||||
clocks =
|
||||
<&clock_camcc CAM_CC_CSID_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_CSID_CLK>,
|
||||
<&clock_camcc CAM_CC_CPHY_RX_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_CSID_CSIPHY_RX_CLK>,
|
||||
<&clock_camcc CAM_CC_FAST_AHB_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_CPAS_FAST_AHB_CLK>;
|
||||
clock-rates =
|
||||
<400000000 0 400000000 0 100000000 0>,
|
||||
<480000000 0 480000000 0 200000000 0>,
|
||||
<480000000 0 480000000 0 300000000 0>,
|
||||
<480000000 0 480000000 0 400000000 0>,
|
||||
<480000000 0 480000000 0 400000000 0>;
|
||||
clock-cntl-level = "lowsvs", "svs", "svs_l1", "nominal",
|
||||
"turbo";
|
||||
src-clock-name = "csid_clk_src";
|
||||
clock-control-debugfs = "true";
|
||||
status = "ok";
|
||||
};
|
36
qcom/camera/bindings/msm-cam-isp.txt
Normal file
36
qcom/camera/bindings/msm-cam-isp.txt
Normal file
@@ -0,0 +1,36 @@
|
||||
* Qualcomm Technologies, Inc. MSM Camera ISP
|
||||
|
||||
The MSM camera ISP driver provides the definitions for enabling
|
||||
the Camera ISP hadware. It provides the functions for the Client to
|
||||
control the ISP hardware.
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
The camera ISP device is described in one level of device node.
|
||||
|
||||
==================================
|
||||
First Level Node - CAM ISP device
|
||||
==================================
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,cam-isp".
|
||||
|
||||
- arch-compat
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "vfe", "ife" or "tfe".
|
||||
|
||||
- ubwc-static-cfg
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: IFE UBWC static configuration based on DDR device type.
|
||||
|
||||
Example:
|
||||
|
||||
qcom,cam-isp {
|
||||
compatible = "qcom,cam-isp";
|
||||
arch-compat = "ife";
|
||||
status = "ok";
|
||||
};
|
202
qcom/camera/bindings/msm-cam-jpeg.txt
Normal file
202
qcom/camera/bindings/msm-cam-jpeg.txt
Normal file
@@ -0,0 +1,202 @@
|
||||
* Qualcomm Technologies, Inc. MSM Camera JPEG
|
||||
|
||||
The MSM camera JPEG devices are implemented multiple device nodes.
|
||||
The root JPEG device node has properties defined to hint the driver
|
||||
about the number of Encoder and DMA nodes available during the
|
||||
probe sequence. Each node has multiple properties defined
|
||||
for interrupts, clocks and regulators.
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
JPEG root interface node takes care of the handling account for number
|
||||
of Encoder and DMA devices present on the hardware.
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,cam-jpeg".
|
||||
|
||||
- compat-hw-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,jpegenc" or "qcom,jpegdma".
|
||||
|
||||
- num-jpeg-enc
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Number of supported Encoder HW blocks.
|
||||
|
||||
- num-jpeg-dma
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Number of supported DMA HW blocks.
|
||||
|
||||
Example:
|
||||
qcom,cam-jpeg {
|
||||
compatible = "qcom,cam-jpeg";
|
||||
compat-hw-name = "qcom,jpegenc",
|
||||
"qcom,jpegdma";
|
||||
num-jpeg-enc = <1>;
|
||||
num-jpeg-dma = <1>;
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
Encoder/DMA Nodes provide interface for JPEG driver about
|
||||
the device register map, interrupt map, clocks and regulators.
|
||||
Compatible string definition should be based on target.
|
||||
|
||||
- cell-index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Node instance number.
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,cam_jpeg_enc".
|
||||
Definition: Should be "qcom,cam_jpeg_enc_165".
|
||||
Definition: Should be "qcom,cam_jpeg_enc_580".
|
||||
Definition: Should be "qcom,cam_jpeg_enc_680".
|
||||
Definition: Should be "qcom,cam_jpeg_dma".
|
||||
Definition: Should be "qcom,cam_jpeg_dma_165".
|
||||
Definition: Should be "qcom,cam_jpeg_dma_580".
|
||||
Definition: Should be "qcom,cam_jpeg_dma_680".
|
||||
|
||||
- reg-names
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Name of the register resources.
|
||||
|
||||
- reg
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Register values.
|
||||
|
||||
- reg-cam-base
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Offset of the register space compared to
|
||||
to Camera base register space.
|
||||
|
||||
- interrupt-names
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Name of the interrupt.
|
||||
|
||||
- interrupts
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Interrupt associated with JPEG HW.
|
||||
|
||||
- regulator-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the regulator resources for JPEG HW.
|
||||
|
||||
- camss-vdd-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: Regulator reference corresponding to the names listed
|
||||
in "regulator-names".
|
||||
|
||||
- clock-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of clock names required for JPEG HW.
|
||||
|
||||
- clocks
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: List of clocks used for JPEG HW.
|
||||
|
||||
- clock-rates
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of clocks rates.
|
||||
|
||||
- src-clock-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Source clock name.
|
||||
|
||||
- clock-cntl-level
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of strings corresponds clock-rates levels.
|
||||
Supported strings: minsvs, lowsvs, svs, svs_l1, nominal, turbo.
|
||||
|
||||
- shared-clks
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: List of 0 or 1 values indicating whether shared clk or not.
|
||||
|
||||
- nrt-device
|
||||
Usage: optional
|
||||
Value type: <empty>
|
||||
Definition: Flag to indicate whether this is non real time device.
|
||||
|
||||
- cam_hw_pid:
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: HW unique Pid values
|
||||
|
||||
- cam_hw_rd_mid:
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: HW port read mid value
|
||||
|
||||
- cam_hw_wr_mid:
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: HW port write mid value
|
||||
|
||||
Examples:
|
||||
cam_jpeg_enc: qcom,jpegenc@ac4e000 {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,cam_jpeg_enc";
|
||||
reg-names = "jpege_hw";
|
||||
reg = <0xac4e000 0x4000>;
|
||||
reg-cam-base = <0x4e000>;
|
||||
interrupt-names = "jpeg";
|
||||
interrupts = <0 474 0>;
|
||||
regulator-names = "camss-vdd";
|
||||
camss-vdd-supply = <&titan_top_gdsc>;
|
||||
shared-clks = <1 0>;
|
||||
clock-names = "jpegenc_clk_src",
|
||||
"jpegenc_clk";
|
||||
clocks = <&clock_camcc CAM_CC_JPEG_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_JPEG_CLK>;
|
||||
clock-rates = <600000000 0>;
|
||||
src-clock-name = "jpegenc_clk_src";
|
||||
clock-cntl-level = "nominal";
|
||||
nrt-device;
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
cam_jpeg_dma: qcom,jpegdma@0xac52000{
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,cam_jpeg_dma";
|
||||
reg-names = "jpegdma_hw";
|
||||
reg = <0xac52000 0x4000>;
|
||||
reg-cam-base = <0x52000>;
|
||||
interrupt-names = "jpegdma";
|
||||
interrupts = <0 475 0>;
|
||||
regulator-names = "camss-vdd";
|
||||
camss-vdd-supply = <&titan_top_gdsc>;
|
||||
shared-clks = <1 0>;
|
||||
clock-names = "jpegdma_clk_src",
|
||||
"jpegdma_clk";
|
||||
clocks = <&clock_camcc CAM_CC_JPEG_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_JPEG_CLK>;
|
||||
|
||||
clock-rates = <600000000 0>;
|
||||
src-clock-name = "jpegdma_clk_src";
|
||||
clock-cntl-level = "nominal";
|
||||
nrt-device;
|
||||
status = "ok";
|
||||
};
|
148
qcom/camera/bindings/msm-cam-lrme.txt
Normal file
148
qcom/camera/bindings/msm-cam-lrme.txt
Normal file
@@ -0,0 +1,148 @@
|
||||
* Qualcomm Technologies, Inc. MSM Camera LRME
|
||||
|
||||
The MSM camera Low Resolution Motion Estimation device provides dependency
|
||||
definitions for enabling Camera LRME HW. MSM camera LRME is implemented in
|
||||
multiple device nodes. The root LRME device node has properties defined to
|
||||
hint the driver about the LRME HW nodes available during the probe sequence.
|
||||
Each node has multiple properties defined for interrupts, clocks and
|
||||
regulators.
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
LRME root interface node takes care of the handling LRME high level
|
||||
driver handling and controls underlying LRME hardware present.
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,cam-lrme"
|
||||
|
||||
- compat-hw-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,lrme"
|
||||
|
||||
- num-lrme
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Number of supported LRME HW blocks
|
||||
|
||||
Example:
|
||||
qcom,cam-lrme {
|
||||
compatible = "qcom,cam-lrme";
|
||||
compat-hw-name = "qcom,lrme";
|
||||
num-lrme = <1>;
|
||||
};
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
LRME Node provides interface for Low Resolution Motion Estimation hardware
|
||||
driver about the device register map, interrupt map, clocks, regulators.
|
||||
|
||||
- cell-index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Node instance number
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,lrme"
|
||||
|
||||
- reg-names
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Name of the register resources
|
||||
|
||||
- reg
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Register values
|
||||
|
||||
- reg-cam-base
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Offset of the register space compared to
|
||||
to Camera base register space
|
||||
|
||||
- interrupt-names
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Name of the interrupt
|
||||
|
||||
- interrupts
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Interrupt line associated with LRME HW
|
||||
|
||||
- regulator-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the regulator resources for LRME HW
|
||||
|
||||
- camss-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: Regulator reference corresponding to the names listed
|
||||
in "regulator-names"
|
||||
|
||||
- clock-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of clock names required for LRME HW
|
||||
|
||||
- clocks
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: List of clocks required for LRME HW
|
||||
|
||||
- clock-rates
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of clocks rates
|
||||
|
||||
- clock-cntl-level
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of strings corresponds clock-rates levels
|
||||
Supported strings: minsvs, lowsvs, svs, svs_l1, nominal, turbo
|
||||
|
||||
- src-clock-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Source clock name
|
||||
|
||||
Examples:
|
||||
cam_lrme: qcom,lrme@ac6b000 {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,lrme";
|
||||
reg-names = "lrme";
|
||||
reg = <0xac6b000 0xa00>;
|
||||
reg-cam-base = <0x6b000>;
|
||||
interrupt-names = "lrme";
|
||||
interrupts = <0 476 0>;
|
||||
regulator-names = "camss";
|
||||
camss-supply = <&titan_top_gdsc>;
|
||||
clock-names = "camera_ahb",
|
||||
"camera_axi",
|
||||
"soc_ahb_clk",
|
||||
"cpas_ahb_clk",
|
||||
"camnoc_axi_clk",
|
||||
"lrme_clk_src",
|
||||
"lrme_clk";
|
||||
clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
|
||||
<&clock_gcc GCC_CAMERA_AXI_CLK>,
|
||||
<&clock_camcc CAM_CC_SOC_AHB_CLK>,
|
||||
<&clock_camcc CAM_CC_CPAS_AHB_CLK>,
|
||||
<&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
|
||||
<&clock_camcc CAM_CC_LRME_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_LRME_CLK>;
|
||||
clock-rates = <0 0 0 0 0 0 0>,
|
||||
<0 0 0 0 0 19200000 19200000>,
|
||||
<0 0 0 0 0 19200000 19200000>,
|
||||
<0 0 0 0 0 19200000 19200000>;
|
||||
clock-cntl-level = "lowsvs", "svs", "svs_l1", "turbo";
|
||||
src-clock-name = "lrme_core_clk_src";
|
||||
};
|
168
qcom/camera/bindings/msm-cam-ope.txt
Normal file
168
qcom/camera/bindings/msm-cam-ope.txt
Normal file
@@ -0,0 +1,168 @@
|
||||
* Qualcomm Technologies, Inc. MSM Camera OPE
|
||||
|
||||
The ope device node has properties defined to hint the driver
|
||||
about the number of OPE nodes available during the
|
||||
probe sequence. Each node has multiple properties defined
|
||||
for interrupts, clocks and regulators.
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
OPE root interface node takes care of the handling account for number
|
||||
of OPE devices present on the hardware.
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,cam-ope".
|
||||
|
||||
- compat-hw-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,ope".
|
||||
|
||||
- num-ope
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Number of supported OPE HW blocks.
|
||||
|
||||
Example:
|
||||
qcom,cam-ope {
|
||||
compatible = "qcom,cam-ope";
|
||||
compat-hw-name = "qcom,ope";
|
||||
num-ope = <2>;
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
OPE Node provides interface for Image Control Processor driver
|
||||
about the OPE register map, interrupt map, clocks, regulators.
|
||||
|
||||
- cell-index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Node instance number.
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,ope".
|
||||
|
||||
- reg-names
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Name of the register resources.
|
||||
|
||||
- reg
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Register values.
|
||||
|
||||
- reg-cam-base
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Register values.
|
||||
|
||||
- interrupt-names
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Name of the interrupt.
|
||||
|
||||
- interrupts
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Interrupt associated with OPE HW.
|
||||
|
||||
- regulator-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the regulator resources for OPE HW.
|
||||
|
||||
- camss-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: Regulator reference corresponding to the names listed
|
||||
in "regulator-names".
|
||||
|
||||
- clock-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of clock names required for CDM HW.
|
||||
|
||||
- src-clock-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Source clock name.
|
||||
|
||||
- clock-control-debugfs
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Enable/Disable clk rate control.
|
||||
|
||||
- clocks
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: List of clocks used for CDM HW.
|
||||
|
||||
- clock-cntl-level
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of strings corresponds clock-rates levels.
|
||||
Supported strings: lowsvs, svs, svs_l1, nominal, turbo.
|
||||
|
||||
- clock-rates
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of clocks rates.
|
||||
|
||||
Examples:
|
||||
qcom,cam-ope {
|
||||
compatible = "qcom,cam-ope";
|
||||
compat-hw-name = "qcom,ope";
|
||||
num-ope = <1>;
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
ope: qcom,ope@ac00000 {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,ope";
|
||||
reg =
|
||||
<0x42000 0x400>,
|
||||
<0x42400 0x200>,
|
||||
<0x42600 0x200>,
|
||||
<0x42800 0x4400>,
|
||||
<0x46c00 0x190>,
|
||||
<0x46d90 0x1270>;
|
||||
reg-names =
|
||||
"ope_cdm",
|
||||
"ope_top",
|
||||
"ope_qos",
|
||||
"ope_pp",
|
||||
"ope_bus_rd",
|
||||
"ope_bus_wr";
|
||||
reg-cam-base = <0x42000 0x42400 0x42600 0x42800 0x46c00 0x46d90>;
|
||||
interrupts = <GIC_SPI 463 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "ope";
|
||||
regulator-names = "camss-vdd";
|
||||
camss-vdd-supply = <&gcc_camss_top_gdsc>;
|
||||
clock-names =
|
||||
"ope_ahb_clk_src",
|
||||
"ope_ahb_clk",
|
||||
"ope_clk_src",
|
||||
"ope_clk";
|
||||
clocks =
|
||||
<&gcc GCC_CAMSS_OPE_AHB_CLK_SRC>,
|
||||
<&gcc GCC_CAMSS_OPE_AHB_CLK>,
|
||||
<&gcc GCC_CAMSS_OPE_CLK_SRC>,
|
||||
<&gcc GCC_CAMSS_OPE_CLK>;
|
||||
|
||||
clock-rates =
|
||||
<200000000 0 480000000 0>,
|
||||
<400000000 0 600000000 0>;
|
||||
|
||||
clock-cntl-level = "svs", "turbo";
|
||||
src-clock-name = "ope_clk_src";
|
||||
status = "ok";
|
||||
};
|
95
qcom/camera/bindings/msm-cam-ppi.txt
Normal file
95
qcom/camera/bindings/msm-cam-ppi.txt
Normal file
@@ -0,0 +1,95 @@
|
||||
* Qualcomm Technologies, Inc. MSM camera PPI
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
The camera PPI node must be described in First level of device nodes. The
|
||||
first level describe the overall PPI node structure.
|
||||
|
||||
======================================
|
||||
First Level Node - PPI device
|
||||
======================================
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,ppi100".
|
||||
|
||||
- cell-index: ppi hardware core index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Should specify the Hardware index id.
|
||||
|
||||
- reg
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: offset and length of the register set
|
||||
for the device for the ppi operating in
|
||||
compatible mode.
|
||||
|
||||
- reg-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should specify relevant names to each
|
||||
reg property defined.
|
||||
|
||||
- reg-cam-base
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: offset of PPI in camera hw block
|
||||
|
||||
- interrupts
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Interrupt associated with PPI HW.
|
||||
|
||||
- interrupt-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the interrupt.
|
||||
|
||||
- clock-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of clock names required for PPI HW.
|
||||
|
||||
- clock-rates
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of clock rates in Hz for PPI HW.
|
||||
|
||||
- clock-cntl-level
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: All different clock level node can support.
|
||||
|
||||
- clocks
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: all clock phandle and source clocks.
|
||||
|
||||
- regulator-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: name of the voltage regulators required for the device.
|
||||
|
||||
- gdscr-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: should contain gdsr regulator used for PPI clocks.
|
||||
|
||||
Example:
|
||||
qcom,ppi0@5cb3000 {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,ppi100";
|
||||
reg-names = "ppi0";
|
||||
reg = <0x5cb3000 0x200>;
|
||||
reg-cam-base = <0xb3000>;
|
||||
interrupt-names = "ppi0";
|
||||
interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&gcc GCC_CAMSS_CPHY_0_CLK>;
|
||||
clock-names = "gcc_camss_cphy_0_clk";
|
||||
clock-cntl-level = "svs";
|
||||
clock-rates = <0>;
|
||||
status = "ok";
|
||||
};
|
144
qcom/camera/bindings/msm-cam-sfe.txt
Normal file
144
qcom/camera/bindings/msm-cam-sfe.txt
Normal file
@@ -0,0 +1,144 @@
|
||||
* Qualcomm Technologies, Inc. MSM Camera SFE
|
||||
|
||||
Camera SFE device provides the definitions for enabling
|
||||
the SFE hardware. It also provides the functions for the client
|
||||
to control the SFE hardware.
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
The SFE device is described in one level of the device node.
|
||||
|
||||
======================================
|
||||
First Level Node - CAM SFE device
|
||||
======================================
|
||||
Required properties:
|
||||
- cell-index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Should specify the hardware index id.
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should specify the compatibility string for matching the
|
||||
|
||||
driver. e.g. "qcom,sfe680".
|
||||
|
||||
- reg-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should specify the name of the register block.
|
||||
|
||||
- reg
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Register values.
|
||||
|
||||
- reg-cam-base
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of bases.
|
||||
|
||||
- rt-wrapper-base
|
||||
Usage: required
|
||||
Value type: u32
|
||||
Definition: Titan offset of start of the RT Wrapper.
|
||||
|
||||
- interrupt-names
|
||||
Usage: Required
|
||||
Value type: <string>
|
||||
Definition: Name of the interrupt.
|
||||
|
||||
- interrupts
|
||||
Usage: Required
|
||||
Value type: <u32>
|
||||
Definition: Interrupt associated with SFE HW.
|
||||
|
||||
- regulator-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the regulator resources for SFE HW.
|
||||
|
||||
- xxxx-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: Regulator reference corresponding to the names listed in
|
||||
"regulator-names".
|
||||
|
||||
- clock-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of clock names required for SFE HW.
|
||||
|
||||
- clocks
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: List of clocks used for SFE HW.
|
||||
|
||||
- clock-rates
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of clocks rates.
|
||||
|
||||
- clock-cntl-level
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: All different clock level node can support.
|
||||
|
||||
- src-clock-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Source clock name.
|
||||
|
||||
- scl-clk-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Source clock name for register write.
|
||||
|
||||
- clock-control-debugfs
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Enable/Disable clk rate control.
|
||||
|
||||
- vmrm-resource-ids
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should specify vmrm resource id list order is mem label,
|
||||
mem tag, irq1 label, irq2 label.
|
||||
|
||||
Example:
|
||||
cam_sfe0: qcom,sfe0@ac9e000 {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,sfe680";
|
||||
reg-names = "sfe0";
|
||||
reg = <0xac9e000 0x8000>;
|
||||
reg-cam-base = <0x9e000>;
|
||||
rt-wrapper-base = <0x62000>;
|
||||
interrupt-names = "sfe";
|
||||
interrupts = <GIC_SPI 462 IRQ_TYPE_EDGE_RISING>;
|
||||
regulator-names = "camss", "sfe0";
|
||||
camss-supply = <&cam_cc_titan_top_gdsc>;
|
||||
sfe0-supply = <&cam_cc_sfe_0_gdsc>;
|
||||
clock-names =
|
||||
"sfe_0_ahb",
|
||||
"sfe_clk_src",
|
||||
"sfe_clk";
|
||||
clocks =
|
||||
<&clock_camcc CAM_CC_SFE_0_FAST_AHB_CLK>,
|
||||
<&clock_camcc CAM_CC_SFE_0_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_SFE_0_CLK>;
|
||||
clock-rates =
|
||||
<100000000 432000000 0>,
|
||||
<200000000 594000000 0>,
|
||||
<300000000 675000000 0>,
|
||||
<400000000 785000000 0>,
|
||||
<400000000 785000000 0>;
|
||||
clock-cntl-level = "lowsvs", "svs", "svs_l1", "nominal",
|
||||
"turbo";
|
||||
src-clock-name = "sfe_clk_src";
|
||||
scl-clk-names = "sfe_0_ahb";
|
||||
clock-control-debugfs = "true";
|
||||
vmrm-resource-ids = <16 16 16>;
|
||||
status = "ok";
|
||||
};
|
147
qcom/camera/bindings/msm-cam-smmu.txt
Normal file
147
qcom/camera/bindings/msm-cam-smmu.txt
Normal file
@@ -0,0 +1,147 @@
|
||||
* Qualcomm Technologies, Inc. MSM Camera SMMU
|
||||
|
||||
The MSM camera SMMU device provides SMMU context bank definitions
|
||||
for all HW blocks that need to map IOVA to physical memory. These
|
||||
definitions consist of various properties that define how the
|
||||
IOVA address space is laid out for each HW block in the camera
|
||||
subsystem.
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
The camera SMMU device must be described in three levels of device nodes. The
|
||||
first level describes the overall SMMU device. Within it, second level nodes
|
||||
describe individual context banks that map different stream ids. There can
|
||||
also be second level nodes describing firmware device nodes. Each HW block
|
||||
such as IFE, ICP maps into these second level device nodes. All context bank
|
||||
specific properties that define how the IOVA is laid out is contained within
|
||||
third level device nodes within the second level device nodes.
|
||||
|
||||
During the kernel initialization all the devices are probed recursively and
|
||||
a device pointer is created for each context bank keeping track of the IOVA
|
||||
mapping information.
|
||||
|
||||
Duplicate regions of the same type are not allowed within the same
|
||||
context bank. All context banks must contain an IO region at the very least.
|
||||
|
||||
==================================
|
||||
First Level Node - CAM SMMU device
|
||||
==================================
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,msm-cam-smmu".
|
||||
|
||||
===================================================================
|
||||
Second Level Node - CAM SMMU context bank device or firmware device
|
||||
===================================================================
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,msm-cam-smmu-cb" or "qcom,msm-cam-smmu-fw-dev".
|
||||
|
||||
- memory-region
|
||||
Usage: optional
|
||||
Value type: <phandle>
|
||||
Definition: Should specify the phandle of the memory region for firmware.
|
||||
allocation
|
||||
|
||||
- iommus
|
||||
Usage: required
|
||||
Value type: <phandle u32 u32>
|
||||
Definition: first cell is phandle of the iommu, second cell is stream id
|
||||
and third cell is SMR mask.
|
||||
|
||||
- label
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should specify a string label to identify the context bank.
|
||||
|
||||
- qcom,secure-cb
|
||||
Usage: optional
|
||||
Value type: boolean
|
||||
Definition: Specifies if the context bank is a secure context bank.
|
||||
|
||||
- qti,smmu-proxy-cb-id
|
||||
Usage: optional for secure camera 2.0, required for 2.5
|
||||
Value type: <u32>
|
||||
Definition: Specifies that the SMMU proxy client is camera.
|
||||
|
||||
=============================================
|
||||
Third Level Node - CAM SMMU memory map device
|
||||
=============================================
|
||||
- iova-region-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should specify a string label to identify the IOVA region.
|
||||
|
||||
- iova-region-start
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Should specify start IOVA for region.
|
||||
|
||||
- iova-region-len
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Should specify length for IOVA region.
|
||||
|
||||
- iova-region-id
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Should specify the numerical identifier for IOVA region.
|
||||
Allowed values are: 0x00 to 0x03
|
||||
- Firmware region: 0x00
|
||||
- Shared region: 0x01
|
||||
- Scratch region: 0x02
|
||||
- IO region: 0x03
|
||||
|
||||
- iova-granularity
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Should specify IOVA granularity for shared memory region.
|
||||
|
||||
Example:
|
||||
qcom,cam_smmu {
|
||||
compatible = "qcom,msm-cam-smmu";
|
||||
|
||||
msm_cam_smmu_icp {
|
||||
compatible = "qcom,msm-cam-smmu-cb";
|
||||
iommus = <&apps_smmu 0x1078>,
|
||||
<&apps_smmu 0x1020>,
|
||||
<&apps_smmu 0x1028>,
|
||||
<&apps_smmu 0x1040>,
|
||||
<&apps_smmu 0x1048>,
|
||||
<&apps_smmu 0x1030>,
|
||||
<&apps_smmu 0x1050>;
|
||||
label = "icp";
|
||||
icp_iova_mem_map: iova-mem-map {
|
||||
iova-mem-region-firmware {
|
||||
/* Firmware region is 5MB */
|
||||
iova-region-name = "firmware";
|
||||
iova-region-start = <0x0>;
|
||||
iova-region-len = <0x500000>;
|
||||
iova-region-id = <0x0>;
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
iova-mem-region-shared {
|
||||
/* Shared region is 100MB long */
|
||||
iova-region-name = "shared";
|
||||
iova-region-start = <0x7400000>;
|
||||
iova-region-len = <0x6400000>;
|
||||
iova-region-id = <0x1>;
|
||||
iova-granularity = <0x15>;
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
iova-mem-region-io {
|
||||
/* IO region is approximately 3.5 GB */
|
||||
iova-region-name = "io";
|
||||
iova-region-start = <0xd800000>;
|
||||
iova-region-len = <0xd2800000>;
|
||||
iova-region-id = <0x3>;
|
||||
status = "ok";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
123
qcom/camera/bindings/msm-cam-tfe-csid.txt
Normal file
123
qcom/camera/bindings/msm-cam-tfe-csid.txt
Normal file
@@ -0,0 +1,123 @@
|
||||
* Qualcomm Technologies, Inc. MSM Camera TFE CSID
|
||||
|
||||
Camera TFE CSID device provides the definitions for enabling
|
||||
the TFE CSID hardware. It also provides the functions for the client
|
||||
to control the TFE CSID hardware.
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
The TFE CSID device is described in one level of the device node.
|
||||
|
||||
======================================
|
||||
First Level Node - CAM TFE CSID device
|
||||
======================================
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,csid640", "qcom,csid530".
|
||||
|
||||
- cell-index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Should specify the hardware index id.
|
||||
|
||||
- reg-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "csid".
|
||||
|
||||
- reg
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Register values.
|
||||
|
||||
- interrupt-names
|
||||
Usage: Required
|
||||
Value type: <string>
|
||||
Definition: Name of the interrupt.
|
||||
|
||||
- interrupts
|
||||
Usage: Required
|
||||
Value type: <u32>
|
||||
Definition: Interrupt associated with TFE CSID HW.
|
||||
|
||||
- regulator-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the regulator resources for TFE CSID HW.
|
||||
|
||||
- xxxx-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: Regulator reference corresponding to the names listed in
|
||||
"regulator-names".
|
||||
|
||||
- clock-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of clock names required for TFE CSID HW.
|
||||
|
||||
- clocks
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: List of clocks used for TFE CSID HW.
|
||||
|
||||
- clock-rates
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of clocks rates.
|
||||
|
||||
- clock-cntl-level
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: All different clock level node can support.
|
||||
|
||||
- src-clock-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Source clock name.
|
||||
|
||||
- clock-control-debugfs
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Enable/Disable clk rate control.
|
||||
|
||||
Example:
|
||||
|
||||
qcom,tfe_csid0@5c6e000 {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,csid530";
|
||||
reg-names = reg-names = "csid", "top", "camnoc";
|
||||
reg = <0x5c6e000 0x5000>,
|
||||
<0x5c11000 0x1000>,
|
||||
<0x5c13000 0x4000>;
|
||||
interrupt-names = "csid0";
|
||||
interrupts = <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>;
|
||||
regulator-names = "camss";
|
||||
camss-supply = <&gcc_camss_top_gdsc>;
|
||||
clock-names =
|
||||
"tfe_csid_clk_src",
|
||||
"tfe_csid_clk",
|
||||
"cphy_rx_clk_src",
|
||||
"tfe_cphy_rx_clk",
|
||||
"tfe_clk_src",
|
||||
"tfe_clk",
|
||||
"tfe_axi_clk";
|
||||
clocks =
|
||||
<&gcc GCC_CAMSS_TFE_0_CSID_CLK_SRC>,
|
||||
<&gcc GCC_CAMSS_TFE_0_CSID_CLK>,
|
||||
<&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
|
||||
<&gcc GCC_CAMSS_TFE_0_CPHY_RX_CLK>,
|
||||
<&gcc GCC_CAMSS_TFE_0_CLK_SRC>,
|
||||
<&gcc GCC_CAMSS_TFE_0_CLK>,
|
||||
<&gcc GCC_CAMSS_AXI_CLK>;
|
||||
clock-rates =
|
||||
<240000000 0 0 0 256000000 0 0>,
|
||||
<384000000 0 0 0 460800000 0 0>,
|
||||
<426400000 0 0 0 576000000 0 0>,
|
||||
clock-cntl-level = "svs", "svs_l1", "turbo";
|
||||
src-clock-name = "tfe_csid_clk_src";
|
||||
clock-control-debugfs = "true";
|
||||
status = "ok";
|
||||
};
|
147
qcom/camera/bindings/msm-cam-tfe.txt
Normal file
147
qcom/camera/bindings/msm-cam-tfe.txt
Normal file
@@ -0,0 +1,147 @@
|
||||
* Qualcomm Technologies, Inc. MSM Camera TFE
|
||||
|
||||
Camera TFE device provides the definitions for enabling
|
||||
the TFE hardware. It also provides the functions for the client
|
||||
to control the TFE hardware.
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
The TFE device is described in one level of the device node.
|
||||
|
||||
======================================
|
||||
First Level Node - CAM TFE device
|
||||
======================================
|
||||
Required properties:
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should specify the compatibility string for matching the
|
||||
driver. e.g. "qcom,tfe640", "qcom,tfe530".
|
||||
|
||||
- cell-index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Should specify the hardware index id.
|
||||
|
||||
- reg-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should specify the name of the register block.
|
||||
|
||||
- reg
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Register values.
|
||||
|
||||
- interrupt-names
|
||||
Usage: Required
|
||||
Value type: <string>
|
||||
Definition: Name of the interrupt.
|
||||
|
||||
- interrupts
|
||||
Usage: Required
|
||||
Value type: <u32>
|
||||
Definition: Interrupt associated with TFE HW.
|
||||
|
||||
- regulator-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the regulator resources for TFE HW.
|
||||
|
||||
- xxxx-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: Regulator reference corresponding to the names listed in
|
||||
"regulator-names".
|
||||
|
||||
- clock-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of clock names required for TFE HW.
|
||||
|
||||
- clocks
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: List of clocks used for TFE HW.
|
||||
|
||||
- clock-rates
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of clocks rates.
|
||||
|
||||
- src-clock-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Source clock name.
|
||||
|
||||
Optional properties:
|
||||
- clock-names-option
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Optional clock names.
|
||||
|
||||
- clocks-option
|
||||
Usage: required if clock-names-option defined
|
||||
Value type: <phandle>
|
||||
Definition: List of optinal clocks used for TFE HW.
|
||||
|
||||
- clock-rates-option
|
||||
Usage: required if clock-names-option defined
|
||||
Value type: <u32>
|
||||
Definition: List of clocks rates for optional clocks.
|
||||
|
||||
- clock-control-debugfs
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Enable/Disable clk rate control.
|
||||
|
||||
- qcom,cam-cx-ipeak:
|
||||
Usage: optional
|
||||
Value type: <phandle bit>
|
||||
phandle - phandle of CX Ipeak device node
|
||||
bit - Every bit corresponds to a client of CX Ipeak
|
||||
Definition: CX Ipeak is a mitigation scheme which throttles camera frequency
|
||||
if all the clients are running at their respective threshold
|
||||
frequencies to limit CX peak current.
|
||||
driver in the relevant register.
|
||||
|
||||
- scl-clk-names:
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Scalable clock names to identify which clocks needs to update
|
||||
along with source clock.
|
||||
|
||||
- cam_hw_pid:
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: HW unique Pid values
|
||||
|
||||
Example:
|
||||
cam_tfe0: qcom,tfe0@5c6e000{
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,tfe530";
|
||||
reg-names = "tfe0";
|
||||
reg = <0x5c6e000 0x5000>;
|
||||
reg-cam-base = <0x6e000>;
|
||||
interrupt-names = "tfe0";
|
||||
interrupts = <GIC_SPI 211 IRQ_TYPE_EDGE_RISING>;
|
||||
regulator-names = "camss";
|
||||
camss-supply = <&gcc_camss_top_gdsc>;
|
||||
clock-names =
|
||||
"tfe_clk_src",
|
||||
"tfe_clk",
|
||||
"tfe_axi_clk";
|
||||
clocks =
|
||||
<&gcc GCC_CAMSS_TFE_0_CLK_SRC>,
|
||||
<&gcc GCC_CAMSS_TFE_0_CLK>,
|
||||
<&gcc GCC_CAMSS_AXI_CLK>;
|
||||
clock-rates =
|
||||
<256000000 0 150000000>,
|
||||
<460800000 0 200000000>,
|
||||
<576000000 0 300000000>;
|
||||
clock-cntl-level = "svs", "svs_l1", "turbo";
|
||||
src-clock-name = "tfe_clk_src";
|
||||
clock-control-debugfs = "true";
|
||||
status = "ok";
|
||||
};
|
137
qcom/camera/bindings/msm-cam-tpg.txt
Normal file
137
qcom/camera/bindings/msm-cam-tpg.txt
Normal file
@@ -0,0 +1,137 @@
|
||||
* Qualcomm Technologies, Inc. MSM Camera TPG
|
||||
|
||||
Camera TPG device provides the definitions for enabling
|
||||
the TPG hardware. It also provides the functions for the client
|
||||
to control the TPG hardware.
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
The TPG device is described in one level of the device node.
|
||||
|
||||
======================================
|
||||
First Level Node - CAM TPG device
|
||||
======================================
|
||||
Required properties:
|
||||
- cell-index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Should specify the hardware index id.
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should specify the compatibility string for matching the
|
||||
driver. e.g. "qcom,cam-tpg101", "qcom,cam-tpg102", "qcom,cam-tpgv1", "qcom,cam-tpg103"
|
||||
|
||||
- phy-id
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Should specify the phy index number for csid input configuration
|
||||
|
||||
- reg-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should specify the name of the register block.
|
||||
|
||||
- reg
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Register values.
|
||||
|
||||
- reg-cam-base
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of bases.
|
||||
|
||||
- regulator-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the regulator resources for TFE HW.
|
||||
|
||||
- xxxx-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: Regulator reference corresponding to the names listed in
|
||||
"regulator-names".
|
||||
|
||||
- interrupt-names
|
||||
Usage: Required
|
||||
Value type: <string>
|
||||
Definition: Name of the interrupt.
|
||||
|
||||
- interrupts
|
||||
Usage: Required
|
||||
Value type: <u32>
|
||||
Definition: Interrupt associated with TFE HW.
|
||||
|
||||
- clock-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of clock names required for TFE HW.
|
||||
|
||||
- clocks
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: List of clocks used for TFE HW.
|
||||
|
||||
- clock-rates
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of clocks rates.
|
||||
|
||||
- clock-cntl-level
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: All different clock level node can support.
|
||||
|
||||
- src-clock-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Source clock name.
|
||||
|
||||
- clock-control-debugfs
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Enable/Disable clk rate control.
|
||||
|
||||
- scl-clk-names:
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Scalable clock names to identify which clocks needs to update
|
||||
along with source clock.
|
||||
|
||||
- shared-clks
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: List of 0 or 1 values indicating whether shared clk or not.
|
||||
|
||||
Example:
|
||||
cam_csiphy_tpg0: qcom,tpg0@acf6000 {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,tpg103";
|
||||
reg-names = "tpg0", "cam_cpas_top";
|
||||
reg = <0xacf6000 0x400>,
|
||||
<0xac13000 0x1000>;
|
||||
reg-cam-base = <0xf6000 0x13000>;
|
||||
regulator-names = "camss";
|
||||
camss-supply = <&cam_cc_titan_top_gdsc>;
|
||||
interrupt-names = "tpg0";
|
||||
interrupts = <GIC_SPI 413 IRQ_TYPE_EDGE_RISING>;
|
||||
shared-clks = <1 0 0 0>;
|
||||
clock-names =
|
||||
"cphy_rx_clk_src",
|
||||
"csiphy0_clk",
|
||||
"csi0phytimer_clk_src",
|
||||
"csi0phytimer_clk";
|
||||
clocks =
|
||||
<&clock_camcc CAM_CC_CPHY_RX_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_CSIPHY0_CLK>,
|
||||
<&clock_camcc CAM_CC_CSI0PHYTIMER_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_CSI0PHYTIMER_CLK>;
|
||||
clock-rates =
|
||||
<480000000 0 400000000 0>;
|
||||
clock-cntl-level = "nominal";
|
||||
src-clock-name = "csi0phytimer_clk_src";
|
||||
status = "ok";
|
||||
};
|
183
qcom/camera/bindings/msm-cam-vfe.txt
Normal file
183
qcom/camera/bindings/msm-cam-vfe.txt
Normal file
@@ -0,0 +1,183 @@
|
||||
* Qualcomm Technologies, Inc. MSM Camera VFE
|
||||
|
||||
Camera VFE device provides the definitions for enabling
|
||||
the VFE hardware. It also provides the functions for the client
|
||||
to control the VFE hardware.
|
||||
|
||||
=======================
|
||||
Required Node Structure
|
||||
=======================
|
||||
The VFE device is described in one level of the device node.
|
||||
|
||||
======================================
|
||||
First Level Node - CAM VFE device
|
||||
======================================
|
||||
Required properties:
|
||||
- cell-index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Should specify the hardware index id.
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should specify the compatibility string for matching the
|
||||
|
||||
driver. e.g. "qcom,vfe680", "qcom,vfe680_110", "qcom,vfe580", "qcom,vfe580",
|
||||
"qcom,vfe480", "qcom,vfe175", "qcom,vfe170", "qcom,vfe175_130", "qcom,vfe170_150",
|
||||
"qcom,vfe165_160", "qcom,vfe-lite680", "qcom,vfe-lite680_110", "qcom,vfe-lite580",,
|
||||
"qcom,vfe-lite580", "qcom,vfe-lite480", "qcom,vfe-lite175",
|
||||
"qcom,vfe-lite175_130" or "qcom,vfe-lite170", "qcom,vfe-lite165".
|
||||
|
||||
- reg-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should specify the name of the register block.
|
||||
|
||||
- reg
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Register values.
|
||||
|
||||
- reg-cam-base
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of bases.
|
||||
|
||||
- rt-wrapper-base
|
||||
Usage: required
|
||||
Value type: u32
|
||||
Definition: Titan offset of start of the RT Wrapper.
|
||||
|
||||
- interrupt-names
|
||||
Usage: Required
|
||||
Value type: <string>
|
||||
Definition: Name of the interrupt.
|
||||
|
||||
- interrupts
|
||||
Usage: Required
|
||||
Value type: <u32>
|
||||
Definition: Interrupt associated with VFE HW.
|
||||
|
||||
- regulator-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Name of the regulator resources for VFE HW.
|
||||
|
||||
- xxxx-supply
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: Regulator reference corresponding to the names listed in
|
||||
"regulator-names".
|
||||
|
||||
- clock-names
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: List of clock names required for VFE HW.
|
||||
|
||||
- clocks
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: List of clocks used for VFE HW.
|
||||
|
||||
- clock-rates
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: List of clocks rates.
|
||||
|
||||
- src-clock-name
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Source clock name.
|
||||
|
||||
Optional properties:
|
||||
- clock-names-option
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Optional clock names.
|
||||
|
||||
- clocks-option
|
||||
Usage: required if clock-names-option defined
|
||||
Value type: <phandle>
|
||||
Definition: List of optinal clocks used for VFE HW.
|
||||
|
||||
- clock-rates-option
|
||||
Usage: required if clock-names-option defined
|
||||
Value type: <u32>
|
||||
Definition: List of clocks rates for optional clocks.
|
||||
|
||||
- clock-control-debugfs
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Enable/Disable clk rate control.
|
||||
|
||||
- qcom,cam-cx-ipeak:
|
||||
Usage: optional
|
||||
Value type: <phandle bit>
|
||||
phandle - phandle of CX Ipeak device node
|
||||
bit - Every bit corresponds to a client of CX Ipeak
|
||||
Definition: CX Ipeak is a mitigation scheme which throttles camera frequency
|
||||
if all the clients are running at their respective threshold
|
||||
frequencies to limit CX peak current.
|
||||
driver in the relevant register.
|
||||
|
||||
- scl-clk-names:
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Scalable clock names to identify which clocks needs to update
|
||||
along with source clock.
|
||||
|
||||
- cam_hw_pid:
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: HW unique Pid values
|
||||
|
||||
- vmrm-resource-ids
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should specify vmrm resource id list order is mem label,
|
||||
mem tag, irq1 label, irq2 label.
|
||||
|
||||
Example:
|
||||
cam_vfe0: qcom,ife0@ac62000 {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,vfe680";
|
||||
reg-names = "ife", "cam_camnoc";
|
||||
reg = <0xac62000 0xF000>,
|
||||
<0xac19000 0x9000>;
|
||||
reg-cam-base = <0x62000 0x19000>;
|
||||
rt-wrapper-base = <0x62000>;
|
||||
interrupt-names = "ife";
|
||||
interrupts = <GIC_SPI 465 IRQ_TYPE_EDGE_RISING>;
|
||||
regulator-names = "camss", "ife0";
|
||||
camss-supply = <&cam_cc_titan_top_gdsc>;
|
||||
ife0-supply = <&cam_cc_ife_0_gdsc>;
|
||||
clock-names =
|
||||
"ife_0_ahb_src",
|
||||
"ife_0_ahb",
|
||||
"ife_clk_src",
|
||||
"ife_clk";
|
||||
clocks =
|
||||
<&clock_camcc CAM_CC_FAST_AHB_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_IFE_0_FAST_AHB_CLK>,
|
||||
<&clock_camcc CAM_CC_IFE_0_CLK_SRC>,
|
||||
<&clock_camcc CAM_CC_IFE_0_CLK>;
|
||||
clock-rates =
|
||||
<100000000 0 432000000 0>,
|
||||
<200000000 0 594000000 0>,
|
||||
<300000000 0 675000000 0>,
|
||||
<400000000 0 785000000 0>,
|
||||
<400000000 0 785000000 0>;
|
||||
clock-cntl-level = "lowsvs", "svs", "svs_l1", "nominal",
|
||||
"turbo";
|
||||
src-clock-name = "ife_clk_src";
|
||||
scl-clk-names = "ife_0_ahb";
|
||||
clock-control-debugfs = "true";
|
||||
clock-names-option = "ife_dsp_clk";
|
||||
clocks-option = <&clock_camcc CAM_CC_IFE_0_DSP_CLK>;
|
||||
clock-rates-option = <594000000>;
|
||||
ubwc-static-cfg = <0x1026 0x1036>;
|
||||
cam_hw_pid = <16 28 20 8>;
|
||||
status = "ok";
|
||||
vmrm-resource-ids = <20 20 20>;
|
||||
};
|
132
qcom/camera/bindings/msm-camera-flash.txt
Normal file
132
qcom/camera/bindings/msm-camera-flash.txt
Normal file
@@ -0,0 +1,132 @@
|
||||
* Qualcomm Technologies, Inc. MSM FLASH
|
||||
|
||||
The MSM camera Flash driver provides the definitions for
|
||||
enabling and disabling LED Torch/Flash by requesting it to
|
||||
PMIC/I2C/GPIO based hardware. It provides the functions for
|
||||
the Client to control the Flash hardware.
|
||||
|
||||
=======================================================
|
||||
Required Node Structure
|
||||
=======================================================
|
||||
The Flash device is described in one level of the device node.
|
||||
|
||||
======================================
|
||||
First Level Node - CAM FLASH device
|
||||
======================================
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should be "qcom,camera-flash".
|
||||
|
||||
- cell-index
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Should specify the hardware index id.
|
||||
|
||||
- reg
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Register values.
|
||||
|
||||
- flash-source
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: Should contain array of phandles to Flash source nodes.
|
||||
|
||||
- torch-source
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: Should contain array of phandles to torch source nodes.
|
||||
|
||||
- switch-source
|
||||
Usage: Optional
|
||||
Value type: <phandle>
|
||||
Definition: Should contain phandle to switch source nodes.
|
||||
|
||||
- slave-id
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should contain i2c slave address, device id address
|
||||
and expected id read value.
|
||||
|
||||
- cci-master
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should contain i2c master id to be used for this camera
|
||||
flash.
|
||||
|
||||
- max-current
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Max current in mA supported by flash
|
||||
|
||||
- max-duration
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Max duration in ms flash can glow.
|
||||
|
||||
- wled-flash-support
|
||||
Usage: optional
|
||||
Value type: <boolean>
|
||||
Definition: To identity wled flash hardware support.
|
||||
|
||||
- gpios
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should specify the gpios to be used for the flash.
|
||||
|
||||
- gpio-req-tbl-num
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should specify the gpio table index.
|
||||
|
||||
- gpio-req-tbl-flags
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should specify the gpio functions.
|
||||
|
||||
- gpio-req-tbl-label
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should specify the gpio labels.
|
||||
|
||||
- gpio-flash-reset
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should contain index to gpio used by flash's "flash reset" pin.
|
||||
|
||||
- gpio-flash-en
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should contain index to gpio used by flash's "flash enable" pin.
|
||||
|
||||
- gpio-flash-now
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should contain index to gpio used by flash's "flash now" pin.
|
||||
|
||||
Example:
|
||||
|
||||
led_flash_rear: qcom,camera-flash0 {
|
||||
reg = <0x00 0x00>;
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,camera-flash";
|
||||
flash-source = <&pmi8998_flash0 &pmi8998_flash1>;
|
||||
torch-source = <&pmi8998_torch0 &pmi8998_torch1>;
|
||||
switch-source = <&pmi8998_switch0>;
|
||||
wled-flash-support;
|
||||
qcom,slave-id = <0x00 0x00 0x0011>;
|
||||
qcom,cci-master = <0>;
|
||||
gpios = <&msmgpio 23 0>,
|
||||
<&msmgpio 24 0>;
|
||||
<&msmgpio 25 0>;
|
||||
qcom,gpio-flash-reset = <0>;
|
||||
qcom,gpio-flash-en = <0>;
|
||||
qcom,gpio-flash-now = <1>;
|
||||
qcom,gpio-req-tbl-num = <0 1>;
|
||||
qcom,gpio-req-tbl-flags = <0 0>;
|
||||
qcom,gpio-req-tbl-label = "FLASH_EN",
|
||||
"FLASH_NOW";
|
||||
qcom,max-current = <1500>;
|
||||
qcom,max-duration = <1200>;
|
||||
};
|
41
qcom/camera/bindings/msm-camera.txt
Normal file
41
qcom/camera/bindings/msm-camera.txt
Normal file
@@ -0,0 +1,41 @@
|
||||
* Qualcomm Technologies, Inc. MSM Camera
|
||||
|
||||
Required properties:
|
||||
- compatible :
|
||||
- "qcom,cam-req-mgr", "qcom,cam-sync"
|
||||
|
||||
- cam-bypass-driver :
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: should contain drivers that required to bypass on camera,
|
||||
including rgltr, rgltr_mode, clks, cesta, icc.
|
||||
|
||||
- device-heap-size :
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: heap size used for camera internal allocations (exa - hfi memory) which stay forever.
|
||||
|
||||
- session-heap-size :
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: heap size used for session based allocations. These allocations must be freed at the
|
||||
end of session and the session-heap memory will be released to PVM at the end of usecase.
|
||||
|
||||
Example:
|
||||
|
||||
qcom,cam-req-mgr {
|
||||
compatible = "qcom,cam-req-mgr";
|
||||
cam-bypass-driver = <(CAM_BYPASS_RGLTR |
|
||||
CAM_BYPASS_RGLTR_MODE |
|
||||
CAM_BYPASS_CLKS |
|
||||
CAM_BYPASS_CESTA |
|
||||
CAM_BYPASS_ICC)>;
|
||||
device-heap-size = <0x400000>;
|
||||
session-heap-size = <0xC800000>;
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
qcom,cam-sync {
|
||||
compatible = "qcom,cam-sync";
|
||||
status = "ok";
|
||||
};
|
Reference in New Issue
Block a user