mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	i2c: Drop I2C_CLIENT_INSMOD_2 to 8
These macros simply declare an enum, so drivers might as well declare it themselves. This puts an end to the arbitrary limit of 8 chip types per i2c driver. Signed-off-by: Jean Delvare <khali@linux-fr.org> Tested-by: Wolfram Sang <w.sang@pengutronix.de>
This commit is contained in:
		
							parent
							
								
									1f86df49dd
								
							
						
					
					
						commit
						e5e9f44c24
					
				
					 19 changed files with 26 additions and 75 deletions
				
			
		| 
						 | 
					@ -34,9 +34,8 @@
 | 
				
			||||||
static const unsigned short normal_i2c[] = {
 | 
					static const unsigned short normal_i2c[] = {
 | 
				
			||||||
	0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, 0x4c, 0x4d, 0x4e, I2C_CLIENT_END };
 | 
						0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, 0x4c, 0x4d, 0x4e, I2C_CLIENT_END };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Insmod parameters */
 | 
					enum chips {
 | 
				
			||||||
I2C_CLIENT_INSMOD_8(adm1021, adm1023, max1617, max1617a, thmc10, lm84, gl523sm,
 | 
						adm1021, adm1023, max1617, max1617a, thmc10, lm84, gl523sm, mc1066 };
 | 
				
			||||||
			mc1066);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* adm1021 constants specified below */
 | 
					/* adm1021 constants specified below */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -64,11 +64,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
 | 
					static const unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					enum chips { adm1025, ne1619 };
 | 
				
			||||||
 * Insmod parameters
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
I2C_CLIENT_INSMOD_2(adm1025, ne1619);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * The ADM1025 registers
 | 
					 * The ADM1025 registers
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -64,8 +64,7 @@
 | 
				
			||||||
/* Addresses to scan */
 | 
					/* Addresses to scan */
 | 
				
			||||||
static const unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
 | 
					static const unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Insmod parameters */
 | 
					enum chips { adm1030, adm1031 };
 | 
				
			||||||
I2C_CLIENT_INSMOD_2(adm1030, adm1031);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef u8 auto_chan_table_t[8][2];
 | 
					typedef u8 auto_chan_table_t[8][2];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -55,8 +55,7 @@
 | 
				
			||||||
static const unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, 0x2f,
 | 
					static const unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, 0x2f,
 | 
				
			||||||
					I2C_CLIENT_END };
 | 
										I2C_CLIENT_END };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Insmod parameters */
 | 
					enum chips { adm9240, ds1780, lm81 };
 | 
				
			||||||
I2C_CLIENT_INSMOD_3(adm9240, ds1780, lm81);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* ADM9240 registers */
 | 
					/* ADM9240 registers */
 | 
				
			||||||
#define ADM9240_REG_MAN_ID		0x3e
 | 
					#define ADM9240_REG_MAN_ID		0x3e
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -148,7 +148,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
 | 
					static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
I2C_CLIENT_INSMOD_4(adt7473, adt7475, adt7476, adt7490);
 | 
					enum chips { adt7473, adt7475, adt7476, adt7490 };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct i2c_device_id adt7475_id[] = {
 | 
					static const struct i2c_device_id adt7475_id[] = {
 | 
				
			||||||
	{ "adt7473", adt7473 },
 | 
						{ "adt7473", adt7473 },
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -57,11 +57,7 @@ MODULE_PARM_DESC(probe_all_addr, "Include probing of non-standard LPC "
 | 
				
			||||||
/* Addresses to scan */
 | 
					/* Addresses to scan */
 | 
				
			||||||
static const unsigned short normal_i2c[] = {0x2c, 0x2d, 0x2e, I2C_CLIENT_END};
 | 
					static const unsigned short normal_i2c[] = {0x2c, 0x2d, 0x2e, I2C_CLIENT_END};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Insmod parameters */
 | 
					enum chips { dme1737, sch5027, sch311x };
 | 
				
			||||||
I2C_CLIENT_INSMOD_2(dme1737, sch5027);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* ISA chip types */
 | 
					 | 
				
			||||||
enum isa_chips { sch311x = sch5027 + 1 };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* ---------------------------------------------------------------------
 | 
					/* ---------------------------------------------------------------------
 | 
				
			||||||
 * Registers
 | 
					 * Registers
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,8 +39,7 @@
 | 
				
			||||||
/* Addresses to scan */
 | 
					/* Addresses to scan */
 | 
				
			||||||
static const unsigned short normal_i2c[] = { 0x2d, 0x2e, I2C_CLIENT_END };
 | 
					static const unsigned short normal_i2c[] = { 0x2d, 0x2e, I2C_CLIENT_END };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Insmod parameters */
 | 
					enum chips { f75373, f75375 };
 | 
				
			||||||
I2C_CLIENT_INSMOD_2(f75373, f75375);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Fintek F75375 registers  */
 | 
					/* Fintek F75375 registers  */
 | 
				
			||||||
#define F75375_REG_CONFIG0		0x0
 | 
					#define F75375_REG_CONFIG0		0x0
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -56,7 +56,8 @@ static int nowayout = WATCHDOG_NOWAYOUT;
 | 
				
			||||||
module_param(nowayout, int, 0);
 | 
					module_param(nowayout, int, 0);
 | 
				
			||||||
MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default="
 | 
					MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default="
 | 
				
			||||||
	__MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
 | 
						__MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
 | 
				
			||||||
I2C_CLIENT_INSMOD_7(fscpos, fscher, fscscy, fschrc, fschmd, fschds, fscsyl);
 | 
					
 | 
				
			||||||
 | 
					enum chips { fscpos, fscher, fscscy, fschrc, fschmd, fschds, fscsyl };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * The FSCHMD registers and other defines
 | 
					 * The FSCHMD registers and other defines
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -46,8 +46,7 @@
 | 
				
			||||||
/* Addresses to scan */
 | 
					/* Addresses to scan */
 | 
				
			||||||
static const unsigned short normal_i2c[] = { 0x2c, 0x2d, I2C_CLIENT_END };
 | 
					static const unsigned short normal_i2c[] = { 0x2c, 0x2d, I2C_CLIENT_END };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Insmod parameters */
 | 
					enum chips { gl518sm_r00, gl518sm_r80 };
 | 
				
			||||||
I2C_CLIENT_INSMOD_2(gl518sm_r00, gl518sm_r80);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Many GL518 constants specified below */
 | 
					/* Many GL518 constants specified below */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -41,8 +41,7 @@ static const unsigned short normal_i2c[] = { 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d,
 | 
				
			||||||
						0x2e, 0x2f, I2C_CLIENT_END };
 | 
											0x2e, 0x2f, I2C_CLIENT_END };
 | 
				
			||||||
static unsigned short isa_address = 0x290;
 | 
					static unsigned short isa_address = 0x290;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Insmod parameters */
 | 
					enum chips { lm78, lm79 };
 | 
				
			||||||
I2C_CLIENT_INSMOD_2(lm78, lm79);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Many LM78 constants specified below */
 | 
					/* Many LM78 constants specified below */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -51,11 +51,7 @@
 | 
				
			||||||
static const unsigned short normal_i2c[] = {
 | 
					static const unsigned short normal_i2c[] = {
 | 
				
			||||||
	0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, 0x4c, 0x4d, 0x4e, I2C_CLIENT_END };
 | 
						0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, 0x4c, 0x4d, 0x4e, I2C_CLIENT_END };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					enum chips { lm83, lm82 };
 | 
				
			||||||
 * Insmod parameters
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
I2C_CLIENT_INSMOD_2(lm83, lm82);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * The LM83 registers
 | 
					 * The LM83 registers
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,9 +38,11 @@
 | 
				
			||||||
/* Addresses to scan */
 | 
					/* Addresses to scan */
 | 
				
			||||||
static const unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
 | 
					static const unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Insmod parameters */
 | 
					enum chips {
 | 
				
			||||||
I2C_CLIENT_INSMOD_7(lm85b, lm85c, adm1027, adt7463, adt7468, emc6d100,
 | 
						any_chip, lm85b, lm85c,
 | 
				
			||||||
		    emc6d102);
 | 
						adm1027, adt7463, adt7468,
 | 
				
			||||||
 | 
						emc6d100, emc6d102
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* The LM85 registers */
 | 
					/* The LM85 registers */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -74,11 +74,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
 | 
					static const unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					enum chips { lm87, adm1024 };
 | 
				
			||||||
 * Insmod parameters
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
I2C_CLIENT_INSMOD_2(lm87, adm1024);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * The LM87 registers
 | 
					 * The LM87 registers
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -93,12 +93,7 @@
 | 
				
			||||||
static const unsigned short normal_i2c[] = {
 | 
					static const unsigned short normal_i2c[] = {
 | 
				
			||||||
	0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, 0x4c, 0x4d, 0x4e, I2C_CLIENT_END };
 | 
						0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, 0x4c, 0x4d, 0x4e, I2C_CLIENT_END };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					enum chips { lm90, adm1032, lm99, lm86, max6657, adt7461, max6680, max6646 };
 | 
				
			||||||
 * Insmod parameters
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
I2C_CLIENT_INSMOD_8(lm90, adm1032, lm99, lm86, max6657, adt7461, max6680,
 | 
					 | 
				
			||||||
		    max6646);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * The LM90 registers
 | 
					 * The LM90 registers
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -35,7 +35,7 @@ MODULE_LICENSE("GPL");
 | 
				
			||||||
static const unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
 | 
					static const unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Insmod parameters */
 | 
					/* Insmod parameters */
 | 
				
			||||||
I2C_CLIENT_INSMOD_2(thmc50, adm1022);
 | 
					enum chips { thmc50, adm1022 };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static unsigned short adm1022_temp3[16];
 | 
					static unsigned short adm1022_temp3[16];
 | 
				
			||||||
static unsigned int adm1022_temp3_num;
 | 
					static unsigned int adm1022_temp3_num;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -42,8 +42,7 @@
 | 
				
			||||||
/* Addresses to scan */
 | 
					/* Addresses to scan */
 | 
				
			||||||
static const unsigned short normal_i2c[] = { 0x4c, I2C_CLIENT_END };
 | 
					static const unsigned short normal_i2c[] = { 0x4c, I2C_CLIENT_END };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Insmod parameters */
 | 
					enum chips { tmp401, tmp411 };
 | 
				
			||||||
I2C_CLIENT_INSMOD_2(tmp401, tmp411);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * The TMP401 registers, note some registers have different addresses for
 | 
					 * The TMP401 registers, note some registers have different addresses for
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,8 +39,7 @@
 | 
				
			||||||
static unsigned short normal_i2c[] = { 0x2a, 0x4c, 0x4d, 0x4e, 0x4f,
 | 
					static unsigned short normal_i2c[] = { 0x2a, 0x4c, 0x4d, 0x4e, 0x4f,
 | 
				
			||||||
				       I2C_CLIENT_END };
 | 
									       I2C_CLIENT_END };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Insmod parameters */
 | 
					enum chips { tmp421, tmp422, tmp423 };
 | 
				
			||||||
I2C_CLIENT_INSMOD_3(tmp421, tmp422, tmp423);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* The TMP421 registers */
 | 
					/* The TMP421 registers */
 | 
				
			||||||
#define TMP421_CONFIG_REG_1			0x09
 | 
					#define TMP421_CONFIG_REG_1			0x09
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -56,9 +56,10 @@
 | 
				
			||||||
/* Addresses to scan */
 | 
					/* Addresses to scan */
 | 
				
			||||||
static const unsigned short normal_i2c[] = { 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d,
 | 
					static const unsigned short normal_i2c[] = { 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d,
 | 
				
			||||||
						0x2e, 0x2f, I2C_CLIENT_END };
 | 
											0x2e, 0x2f, I2C_CLIENT_END };
 | 
				
			||||||
/* Insmod parameters */
 | 
					 | 
				
			||||||
I2C_CLIENT_INSMOD_4(w83781d, w83782d, w83783s, as99127f);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum chips { w83781d, w83782d, w83783s, as99127f };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Insmod parameters */
 | 
				
			||||||
static unsigned short force_subclients[4];
 | 
					static unsigned short force_subclients[4];
 | 
				
			||||||
module_param_array(force_subclients, short, NULL, 0);
 | 
					module_param_array(force_subclients, short, NULL, 0);
 | 
				
			||||||
MODULE_PARM_DESC(force_subclients, "List of subclient addresses: "
 | 
					MODULE_PARM_DESC(force_subclients, "List of subclient addresses: "
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -602,29 +602,5 @@ union i2c_smbus_data {
 | 
				
			||||||
  module_param_array(var, short, &var##_num, 0); \
 | 
					  module_param_array(var, short, &var##_num, 0); \
 | 
				
			||||||
  MODULE_PARM_DESC(var, desc)
 | 
					  MODULE_PARM_DESC(var, desc)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* These are the ones you want to use in your own drivers. Pick the one
 | 
					 | 
				
			||||||
   which matches the number of devices the driver differenciates between. */
 | 
					 | 
				
			||||||
#define I2C_CLIENT_INSMOD_2(chip1, chip2)				\
 | 
					 | 
				
			||||||
enum chips { any_chip, chip1, chip2 }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define I2C_CLIENT_INSMOD_3(chip1, chip2, chip3)			\
 | 
					 | 
				
			||||||
enum chips { any_chip, chip1, chip2, chip3 }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define I2C_CLIENT_INSMOD_4(chip1, chip2, chip3, chip4)			\
 | 
					 | 
				
			||||||
enum chips { any_chip, chip1, chip2, chip3, chip4 }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define I2C_CLIENT_INSMOD_5(chip1, chip2, chip3, chip4, chip5)		\
 | 
					 | 
				
			||||||
enum chips { any_chip, chip1, chip2, chip3, chip4, chip5 }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define I2C_CLIENT_INSMOD_6(chip1, chip2, chip3, chip4, chip5, chip6)	\
 | 
					 | 
				
			||||||
enum chips { any_chip, chip1, chip2, chip3, chip4, chip5, chip6 }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define I2C_CLIENT_INSMOD_7(chip1, chip2, chip3, chip4, chip5, chip6, chip7) \
 | 
					 | 
				
			||||||
enum chips { any_chip, chip1, chip2, chip3, chip4, chip5, chip6,	\
 | 
					 | 
				
			||||||
	     chip7 }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define I2C_CLIENT_INSMOD_8(chip1, chip2, chip3, chip4, chip5, chip6, chip7, chip8) \
 | 
					 | 
				
			||||||
enum chips { any_chip, chip1, chip2, chip3, chip4, chip5, chip6,	\
 | 
					 | 
				
			||||||
	     chip7, chip8 }
 | 
					 | 
				
			||||||
#endif /* __KERNEL__ */
 | 
					#endif /* __KERNEL__ */
 | 
				
			||||||
#endif /* _LINUX_I2C_H */
 | 
					#endif /* _LINUX_I2C_H */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue