mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
media: i2c: imx519: Support for the Sony IMX519 sensor
dt-bindings: media: i2c: Add IMX519 CMOS sensor binding Add YAML device tree binding for IMX519 CMOS image sensor, and the relevant MAINTAINERS entries. Signed-off-by: Lee Jackson <info@arducam.com> media: i2c: Add driver for IMX519 sensor Adds a driver for the 16MPix IMX519 CSI2 sensor. Whilst the sensor supports 2 or 4 CSI2 data lanes, this driver currently only supports 2 lanes. The following Bayer modes are currently available: 4656x3496 10-bit @ 10fps 3840x2160 10-bit (cropped) @ 21fps 2328x1748 10-bit (binned) @ 30fps 1920x1080 10-bit (cropped/binned) @ 60fps 1280x720 10-bit (cropped/binned) @ 120fps Signed-off-by: Lee Jackson <info@arducam.com> media: i2c: imx519: Advertise embedded data node on media pad 1 This commit updates the imx519 driver to adverise support for embedded data streams. The imx519 sensor subdevice overloads the media pad to differentiate between image stream (pad 0) and embedded data stream (pad 1) when performing the v4l2_subdev_pad_ops functions. Signed-off-by: Lee Jackson <info@arducam.com> media: i2c: imx519: Sensor should report RAW color space Tested on Raspberry Pi running libcamera. Signed-off-by: David Plowman <david.plowman@raspberrypi.com> media: i2c: Update imx519 Kconfig entry Bring the IMX519 Kconfig declaration in line with the upstream entries. Signed-off-by: Phil Elwell <phil@raspberrypi.com>
This commit is contained in:
113
Documentation/devicetree/bindings/media/i2c/imx519.yaml
Normal file
113
Documentation/devicetree/bindings/media/i2c/imx519.yaml
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/media/i2c/imx519.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Sony 1/2.5-Inch 16Mpixel CMOS Digital Image Sensor
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Lee Jackson <info@arducam.com>
|
||||||
|
|
||||||
|
description: |-
|
||||||
|
The Sony IMX519 is a 1/2.5-inch CMOS active pixel digital image sensor
|
||||||
|
with an active array size of 4656H x 3496V. It is programmable through
|
||||||
|
I2C interface. The I2C address is fixed to 0x1A as per sensor data sheet.
|
||||||
|
Image data is sent through MIPI CSI-2, which is configured as either 2 or
|
||||||
|
4 data lanes.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: sony,imx519
|
||||||
|
|
||||||
|
reg:
|
||||||
|
description: I2C device address
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
VDIG-supply:
|
||||||
|
description:
|
||||||
|
Digital I/O voltage supply, 1.05 volts
|
||||||
|
|
||||||
|
VANA-supply:
|
||||||
|
description:
|
||||||
|
Analog voltage supply, 2.8 volts
|
||||||
|
|
||||||
|
VDDL-supply:
|
||||||
|
description:
|
||||||
|
Digital core voltage supply, 1.8 volts
|
||||||
|
|
||||||
|
reset-gpios:
|
||||||
|
description: |-
|
||||||
|
Reference to the GPIO connected to the xclr pin, if any.
|
||||||
|
Must be released (set high) after all supplies and INCK are applied.
|
||||||
|
|
||||||
|
# See ../video-interfaces.txt for more details
|
||||||
|
port:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
endpoint:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
data-lanes:
|
||||||
|
description: |-
|
||||||
|
The sensor supports either two-lane, or four-lane operation.
|
||||||
|
For two-lane operation the property must be set to <1 2>.
|
||||||
|
items:
|
||||||
|
- const: 1
|
||||||
|
- const: 2
|
||||||
|
|
||||||
|
clock-noncontinuous:
|
||||||
|
type: boolean
|
||||||
|
description: |-
|
||||||
|
MIPI CSI-2 clock is non-continuous if this property is present,
|
||||||
|
otherwise it's continuous.
|
||||||
|
|
||||||
|
link-frequencies:
|
||||||
|
allOf:
|
||||||
|
- $ref: /schemas/types.yaml#/definitions/uint64-array
|
||||||
|
description:
|
||||||
|
Allowed data bus frequencies.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- link-frequencies
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- clocks
|
||||||
|
- VANA-supply
|
||||||
|
- VDIG-supply
|
||||||
|
- VDDL-supply
|
||||||
|
- port
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
i2c0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
imx519: sensor@1a {
|
||||||
|
compatible = "sony,imx519";
|
||||||
|
reg = <0x1a>;
|
||||||
|
clocks = <&imx519_clk>;
|
||||||
|
VANA-supply = <&imx519_vana>; /* 2.8v */
|
||||||
|
VDIG-supply = <&imx519_vdig>; /* 1.05v */
|
||||||
|
VDDL-supply = <&imx519_vddl>; /* 1.8v */
|
||||||
|
|
||||||
|
port {
|
||||||
|
imx519_0: endpoint {
|
||||||
|
remote-endpoint = <&csi1_ep>;
|
||||||
|
data-lanes = <1 2>;
|
||||||
|
clock-noncontinuous;
|
||||||
|
link-frequencies = /bits/ 64 <493500000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
...
|
||||||
@@ -19284,6 +19284,14 @@ T: git git://linuxtv.org/media_tree.git
|
|||||||
F: Documentation/devicetree/bindings/media/i2c/imx477.yaml
|
F: Documentation/devicetree/bindings/media/i2c/imx477.yaml
|
||||||
F: drivers/media/i2c/imx477.c
|
F: drivers/media/i2c/imx477.c
|
||||||
|
|
||||||
|
SONY IMX519 SENSOR DRIVER
|
||||||
|
M: Arducam Kernel Maintenance <info@arducam.com>
|
||||||
|
L: linux-media@vger.kernel.org
|
||||||
|
S: Maintained
|
||||||
|
T: git git://linuxtv.org/media_tree.git
|
||||||
|
F: Documentation/devicetree/bindings/media/i2c/imx519.yaml
|
||||||
|
F: drivers/media/i2c/imx519.c
|
||||||
|
|
||||||
SONY MEMORYSTICK SUBSYSTEM
|
SONY MEMORYSTICK SUBSYSTEM
|
||||||
M: Maxim Levitsky <maximlevitsky@gmail.com>
|
M: Maxim Levitsky <maximlevitsky@gmail.com>
|
||||||
M: Alex Dubov <oakad@yahoo.com>
|
M: Alex Dubov <oakad@yahoo.com>
|
||||||
|
|||||||
@@ -240,6 +240,17 @@ config VIDEO_IMX412
|
|||||||
To compile this driver as a module, choose M here: the
|
To compile this driver as a module, choose M here: the
|
||||||
module will be called imx412.
|
module will be called imx412.
|
||||||
|
|
||||||
|
config VIDEO_IMX519
|
||||||
|
tristate "Arducam IMX519 sensor support"
|
||||||
|
depends on I2C && VIDEO_DEV
|
||||||
|
select VIDEO_V4L2_SUBDEV_API
|
||||||
|
help
|
||||||
|
This is a Video4Linux2 sensor driver for the Arducam
|
||||||
|
IMX519 camera.
|
||||||
|
|
||||||
|
To compile this driver as a module, choose M here: the
|
||||||
|
module will be called IMX519.
|
||||||
|
|
||||||
config VIDEO_MAX9271_LIB
|
config VIDEO_MAX9271_LIB
|
||||||
tristate
|
tristate
|
||||||
|
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ obj-$(CONFIG_VIDEO_IMX335) += imx335.o
|
|||||||
obj-$(CONFIG_VIDEO_IMX355) += imx355.o
|
obj-$(CONFIG_VIDEO_IMX355) += imx355.o
|
||||||
obj-$(CONFIG_VIDEO_IMX412) += imx412.o
|
obj-$(CONFIG_VIDEO_IMX412) += imx412.o
|
||||||
obj-$(CONFIG_VIDEO_IMX477) += imx477.o
|
obj-$(CONFIG_VIDEO_IMX477) += imx477.o
|
||||||
|
obj-$(CONFIG_VIDEO_IMX519) += imx519.o
|
||||||
obj-$(CONFIG_VIDEO_IR_I2C) += ir-kbd-i2c.o
|
obj-$(CONFIG_VIDEO_IR_I2C) += ir-kbd-i2c.o
|
||||||
obj-$(CONFIG_VIDEO_ISL7998X) += isl7998x.o
|
obj-$(CONFIG_VIDEO_ISL7998X) += isl7998x.o
|
||||||
obj-$(CONFIG_VIDEO_KS0127) += ks0127.o
|
obj-$(CONFIG_VIDEO_KS0127) += ks0127.o
|
||||||
|
|||||||
2090
drivers/media/i2c/imx519.c
Normal file
2090
drivers/media/i2c/imx519.c
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user