Re: [PATCH 2/4] dt-bindings: media: Add bindings for raspberrypi,rp1-cfe

From: Tomi Valkeinen
Date: Tue Mar 19 2024 - 02:46:30 EST


On 19/03/2024 08:09, Krzysztof Kozlowski wrote:
On 18/03/2024 16:49, Tomi Valkeinen wrote:
Add DT bindings for raspberrypi,rp1-cfe.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxxxxxxxxxxxx>
---
.../bindings/media/raspberrypi,rp1-cfe.yaml | 103 +++++++++++++++++++++
1 file changed, 103 insertions(+)

diff --git a/Documentation/devicetree/bindings/media/raspberrypi,rp1-cfe.yaml b/Documentation/devicetree/bindings/media/raspberrypi,rp1-cfe.yaml
new file mode 100644
index 000000000000..7b2beeaaab0e
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/raspberrypi,rp1-cfe.yaml
@@ -0,0 +1,103 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/raspberrypi,rp1-cfe.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Raspberry Pi PiSP Camera Front End
+
+maintainers:
+ - Tomi Valkeinen <tomi.valkeinen@xxxxxxxxxxxxxxxx>
+ - Raspberry Pi Kernel Maintenance <kernel-list@xxxxxxxxxxxxxxx>
+
+description: |
+ The Raspberry Pi PiSP Camera Front End is a module in Raspberrypi 5's RP1 I/O
+ controller, that contains:
+ - MIPI D-PHY
+ - MIPI CSI-2 receiver
+ - Simple image processor (called PiSP Front End, or FE)
+
+ The FE documentation is available at:
+ https://datasheets.raspberrypi.com/camera/raspberry-pi-image-signal-processor-specification.pdf
+
+ The PHY and CSI-2 receiver part have no public documentation.
+
+properties:
+ compatible:
+ const: raspberrypi,rpi5-rp1-cfe
+
+ reg:
+ items:
+ - description: CSI-2 registers
+ - description: D-PHY registers
+ - description: MIPI CFG (a simple top-level mux) registers
+ - description: FE registers
+
+ interrupts:
+ maxItems: 1
+
+ clocks:
+ maxItems: 1
+
+ port:
+ $ref: /schemas/graph.yaml#/$defs/port-base
+ additionalProperties: false
+ description: CSI-2 RX Port

Only one port, so there is nothing to output to?

The CFE has DMA, so it writes to memory. But no other outputs.

+
+ properties:
+ endpoint:
+ $ref: video-interfaces.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ data-lanes:
+ minItems: 1
+ maxItems: 4
+
+ clock-lanes:
+ maxItems: 1
+
+ clock-noncontinuous: true

Drop

Hmm, I saw this used in multiple other bindings, and thought it means the property is allowed and copied it here.

If that's not the case, does this mean all the properties from video-interfaces.yaml are allowed (even invalid ones, like pclk-sample)?

+
+ required:
+ - clock-lanes
+ - data-lanes
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - clocks
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/rp1.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+ #include <dt-bindings/mfd/rp1.h>
+
+ rpi1 {

soc

That should actually be "rp1", not "rpi1". rp1 is the co-processor on which the cfe is located, so it doesn't reside in the soc itself. But perhaps that's not relevant, and "soc" is just a generic container that should always be used?

+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ csi@110000 {

Fix the indentation. You switched back to 2 spaces here...

Oops.

+ compatible = "raspberrypi,rp1-cfe";
+ reg = <0xc0 0x40110000 0x0 0x100>,
+ <0xc0 0x40114000 0x0 0x100>,

Just one space before 0x0

Ok.

Tomi