mirror of
https://github.com/torvalds/linux.git
synced 2024-12-02 09:01:34 +00:00
can: rcar: add gen[12] fallback compatibility strings
Add fallback compatibility string for R-Car Gen 1 and Gen2. In the case of Renesas R-Car hardware we know that there are generations of SoCs, e.g. Gen 1 and Gen 2. But beyond that its not clear what the relationship between IP blocks might be. For example, I believe that r8a7779 is older than r8a7778 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: Simon Horman <horms+renesas@verge.net.au> Acked-by: Rob Herring <robh@kernel.org> Acked-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
This commit is contained in:
parent
59097ac9b2
commit
0dfa61bba3
@ -6,6 +6,12 @@ Required properties:
|
|||||||
"renesas,can-r8a7779" if CAN controller is a part of R8A7779 SoC.
|
"renesas,can-r8a7779" if CAN controller is a part of R8A7779 SoC.
|
||||||
"renesas,can-r8a7790" if CAN controller is a part of R8A7790 SoC.
|
"renesas,can-r8a7790" if CAN controller is a part of R8A7790 SoC.
|
||||||
"renesas,can-r8a7791" if CAN controller is a part of R8A7791 SoC.
|
"renesas,can-r8a7791" if CAN controller is a part of R8A7791 SoC.
|
||||||
|
"renesas,rcar-gen1-can" for a generic R-Car Gen1 compatible device.
|
||||||
|
"renesas,rcar-gen2-can" for a generic R-Car Gen2 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: physical base address and size of the R-Car CAN register map.
|
- reg: physical base address and size of the R-Car CAN register map.
|
||||||
- interrupts: interrupt specifier for the sole interrupt.
|
- interrupts: interrupt specifier for the sole interrupt.
|
||||||
- clocks: phandles and clock specifiers for 3 CAN clock inputs.
|
- clocks: phandles and clock specifiers for 3 CAN clock inputs.
|
||||||
@ -25,7 +31,7 @@ Example
|
|||||||
SoC common .dtsi file:
|
SoC common .dtsi file:
|
||||||
|
|
||||||
can0: can@e6e80000 {
|
can0: can@e6e80000 {
|
||||||
compatible = "renesas,can-r8a7791";
|
compatible = "renesas,can-r8a7791", "renesas,rcar-gen2-can";
|
||||||
reg = <0 0xe6e80000 0 0x1000>;
|
reg = <0 0xe6e80000 0 0x1000>;
|
||||||
interrupts = <0 186 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <0 186 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
clocks = <&mstp9_clks R8A7791_CLK_RCAN0>,
|
clocks = <&mstp9_clks R8A7791_CLK_RCAN0>,
|
||||||
|
@ -904,6 +904,8 @@ static const struct of_device_id rcar_can_of_table[] __maybe_unused = {
|
|||||||
{ .compatible = "renesas,can-r8a7779" },
|
{ .compatible = "renesas,can-r8a7779" },
|
||||||
{ .compatible = "renesas,can-r8a7790" },
|
{ .compatible = "renesas,can-r8a7790" },
|
||||||
{ .compatible = "renesas,can-r8a7791" },
|
{ .compatible = "renesas,can-r8a7791" },
|
||||||
|
{ .compatible = "renesas,rcar-gen1-can" },
|
||||||
|
{ .compatible = "renesas,rcar-gen2-can" },
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(of, rcar_can_of_table);
|
MODULE_DEVICE_TABLE(of, rcar_can_of_table);
|
||||||
|
Loading…
Reference in New Issue
Block a user