mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	spi: sh-msiof: Add R-Car Gen 2 and 3 fallback bindings
In the case of Renesas R-Car hardware we know that there are generations of SoCs, e.g. Gen 2 and Gen 3. But beyond that it's not clear 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 is being adopted for drivers for Renesas SoCs. Also: * Deprecate renesas,sh-msiof. It seems poorly named as it is only compatible with SH-Mobile. It also appears unused in mainline. Signed-off-by: Simon Horman <horms+renesas@verge.net.au> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
		
							parent
							
								
									fafd679407
								
							
						
					
					
						commit
						4286db8456
					
				
					 2 changed files with 16 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -1,17 +1,23 @@
 | 
			
		|||
Renesas MSIOF spi controller
 | 
			
		||||
 | 
			
		||||
Required properties:
 | 
			
		||||
- compatible           : "renesas,msiof-<soctype>" for SoCs,
 | 
			
		||||
			 "renesas,sh-msiof" for SuperH, or
 | 
			
		||||
			 "renesas,sh-mobile-msiof" for SH Mobile series.
 | 
			
		||||
			 Examples with soctypes are:
 | 
			
		||||
			 "renesas,msiof-r8a7790" (R-Car H2)
 | 
			
		||||
- compatible           : "renesas,msiof-r8a7790" (R-Car H2)
 | 
			
		||||
			 "renesas,msiof-r8a7791" (R-Car M2-W)
 | 
			
		||||
			 "renesas,msiof-r8a7792" (R-Car V2H)
 | 
			
		||||
			 "renesas,msiof-r8a7793" (R-Car M2-N)
 | 
			
		||||
			 "renesas,msiof-r8a7794" (R-Car E2)
 | 
			
		||||
			 "renesas,msiof-r8a7796" (R-Car M3-W)
 | 
			
		||||
			 "renesas,msiof-sh73a0" (SH-Mobile AG5)
 | 
			
		||||
			 "renesas,sh-mobile-msiof" (generic SH-Mobile compatibile device)
 | 
			
		||||
			 "renesas,rcar-gen2-msiof" (generic R-Car Gen2 compatible device)
 | 
			
		||||
			 "renesas,rcar-gen3-msiof" (generic R-Car Gen3 compatible device)
 | 
			
		||||
			 "renesas,sh-msiof"      (deprecated)
 | 
			
		||||
 | 
			
		||||
			 When compatible with the generic version, nodes
 | 
			
		||||
			 must list the SoC-specific version corresponding
 | 
			
		||||
			 to the platform first followed by the generic
 | 
			
		||||
			 version.
 | 
			
		||||
 | 
			
		||||
- reg                  : A list of offsets and lengths of the register sets for
 | 
			
		||||
			 the device.
 | 
			
		||||
			 If only one register set is present, it is to be used
 | 
			
		||||
| 
						 | 
				
			
			@ -61,7 +67,8 @@ Documentation/devicetree/bindings/pinctrl/renesas,*.
 | 
			
		|||
Example:
 | 
			
		||||
 | 
			
		||||
	msiof0: spi@e6e20000 {
 | 
			
		||||
		compatible = "renesas,msiof-r8a7791";
 | 
			
		||||
		compatible = "renesas,msiof-r8a7791",
 | 
			
		||||
			     "renesas,rcar-gen2-msiof";
 | 
			
		||||
		reg = <0 0xe6e20000 0 0x0064>;
 | 
			
		||||
		interrupts = <0 156 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
		clocks = <&mstp0_clks R8A7791_CLK_MSIOF0>;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -973,14 +973,16 @@ static const struct sh_msiof_chipdata r8a779x_data = {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
static const struct of_device_id sh_msiof_match[] = {
 | 
			
		||||
	{ .compatible = "renesas,sh-msiof",        .data = &sh_data },
 | 
			
		||||
	{ .compatible = "renesas,sh-mobile-msiof", .data = &sh_data },
 | 
			
		||||
	{ .compatible = "renesas,msiof-r8a7790",   .data = &r8a779x_data },
 | 
			
		||||
	{ .compatible = "renesas,msiof-r8a7791",   .data = &r8a779x_data },
 | 
			
		||||
	{ .compatible = "renesas,msiof-r8a7792",   .data = &r8a779x_data },
 | 
			
		||||
	{ .compatible = "renesas,msiof-r8a7793",   .data = &r8a779x_data },
 | 
			
		||||
	{ .compatible = "renesas,msiof-r8a7794",   .data = &r8a779x_data },
 | 
			
		||||
	{ .compatible = "renesas,rcar-gen2-msiof", .data = &r8a779x_data },
 | 
			
		||||
	{ .compatible = "renesas,msiof-r8a7796",   .data = &r8a779x_data },
 | 
			
		||||
	{ .compatible = "renesas,rcar-gen3-msiof", .data = &r8a779x_data },
 | 
			
		||||
	{ .compatible = "renesas,sh-msiof",        .data = &sh_data }, // Deprecated
 | 
			
		||||
	{},
 | 
			
		||||
};
 | 
			
		||||
MODULE_DEVICE_TABLE(of, sh_msiof_match);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue