Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions arch/arm64/boot/dts/qcom/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ dtb-$(CONFIG_ARCH_QCOM) += apq8094-sony-xperia-kitakami-karin_windy.dtb
dtb-$(CONFIG_ARCH_QCOM) += apq8096-db820c.dtb
dtb-$(CONFIG_ARCH_QCOM) += apq8096-ifc6640.dtb
dtb-$(CONFIG_ARCH_QCOM) += hamoa-iot-evk.dtb

hamoa-iot-evk-camera-dtbs := hamoa-iot-evk.dtb hamoa-iot-evk-camera.dtbo

dtb-$(CONFIG_ARCH_QCOM) += hamoa-iot-evk-camera.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq5018-rdp432-c2.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq5018-tplink-archer-ax55-v1.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq5332-rdp441.dtb
Expand Down
104 changes: 104 additions & 0 deletions arch/arm64/boot/dts/qcom/hamoa-iot-evk-camera.dtso
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
*/

/dts-v1/;
/plugin/;

#include <dt-bindings/clock/qcom,x1e80100-camcc.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/phy/phy.h>

&{/} {
vreg_cam1_1p8: regulator-cam1 {
compatible = "regulator-fixed";
regulator-name = "vreg_cam1";
startup-delay-us = <1000>;
enable-active-high;
gpio = <&tlmm 19 GPIO_ACTIVE_HIGH>;
};
};

&camss {
status = "okay";

ports {
#address-cells = <1>;
#size-cells = <0>;

port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;

csiphy1_ep: endpoint@1 {
#address-cells = <1>;
#size-cells = <0>;

reg = <1>;
clock-lanes = <7>;
data-lanes = <0 1 2 3>;
remote-endpoint = <&imx577_ep1>;
};
};
};
};

&cci0 {
status = "okay";
};

&cci0_i2c1 {
#address-cells = <1>;
#size-cells = <0>;

camera@1a {
compatible = "sony,imx577";
reg = <0x1a>;

reset-gpios = <&tlmm 110 GPIO_ACTIVE_LOW>;
pinctrl-0 = <&cam1_default>;
pinctrl-names = "default";

clocks = <&camcc CAM_CC_MCLK1_CLK>;
assigned-clocks = <&camcc CAM_CC_MCLK1_CLK>;
assigned-clock-rates = <24000000>;

dvdd-supply = <&vreg_cam1_1p8>;
dovdd-supply = <&vreg_l4m_1p8>;

port {
imx577_ep1: endpoint {
link-frequencies = /bits/ 64 <600000000>;
data-lanes = <0 1 2 3>;
remote-endpoint = <&csiphy1_ep>;
};
};
};
};

&csiphy1 {
vdda-0p8-supply = <&vreg_l2c_0p8>;
vdda-1p2-supply = <&vreg_l1c_1p2>;

status = "okay";
};

&tlmm {
cam1_default: cam1-default-state {
mclk-pins {
pins = "gpio97";
function = "cam_mclk";
drive-strength = <2>;
bias-disable;
};

rst-pins {
pins = "gpio110";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
};
};
15 changes: 15 additions & 0 deletions arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,21 @@
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};

/* PM8010_M */
regulators-8 {
compatible = "qcom,pm8010-rpmh-regulators";
qcom,pmic-id = "m";

vdd-l3-l4-supply = <&vreg_s4c_1p8>;

vreg_l4m_1p8: ldo4 {
regulator-name = "vrer_l4m_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1808000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
};

&iris {
Expand Down
108 changes: 108 additions & 0 deletions arch/arm64/boot/dts/qcom/x1-crd.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/gpio-keys.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/phy/phy.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>

Expand Down Expand Up @@ -858,12 +859,103 @@
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};

regulators-8 {
compatible = "qcom,pm8010-rpmh-regulators";
qcom,pmic-id = "m";

vdd-l1-l2-supply = <&vreg_s5j_1p2>;
vdd-l3-l4-supply = <&vreg_s4c_1p8>;
vdd-l7-supply = <&vreg_bob1>;

vreg_l3m_1p8: ldo3 {
regulator-name = "vreg_l3m_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1808000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};

vreg_l4m_1p8: ldo4 {
regulator-name = "vrer_l4m_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1808000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};

vreg_l7m_2p9: ldo7 {
regulator-name = "vreg_l7m_2p9";
regulator-min-microvolt = <2912000>;
regulator-max-microvolt = <2912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
};

&gpu {
status = "okay";
};

&camss {
status = "okay";

ports {
/*
* port0 => csiphy0
* port1 => csiphy1
* port2 => csiphy2
* port3 => csiphy4
*/
port@3 {
csiphy4_ep: endpoint@4 {
reg = <4>;
clock-lanes = <7>;
data-lanes = <0 1 2 3>;
remote-endpoint = <&ov08x40_ep>;
};
};
};
};

&cci1 {
status = "okay";
};

&cci1_i2c1 {
camera@36 {
compatible = "ovti,ov08x40";
reg = <0x36>;

reset-gpios = <&tlmm 237 GPIO_ACTIVE_LOW>;
pinctrl-0 = <&cam_rgb_default>;
pinctrl-names = "default";

clocks = <&camcc CAM_CC_MCLK4_CLK>;
assigned-clocks = <&camcc CAM_CC_MCLK4_CLK>;
assigned-clock-rates = <19200000>;

orientation = <0>; /* front facing */

avdd-supply = <&vreg_l7b_2p8>;
dovdd-supply = <&vreg_l3m_1p8>;

port {
ov08x40_ep: endpoint {
data-lanes = <1 2 3 4>;
link-frequencies = /bits/ 64 <400000000>;
remote-endpoint = <&csiphy4_ep>;
};
};
};
};

&csiphy4 {
vdda-0p8-supply = <&vreg_l2c_0p8>;
vdda-1p2-supply = <&vreg_l1c_1p2>;
phy-type = <PHY_TYPE_DPHY>;

status = "okay";
};

&i2c0 {
clock-frequency = <400000>;

Expand Down Expand Up @@ -1478,6 +1570,22 @@
<44 4>, /* SPI (TPM) */
<238 1>; /* UFS Reset */

cam_rgb_default: cam-rgb-default-state {
mclk-pins {
pins = "gpio100";
function = "cam_aon";
drive-strength = <16>;
bias-disable;
};

reset-n-pins {
pins = "gpio237";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
};

edp_reg_en: edp-reg-en-state {
pins = "gpio70";
function = "gpio";
Expand Down
Loading