Files
linux/Documentation/devicetree/bindings/media/i2c/sony,imx500.yaml
Richard Oliver 78c68bb27d 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>
2025-12-01 12:27:58 +00:00

133 lines
3.2 KiB
YAML

# 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 <kernel-list@raspberrypi.com>
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>;
};
};
};
};
...