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
98 changes: 98 additions & 0 deletions Documentation/devicetree/bindings/media/i2c/samsung,s5k5e8yx.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/samsung,s5k5e8yx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Samsung S5K5E8YX Image Sensor

description:
Samsung S5K5E8YX image sensor is a 5MP CMOS image sensor.
The sensor is controlled over a serial camera control bus protocol,
the widest supported output image frame size is 2608x1960 at 30 frames
per second, data output format is RAW10 transferred over 2-lane
MIPI D-PHY interface.

maintainers:
- Andrii Cherniavskyi <chernyav.a@gmail.com>

allOf:
- $ref: /schemas/media/video-interface-devices.yaml#

properties:
compatible:
const: samsung,s5k5e8yx

reg:
maxItems: 1

clocks:
description: MCLK supply clock.
maxItems: 1

reset-gpios:
description: Active low GPIO connected to RESET pad of the sensor.
maxItems: 1

vdda-supply:
description: Analogue voltage supply, 2.8 volts.

vddd-supply:
description: Digital core voltage supply, 1.2 volts.

vddio-supply:
description: Digital I/O voltage supply, 1.8 or 2.8 volts.

port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false

properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false

properties:
link-frequencies: true
remote-endpoint: true

required:
- link-frequencies
- remote-endpoint

required:
- compatible
- reg
- clocks
- port

unevaluatedProperties: false

examples:
- |
#include <dt-bindings/gpio/gpio.h>

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

camera@2d {
compatible = "samsung,s5k5e8yx";
reg = <0x2d>;
clocks = <&camera_mclk 0>;
assigned-clocks = <&camera_mclk 0>;
assigned-clock-rates = <24000000>;
reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
vdda-supply = <&vreg_2p8>;
vddd-supply = <&vreg_1p2>;
vddio-supply = <&vreg_1p8>;

port {
endpoint {
link-frequencies = /bits/ 64 <500000000>;
remote-endpoint = <&mipi_csi2_ep>;
};
};
};
};
...
60 changes: 60 additions & 0 deletions arch/arm64/boot/dts/qcom/msm8953-xiaomi-tissot.dts
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,13 @@
bias-disable;
output-low;
};

cam_front_reset_default: cam_front_reset_default {
pins = "gpio129";
function = "gpio";
bias-disable;
drive-strength = <2>;
};
};

&uart_0 {
Expand All @@ -292,3 +299,56 @@
qcom,mbhc-vthreshold-high = <91 259 488 488 488>;
qcom,mbhc-vthreshold-low = <91 259 488 488 488>;
};

&camss {
status = "okay";
vdda-supply = <&pm8953_s3>;

ports {
port@2 {
reg = <2>;
csiphy2_ep: endpoint {
data-lanes = <0 1>;
remote-endpoint = <&front_cam_ep>;
};
};
};
};

&cci {
status = "okay";
};

&cci_i2c1 {
camera-sensor@2d { // Front camera
compatible = "samsung,s5k5e8yx";

reg = <0x2d>;

clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
assigned-clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
assigned-clock-rates = <24000000>;

reset-gpios = <&tlmm 129 GPIO_ACTIVE_LOW>;

pinctrl-0 = <&cam_front_reset_default>,
<&camss_mclk1_default>;
pinctrl-names = "default";

vdda-supply= <&pm8953_l22>;
vddd-supply = <&pm8953_l23>;
vddio-supply = <&pm8953_l6>;

rotation = <90>;
orientation = <0>;

status = "okay";

port {
front_cam_ep: endpoint {
remote-endpoint = <&csiphy2_ep>;
link-frequencies = /bits/ 64 <420000000>;
};
};
};
};
1 change: 1 addition & 0 deletions arch/arm64/configs/xiaomi-tissot.config
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,4 @@ CONFIG_RMI4_F12=y
CONFIG_RMI4_I2C=m
CONFIG_SND_SOC_MAX98927=m
CONFIG_TOUCHSCREEN_EDT_FT5X06=m
CONFIG_VIDEO_S5K5E8YX=m
10 changes: 10 additions & 0 deletions drivers/media/i2c/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -812,6 +812,16 @@ config VIDEO_S5KJN1
To compile this driver as a module, choose M here: the
module will be called s5kjn1.

config VIDEO_S5K5E8YX
tristate "Samsung S5K5E8YX sensor support"
select V4L2_CCI_I2C
help
This is a V4L2 sensor driver for Samsung S5K5E8YX 5MP raw
camera sensor.

To compile this driver as a module, choose M here: the
module will be called s5k5e8yx.

config VIDEO_VD55G1
tristate "ST VD55G1 sensor support"
select V4L2_CCI_I2C
Expand Down
1 change: 1 addition & 0 deletions drivers/media/i2c/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ obj-$(CONFIG_VIDEO_S5K3M5) += s5k3m5.o
obj-$(CONFIG_VIDEO_S5K5BAF) += s5k5baf.o
obj-$(CONFIG_VIDEO_S5K6A3) += s5k6a3.o
obj-$(CONFIG_VIDEO_S5KJN1) += s5kjn1.o
obj-$(CONFIG_VIDEO_S5K5E8YX) += s5k5e8yx.o
obj-$(CONFIG_VIDEO_SAA6588) += saa6588.o
obj-$(CONFIG_VIDEO_SAA6752HS) += saa6752hs.o
obj-$(CONFIG_VIDEO_SAA7110) += saa7110.o
Expand Down
Loading