Commit bd546882 authored by Yoshihiro Kaneko's avatar Yoshihiro Kaneko Committed by Mauro Carvalho Chehab

[media] soc_camera: rcar_vin: add R-Car Gen 2 and 3 fallback compatibility strings

Add fallback compatibility string for R-Car Gen 1 and 2.

In the case of Renesas R-Car hardware we know that there are generations of
SoCs, e.g. Gen 2 and 3. But beyond that it's unclear what the relationship
between IP blocks might be. For example, I believe that r8a7790 is older
than r8a7791 but that doesn't imply that the latter is a descendant of the
former or vice versa.

We can, however, by examining the documentation and behaviour of the
hardware at run-time observe that the current driver implementation appears
to be compatible with the IP blocks on SoCs within a given generation.

For the above reasons and convenience when enabling new SoCs a
per-generation fallback compatibility string scheme being adopted for
drivers for Renesas SoCs.
Signed-off-by: default avatarYoshihiro Kaneko <ykaneko0929@gmail.com>
Signed-off-by: default avatarSimon Horman <horms+renesas@verge.net.au>
Acked-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: default avatarGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 345900be
...@@ -5,7 +5,7 @@ The rcar_vin device provides video input capabilities for the Renesas R-Car ...@@ -5,7 +5,7 @@ The rcar_vin device provides video input capabilities for the Renesas R-Car
family of devices. The current blocks are always slaves and suppot one input family of devices. The current blocks are always slaves and suppot one input
channel which can be either RGB, YUYV or BT656. channel which can be either RGB, YUYV or BT656.
- compatible: Must be one of the following - compatible: Must be one or more of the following
- "renesas,vin-r8a7795" for the R8A7795 device - "renesas,vin-r8a7795" for the R8A7795 device
- "renesas,vin-r8a7794" for the R8A7794 device - "renesas,vin-r8a7794" for the R8A7794 device
- "renesas,vin-r8a7793" for the R8A7793 device - "renesas,vin-r8a7793" for the R8A7793 device
...@@ -13,6 +13,13 @@ channel which can be either RGB, YUYV or BT656. ...@@ -13,6 +13,13 @@ channel which can be either RGB, YUYV or BT656.
- "renesas,vin-r8a7790" for the R8A7790 device - "renesas,vin-r8a7790" for the R8A7790 device
- "renesas,vin-r8a7779" for the R8A7779 device - "renesas,vin-r8a7779" for the R8A7779 device
- "renesas,vin-r8a7778" for the R8A7778 device - "renesas,vin-r8a7778" for the R8A7778 device
- "renesas,rcar-gen2-vin" for a generic R-Car Gen2 compatible device.
- "renesas,rcar-gen3-vin" for a generic R-Car Gen3 compatible device.
When compatible with the generic version nodes must list the
SoC-specific version corresponding to the platform first
followed by the generic version.
- reg: the register base and size for the device registers - reg: the register base and size for the device registers
- interrupts: the interrupt for the device - interrupts: the interrupt for the device
- clocks: Reference to the parent clock - clocks: Reference to the parent clock
...@@ -37,7 +44,7 @@ Device node example ...@@ -37,7 +44,7 @@ Device node example
}; };
vin0: vin@0xe6ef0000 { vin0: vin@0xe6ef0000 {
compatible = "renesas,vin-r8a7790"; compatible = "renesas,vin-r8a7790", "renesas,rcar-gen2-vin";
clocks = <&mstp8_clks R8A7790_CLK_VIN0>; clocks = <&mstp8_clks R8A7790_CLK_VIN0>;
reg = <0 0xe6ef0000 0 0x1000>; reg = <0 0xe6ef0000 0 0x1000>;
interrupts = <0 188 IRQ_TYPE_LEVEL_HIGH>; interrupts = <0 188 IRQ_TYPE_LEVEL_HIGH>;
......
...@@ -1845,6 +1845,8 @@ static const struct of_device_id rcar_vin_of_table[] = { ...@@ -1845,6 +1845,8 @@ static const struct of_device_id rcar_vin_of_table[] = {
{ .compatible = "renesas,vin-r8a7790", .data = (void *)RCAR_GEN2 }, { .compatible = "renesas,vin-r8a7790", .data = (void *)RCAR_GEN2 },
{ .compatible = "renesas,vin-r8a7779", .data = (void *)RCAR_H1 }, { .compatible = "renesas,vin-r8a7779", .data = (void *)RCAR_H1 },
{ .compatible = "renesas,vin-r8a7778", .data = (void *)RCAR_M1 }, { .compatible = "renesas,vin-r8a7778", .data = (void *)RCAR_M1 },
{ .compatible = "renesas,rcar-gen3-vin", .data = (void *)RCAR_GEN3 },
{ .compatible = "renesas,rcar-gen2-vin", .data = (void *)RCAR_GEN2 },
{ }, { },
}; };
MODULE_DEVICE_TABLE(of, rcar_vin_of_table); MODULE_DEVICE_TABLE(of, rcar_vin_of_table);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment