[PATCH v21 14/14] arm64: dts: qcom: kaanapali-mtp-camera-s5kjn5: Add DT overlay
Bryan O'Donoghue
bod at kernel.org
Thu Oct 15 07:19:10 PDT 2026
On 12/10/2026 07:45, Hangxiang Ma wrote:
> Enable the S5KJN5 image sensor via CCI on Kaanapali MTP board.
>
> The Kaanapali MTP board connect S5KJN5 with QUP I2C bus by default. This
> DTBO enables S5KJN5 on CCI-0 interface connected to the CSIPHY2 in four
> lane mode on a rework camera module.
>
> Signed-off-by: Hangxiang Ma <hangxiang.ma at oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 5 ++
> .../boot/dts/qcom/kaanapali-mtp-camera-s5kjn5.dtso | 81 ++++++++++++++++++++++
> arch/arm64/boot/dts/qcom/kaanapali-mtp.dts | 7 ++
> 3 files changed, 93 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 88230c4e00ea..84b244d43e9e 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -48,6 +48,11 @@ dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp449.dtb
> dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp453.dtb
> dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp454.dtb
> dtb-$(CONFIG_ARCH_QCOM) += ipq9650-rdp488.dtb
> +dtb-$(CONFIG_ARCH_QCOM) += kaanapali-mtp-camera-s5kjn5.dtbo
> +
> +kaanapali-mtp-camera-s5kjn5-dtbs := kaanapali-mtp.dtb kaanapali-mtp-camera-s5kjn5.dtbo
> +
> +dtb-$(CONFIG_ARCH_QCOM) += kaanapali-mtp-camera-s5kjn5.dtb
> dtb-$(CONFIG_ARCH_QCOM) += kaanapali-mtp.dtb
> dtb-$(CONFIG_ARCH_QCOM) += kaanapali-qrd.dtb
> dtb-$(CONFIG_ARCH_QCOM) += lemans-evk.dtb
> diff --git a/arch/arm64/boot/dts/qcom/kaanapali-mtp-camera-s5kjn5.dtso b/arch/arm64/boot/dts/qcom/kaanapali-mtp-camera-s5kjn5.dtso
> new file mode 100644
> index 000000000000..d0e39855e0e6
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/kaanapali-mtp-camera-s5kjn5.dtso
> @@ -0,0 +1,81 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/clock/qcom,kaanapali-cambistmclkcc.h>
> +#include <dt-bindings/clock/qcom,kaanapali-camcc.h>
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/media/video-interfaces.h>
> +
> +&camss {
> + status = "okay";
> +};
> +
> +&camss_csiphy2_in_port {
> + camss_csiphy2_inep: endpoint {
> + data-lanes = <1 2 3 4>;
> + remote-endpoint = <&csiphy2_out_ep>;
> + };
> +};
> +
> +&cci0 {
> + status = "okay";
> +};
> +
> +&cci0_i2c1 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + camera at 10 {
> + compatible = "samsung,s5kjn5";
> + reg = <0x10>;
> +
> + reset-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&cam_mclk2_default &cam_reset2_default>;
> +
> + clocks = <&cambistmclkcc CAM_BIST_MCLK_CC_MCLK2_CLK>;
> + assigned-clocks = <&cambistmclkcc CAM_BIST_MCLK_CC_MCLK2_CLK>;
> + assigned-clock-rates = <19200000>;
> +
> + vddio-supply = <&vreg_l4n_1p8>;
> + vddd-supply = <&vreg_l1m_1p0>;
> + vdda-supply = <&vreg_l4m_2p2>;
> + vddio1p2-supply = <&vreg_l2n_1p2>;
> + afvdd-supply = <&vreg_l7m_2p8>;
> +
> + port {
> + s5kjn5_out_ep: endpoint {
> + data-lanes = <1 2 3 4>;
> + link-frequencies = /bits/ 64 <1248000000>;
> + remote-endpoint = <&csiphy2_in_ep>;
> + };
> + };
> + };
> +};
> +
> +&csiphy2 {
> + vdda-0p9-supply = <&vreg_l3d_0p8>;
> + vdda-1p2-supply = <&vreg_l1d_1p2>;
> +
> + status = "okay";
> +};
> +
> +&csiphy2_in_port {
> + csiphy2_in_ep: endpoint {
> + bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
> + clock-lanes = <0>;
> + data-lanes = <1 2 3 4>;
> + remote-endpoint = <&s5kjn5_out_ep>;
> + };
> +};
> +
> +&csiphy2_out_port {
> + csiphy2_out_ep: endpoint {
> + remote-endpoint = <&camss_csiphy2_inep>;
> + };
> +};
> diff --git a/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts b/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts
> index 9eb02fd09dab..c70cd39bcb75 100644
> --- a/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts
> +++ b/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts
> @@ -1243,6 +1243,13 @@ &tlmm {
> <119 2>, /* SoCCP */
> <144 4>; /* CXM UART */
>
> + cam_reset2_default: cam-reset2-default-state {
> + pins = "gpio3";
> + function = "gpio";
> + drive-strength = <16>;
> + bias-disable;
> + };
> +
> wlan_en: wlan-en-state {
> pins = "gpio16";
> function = "gpio";
>
> --
> 2.34.1
Really nice to see sensor stuff in this series.
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue at linaro.org>
More information about the linux-phy
mailing list