openwrt/target/linux/bcm27xx/patches-6.6/950-1243-media-dt-bindings-i2c-Add-Sony-IMX500.patch
Álvaro Fernández Rojas 538a1d740c bcm27xx: update to latest RPi patches
The patches were generated from the RPi repo with the following command:
git format-patch v6.6.58..rpi-6.6.y

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-10-31 13:44:23 +01:00

167 lines
4.6 KiB
Diff

From 30921ddfa24a5325d0f4980c72f98d20bace87a2 Mon Sep 17 00:00:00 2001
From: Richard Oliver <richard.oliver@raspberrypi.com>
Date: Fri, 24 May 2024 11:43:07 +0100
Subject: [PATCH 1243/1350] 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>
---
.../bindings/media/i2c/sony,imx500.yaml | 132 ++++++++++++++++++
MAINTAINERS | 7 +
2 files changed, 139 insertions(+)
create mode 100644 Documentation/devicetree/bindings/media/i2c/sony,imx500.yaml
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/sony,imx500.yaml
@@ -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 <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>;
+ };
+ };
+ };
+ };
+
+...
+
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -20127,6 +20127,13 @@ F: Documentation/devicetree/bindings/med
F: Documentation/devicetree/bindings/media/i2c/imx477.yaml
F: drivers/media/i2c/imx477.c
+SONY IMX500 SENSOR DRIVER
+M: Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
+L: linux-media@vger.kernel.org
+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 <info@arducam.com>
L: linux-media@vger.kernel.org