forked from mirrors/linux
		
	Instead of having net/dsa.h contain both the internal switch tree/driver structures, split the relevant platform_data parts into include/linux/platform_data/dsa.h and make that header be included by net/dsa.h in order not to break any setup. A subsequent set of patches will update code including net/dsa.h to include only the platform_data header. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
		
			
				
	
	
		
			68 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0 */
 | 
						|
#ifndef __DSA_PDATA_H
 | 
						|
#define __DSA_PDATA_H
 | 
						|
 | 
						|
struct device;
 | 
						|
struct net_device;
 | 
						|
 | 
						|
#define DSA_MAX_SWITCHES	4
 | 
						|
#define DSA_MAX_PORTS		12
 | 
						|
#define DSA_RTABLE_NONE		-1
 | 
						|
 | 
						|
struct dsa_chip_data {
 | 
						|
	/*
 | 
						|
	 * How to access the switch configuration registers.
 | 
						|
	 */
 | 
						|
	struct device	*host_dev;
 | 
						|
	int		sw_addr;
 | 
						|
 | 
						|
	/*
 | 
						|
	 * Reference to network devices
 | 
						|
	 */
 | 
						|
	struct device	*netdev[DSA_MAX_PORTS];
 | 
						|
 | 
						|
	/* set to size of eeprom if supported by the switch */
 | 
						|
	int		eeprom_len;
 | 
						|
 | 
						|
	/* Device tree node pointer for this specific switch chip
 | 
						|
	 * used during switch setup in case additional properties
 | 
						|
	 * and resources needs to be used
 | 
						|
	 */
 | 
						|
	struct device_node *of_node;
 | 
						|
 | 
						|
	/*
 | 
						|
	 * The names of the switch's ports.  Use "cpu" to
 | 
						|
	 * designate the switch port that the cpu is connected to,
 | 
						|
	 * "dsa" to indicate that this port is a DSA link to
 | 
						|
	 * another switch, NULL to indicate the port is unused,
 | 
						|
	 * or any other string to indicate this is a physical port.
 | 
						|
	 */
 | 
						|
	char		*port_names[DSA_MAX_PORTS];
 | 
						|
	struct device_node *port_dn[DSA_MAX_PORTS];
 | 
						|
 | 
						|
	/*
 | 
						|
	 * An array of which element [a] indicates which port on this
 | 
						|
	 * switch should be used to send packets to that are destined
 | 
						|
	 * for switch a. Can be NULL if there is only one switch chip.
 | 
						|
	 */
 | 
						|
	s8		rtable[DSA_MAX_SWITCHES];
 | 
						|
};
 | 
						|
 | 
						|
struct dsa_platform_data {
 | 
						|
	/*
 | 
						|
	 * Reference to a Linux network interface that connects
 | 
						|
	 * to the root switch chip of the tree.
 | 
						|
	 */
 | 
						|
	struct device	*netdev;
 | 
						|
	struct net_device *of_netdev;
 | 
						|
 | 
						|
	/*
 | 
						|
	 * Info structs describing each of the switch chips
 | 
						|
	 * connected via this network interface.
 | 
						|
	 */
 | 
						|
	int		nr_chips;
 | 
						|
	struct dsa_chip_data	*chip;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
#endif /* __DSA_PDATA_H */
 |