[RFC PATCH v3 03/11] media: dt-bindings: media: Add bindings for bcm2835-unicam

Jean-Michel Hautbois jeanmichel.hautbois at ideasonboard.com
Wed Feb 2 14:09:20 PST 2022


Hi Stefan,

On 02/02/2022 19:33, Stefan Wahren wrote:
> Hi Jean-Michel,
> 
> please drop the first "media:" before dt-bindings.
> 
> Am 02.02.22 um 18:56 schrieb Jean-Michel Hautbois:
>> Introduce the dt-bindings documentation for bcm2835 CCP2/CSI2 Unicam
>> camera interface. Also add a MAINTAINERS entry for it.
>>
>> Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
>> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
>> Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois at ideasonboard.com>
>> ---
>> Dave: I assumed you were the maintainer for this file, as I based it on the
>> bcm2835-unicam.txt file. Are  you happy to be added directly as the
>> maintainer, or should this be specified as "Raspberry Pi Kernel
>> Maintenance <kernel-list at raspberrypi.com>"
>> ---
>>   .../bindings/media/brcm,bcm2835-unicam.yaml   | 107 ++++++++++++++++++
>>   MAINTAINERS                                   |   7 ++
>>   2 files changed, 114 insertions(+)
>>   create mode 100644 Documentation/devicetree/bindings/media/brcm,bcm2835-unicam.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/media/brcm,bcm2835-unicam.yaml b/Documentation/devicetree/bindings/media/brcm,bcm2835-unicam.yaml
>> new file mode 100644
>> index 000000000000..5bf41a8834fa
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/media/brcm,bcm2835-unicam.yaml
>> @@ -0,0 +1,107 @@
>> +# 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:
>> +  - Dave Stevenson <dave.stevenson at 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 starting by 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:
>> +    maxItems: 2
> I would be nice to have reg-names here similar to the clocks.

Sure, I just don't know what the names are ;-).

>> +
>> +  interrupts:
>> +    maxItems: 1
>> +
>> +  clocks:
>> +    items:
>> +      - description: Clock for the camera.
>> +      - description: Clock for the vpu.
>> +
>> +  clock-names:
>> +    items:
>> +      - const: lp
>> +      - const: vpu
>> +
>> +  power-domains:
>> +    items:
>> +      - description: Unicam power domain
>> +
>> +  num-data-lanes:
>> +    items:
>> +      - enum: [ 2, 4 ]
>> +
>> +  port:
>> +    additionalProperties: false
>> +    $ref: /schemas/graph.yaml#/$defs/port-base
>> +
>> +    properties:
>> +      endpoint:
>> +        $ref: /schemas/media/video-interfaces.yaml#
>> +        unevaluatedProperties: false
>> +
>> +        properties:
>> +          data-lanes: true
>> +          link-frequencies: true
>> +
>> +        required:
>> +          - data-lanes
>> +          - link-frequencies
>> +
>> +    required:
>> +      - endpoint
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +  - interrupts
>> +  - clocks
>> +  - clock-names
>> +  - power-domains
>> +  - num-data-lanes
>> +  - port
>> +
>> +additionalProperties: False
>> +
>> +examples:
>> +  - |
>> +    #include <dt-bindings/clock/bcm2835.h>
>> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
>> +    #include <dt-bindings/power/raspberrypi-power.h>
>> +    csi1: csi at 7e801000 {
>> +        compatible = "brcm,bcm2835-unicam";
>> +        reg = <0x7e801000 0x800>,
>> +              <0x7e802004 0x4>;
>> +        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>;
>> +        num-data-lanes = <2>;
>> +        port {
>> +                csi1_ep: endpoint {
>> +                        remote-endpoint = <&imx219_0>;
>> +                        data-lanes = <1 2>;
>> +                        link-frequencies = /bits/ 64 <456000000>;
>> +                };
>> +        };
>> +    };
>> +...
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index a0770a861ca4..29344ea86847 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -3670,6 +3670,13 @@ N:	bcm113*
>>   N:	bcm216*
>>   N:	kona
>>   
>> +BROADCOM BCM2835 CAMERA DRIVER
>> +M:	Raspberry Pi Kernel Maintenance <kernel-list at raspberrypi.com>
>> +L:	linux-media at vger.kernel.org
>> +S:	Maintained
>> +F:	Documentation/devicetree/bindings/media/brcm,bcm2835-unicam.yaml
>> +F:	arch/arm/boot/dts/bcm283x*
>> +
> 
> I suggest to make the MAINTAINERS changes a single separate patch
> instead of small incremental changes.

I can make it a separate patch, indeed.

> 
> Best regards
> 
>>   BROADCOM BCM47XX MIPS ARCHITECTURE
>>   M:	Hauke Mehrtens <hauke at hauke-m.de>
>>   M:	Rafał Miłecki <zajec5 at gmail.com>
> 



More information about the linux-arm-kernel mailing list