* [PATCH v3 1/5] i2c: qcom-cci: Fix ordering of pm_runtime_xx and i2c_add_adapter
2022-06-06 13:20 [PATCH v3 0/5] CAMSS updates for rb3 and rb5 Bryan O'Donoghue
@ 2022-06-06 13:20 ` Bryan O'Donoghue
2022-06-06 13:20 ` [PATCH v3 2/5] arm64: dts: qcom: sm8250: Disable camcc by default Bryan O'Donoghue
` (3 subsequent siblings)
4 siblings, 0 replies; 10+ messages in thread
From: Bryan O'Donoghue @ 2022-06-06 13:20 UTC (permalink / raw)
To: linux-arm-msm, linux-media, mchehab, hverkuil, robert.foss
Cc: jonathan, andrey.konovalov, todor.too, agross, bjorn.andersson,
jgrahsl, hfink, vladimir.zapolskiy, dmitry.baryshkov,
konrad.dybcio, bryan.odonoghue, stable
When we compile-in the CCI along with the imx412 driver and run on the RB5
we see that i2c_add_adapter() causes the probe of the imx412 driver to
happen.
This probe tries to perform an i2c xfer() and the xfer() in i2c-qcom-cci.c
fails on pm_runtime_get() because the i2c-qcom-cci.c::probe() function has
not completed to pm_runtime_enable(dev).
Fix this sequence by ensuring pm_runtime_xxx() calls happen prior to adding
the i2c adapter.
Fixes: e517526195de ("i2c: Add Qualcomm CCI I2C driver")
Reported-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Tested-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
drivers/i2c/busses/i2c-qcom-cci.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/drivers/i2c/busses/i2c-qcom-cci.c b/drivers/i2c/busses/i2c-qcom-cci.c
index 5c7cc862f08f..8d078bdb5c1b 100644
--- a/drivers/i2c/busses/i2c-qcom-cci.c
+++ b/drivers/i2c/busses/i2c-qcom-cci.c
@@ -638,6 +638,11 @@ static int cci_probe(struct platform_device *pdev)
if (ret < 0)
goto error;
+ pm_runtime_set_autosuspend_delay(dev, MSEC_PER_SEC);
+ pm_runtime_use_autosuspend(dev);
+ pm_runtime_set_active(dev);
+ pm_runtime_enable(dev);
+
for (i = 0; i < cci->data->num_masters; i++) {
if (!cci->master[i].cci)
continue;
@@ -649,14 +654,12 @@ static int cci_probe(struct platform_device *pdev)
}
}
- pm_runtime_set_autosuspend_delay(dev, MSEC_PER_SEC);
- pm_runtime_use_autosuspend(dev);
- pm_runtime_set_active(dev);
- pm_runtime_enable(dev);
-
return 0;
error_i2c:
+ pm_runtime_disable(dev);
+ pm_runtime_dont_use_autosuspend(dev);
+
for (--i ; i >= 0; i--) {
if (cci->master[i].cci) {
i2c_del_adapter(&cci->master[i].adap);
--
2.36.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 2/5] arm64: dts: qcom: sm8250: Disable camcc by default
2022-06-06 13:20 [PATCH v3 0/5] CAMSS updates for rb3 and rb5 Bryan O'Donoghue
2022-06-06 13:20 ` [PATCH v3 1/5] i2c: qcom-cci: Fix ordering of pm_runtime_xx and i2c_add_adapter Bryan O'Donoghue
@ 2022-06-06 13:20 ` Bryan O'Donoghue
2022-06-06 13:20 ` [PATCH v3 3/5] arm64: dts: qcom: sm8250: camss: Define ports address/size cells Bryan O'Donoghue
` (2 subsequent siblings)
4 siblings, 0 replies; 10+ messages in thread
From: Bryan O'Donoghue @ 2022-06-06 13:20 UTC (permalink / raw)
To: linux-arm-msm, linux-media, mchehab, hverkuil, robert.foss
Cc: jonathan, andrey.konovalov, todor.too, agross, bjorn.andersson,
jgrahsl, hfink, vladimir.zapolskiy, dmitry.baryshkov,
konrad.dybcio, bryan.odonoghue
From: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
At the moment there are no changes in SM8250 board files, which require
camera clock controller to run, whenever it is needed for a particular
board, the status of camcc device node will be changed in a board file.
Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
arch/arm64/boot/dts/qcom/sm8250.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
index cf0c97bd5ad3..2bc11cad3a44 100644
--- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
@@ -3407,6 +3407,7 @@ camcc: clock-controller@ad00000 {
clock-names = "iface", "bi_tcxo", "bi_tcxo_ao", "sleep_clk";
power-domains = <&rpmhpd SM8250_MMCX>;
required-opps = <&rpmhpd_opp_low_svs>;
+ status = "disabled";
#clock-cells = <1>;
#reset-cells = <1>;
#power-domain-cells = <1>;
--
2.36.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 3/5] arm64: dts: qcom: sm8250: camss: Define ports address/size cells
2022-06-06 13:20 [PATCH v3 0/5] CAMSS updates for rb3 and rb5 Bryan O'Donoghue
2022-06-06 13:20 ` [PATCH v3 1/5] i2c: qcom-cci: Fix ordering of pm_runtime_xx and i2c_add_adapter Bryan O'Donoghue
2022-06-06 13:20 ` [PATCH v3 2/5] arm64: dts: qcom: sm8250: Disable camcc by default Bryan O'Donoghue
@ 2022-06-06 13:20 ` Bryan O'Donoghue
2022-07-01 3:10 ` Bjorn Andersson
2022-06-06 13:20 ` [PATCH v3 4/5] arm64: dts: qcom: qrb5165-rb5-vision-mezzanine: Add vision mezzanine Bryan O'Donoghue
2022-06-06 13:20 ` [PATCH v3 5/5] arm64: dts: qcom: sdm845-db845c-navigation-mezzanine: Add navigation mezzanine dts Bryan O'Donoghue
4 siblings, 1 reply; 10+ messages in thread
From: Bryan O'Donoghue @ 2022-06-06 13:20 UTC (permalink / raw)
To: linux-arm-msm, linux-media, mchehab, hverkuil, robert.foss
Cc: jonathan, andrey.konovalov, todor.too, agross, bjorn.andersson,
jgrahsl, hfink, vladimir.zapolskiy, dmitry.baryshkov,
konrad.dybcio, bryan.odonoghue
The ports {} address and size cells definition is the same for every
derived 8250 board so, we should define it in the core sm8250.dtsi.
Suggested-by: Konrad Dybcio <konrad.dybcio@somainline.org>
Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
arch/arm64/boot/dts/qcom/sm8250.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
index 2bc11cad3a44..aa9a13364865 100644
--- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
@@ -3395,6 +3395,11 @@ camss: camss@ac6a000 {
"cam_hf_0_mnoc",
"cam_sf_0_mnoc",
"cam_sf_icp_mnoc";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
};
camcc: clock-controller@ad00000 {
--
2.36.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 3/5] arm64: dts: qcom: sm8250: camss: Define ports address/size cells
2022-06-06 13:20 ` [PATCH v3 3/5] arm64: dts: qcom: sm8250: camss: Define ports address/size cells Bryan O'Donoghue
@ 2022-07-01 3:10 ` Bjorn Andersson
0 siblings, 0 replies; 10+ messages in thread
From: Bjorn Andersson @ 2022-07-01 3:10 UTC (permalink / raw)
To: Bryan O'Donoghue
Cc: linux-arm-msm, linux-media, mchehab, hverkuil, robert.foss,
jonathan, andrey.konovalov, todor.too, agross, jgrahsl, hfink,
vladimir.zapolskiy, dmitry.baryshkov, konrad.dybcio
On Mon 06 Jun 08:20 CDT 2022, Bryan O'Donoghue wrote:
> The ports {} address and size cells definition is the same for every
> derived 8250 board so, we should define it in the core sm8250.dtsi.
>
> Suggested-by: Konrad Dybcio <konrad.dybcio@somainline.org>
> Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> ---
> arch/arm64/boot/dts/qcom/sm8250.dtsi | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> index 2bc11cad3a44..aa9a13364865 100644
> --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> @@ -3395,6 +3395,11 @@ camss: camss@ac6a000 {
> "cam_hf_0_mnoc",
> "cam_sf_0_mnoc",
> "cam_sf_icp_mnoc";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
Adding these without subnodes that make use of them will cause
dtbs_check to complain.
So although it would save a little bit of duplication, let's add them
when/where it's needed.
Regards,
Bjorn
> + };
> };
>
> camcc: clock-controller@ad00000 {
> --
> 2.36.1
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 4/5] arm64: dts: qcom: qrb5165-rb5-vision-mezzanine: Add vision mezzanine
2022-06-06 13:20 [PATCH v3 0/5] CAMSS updates for rb3 and rb5 Bryan O'Donoghue
` (2 preceding siblings ...)
2022-06-06 13:20 ` [PATCH v3 3/5] arm64: dts: qcom: sm8250: camss: Define ports address/size cells Bryan O'Donoghue
@ 2022-06-06 13:20 ` Bryan O'Donoghue
2022-06-06 16:03 ` Dmitry Baryshkov
2022-06-06 13:20 ` [PATCH v3 5/5] arm64: dts: qcom: sdm845-db845c-navigation-mezzanine: Add navigation mezzanine dts Bryan O'Donoghue
4 siblings, 1 reply; 10+ messages in thread
From: Bryan O'Donoghue @ 2022-06-06 13:20 UTC (permalink / raw)
To: linux-arm-msm, linux-media, mchehab, hverkuil, robert.foss
Cc: jonathan, andrey.konovalov, todor.too, agross, bjorn.andersson,
jgrahsl, hfink, vladimir.zapolskiy, dmitry.baryshkov,
konrad.dybcio, bryan.odonoghue
The Vision Mezzanine for the RB5 ships with an imx517 and ov9282 populated.
Other sensors and components may be added or stacked with additional
mezzanines.
In this drop we enable the Sony imx577 main camera sensor.
The IMX577 is on CCI1/CSI2 provides four lanes of camera data.
An example media-ctl pipeline is:
media-ctl --reset
media-ctl -v -d /dev/media0 -V '"imx412 '20-001a'":0[fmt:SRGGB10/4056x3040 field:none]'
media-ctl -V '"msm_csiphy2":0[fmt:SRGGB10/4056x3040]'
media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
media-ctl -l '"msm_csiphy2":1->"msm_csid0":0[1]'
media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
yavta -B capture-mplane -c -I -n 5 -f SRGGB10P -s 4056x3040 -F /dev/video0
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../dts/qcom/qrb5165-rb5-vision-mezzanine.dts | 68 +++++++++++++++++++
arch/arm64/boot/dts/qcom/sm8250.dtsi | 33 +++++++++
3 files changed, 102 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 2f8aec2cc6db..86e6801a9c29 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -51,6 +51,7 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8998-sony-xperia-yoshino-poplar.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-4000.dtb
dtb-$(CONFIG_ARCH_QCOM) += qrb5165-rb5.dtb
+dtb-$(CONFIG_ARCH_QCOM) += qrb5165-rb5-vision-mezzanine.dtb
dtb-$(CONFIG_ARCH_QCOM) += sa8155p-adp.dtb
dtb-$(CONFIG_ARCH_QCOM) += sc7180-idp.dtb
dtb-$(CONFIG_ARCH_QCOM) += sc7180-trogdor-coachz-r1.dtb
diff --git a/arch/arm64/boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts b/arch/arm64/boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts
new file mode 100644
index 000000000000..c8bed02243f8
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts
@@ -0,0 +1,68 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2022, Linaro Ltd.
+ */
+
+/dts-v1/;
+
+#include "qrb5165-rb5.dts"
+
+&camcc {
+ status = "okay";
+};
+
+&camss {
+ status = "okay";
+ vdda-phy-supply = <&vreg_l5a_0p88>;
+ vdda-pll-supply = <&vreg_l9a_1p2>;
+
+ ports {
+ /* The port index denotes CSIPHY id i.e. csiphy2 */
+ port@2 {
+ reg = <2>;
+ csiphy2_ep: endpoint {
+ clock-lanes = <7>;
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&imx412_ep>;
+ };
+
+ };
+ };
+};
+
+&cci1 {
+ status = "okay";
+};
+
+&cci1_i2c0 {
+ camera@1a {
+ /*
+ * rb5 ships with an imx577. camx code from qcom treats imx412
+ * and imx577 the same way. Absent better data do the same here.
+ */
+ compatible = "sony,imx412";
+ reg = <0x1a>;
+
+ reset-gpios = <&tlmm 78 GPIO_ACTIVE_LOW>;
+ pinctrl-names = "default", "suspend";
+ pinctrl-0 = <&cam2_default>;
+ pinctrl-1 = <&cam2_suspend>;
+
+ clocks = <&camcc CAM_CC_MCLK2_CLK>;
+ assigned-clocks = <&camcc CAM_CC_MCLK2_CLK>;
+ assigned-clock-rates = <24000000>;
+
+ dovdd-supply = <&vreg_l7f_1p8>;
+ avdd-supply = <&vdc_5v>;
+ dvdd-supply = <&vdc_5v>;
+
+ port {
+ imx412_ep: endpoint {
+ clock-lanes = <1>;
+ link-frequencies = /bits/ 64 <600000000>;
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&csiphy2_ep>;
+ };
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
index aa9a13364865..2b65ec2806d0 100644
--- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
@@ -3788,6 +3788,39 @@ tlmm: pinctrl@f100000 {
gpio-ranges = <&tlmm 0 0 181>;
wakeup-parent = <&pdc>;
+ cam2_default: cam2-default {
+ rst {
+ pins = "gpio78";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ mclk {
+ pins = "gpio96";
+ function = "cam_mclk";
+ drive-strength = <16>;
+ bias-disable;
+ };
+ };
+
+ cam2_suspend: cam2-suspend {
+ rst {
+ pins = "gpio78";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ output-low;
+ };
+
+ mclk {
+ pins = "gpio96";
+ function = "cam_mclk";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ };
+
cci0_default: cci0-default {
cci0_i2c0_default: cci0-i2c0-default {
/* SDA, SCL */
--
2.36.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 4/5] arm64: dts: qcom: qrb5165-rb5-vision-mezzanine: Add vision mezzanine
2022-06-06 13:20 ` [PATCH v3 4/5] arm64: dts: qcom: qrb5165-rb5-vision-mezzanine: Add vision mezzanine Bryan O'Donoghue
@ 2022-06-06 16:03 ` Dmitry Baryshkov
2022-06-06 18:36 ` Konrad Dybcio
0 siblings, 1 reply; 10+ messages in thread
From: Dmitry Baryshkov @ 2022-06-06 16:03 UTC (permalink / raw)
To: Bryan O'Donoghue, linux-arm-msm, linux-media, mchehab,
hverkuil, robert.foss
Cc: jonathan, andrey.konovalov, todor.too, agross, bjorn.andersson,
jgrahsl, hfink, vladimir.zapolskiy, konrad.dybcio
On 06/06/2022 16:20, Bryan O'Donoghue wrote:
> The Vision Mezzanine for the RB5 ships with an imx517 and ov9282 populated.
> Other sensors and components may be added or stacked with additional
> mezzanines.
>
> In this drop we enable the Sony imx577 main camera sensor.
>
> The IMX577 is on CCI1/CSI2 provides four lanes of camera data.
>
> An example media-ctl pipeline is:
>
> media-ctl --reset
> media-ctl -v -d /dev/media0 -V '"imx412 '20-001a'":0[fmt:SRGGB10/4056x3040 field:none]'
> media-ctl -V '"msm_csiphy2":0[fmt:SRGGB10/4056x3040]'
> media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
> media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
> media-ctl -l '"msm_csiphy2":1->"msm_csid0":0[1]'
> media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
>
> yavta -B capture-mplane -c -I -n 5 -f SRGGB10P -s 4056x3040 -F /dev/video0
>
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../dts/qcom/qrb5165-rb5-vision-mezzanine.dts | 68 +++++++++++++++++++
> arch/arm64/boot/dts/qcom/sm8250.dtsi | 33 +++++++++
> 3 files changed, 102 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 2f8aec2cc6db..86e6801a9c29 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -51,6 +51,7 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8998-sony-xperia-yoshino-poplar.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-4000.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qrb5165-rb5.dtb
> +dtb-$(CONFIG_ARCH_QCOM) += qrb5165-rb5-vision-mezzanine.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sa8155p-adp.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sc7180-idp.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sc7180-trogdor-coachz-r1.dtb
> diff --git a/arch/arm64/boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts b/arch/arm64/boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts
> new file mode 100644
> index 000000000000..c8bed02243f8
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts
> @@ -0,0 +1,68 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) 2022, Linaro Ltd.
> + */
> +
> +/dts-v1/;
> +
> +#include "qrb5165-rb5.dts"
> +
> +&camcc {
> + status = "okay";
> +};
> +
> +&camss {
> + status = "okay";
> + vdda-phy-supply = <&vreg_l5a_0p88>;
> + vdda-pll-supply = <&vreg_l9a_1p2>;
> +
> + ports {
> + /* The port index denotes CSIPHY id i.e. csiphy2 */
> + port@2 {
> + reg = <2>;
> + csiphy2_ep: endpoint {
> + clock-lanes = <7>;
> + data-lanes = <0 1 2 3>;
> + remote-endpoint = <&imx412_ep>;
> + };
> +
> + };
> + };
> +};
> +
> +&cci1 {
> + status = "okay";
> +};
> +
> +&cci1_i2c0 {
> + camera@1a {
> + /*
> + * rb5 ships with an imx577. camx code from qcom treats imx412
> + * and imx577 the same way. Absent better data do the same here.
> + */
> + compatible = "sony,imx412";
I'd prefer to list "sony,imx577", "sony,imx412" here or even just imx577
here and extend imx412 driver to support imx577 compat.
> + reg = <0x1a>;
> +
> + reset-gpios = <&tlmm 78 GPIO_ACTIVE_LOW>;
> + pinctrl-names = "default", "suspend";
> + pinctrl-0 = <&cam2_default>;
> + pinctrl-1 = <&cam2_suspend>;
> +
> + clocks = <&camcc CAM_CC_MCLK2_CLK>;
> + assigned-clocks = <&camcc CAM_CC_MCLK2_CLK>;
> + assigned-clock-rates = <24000000>;
> +
> + dovdd-supply = <&vreg_l7f_1p8>;
> + avdd-supply = <&vdc_5v>;
> + dvdd-supply = <&vdc_5v>;
> +
> + port {
> + imx412_ep: endpoint {
I'd call this the imx577_ep. It's still the imx577 sensor, despite the
kernel using imx412 compat
> + clock-lanes = <1>;
> + link-frequencies = /bits/ 64 <600000000>;
> + data-lanes = <1 2 3 4>;
> + remote-endpoint = <&csiphy2_ep>;
> + };
> + };
> + };
> +};
> diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> index aa9a13364865..2b65ec2806d0 100644
> --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> @@ -3788,6 +3788,39 @@ tlmm: pinctrl@f100000 {
> gpio-ranges = <&tlmm 0 0 181>;
> wakeup-parent = <&pdc>;
>
> + cam2_default: cam2-default {
> + rst {
> + pins = "gpio78";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + mclk {
> + pins = "gpio96";
> + function = "cam_mclk";
> + drive-strength = <16>;
> + bias-disable;
> + };
> + };
> +
> + cam2_suspend: cam2-suspend {
> + rst {
> + pins = "gpio78";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-down;
> + output-low;
> + };
> +
> + mclk {
> + pins = "gpio96";
> + function = "cam_mclk";
> + drive-strength = <2>;
> + bias-disable;
> + };
> + };
> +
> cci0_default: cci0-default {
> cci0_i2c0_default: cci0-i2c0-default {
> /* SDA, SCL */
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 4/5] arm64: dts: qcom: qrb5165-rb5-vision-mezzanine: Add vision mezzanine
2022-06-06 16:03 ` Dmitry Baryshkov
@ 2022-06-06 18:36 ` Konrad Dybcio
2022-06-06 19:01 ` Andrey Konovalov
0 siblings, 1 reply; 10+ messages in thread
From: Konrad Dybcio @ 2022-06-06 18:36 UTC (permalink / raw)
To: Dmitry Baryshkov, Bryan O'Donoghue, linux-arm-msm,
linux-media, mchehab, hverkuil, robert.foss
Cc: jonathan, andrey.konovalov, todor.too, agross, bjorn.andersson,
jgrahsl, hfink, vladimir.zapolskiy
On 06/06/2022 18:03, Dmitry Baryshkov wrote:
> On 06/06/2022 16:20, Bryan O'Donoghue wrote:
>> The Vision Mezzanine for the RB5 ships with an imx517 and ov9282
>> populated.
>> Other sensors and components may be added or stacked with additional
>> mezzanines.
>>
>> In this drop we enable the Sony imx577 main camera sensor.
>>
>> The IMX577 is on CCI1/CSI2 provides four lanes of camera data.
>>
>> An example media-ctl pipeline is:
>>
>> media-ctl --reset
>> media-ctl -v -d /dev/media0 -V '"imx412
>> '20-001a'":0[fmt:SRGGB10/4056x3040 field:none]'
>> media-ctl -V '"msm_csiphy2":0[fmt:SRGGB10/4056x3040]'
>> media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
>> media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
>> media-ctl -l '"msm_csiphy2":1->"msm_csid0":0[1]'
>> media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
>>
>> yavta -B capture-mplane -c -I -n 5 -f SRGGB10P -s 4056x3040 -F
>> /dev/video0
>>
>> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
>> ---
>> arch/arm64/boot/dts/qcom/Makefile | 1 +
>> .../dts/qcom/qrb5165-rb5-vision-mezzanine.dts | 68 +++++++++++++++++++
>> arch/arm64/boot/dts/qcom/sm8250.dtsi | 33 +++++++++
>> 3 files changed, 102 insertions(+)
>> create mode 100644
>> arch/arm64/boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts
>>
>> diff --git a/arch/arm64/boot/dts/qcom/Makefile
>> b/arch/arm64/boot/dts/qcom/Makefile
>> index 2f8aec2cc6db..86e6801a9c29 100644
>> --- a/arch/arm64/boot/dts/qcom/Makefile
>> +++ b/arch/arm64/boot/dts/qcom/Makefile
>> @@ -51,6 +51,7 @@ dtb-$(CONFIG_ARCH_QCOM) +=
>> msm8998-sony-xperia-yoshino-poplar.dtb
>> dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb
>> dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-4000.dtb
>> dtb-$(CONFIG_ARCH_QCOM) += qrb5165-rb5.dtb
>> +dtb-$(CONFIG_ARCH_QCOM) += qrb5165-rb5-vision-mezzanine.dtb
>> dtb-$(CONFIG_ARCH_QCOM) += sa8155p-adp.dtb
>> dtb-$(CONFIG_ARCH_QCOM) += sc7180-idp.dtb
>> dtb-$(CONFIG_ARCH_QCOM) += sc7180-trogdor-coachz-r1.dtb
>> diff --git
>> a/arch/arm64/boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts
>> b/arch/arm64/boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts
>> new file mode 100644
>> index 000000000000..c8bed02243f8
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts
>> @@ -0,0 +1,68 @@
>> +// SPDX-License-Identifier: BSD-3-Clause
>> +/*
>> + * Copyright (c) 2022, Linaro Ltd.
>> + */
>> +
>> +/dts-v1/;
>> +
>> +#include "qrb5165-rb5.dts"
>> +
>> +&camcc {
>> + status = "okay";
>> +};
>> +
>> +&camss {
>> + status = "okay";
>> + vdda-phy-supply = <&vreg_l5a_0p88>;
>> + vdda-pll-supply = <&vreg_l9a_1p2>;
>> +
>> + ports {
>> + /* The port index denotes CSIPHY id i.e. csiphy2 */
>> + port@2 {
>> + reg = <2>;
>> + csiphy2_ep: endpoint {
>> + clock-lanes = <7>;
>> + data-lanes = <0 1 2 3>;
>> + remote-endpoint = <&imx412_ep>;
>> + };
>> +
>> + };
>> + };
>> +};
>> +
>> +&cci1 {
>> + status = "okay";
>> +};
>> +
>> +&cci1_i2c0 {
>> + camera@1a {
>> + /*
>> + * rb5 ships with an imx577. camx code from qcom treats imx412
>> + * and imx577 the same way. Absent better data do the same
>> here.
>> + */
>> + compatible = "sony,imx412";
>
> I'd prefer to list "sony,imx577", "sony,imx412" here or even just
> imx577 here and extend imx412 driver to support imx577 compat.
I like this approach as well. Even if they technically *should* be the
same, this would allow for introducing per-sensor quirks should there be
any.
Konrad
>
>> + reg = <0x1a>;
>> +
>> + reset-gpios = <&tlmm 78 GPIO_ACTIVE_LOW>;
>> + pinctrl-names = "default", "suspend";
>> + pinctrl-0 = <&cam2_default>;
>> + pinctrl-1 = <&cam2_suspend>;
>> +
>> + clocks = <&camcc CAM_CC_MCLK2_CLK>;
>> + assigned-clocks = <&camcc CAM_CC_MCLK2_CLK>;
>> + assigned-clock-rates = <24000000>;
>> +
>> + dovdd-supply = <&vreg_l7f_1p8>;
>> + avdd-supply = <&vdc_5v>;
>> + dvdd-supply = <&vdc_5v>;
>> +
>> + port {
>> + imx412_ep: endpoint {
>
> I'd call this the imx577_ep. It's still the imx577 sensor, despite the
> kernel using imx412 compat
>
>> + clock-lanes = <1>;
>> + link-frequencies = /bits/ 64 <600000000>;
>> + data-lanes = <1 2 3 4>;
>> + remote-endpoint = <&csiphy2_ep>;
>> + };
>> + };
>> + };
>> +};
>> diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi
>> b/arch/arm64/boot/dts/qcom/sm8250.dtsi
>> index aa9a13364865..2b65ec2806d0 100644
>> --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
>> @@ -3788,6 +3788,39 @@ tlmm: pinctrl@f100000 {
>> gpio-ranges = <&tlmm 0 0 181>;
>> wakeup-parent = <&pdc>;
>> + cam2_default: cam2-default {
>> + rst {
>> + pins = "gpio78";
>> + function = "gpio";
>> + drive-strength = <2>;
>> + bias-disable;
>> + };
>> +
>> + mclk {
>> + pins = "gpio96";
>> + function = "cam_mclk";
>> + drive-strength = <16>;
>> + bias-disable;
>> + };
>> + };
>> +
>> + cam2_suspend: cam2-suspend {
>> + rst {
>> + pins = "gpio78";
>> + function = "gpio";
>> + drive-strength = <2>;
>> + bias-pull-down;
>> + output-low;
>> + };
>> +
>> + mclk {
>> + pins = "gpio96";
>> + function = "cam_mclk";
>> + drive-strength = <2>;
>> + bias-disable;
>> + };
>> + };
>> +
>> cci0_default: cci0-default {
>> cci0_i2c0_default: cci0-i2c0-default {
>> /* SDA, SCL */
>
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 4/5] arm64: dts: qcom: qrb5165-rb5-vision-mezzanine: Add vision mezzanine
2022-06-06 18:36 ` Konrad Dybcio
@ 2022-06-06 19:01 ` Andrey Konovalov
0 siblings, 0 replies; 10+ messages in thread
From: Andrey Konovalov @ 2022-06-06 19:01 UTC (permalink / raw)
To: Konrad Dybcio, Dmitry Baryshkov, Bryan O'Donoghue,
linux-arm-msm, linux-media, mchehab, hverkuil, robert.foss
Cc: jonathan, todor.too, agross, bjorn.andersson, jgrahsl, hfink,
vladimir.zapolskiy
On 6/6/22 21:36, Konrad Dybcio wrote:
>
> On 06/06/2022 18:03, Dmitry Baryshkov wrote:
>> On 06/06/2022 16:20, Bryan O'Donoghue wrote:
>>> The Vision Mezzanine for the RB5 ships with an imx517 and ov9282 populated.
>>> Other sensors and components may be added or stacked with additional
>>> mezzanines.
>>>
>>> In this drop we enable the Sony imx577 main camera sensor.
>>>
>>> The IMX577 is on CCI1/CSI2 provides four lanes of camera data.
>>>
>>> An example media-ctl pipeline is:
>>>
>>> media-ctl --reset
>>> media-ctl -v -d /dev/media0 -V '"imx412 '20-001a'":0[fmt:SRGGB10/4056x3040 field:none]'
>>> media-ctl -V '"msm_csiphy2":0[fmt:SRGGB10/4056x3040]'
>>> media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
>>> media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
>>> media-ctl -l '"msm_csiphy2":1->"msm_csid0":0[1]'
>>> media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
>>>
>>> yavta -B capture-mplane -c -I -n 5 -f SRGGB10P -s 4056x3040 -F /dev/video0
>>>
>>> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
>>> ---
>>> arch/arm64/boot/dts/qcom/Makefile | 1 +
>>> .../dts/qcom/qrb5165-rb5-vision-mezzanine.dts | 68 +++++++++++++++++++
>>> arch/arm64/boot/dts/qcom/sm8250.dtsi | 33 +++++++++
>>> 3 files changed, 102 insertions(+)
>>> create mode 100644 arch/arm64/boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts
>>>
>>> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
>>> index 2f8aec2cc6db..86e6801a9c29 100644
>>> --- a/arch/arm64/boot/dts/qcom/Makefile
>>> +++ b/arch/arm64/boot/dts/qcom/Makefile
>>> @@ -51,6 +51,7 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8998-sony-xperia-yoshino-poplar.dtb
>>> dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb
>>> dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-4000.dtb
>>> dtb-$(CONFIG_ARCH_QCOM) += qrb5165-rb5.dtb
>>> +dtb-$(CONFIG_ARCH_QCOM) += qrb5165-rb5-vision-mezzanine.dtb
>>> dtb-$(CONFIG_ARCH_QCOM) += sa8155p-adp.dtb
>>> dtb-$(CONFIG_ARCH_QCOM) += sc7180-idp.dtb
>>> dtb-$(CONFIG_ARCH_QCOM) += sc7180-trogdor-coachz-r1.dtb
>>> diff --git a/arch/arm64/boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts
>>> b/arch/arm64/boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts
>>> new file mode 100644
>>> index 000000000000..c8bed02243f8
>>> --- /dev/null
>>> +++ b/arch/arm64/boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts
>>> @@ -0,0 +1,68 @@
>>> +// SPDX-License-Identifier: BSD-3-Clause
>>> +/*
>>> + * Copyright (c) 2022, Linaro Ltd.
>>> + */
>>> +
>>> +/dts-v1/;
>>> +
>>> +#include "qrb5165-rb5.dts"
>>> +
>>> +&camcc {
>>> + status = "okay";
>>> +};
>>> +
>>> +&camss {
>>> + status = "okay";
>>> + vdda-phy-supply = <&vreg_l5a_0p88>;
>>> + vdda-pll-supply = <&vreg_l9a_1p2>;
>>> +
>>> + ports {
>>> + /* The port index denotes CSIPHY id i.e. csiphy2 */
>>> + port@2 {
>>> + reg = <2>;
>>> + csiphy2_ep: endpoint {
>>> + clock-lanes = <7>;
>>> + data-lanes = <0 1 2 3>;
>>> + remote-endpoint = <&imx412_ep>;
>>> + };
>>> +
>>> + };
>>> + };
>>> +};
>>> +
>>> +&cci1 {
>>> + status = "okay";
>>> +};
>>> +
>>> +&cci1_i2c0 {
>>> + camera@1a {
>>> + /*
>>> + * rb5 ships with an imx577. camx code from qcom treats imx412
>>> + * and imx577 the same way. Absent better data do the same here.
>>> + */
>>> + compatible = "sony,imx412";
>>
>> I'd prefer to list "sony,imx577", "sony,imx412" here or even just imx577 here and extend imx412 driver to support imx577 compat.
>
> I like this approach as well. Even if they technically *should* be the same, this would allow for introducing per-sensor quirks
> should there be any.
Also having "sony,imx577", "sony,imx412" in the driver code makes it easier for imx577 users to identify the driver that
supports their sensor. So the "just imx577 here and extend imx412 driver" looks like the best option for me too.
Thanks,
Andrey
> Konrad
>
>>
>>> + reg = <0x1a>;
>>> +
>>> + reset-gpios = <&tlmm 78 GPIO_ACTIVE_LOW>;
>>> + pinctrl-names = "default", "suspend";
>>> + pinctrl-0 = <&cam2_default>;
>>> + pinctrl-1 = <&cam2_suspend>;
>>> +
>>> + clocks = <&camcc CAM_CC_MCLK2_CLK>;
>>> + assigned-clocks = <&camcc CAM_CC_MCLK2_CLK>;
>>> + assigned-clock-rates = <24000000>;
>>> +
>>> + dovdd-supply = <&vreg_l7f_1p8>;
>>> + avdd-supply = <&vdc_5v>;
>>> + dvdd-supply = <&vdc_5v>;
>>> +
>>> + port {
>>> + imx412_ep: endpoint {
>>
>> I'd call this the imx577_ep. It's still the imx577 sensor, despite the kernel using imx412 compat
>>
>>> + clock-lanes = <1>;
>>> + link-frequencies = /bits/ 64 <600000000>;
>>> + data-lanes = <1 2 3 4>;
>>> + remote-endpoint = <&csiphy2_ep>;
>>> + };
>>> + };
>>> + };
>>> +};
>>> diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
>>> index aa9a13364865..2b65ec2806d0 100644
>>> --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
>>> +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
>>> @@ -3788,6 +3788,39 @@ tlmm: pinctrl@f100000 {
>>> gpio-ranges = <&tlmm 0 0 181>;
>>> wakeup-parent = <&pdc>;
>>> + cam2_default: cam2-default {
>>> + rst {
>>> + pins = "gpio78";
>>> + function = "gpio";
>>> + drive-strength = <2>;
>>> + bias-disable;
>>> + };
>>> +
>>> + mclk {
>>> + pins = "gpio96";
>>> + function = "cam_mclk";
>>> + drive-strength = <16>;
>>> + bias-disable;
>>> + };
>>> + };
>>> +
>>> + cam2_suspend: cam2-suspend {
>>> + rst {
>>> + pins = "gpio78";
>>> + function = "gpio";
>>> + drive-strength = <2>;
>>> + bias-pull-down;
>>> + output-low;
>>> + };
>>> +
>>> + mclk {
>>> + pins = "gpio96";
>>> + function = "cam_mclk";
>>> + drive-strength = <2>;
>>> + bias-disable;
>>> + };
>>> + };
>>> +
>>> cci0_default: cci0-default {
>>> cci0_i2c0_default: cci0-i2c0-default {
>>> /* SDA, SCL */
>>
>>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 5/5] arm64: dts: qcom: sdm845-db845c-navigation-mezzanine: Add navigation mezzanine dts
2022-06-06 13:20 [PATCH v3 0/5] CAMSS updates for rb3 and rb5 Bryan O'Donoghue
` (3 preceding siblings ...)
2022-06-06 13:20 ` [PATCH v3 4/5] arm64: dts: qcom: qrb5165-rb5-vision-mezzanine: Add vision mezzanine Bryan O'Donoghue
@ 2022-06-06 13:20 ` Bryan O'Donoghue
4 siblings, 0 replies; 10+ messages in thread
From: Bryan O'Donoghue @ 2022-06-06 13:20 UTC (permalink / raw)
To: linux-arm-msm, linux-media, mchehab, hverkuil, robert.foss
Cc: jonathan, andrey.konovalov, todor.too, agross, bjorn.andersson,
jgrahsl, hfink, vladimir.zapolskiy, dmitry.baryshkov,
konrad.dybcio, bryan.odonoghue
Move the dts data for the rb3 navigation mezzanine into its own dts file.
Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../sdm845-db845c-navigation-mezzanine.dts | 115 ++++++++++++++++++
arch/arm64/boot/dts/qcom/sdm845-db845c.dts | 106 ----------------
3 files changed, 116 insertions(+), 106 deletions(-)
create mode 100644 arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dts
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 86e6801a9c29..2561c419f3ef 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -101,6 +101,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sdm845-cheza-r1.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm845-cheza-r2.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm845-cheza-r3.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm845-db845c.dtb
+dtb-$(CONFIG_ARCH_QCOM) += sdm845-db845c-navigation-mezzanine.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm845-mtp.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm845-oneplus-enchilada.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm845-oneplus-fajita.dtb
diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dts b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dts
new file mode 100644
index 000000000000..565675d644c5
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dts
@@ -0,0 +1,115 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2022, Linaro Ltd.
+ */
+
+/dts-v1/;
+
+#include "sdm845-db845c.dts"
+
+&cci {
+ status = "okay";
+};
+
+&camss {
+ vdda-supply = <&vreg_l1a_0p875>;
+
+ status = "ok";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ port@0 {
+ reg = <0>;
+ csiphy0_ep: endpoint {
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&ov8856_ep>;
+ };
+ };
+ };
+};
+
+&cci_i2c0 {
+ camera@10 {
+ compatible = "ovti,ov8856";
+ reg = <0x10>;
+
+ // CAM0_RST_N
+ reset-gpios = <&tlmm 9 GPIO_ACTIVE_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&cam0_default>;
+ gpios = <&tlmm 13 0>,
+ <&tlmm 9 GPIO_ACTIVE_LOW>;
+
+ clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
+ clock-names = "xvclk";
+ clock-frequency = <19200000>;
+
+ /* The &vreg_s4a_1p8 trace is powered on as a,
+ * so it is represented by a fixed regulator.
+ *
+ * The 2.8V vdda-supply and 1.2V vddd-supply regulators
+ * both have to be enabled through the power management
+ * gpios.
+ */
+ power-domains = <&clock_camcc TITAN_TOP_GDSC>;
+
+ dovdd-supply = <&vreg_lvs1a_1p8>;
+ avdd-supply = <&cam0_avdd_2v8>;
+ dvdd-supply = <&cam0_dvdd_1v2>;
+
+ status = "ok";
+
+ port {
+ ov8856_ep: endpoint {
+ link-frequencies = /bits/ 64
+ <360000000 180000000>;
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&csiphy0_ep>;
+ };
+ };
+ };
+};
+
+&cci_i2c1 {
+ camera@60 {
+ compatible = "ovti,ov7251";
+
+ // I2C address as per ov7251.txt linux documentation
+ reg = <0x60>;
+
+ // CAM3_RST_N
+ enable-gpios = <&tlmm 21 0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&cam3_default>;
+ gpios = <&tlmm 16 0>,
+ <&tlmm 21 0>;
+
+ clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
+ clock-names = "xclk";
+ clock-frequency = <24000000>;
+
+ /* The &vreg_s4a_1p8 trace always powered on.
+ *
+ * The 2.8V vdda-supply regulator is enabled when the
+ * vreg_s4a_1p8 trace is pulled high.
+ * It too is represented by a fixed regulator.
+ *
+ * No 1.2V vddd-supply regulator is used.
+ */
+ power-domains = <&clock_camcc TITAN_TOP_GDSC>;
+
+ vdddo-supply = <&vreg_lvs1a_1p8>;
+ vdda-supply = <&cam3_avdd_2v8>;
+
+ status = "disable";
+
+ port {
+ ov7251_ep: endpoint {
+ data-lanes = <0 1>;
+// remote-endpoint = <&csiphy3_ep>;
+ };
+ };
+ };
+};
+
diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts
index 194ebeb3259c..faf1e9c7f24b 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts
+++ b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts
@@ -1139,112 +1139,6 @@ &pm8998_gpio {
};
-&cci {
- status = "okay";
-};
-
-&camss {
- vdda-supply = <&vreg_l1a_0p875>;
-
- status = "ok";
-
- ports {
- #address-cells = <1>;
- #size-cells = <0>;
- port@0 {
- reg = <0>;
- csiphy0_ep: endpoint {
- data-lanes = <0 1 2 3>;
- remote-endpoint = <&ov8856_ep>;
- };
- };
- };
-};
-
-&cci_i2c0 {
- camera@10 {
- compatible = "ovti,ov8856";
- reg = <0x10>;
-
- // CAM0_RST_N
- reset-gpios = <&tlmm 9 GPIO_ACTIVE_LOW>;
- pinctrl-names = "default";
- pinctrl-0 = <&cam0_default>;
- gpios = <&tlmm 13 0>,
- <&tlmm 9 GPIO_ACTIVE_LOW>;
-
- clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
- clock-names = "xvclk";
- clock-frequency = <19200000>;
-
- /* The &vreg_s4a_1p8 trace is powered on as a,
- * so it is represented by a fixed regulator.
- *
- * The 2.8V vdda-supply and 1.2V vddd-supply regulators
- * both have to be enabled through the power management
- * gpios.
- */
- power-domains = <&clock_camcc TITAN_TOP_GDSC>;
-
- dovdd-supply = <&vreg_lvs1a_1p8>;
- avdd-supply = <&cam0_avdd_2v8>;
- dvdd-supply = <&cam0_dvdd_1v2>;
-
- status = "ok";
-
- port {
- ov8856_ep: endpoint {
- link-frequencies = /bits/ 64
- <360000000 180000000>;
- data-lanes = <1 2 3 4>;
- remote-endpoint = <&csiphy0_ep>;
- };
- };
- };
-};
-
-&cci_i2c1 {
- camera@60 {
- compatible = "ovti,ov7251";
-
- // I2C address as per ov7251.txt linux documentation
- reg = <0x60>;
-
- // CAM3_RST_N
- enable-gpios = <&tlmm 21 0>;
- pinctrl-names = "default";
- pinctrl-0 = <&cam3_default>;
- gpios = <&tlmm 16 0>,
- <&tlmm 21 0>;
-
- clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
- clock-names = "xclk";
- clock-frequency = <24000000>;
-
- /* The &vreg_s4a_1p8 trace always powered on.
- *
- * The 2.8V vdda-supply regulator is enabled when the
- * vreg_s4a_1p8 trace is pulled high.
- * It too is represented by a fixed regulator.
- *
- * No 1.2V vddd-supply regulator is used.
- */
- power-domains = <&clock_camcc TITAN_TOP_GDSC>;
-
- vdddo-supply = <&vreg_lvs1a_1p8>;
- vdda-supply = <&cam3_avdd_2v8>;
-
- status = "disable";
-
- port {
- ov7251_ep: endpoint {
- data-lanes = <0 1>;
-// remote-endpoint = <&csiphy3_ep>;
- };
- };
- };
-};
-
/* PINCTRL - additions to nodes defined in sdm845.dtsi */
&qup_spi0_default {
config {
--
2.36.1
^ permalink raw reply related [flat|nested] 10+ messages in thread