Based on kernel version 6.10
. Page generated on 2024-07-16 09:00 EST
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 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>; }; }; }; ... |