aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinaro CI <ci_notify@linaro.org>2022-12-04 23:39:21 +0000
committerLinaro CI <ci_notify@linaro.org>2022-12-04 23:39:21 +0000
commit2ea09178207a17a56f88a6fbda789d3c7fc491e1 (patch)
tree6a7271a1e142fecfd660de43f59e49ea16ccd690
parent1361bf9738cc33c2689957f9873262e6ea15f7d9 (diff)
parent585c9801cb0d40978e7ee385d0e0a52ebf62e292 (diff)
Merge remote-tracking branch 'dts-camera/tracking-qcomlt-dts-camera' into integration-linux-qcomlt
# Conflicts: # arch/arm64/boot/dts/qcom/qrb5165-rb5.dts # arch/arm64/boot/dts/qcom/sm8450.dtsi
-rw-r--r--Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml3
-rw-r--r--arch/arm64/boot/dts/qcom/qrb5165-rb5.dts98
-rw-r--r--arch/arm64/boot/dts/qcom/sm8250.dtsi399
-rw-r--r--arch/arm64/boot/dts/qcom/sm8450.dtsi240
4 files changed, 740 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
index cf9f8fda595f..717949df18e7 100644
--- a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
+++ b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
@@ -56,6 +56,9 @@ patternProperties:
clock-frequency:
default: 100000
+ vbus-supply:
+ description: Phandle to regulator that provides power to SCL/SDA line
+
required:
- compatible
- clock-names
diff --git a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
index d6abee488b2e..52f4a1ac01bb 100644
--- a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
+++ b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
@@ -1250,6 +1250,43 @@
};
};
+ 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;
+ };
+ };
+
lt9611_irq_pin: lt9611-irq {
pins = "gpio63";
function = "gpio";
@@ -1395,3 +1432,64 @@
drive-strength = <6>;
bias-disable;
};
+
+&camcc {
+ status = "okay";
+};
+
+&camss {
+ status = "okay";
+ vdda-phy-supply = <&vreg_l5a_0p88>;
+ vdda-pll-supply = <&vreg_l9a_1p2>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* 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 {
+ 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>;
+
+ power-domains = <&camcc TITAN_TOP_GDSC>;
+ dovdd-supply = <&vreg_l7f_1p8>;
+ avdd-supply = <&vdc_5v>;
+ dvdd-supply = <&vdc_5v>;
+
+ status = "okay";
+ 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 0ef6f6f4e100..f84248020eb8 100644
--- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
@@ -3834,6 +3834,405 @@
gpio-ranges = <&tlmm 0 0 181>;
wakeup-parent = <&pdc>;
+ cam_sensor_mclk0_active: cam_sensor_mclk0_active {
+ /* MCLK0 */
+ mux {
+ pins = "gpio94";
+ function = "cam_mclk";
+ };
+
+ config {
+ pins = "gpio94";
+ bias-disable; /* No PULL */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend {
+ /* MCLK0 */
+ mux {
+ pins = "gpio94";
+ function = "cam_mclk";
+ };
+
+ config {
+ pins = "gpio94";
+ bias-pull-down; /* PULL DOWN */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_mclk1_active: cam_sensor_mclk1_active {
+ /* MCLK1 */
+ mux {
+ pins = "gpio95";
+ function = "cam_mclk";
+ };
+
+ config {
+ pins = "gpio95";
+ bias-disable; /* No PULL */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend {
+ /* MCLK1 */
+ mux {
+ pins = "gpio95";
+ function = "cam_mclk";
+ };
+
+ config {
+ pins = "gpio95";
+ bias-pull-down; /* PULL DOWN */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_mclk2_active: cam_sensor_mclk2_active {
+ /* MCLK2 */
+ mux {
+ pins = "gpio96";
+ function = "cam_mclk";
+ };
+
+ config {
+ pins = "gpio96";
+ bias-disable; /* No PULL */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend {
+ /* MCLK2 */
+ mux {
+ pins = "gpio96";
+ function = "cam_mclk";
+ };
+
+ config {
+ pins = "gpio96";
+ bias-pull-down; /* PULL DOWN */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_mclk3_active: cam_sensor_mclk3_active {
+ /* MCLK3 */
+ mux {
+ pins = "gpio97";
+ function = "cam_mclk";
+ };
+
+ config {
+ pins = "gpio97";
+ bias-disable; /* No PULL */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend {
+ /* MCLK3 */
+ mux {
+ pins = "gpio97";
+ function = "cam_mclk";
+ };
+
+ config {
+ pins = "gpio97";
+ bias-pull-down; /* PULL DOWN */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_mclk4_active: cam_sensor_mclk4_active {
+ /* MCLK4 */
+ mux {
+ pins = "gpio98";
+ function = "cam_mclk";
+ };
+
+ config {
+ pins = "gpio98";
+ bias-disable; /* No PULL */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_mclk4_suspend: cam_sensor_mclk4_suspend {
+ /* MCLK4 */
+ mux {
+ pins = "gpio98";
+ function = "cam_mclk";
+ };
+
+ config {
+ pins = "gpio98";
+ bias-pull-down; /* PULL DOWN */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_mclk5_active: cam_sensor_mclk5_active {
+ /* MCLK5 */
+ mux {
+ pins = "gpio99";
+ function = "cam_mclk";
+ };
+
+ config {
+ pins = "gpio99";
+ bias-disable; /* No PULL */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_mclk5_suspend: cam_sensor_mclk5_suspend {
+ /* MCLK5 */
+ mux {
+ pins = "gpio99";
+ function = "cam_mclk";
+ };
+
+ config {
+ pins = "gpio99";
+ bias-pull-down; /* PULL DOWN */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_mclk6_active: cam_sensor_mclk6_active {
+ /* MCLK6 */
+ mux {
+ pins = "gpio100";
+ function = "cam_mclk";
+ };
+
+ config {
+ pins = "gpio100";
+ bias-disable; /* No PULL */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_mclk6_suspend: cam_sensor_mclk6_suspend {
+ /* MCLK6 */
+ mux {
+ pins = "gpio100";
+ function = "cam_mclk";
+ };
+
+ config {
+ pins = "gpio100";
+ bias-pull-down; /* PULL DOWN */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_active_rear: cam_sensor_active_rear {
+ /* RESET REAR */
+ mux {
+ pins = "gpio93";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio93";
+ bias-disable; /* No PULL */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_suspend_rear: cam_sensor_suspend_rear {
+ /* RESET REAR */
+ mux {
+ pins = "gpio93";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio93";
+ bias-pull-down; /* PULL DOWN */
+ drive-strength = <2>; /* 2 MA */
+ output-low;
+ };
+ };
+
+ cam_sensor_active_rear_aux: cam_sensor_active_rear_aux {
+ /* RESET REARAUX */
+ mux {
+ pins = "gpio92";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio92";
+ bias-disable; /* No PULL */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_suspend_rear_aux: cam_sensor_suspend_rear_aux {
+ /* RESET REARAUX */
+ mux {
+ pins = "gpio92";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio92";
+ bias-pull-down; /* PULL DOWN */
+ drive-strength = <2>; /* 2 MA */
+ output-low;
+ };
+ };
+
+ cam_sensor_active_rst2: cam_sensor_active_rst2 {
+ /* RESET 2 */
+ mux {
+ pins = "gpio78";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio78";
+ bias-disable; /* No PULL */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_suspend_rst2: cam_sensor_suspend_rst2 {
+ /* RESET 2 */
+ mux {
+ pins = "gpio78";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio78";
+ bias-pull-down; /* PULL DOWN */
+ drive-strength = <2>; /* 2 MA */
+ output-low;
+ };
+ };
+
+ cam_sensor_active_3: cam_sensor_active_3 {
+ /* RESET 3 */
+ mux {
+ pins = "gpio109";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio109";
+ bias-disable; /* No PULL */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_suspend_3: cam_sensor_suspend_3 {
+ /* RESET 3 */
+ mux {
+ pins = "gpio109";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio109";
+ bias-pull-down; /* PULL DOWN */
+ drive-strength = <2>; /* 2 MA */
+ output-low;
+ };
+ };
+
+ cam_sensor_active_4: cam_sensor_active_4 {
+ /* RESET 4 */
+ mux {
+ pins = "gpio130";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio130";
+ bias-disable; /* No PULL */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_suspend_4: cam_sensor_suspend_4 {
+ /* RESET 4 */
+ mux {
+ pins = "gpio130";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio130";
+ bias-pull-down; /* PULL DOWN */
+ drive-strength = <2>; /* 2 MA */
+ output-low;
+ };
+ };
+
+ cam_sensor_active_5: cam_sensor_active_5 {
+ /* RESET 5 */
+ mux {
+ pins = "gpio131";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio131";
+ bias-disable; /* No PULL */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_suspend_5: cam_sensor_suspend_5 {
+ /* RESET 5 */
+ mux {
+ pins = "gpio131";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio131";
+ bias-pull-down; /* PULL DOWN */
+ drive-strength = <2>; /* 2 MA */
+ output-low;
+ };
+ };
+
+ cam_sensor_active_6: cam_sensor_active_6 {
+ /* RESET 6 */
+ mux {
+ pins = "gpio114";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio114";
+ bias-disable; /* No PULL */
+ drive-strength = <2>; /* 2 MA */
+ };
+ };
+
+ cam_sensor_suspend_6: cam_sensor_suspend_6 {
+ /* RESET 6 */
+ mux {
+ pins = "gpio114";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio114";
+ bias-pull-down; /* PULL DOWN */
+ drive-strength = <2>; /* 2 MA */
+ output-low;
+ };
+ };
+
cci0_default: cci0-default {
cci0_i2c0_default: cci0-i2c0-default {
/* SDA, SCL */
diff --git a/arch/arm64/boot/dts/qcom/sm8450.dtsi b/arch/arm64/boot/dts/qcom/sm8450.dtsi
index 18504ecc1f25..c8cfbb903eae 100644
--- a/arch/arm64/boot/dts/qcom/sm8450.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8450.dtsi
@@ -2559,6 +2559,84 @@
};
};
+ cci0: cci@ac15000 {
+ compatible = "qcom,sm8450-cci";
+ reg = <0 0xac15000 0 0x1000>;
+ interrupts = <GIC_SPI 460 IRQ_TYPE_EDGE_RISING>;
+ power-domains = <&camcc TITAN_TOP_GDSC>;
+
+ clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>,
+ <&camcc CAM_CC_SLOW_AHB_CLK_SRC>,
+ <&camcc CAM_CC_CPAS_AHB_CLK>,
+ <&camcc CAM_CC_CCI_0_CLK>,
+ <&camcc CAM_CC_CCI_0_CLK_SRC>;
+ clock-names = "camnoc_axi",
+ "slow_ahb_src",
+ "cpas_ahb",
+ "cci",
+ "cci_src";
+ pinctrl-0 = <&cci0_default &cci1_default>;
+ pinctrl-1 = <&cci0_sleep &cci1_sleep>;
+ pinctrl-names = "default", "sleep";
+
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cci0_i2c0: i2c-bus@0 {
+ reg = <0>;
+ clock-frequency = <1000000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ cci0_i2c1: i2c-bus@1 {
+ reg = <1>;
+ clock-frequency = <1000000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+
+ cci1: cci@ac16000 {
+ compatible = "qcom,sm8450-cci";
+ reg = <0 0xac16000 0 0x1000>;
+ interrupts = <GIC_SPI 271 IRQ_TYPE_EDGE_RISING>;
+ power-domains = <&camcc TITAN_TOP_GDSC>;
+
+ clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>,
+ <&camcc CAM_CC_SLOW_AHB_CLK_SRC>,
+ <&camcc CAM_CC_CPAS_AHB_CLK>,
+ <&camcc CAM_CC_CCI_1_CLK>,
+ <&camcc CAM_CC_CCI_1_CLK_SRC>;
+ clock-names = "camnoc_axi",
+ "slow_ahb_src",
+ "cpas_ahb",
+ "cci",
+ "cci_src";
+ pinctrl-0 = <&cci2_default &cci3_default>;
+ pinctrl-1 = <&cci2_sleep &cci3_sleep>;
+ pinctrl-names = "default", "sleep";
+
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cci1_i2c0: i2c-bus@0 {
+ reg = <0>;
+ clock-frequency = <1000000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ cci1_i2c1: i2c-bus@1 {
+ reg = <1>;
+ clock-frequency = <1000000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+
camcc: clock-controller@ade0000 {
compatible = "qcom,sm8450-camcc";
reg = <0 0x0ade0000 0 0x20000>;
@@ -2951,6 +3029,168 @@
gpio-ranges = <&tlmm 0 0 211>;
wakeup-parent = <&pdc>;
+ cam_sensor_mclk0_default: cam-sensor-mclk0-default-state {
+ pins = "gpio100";
+ function = "cam_mclk";
+ drive-strength = <6>;
+ bias-disable;
+ };
+
+ cam_sensor_mclk0_sleep: cam-sensor-mclk0-sleep-state {
+ pins = "gpio100";
+ function = "cam_mclk";
+ drive-strength = <6>;
+ bias-pull-down;
+ };
+
+ cam_sensor_mclk1_default: cam-sensor-mclk1-default-state {
+ pins = "gpio101";
+ function = "cam_mclk";
+ drive-strength = <6>;
+ bias-disable;
+ };
+
+ cam_sensor_mclk1_sleep: cam-sensor-mclk1-sleep-state {
+ pins = "gpio101";
+ function = "cam_mclk";
+ drive-strength = <6>;
+ bias-pull-down;
+ };
+
+ cam_sensor_mclk2_default: cam-sensor-mclk2-default-state {
+ pins = "gpio102";
+ function = "cam_mclk";
+ drive-strength = <6>;
+ bias-disable;
+ };
+
+ cam_sensor_mclk2_sleep: cam-sensor-mclk2-sleep-state {
+ pins = "gpio102";
+ function = "cam_mclk";
+ drive-strength = <6>;
+ bias-pull-down;
+ };
+
+ cam_sensor_mclk3_default: cam-sensor-mclk3-default-state {
+ pins = "gpio103";
+ function = "cam_mclk";
+ drive-strength = <6>;
+ bias-disable;
+ };
+
+ cam_sensor_mclk3_sleep: cam-sensor-mclk3-sleep-state {
+ pins = "gpio103";
+ function = "cam_mclk";
+ drive-strength = <6>;
+ bias-pull-down;
+ };
+
+ cam_sensor_mclk4_default: cam-sensor-mclk4-default-state {
+ pins = "gpio104";
+ function = "cam_mclk";
+ drive-strength = <6>;
+ bias-disable;
+ };
+
+ cam_sensor_mclk4_sleep: cam-sensor-mclk4-sleep-state {
+ pins = "gpio104";
+ function = "cam_mclk";
+ drive-strength = <6>;
+ bias-pull-down;
+ };
+
+ cam_sensor_mclk5_default: cam-sensor-mclk5-default-state {
+ pins = "gpio105";
+ function = "cam_mclk";
+ drive-strength = <6>;
+ bias-disable;
+ };
+
+ cam_sensor_mclk5_sleep: cam-sensor-mclk5-sleep-state {
+ pins = "gpio105";
+ function = "cam_mclk";
+ drive-strength = <6>;
+ bias-pull-down;
+ };
+
+ cam_sensor_mclk6_default: cam-sensor-mclk6-default-state {
+ pins = "gpio106";
+ function = "cam_mclk";
+ drive-strength = <6>;
+ bias-disable;
+ };
+
+ cam_sensor_mclk6_sleep: cam-sensor-mclk6-sleep-state {
+ pins = "gpio106";
+ function = "cam_mclk";
+ drive-strength = <6>;
+ bias-pull-down;
+ };
+
+ cci0_default: cci0-default-state {
+ /* SDA, SCL */
+ pins = "gpio110", "gpio111";
+ function = "cci_i2c";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ cci0_sleep: cci0-sleep-state {
+ /* SDA, SCL */
+ pins = "gpio110", "gpio111";
+ function = "cci_i2c";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ cci1_default: cci1-default-state {
+ /* SDA, SCL */
+ pins = "gpio112", "gpio113";
+ function = "cci_i2c";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ cci1_sleep: cci1-sleep-state {
+ /* SDA, SCL */
+ pins = "gpio112", "gpio113";
+ function = "cci_i2c";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ cci2_default: cci2-default-state {
+ /* SDA, SCL */
+ pins = "gpio114", "gpio115";
+ function = "cci_i2c";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ cci2_sleep: cci2-sleep-state {
+ /* SDA, SCL */
+ pins = "gpio114", "gpio115";
+ function = "cci_i2c";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ cci3_default: cci3-default-state {
+ /* SDA, SCL */
+ pins = "gpio208", "gpio209";
+ function = "cci_i2c";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ cci3_sleep: cci3-sleep-state {
+ /* SDA, SCL */
+ pins = "gpio208", "gpio209";
+ function = "cci_i2c";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
sdc2_default_state: sdc2-default-state {
clk-pins {
pins = "sdc2_clk";