forked from mirrors/linux
		
	net: dsa: Add Vitesse VSC73xx DSA router driver
This adds a DSA driver for: Vitesse VSC7385 SparX-G5 5-port Integrated Gigabit Ethernet Switch Vitesse VSC7388 SparX-G8 8-port Integrated Gigabit Ethernet Switch Vitesse VSC7395 SparX-G5e 5+1-port Integrated Gigabit Ethernet Switch Vitesse VSC7398 SparX-G8e 8-port Integrated Gigabit Ethernet Switch These switches have a built-in 8051 CPU and can download and execute firmware in this CPU. They can also be configured to use an external CPU handling the switch in a memory-mapped manner by connecting to that external CPU's memory bus. This driver (currently) only takes control of the switch chip over SPI and configures it to route packages around when connected to a CPU port. The chip has embedded PHYs and VLAN support so we model it using DSA as a best fit so we can easily add VLAN support and maybe later also exploit the internal frame header to get more direct control over the switch. The four built-in GPIO lines are exposed using a standard GPIO chip. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									975ae7c69d
								
							
						
					
					
						commit
						05bd97fc55
					
				
					 3 changed files with 1376 additions and 0 deletions
				
			
		|  | @ -76,4 +76,15 @@ config NET_DSA_SMSC_LAN9303_MDIO | |||
| 	  Enable access functions if the SMSC/Microchip LAN9303 is configured | ||||
| 	  for MDIO managed mode. | ||||
| 
 | ||||
| config NET_DSA_VITESSE_VSC73XX | ||||
| 	tristate "Vitesse VSC7385/7388/7395/7398 support" | ||||
| 	depends on OF && SPI | ||||
| 	depends on NET_DSA | ||||
| 	select FIXED_PHY | ||||
| 	select VITESSE_PHY | ||||
| 	select GPIOLIB | ||||
| 	---help--- | ||||
| 	  This enables support for the Vitesse VSC7385, VSC7388, | ||||
| 	  VSC7395 and VSC7398 SparX integrated ethernet switches. | ||||
| 
 | ||||
| endmenu | ||||
|  |  | |||
|  | @ -11,6 +11,7 @@ obj-$(CONFIG_NET_DSA_QCA8K)	+= qca8k.o | |||
| obj-$(CONFIG_NET_DSA_SMSC_LAN9303) += lan9303-core.o | ||||
| obj-$(CONFIG_NET_DSA_SMSC_LAN9303_I2C) += lan9303_i2c.o | ||||
| obj-$(CONFIG_NET_DSA_SMSC_LAN9303_MDIO) += lan9303_mdio.o | ||||
| obj-$(CONFIG_NET_DSA_VITESSE_VSC73XX) += vitesse-vsc73xx.o | ||||
| obj-y				+= b53/ | ||||
| obj-y				+= microchip/ | ||||
| obj-y				+= mv88e6xxx/ | ||||
|  |  | |||
							
								
								
									
										1364
									
								
								drivers/net/dsa/vitesse-vsc73xx.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1364
									
								
								drivers/net/dsa/vitesse-vsc73xx.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
		Loading…
	
		Reference in a new issue
	
	 Linus Walleij
						Linus Walleij