Skip to content

Commit

Permalink
media: dt-bindings: i2c: Add Sony IMX500
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
roliver-rpi authored and popcornmix committed Jan 2, 2025
1 parent 39e2e97 commit a2e05f6
Show file tree
Hide file tree
Showing 2 changed files with 139 additions and 0 deletions.
132 changes: 132 additions & 0 deletions Documentation/devicetree/bindings/media/i2c/sony,imx500.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/sony,imx500.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Sony CMOS Digital Image Sensor and CNN

maintainers:
- Raspberry Pi <[email protected]>

description: |-
The Sony IMX500 is a stacked 1/2.3-inch CMOS digital image sensor and inbuilt
AI processor with an active array CNN (Convolutional Neural Network) inference
engine. The native sensor size is 4056H x 3040V, and the module also contains
an in-built ISP for the CNN. The module is programmable through an I2C
interface with firmware and neural network uploads being made over SPI. The
default I2C address is 0x1A, with an address of 0x10 being selectable via
SLASEL. The module also has a second I2C interface available with a fixed
address of 0x36. Image data is sent through MIPI CSI-2, which is configured
as either 2 or 4 data lanes.
properties:
compatible:
const: sony,imx500

reg:
description: I2C device address
maxItems: 1

clocks:
maxItems: 1

clock-names:
description: |-
Input clock (12 to 27 MHz)
items:
- const: inck

interrupts:
maxItems: 1

vana-supply:
description: Supply voltage (analog) - 2.7 V

vdig-supply:
description: Supply voltage (digital) - 0.84 V

vif-supply:
description: Supply voltage (interface) - 1.8 V

reset-gpios:
description: |-
Sensor reset (XCLR) GPIO
Chip clear in lieu of built-in power on reset. To be set 'High' after
power supplies are brought up and INCK supplied.
port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
description: |
Video output port
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
type: object
unevaluatedProperties: false
properties:
data-lanes:
items:
- const: 2
- const: 4
clock-noncontinuous: true
link-frequencies: true
required:
- link-frequencies
- data-lanes

spi:
$ref: /schemas/types.yaml#/definitions/phandle
description: |-
SPI peripheral
Optional SPI peripheral for uploading firmware and network weights to AI
processor.
required:
- compatible
- reg
- clocks
- clock-names
- vana-supply
- vdig-supply
- vif-supply
- port

examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
imx500: sensor@1a {
compatible = "sony,imx500";
reg = <0x1a>;
clocks = <&imx500_clk>;
clock-names = "inck";
vana-supply = <&imx500_vana>; /* 2.7 +/- 0.1 V */
vdig-supply = <&imx500_vdig>; /* 0.84 +/- 0.04 V */
vif-supply = <&imx500_vif>; /* 1.8 +/- 0.1 V */
reset-gpios = <&gpio_sensor 0 GPIO_ACTIVE_LOW>;
port {
imx500_0: endpoint {
remote-endpoint = <&csi1_ep>;
data-lanes = <1 2>;
clock-noncontinuous;
link-frequencies = /bits/ 64 <499500000>;
};
};
};
};
...

7 changes: 7 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -21592,6 +21592,13 @@ F: Documentation/devicetree/bindings/media/i2c/imx378.yaml
F: Documentation/devicetree/bindings/media/i2c/imx477.yaml
F: drivers/media/i2c/imx477.c

SONY IMX500 SENSOR DRIVER
M: Raspberry Pi Kernel Maintenance <[email protected]>
L: [email protected]
S: Maintained
T: git git://linuxtv.org/media_tree.git
F: Documentation/devicetree/bindings/media/i2c/sony,imx500.yaml

SONY IMX519 SENSOR DRIVER
M: Arducam Kernel Maintenance <[email protected]>
L: [email protected]
Expand Down

0 comments on commit a2e05f6

Please sign in to comment.