Skip to content

Commit 30921dd

Browse files
roliver-rpipelwell
authored andcommitted
media: dt-bindings: i2c: Add Sony IMX500
Add YAML device tree binding for the Sony IMX500 CMOS image sensor / CNN inference engine. Also, add a MAINTAINERS entry. Signed-off-by: Richard Oliver <richard.oliver@raspberrypi.com>
1 parent 4d219b1 commit 30921dd

File tree

2 files changed

+139
-0
lines changed

2 files changed

+139
-0
lines changed
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/media/i2c/sony,imx500.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Sony CMOS Digital Image Sensor and CNN
8+
9+
maintainers:
10+
- Raspberry Pi <kernel-list@raspberrypi.com>
11+
12+
description: |-
13+
The Sony IMX500 is a stacked 1/2.3-inch CMOS digital image sensor and inbuilt
14+
AI processor with an active array CNN (Convolutional Neural Network) inference
15+
engine. The native sensor size is 4056H x 3040V, and the module also contains
16+
an in-built ISP for the CNN. The module is programmable through an I2C
17+
interface with firmware and neural network uploads being made over SPI. The
18+
default I2C address is 0x1A, with an address of 0x10 being selectable via
19+
SLASEL. The module also has a second I2C interface available with a fixed
20+
address of 0x36. Image data is sent through MIPI CSI-2, which is configured
21+
as either 2 or 4 data lanes.
22+
23+
properties:
24+
compatible:
25+
const: sony,imx500
26+
27+
reg:
28+
description: I2C device address
29+
maxItems: 1
30+
31+
clocks:
32+
maxItems: 1
33+
34+
clock-names:
35+
description: |-
36+
Input clock (12 to 27 MHz)
37+
items:
38+
- const: inck
39+
40+
interrupts:
41+
maxItems: 1
42+
43+
vana-supply:
44+
description: Supply voltage (analog) - 2.7 V
45+
46+
vdig-supply:
47+
description: Supply voltage (digital) - 0.84 V
48+
49+
vif-supply:
50+
description: Supply voltage (interface) - 1.8 V
51+
52+
reset-gpios:
53+
description: |-
54+
Sensor reset (XCLR) GPIO
55+
56+
Chip clear in lieu of built-in power on reset. To be set 'High' after
57+
power supplies are brought up and INCK supplied.
58+
59+
port:
60+
$ref: /schemas/graph.yaml#/$defs/port-base
61+
additionalProperties: false
62+
description: |
63+
Video output port
64+
65+
properties:
66+
endpoint:
67+
$ref: /schemas/media/video-interfaces.yaml#
68+
type: object
69+
unevaluatedProperties: false
70+
properties:
71+
data-lanes:
72+
items:
73+
- const: 2
74+
- const: 4
75+
clock-noncontinuous: true
76+
link-frequencies: true
77+
required:
78+
- link-frequencies
79+
- data-lanes
80+
81+
spi:
82+
$ref: /schemas/types.yaml#/definitions/phandle
83+
description: |-
84+
SPI peripheral
85+
86+
Optional SPI peripheral for uploading firmware and network weights to AI
87+
processor.
88+
89+
required:
90+
- compatible
91+
- reg
92+
- clocks
93+
- clock-names
94+
- vana-supply
95+
- vdig-supply
96+
- vif-supply
97+
- port
98+
99+
examples:
100+
- |
101+
#include <dt-bindings/gpio/gpio.h>
102+
103+
i2c {
104+
#address-cells = <1>;
105+
#size-cells = <0>;
106+
107+
imx500: sensor@1a {
108+
compatible = "sony,imx500";
109+
reg = <0x1a>;
110+
111+
clocks = <&imx500_clk>;
112+
clock-names = "inck";
113+
114+
vana-supply = <&imx500_vana>; /* 2.7 +/- 0.1 V */
115+
vdig-supply = <&imx500_vdig>; /* 0.84 +/- 0.04 V */
116+
vif-supply = <&imx500_vif>; /* 1.8 +/- 0.1 V */
117+
118+
reset-gpios = <&gpio_sensor 0 GPIO_ACTIVE_LOW>;
119+
120+
port {
121+
imx500_0: endpoint {
122+
remote-endpoint = <&csi1_ep>;
123+
data-lanes = <1 2>;
124+
clock-noncontinuous;
125+
link-frequencies = /bits/ 64 <499500000>;
126+
};
127+
};
128+
};
129+
};
130+
131+
...
132+

MAINTAINERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20125,6 +20125,13 @@ F: Documentation/devicetree/bindings/media/i2c/imx378.yaml
2012520125
F: Documentation/devicetree/bindings/media/i2c/imx477.yaml
2012620126
F: drivers/media/i2c/imx477.c
2012720127

20128+
SONY IMX500 SENSOR DRIVER
20129+
M: Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
20130+
L: linux-media@vger.kernel.org
20131+
S: Maintained
20132+
T: git git://linuxtv.org/media_tree.git
20133+
F: Documentation/devicetree/bindings/media/i2c/sony,imx500.yaml
20134+
2012820135
SONY IMX519 SENSOR DRIVER
2012920136
M: Arducam Kernel Maintenance <info@arducam.com>
2013020137
L: linux-media@vger.kernel.org

0 commit comments

Comments
 (0)