Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Dave Stevenson and committed by
Hans Verkuil
05a9eadb adb1d465

+133
+127
Documentation/devicetree/bindings/media/brcm,bcm2835-unicam.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 + 7 + title: Broadcom BCM283x Camera Interface (Unicam) 8 + 9 + maintainers: 10 + - Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com> 11 + 12 + description: |- 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 + 24 + properties: 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 + 88 + required: 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 + 99 + additionalProperties: False 100 + 101 + examples: 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 + ...
+6
MAINTAINERS
··· 4034 4034 N: bcm216* 4035 4035 N: kona 4036 4036 4037 + BROADCOM BCM2835 CAMERA DRIVERS 4038 + M: Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com> 4039 + L: linux-media@vger.kernel.org 4040 + S: Maintained 4041 + F: Documentation/devicetree/bindings/media/brcm,bcm2835-unicam.yaml 4042 + 4037 4043 BROADCOM BCM47XX MIPS ARCHITECTURE 4038 4044 M: Hauke Mehrtens <hauke@hauke-m.de> 4039 4045 M: Rafał Miłecki <zajec5@gmail.com>