dt-bindings: camera: Add TFE support

Camera TFE is new hardware. This change
adds support for the same.

CRs-Fixed: 2545590
Change-Id: I89ce381a83682681a299ef496d5695b303a481b7
This commit is contained in:
Ravikishore Pampana 2019-10-24 15:03:30 +05:30 • committed by Abhilash Kumar
commit 458e662f61
4 changed files with 379 additions and 1 deletions

View file

@ -20,7 +20,7 @@ First Level Node - CAM ISP device
- arch-compat
Usage: required
Value type: <string>
Definition: Should be "vfe" or "ife".
Definition: Should be "vfe", "ife" or "tfe".
- ubwc-static-cfg
Usage: optional

View 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,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";
};

142
bindings/msm-cam-tfe.txt Normal file
View file

@ -0,0 +1,142 @@
* 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,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.
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";
};

113
bindings/msm-cam-tpg.txt Normal file
View file

@ -0,0 +1,113 @@
* 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:
- compatible
Usage: required
Value type: <string>
Definition: Should specify the compatibility string for matching the
driver. e.g. "qcom,tpgv1"
- 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.
- 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.
Example:
cam_tfe_tpg0: qcom,tpg0@5c66000 {
cell-index = <0>;
compatible = "qcom,tpgv1";
reg-names = "tpg0", "top";
reg = <0x5c66000 0x400>,
<0x5c11000 0x1000>;
reg-cam-base = <0x66000 0x11000>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"cphy_rx_clk_src",
"tfe_0_cphy_rx_clk";
clocks =
<&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CPHY_RX_CLK>;
clock-rates =
<240000000 240000000>,
<341333333 341333333>,
<384000000 384000000>;
clock-cntl-level = "svs", "svs_l1", "turbo";
src-clock-name = "cphy_rx_clk_src";
clock-control-debugfs = "false";
status = "ok";
};