File Index
Files and directories
Sign in
FILE

brcm,bcm2835-unicam.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/media/brcm,bcm2835-unicam.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/media/brcm,bcm2835-unicam.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Broadcom BCM283x Camera Interface (Unicam)
  8
  9maintainers:
 10  - Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
 11
 12description: |-
 13  The Unicam block on BCM283x SoCs is the receiver for either
 14  CSI-2 or CCP2 data from image sensors or similar devices.
 15
 16  The main platform using this SoC is the Raspberry Pi family of boards.  On
 17  the Pi the VideoCore firmware can also control this hardware block, and
 18  driving it from two different processors will cause issues.  To avoid this,
 19  the firmware checks the device tree configuration during boot. If it finds
 20  device tree nodes whose name starts with 'csi' then it will stop the firmware
 21  accessing the block, and it can then safely be used via the device tree
 22  binding.
 23
 24properties:
 25  compatible:
 26    const: brcm,bcm2835-unicam
 27
 28  reg:
 29    items:
 30      - description: Unicam block.
 31      - description: Clock Manager Image (CMI) block.
 32
 33  reg-names:
 34    items:
 35      - const: unicam
 36      - const: cmi
 37
 38  interrupts:
 39    maxItems: 1
 40
 41  clocks:
 42    items:
 43      - description: Clock to drive the LP state machine of Unicam.
 44      - description: Clock for the VPU (core clock).
 45
 46  clock-names:
 47    items:
 48      - const: lp
 49      - const: vpu
 50
 51  power-domains:
 52    items:
 53      - description: Unicam power domain
 54
 55  brcm,num-data-lanes:
 56    $ref: /schemas/types.yaml#/definitions/uint32
 57    enum: [ 2, 4 ]
 58    description: |
 59      Number of CSI-2 data lanes supported by this Unicam instance. The number
 60      of data lanes actively used is specified with the data-lanes endpoint
 61      property.
 62
 63  port:
 64    $ref: /schemas/graph.yaml#/$defs/port-base
 65    unevaluatedProperties: false
 66
 67    properties:
 68      endpoint:
 69        $ref: /schemas/media/video-interfaces.yaml#
 70        additionalProperties: false
 71
 72        properties:
 73          bus-type:
 74            enum: [ 3, 4 ]
 75
 76          clock-noncontinuous: true
 77          data-lanes: true
 78          remote-endpoint: true
 79
 80        required:
 81          - bus-type
 82          - data-lanes
 83          - remote-endpoint
 84
 85    required:
 86      - endpoint
 87
 88required:
 89  - compatible
 90  - reg
 91  - reg-names
 92  - interrupts
 93  - clocks
 94  - clock-names
 95  - power-domains
 96  - brcm,num-data-lanes
 97  - port
 98
 99additionalProperties: False
100
101examples:
102  - |
103    #include <dt-bindings/clock/bcm2835.h>
104    #include <dt-bindings/interrupt-controller/arm-gic.h>
105    #include <dt-bindings/media/video-interfaces.h>
106    #include <dt-bindings/power/raspberrypi-power.h>
107
108    csi1: csi@7e801000 {
109        compatible = "brcm,bcm2835-unicam";
110        reg = <0x7e801000 0x800>,
111              <0x7e802004 0x4>;
112        reg-names = "unicam", "cmi";
113        interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
114        clocks = <&clocks BCM2835_CLOCK_CAM1>,
115                 <&firmware_clocks 4>;
116        clock-names = "lp", "vpu";
117        power-domains = <&power RPI_POWER_DOMAIN_UNICAM1>;
118        brcm,num-data-lanes = <2>;
119        port {
120                csi1_ep: endpoint {
121                        remote-endpoint = <&imx219_0>;
122                        bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
123                        data-lanes = <1 2>;
124                };
125        };
126    };
127...
~/ Read-only file preview.