dt-bindings: media: Add bindings for bcm2835-unicam

Introduce the dt-bindings documentation for bcm2835 CCP2/CSI2 Unicam
camera interface.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
Co-developed-by: Naushir Patuck <naush@raspberrypi.com>
Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Co-developed-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
This commit is contained in:
Dave Stevenson 2024-04-24 18:35:39 +03:00 committed by Hans Verkuil
parent adb1d4655e
commit 05a9eadb95
2 changed files with 133 additions and 0 deletions

View file

@ -0,0 +1,127 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/brcm,bcm2835-unicam.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Broadcom BCM283x Camera Interface (Unicam)
maintainers:
- Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
description: |-
The Unicam block on BCM283x SoCs is the receiver for either
CSI-2 or CCP2 data from image sensors or similar devices.
The main platform using this SoC is the Raspberry Pi family of boards. On
the Pi the VideoCore firmware can also control this hardware block, and
driving it from two different processors will cause issues. To avoid this,
the firmware checks the device tree configuration during boot. If it finds
device tree nodes whose name starts with 'csi' then it will stop the firmware
accessing the block, and it can then safely be used via the device tree
binding.
properties:
compatible:
const: brcm,bcm2835-unicam
reg:
items:
- description: Unicam block.
- description: Clock Manager Image (CMI) block.
reg-names:
items:
- const: unicam
- const: cmi
interrupts:
maxItems: 1
clocks:
items:
- description: Clock to drive the LP state machine of Unicam.
- description: Clock for the VPU (core clock).
clock-names:
items:
- const: lp
- const: vpu
power-domains:
items:
- description: Unicam power domain
brcm,num-data-lanes:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [ 2, 4 ]
description: |
Number of CSI-2 data lanes supported by this Unicam instance. The number
of data lanes actively used is specified with the data-lanes endpoint
property.
port:
$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
additionalProperties: false
properties:
bus-type:
enum: [ 3, 4 ]
clock-noncontinuous: true
data-lanes: true
remote-endpoint: true
required:
- bus-type
- data-lanes
- remote-endpoint
required:
- endpoint
required:
- compatible
- reg
- reg-names
- interrupts
- clocks
- clock-names
- power-domains
- brcm,num-data-lanes
- port
additionalProperties: False
examples:
- |
#include <dt-bindings/clock/bcm2835.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/media/video-interfaces.h>
#include <dt-bindings/power/raspberrypi-power.h>
csi1: csi@7e801000 {
compatible = "brcm,bcm2835-unicam";
reg = <0x7e801000 0x800>,
<0x7e802004 0x4>;
reg-names = "unicam", "cmi";
interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clocks BCM2835_CLOCK_CAM1>,
<&firmware_clocks 4>;
clock-names = "lp", "vpu";
power-domains = <&power RPI_POWER_DOMAIN_UNICAM1>;
brcm,num-data-lanes = <2>;
port {
csi1_ep: endpoint {
remote-endpoint = <&imx219_0>;
bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
data-lanes = <1 2>;
};
};
};
...

View file

@ -4034,6 +4034,12 @@ N: bcm113*
N: bcm216*
N: kona
BROADCOM BCM2835 CAMERA DRIVERS
M: Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
L: linux-media@vger.kernel.org
S: Maintained
F: Documentation/devicetree/bindings/media/brcm,bcm2835-unicam.yaml
BROADCOM BCM47XX MIPS ARCHITECTURE
M: Hauke Mehrtens <hauke@hauke-m.de>
M: Rafał Miłecki <zajec5@gmail.com>