mbox series

[v4,0/5] rcar-vin: Add support for R-Car V4M

Message ID 20240624144108.1771189-1-niklas.soderlund+renesas@ragnatech.se
Headers show
Series rcar-vin: Add support for R-Car V4M | expand

Message

Niklas Söderlund June 24, 2024, 2:41 p.m. UTC
Hello,

This series adds bindings and support to rcar-vin for R-Car V4M by the 
means of adding a Gen4 family fallback compatible.

Previous versions of this series added V4M support like done for VIN 
since the first Gen3 device, by the use of only a single SoC specific 
compatible value. This was done as in Gen3 almost every new device 
differed from the others and a family fallback was not very useful.

For the two Gen4 devices with a video capture pipeline currently 
documented the VIN instances are very similar and a family fallback can 
be used. This however requires updating existing DTS files for V4H to 
add this new family fallback. This is done in a backward compatible way 
and the driver retains the compatible value for V4H.

See individual patches for changes since previous version.

Niklas Söderlund (5):
  dt-bindings: media: renesas,vin: Add Gen4 family fallback
  arm64: dts: renesas: r8a779g0: Add family fallback for VIN IP
  media: rcar-vin: Add family compatible for R-Car Gen4 family
  dt-bindings: media: renesas,vin: Add binding for V4M
  arm64: dts: renesas: r8a779h0: Add family fallback for VIN IP

 .../bindings/media/renesas,vin.yaml           |  4 ++
 arch/arm64/boot/dts/renesas/r8a779g0.dtsi     | 48 ++++++++++++-------
 arch/arm64/boot/dts/renesas/r8a779h0.dtsi     | 48 ++++++++++++-------
 .../platform/renesas/rcar-vin/rcar-core.c     | 23 +++++----
 4 files changed, 79 insertions(+), 44 deletions(-)

Comments

Conor Dooley June 26, 2024, 11:44 a.m. UTC | #1
On Mon, Jun 24, 2024 at 04:41:04PM +0200, Niklas Söderlund wrote:
> The two Gen4 SoCs released (V4H and V4M) that have a video capture
> pipeline the VIN IP are very similar.
> 
> The datasheet for the two SoCs have small nuances around the Pre-Clip
> registers ELPrC and EPPrC in three use-cases, interlaced images,
> embedded data and RAW8 input. On V4H the values written to the registers
> are based on odd numbers while on V4M they are even numbers, values are
> based on the input image size. No board that uses these SoCs which also
> have the external peripherals to test these nuances exists. Most likely
> this is an issue in the datasheet.
> 
> Before adding bindings for V4M add a family compatible fallback for
> Gen4. That way the driver only needs to be updated once for Gen4, and we
> still have the option to fix any problems in the driver if any testable
> differences between the two SoCs is found.
> 
> There are already DTS files using the renesas,vin-r8a779g0 compatible
> which needs to be updated to not produce a warning for DTS checks. And
> the driver will need to kept compatible with renesas,vin-r8a779g0, but
> for new Gen4 SoCs such as V4M we can avoid this.
> 
> Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>

Same caveat here. Using the g model as a fallback is, as we already
discussed, an option too and would be less disruptive.
Acked-by: Conor Dooley <conor.dooley@microchip.com>

> ---
> * Changes since v3
> - New in v4.
> ---
>  Documentation/devicetree/bindings/media/renesas,vin.yaml | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/media/renesas,vin.yaml b/Documentation/devicetree/bindings/media/renesas,vin.yaml
> index 5539d0f8e74d..c3ef4fde7baf 100644
> --- a/Documentation/devicetree/bindings/media/renesas,vin.yaml
> +++ b/Documentation/devicetree/bindings/media/renesas,vin.yaml
> @@ -53,7 +53,10 @@ properties:
>                - renesas,vin-r8a77990 # R-Car E3
>                - renesas,vin-r8a77995 # R-Car D3
>                - renesas,vin-r8a779a0 # R-Car V3U
> +      - items:
> +          - enum:
>                - renesas,vin-r8a779g0 # R-Car V4H
> +          - const: renesas,rcar-gen4-vin # Generic R-Car Gen4
>  
>    reg:
>      maxItems: 1
> -- 
> 2.45.2
>