blob: d635a4ed1ea005afca2cf9c66a25f2932a286e5e [file] [log] [blame]
* Qualcomm Technologies, Inc. MSM ISPIF
Required properties:
- cell-index: ispif hardware core index
- compatible :
- "qcom,ispif"
- "qcom,ispif-v3.0"
- reg : offset and length of the register set for the device
for the ispif operating in compatible mode.
- reg-names : should specify relevant names to each reg property defined.
- interrupts : should contain the ispif interrupt.
- interrupt-names : should specify relevant names to each interrupts
property defined.
- camss-vdd-supply: phandle to GDSC regulator.
- mmagic-vdd-supply: phandle to mmagic regulator.
- vfe0-vdd-supply: phandle to vfe0 regulator.
- vfe1-vdd-supply: phandle to vfe1 regulator.
- clocks: list of phandles to the clock controller device and coresponding
clock names.
- clock-names: name of the clocks required for the device used by the consumer.
- qcom,clock-rates: clock rate in Hz.
- qcom,clock-control: The valid fields are "NO_SET_RATE", "INIT_RATE" and
"SET_RATE". "NO_SET_RATE" the corresponding clock is enabled without setting
the rate assuming some other driver has already set it to appropriate rate.
"INIT_RATE" clock rate is not queried assuming some other driver has set
the clock rate and ispif will set the the clock to this rate.
"SET_RATE" clock is enabled and the rate is set to the value specified
in the property qcom,clock-rates.
Optional properties:
- qcom,num-isps: The number of ISPs the ISPIF module is connected to. If not set
the default value used is 1
Example:
qcom,ispif@fda0a000 {
cell-index = <0>;
compatible = "qcom,ispif";
reg = <0xfda0a000 0x300>;
reg-names = "ispif";
interrupts = <0 55 0>;
interrupt-names = "ispif";
camss-vdd-supply = <&gdsc_camss_top>;
mmagic-vdd-supply = <&gdsc_mmagic_camss>;
vfe0-vdd-supply = <&gdsc_vfe0>;
vfe1-vdd-supply = <&gdsc_vfe1>;
clocks = <&clock_mmss clk_camss_ispif_ahb_clk>,
<&clock_mmss clk_csi0_clk_src>,
<&clock_mmss clk_camss_csi0_clk>,
<&clock_mmss clk_camss_csi0rdi_clk>,
<&clock_mmss clk_camss_csi0pix_clk>,
<&clock_mmss clk_csi1_clk_src>,
<&clock_mmss clk_camss_csi1_clk>,
<&clock_mmss clk_camss_csi1rdi_clk>,
<&clock_mmss clk_camss_csi1pix_clk>,
<&clock_mmss clk_csi2_clk_src>,
<&clock_mmss clk_camss_csi2_clk>,
<&clock_mmss clk_camss_csi2rdi_clk>,
<&clock_mmss clk_camss_csi2pix_clk>,
<&clock_mmss clk_csi3_clk_src>,
<&clock_mmss clk_camss_csi3_clk>,
<&clock_mmss clk_camss_csi3rdi_clk>,
<&clock_mmss clk_camss_csi3pix_clk>,
<&clock_mmss clk_vfe0_clk_src>,
<&clock_mmss clk_camss_vfe0_clk>,
<&clock_mmss clk_camss_csi_vfe0_clk>,
<&clock_mmss clk_vfe1_clk_src>,
<&clock_mmss clk_camss_vfe1_clk>,
<&clock_mmss clk_camss_csi_vfe1_clk>;
clock-names = "ispif_ahb_clk",
"csi0_src_clk", "csi0_clk",
"csi0_pix_clk", "csi0_rdi_clk",
"csi1_src_clk", "csi1_clk",
"csi1_pix_clk", "csi1_rdi_clk",
"csi2_src_clk", "csi2_clk",
"csi2_pix_clk", "csi2_rdi_clk",
"csi3_src_clk", "csi3_clk",
"csi3_pix_clk", "csi3_rdi_clk",
"vfe0_clk_src", "camss_vfe_vfe0_clk", "camss_csi_vfe0_clk",
"vfe1_clk_src", "camss_vfe_vfe1_clk", "camss_csi_vfe1_clk";
qcom,clock-rates = <0
200000000 0 0 0
200000000 0 0 0
200000000 0 0 0
200000000 0 0 0
0 0 0
0 0 0>;
qcom,clock-control = "NO_SET_RATE",
"SET_RATE", "NO_SET_RATE", "NO_SET_RATE", "NO_SET_RATE",
"SET_RATE", "NO_SET_RATE", "NO_SET_RATE", "NO_SET_RATE",
"SET_RATE", "NO_SET_RATE", "NO_SET_RATE", "NO_SET_RATE",
"SET_RATE", "NO_SET_RATE", "NO_SET_RATE", "NO_SET_RATE",
"INIT_RATE", "NO_SET_RATE", "NO_SET_RATE",
"INIT_RATE", "NO_SET_RATE", "NO_SET_RATE";
};
or
qcom,ispif@fda0a000 {
cell-index = <0>;
compatible = "qcom,ispif-v3.0", "qcom,ispif";
reg = <0xfda0a000 0x300>;
reg-names = "ispif";
interrupts = <0 55 0>;
interrupt-names = "ispif";
qcom,num-isps = <2>
vdd-supply = <&gdsc_camss_top>;
clocks = <&clock_mmss clk_camss_ispif_ahb_clk>,
<&clock_mmss clk_csi0_clk_src>,
<&clock_mmss clk_camss_csi0_clk>,
<&clock_mmss clk_camss_csi0rdi_clk>,
<&clock_mmss clk_camss_csi0pix_clk>,
<&clock_mmss clk_csi1_clk_src>,
<&clock_mmss clk_camss_csi1_clk>,
<&clock_mmss clk_camss_csi1rdi_clk>,
<&clock_mmss clk_camss_csi1pix_clk>,
<&clock_mmss clk_csi2_clk_src>,
<&clock_mmss clk_camss_csi2_clk>,
<&clock_mmss clk_camss_csi2rdi_clk>,
<&clock_mmss clk_camss_csi2pix_clk>,
<&clock_mmss clk_csi3_clk_src>,
<&clock_mmss clk_camss_csi3_clk>,
<&clock_mmss clk_camss_csi3rdi_clk>,
<&clock_mmss clk_camss_csi3pix_clk>,
<&clock_mmss clk_vfe0_clk_src>,
<&clock_mmss clk_camss_vfe0_clk>,
<&clock_mmss clk_camss_csi_vfe0_clk>,
<&clock_mmss clk_vfe1_clk_src>,
<&clock_mmss clk_camss_vfe1_clk>,
<&clock_mmss clk_camss_csi_vfe1_clk>;
clock-names = "ispif_ahb_clk",
"csi0_src_clk", "csi0_clk",
"csi0_pix_clk", "csi0_rdi_clk",
"csi1_src_clk", "csi1_clk",
"csi1_pix_clk", "csi1_rdi_clk",
"csi2_src_clk", "csi2_clk",
"csi2_pix_clk", "csi2_rdi_clk",
"csi3_src_clk", "csi3_clk",
"csi3_pix_clk", "csi3_rdi_clk",
"vfe0_clk_src", "camss_vfe_vfe0_clk", "camss_csi_vfe0_clk",
"vfe1_clk_src", "camss_vfe_vfe1_clk", "camss_csi_vfe1_clk";
qcom,clock-rates = <0
200000000 0 0 0
200000000 0 0 0
200000000 0 0 0
200000000 0 0 0
0 0 0
0 0 0>;
qcom,clock-control = "NO_SET_RATE",
"SET_RATE", "NO_SET_RATE", "NO_SET_RATE", "NO_SET_RATE",
"SET_RATE", "NO_SET_RATE", "NO_SET_RATE", "NO_SET_RATE",
"SET_RATE", "NO_SET_RATE", "NO_SET_RATE", "NO_SET_RATE",
"SET_RATE", "NO_SET_RATE", "NO_SET_RATE", "NO_SET_RATE",
"INIT_RATE", "NO_SET_RATE", "NO_SET_RATE",
"INIT_RATE", "NO_SET_RATE", "NO_SET_RATE";
};