of_device is just an alias for platform_device, so remove it entirely. Also replace to_of_device() with to_platform_device() and update comment blocks. This patch was initially generated from the following semantic patch, and then edited by hand to pick up the bits that coccinelle didn't catch. @@ @@ -struct of_device +struct platform_device Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Reviewed-by: David S. Miller <davem@davemloft.net>
		
			
				
	
	
		
			85 lines
		
	
	
	
		
			2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
	
		
			2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef _BBC_I2C_H
 | 
						|
#define _BBC_I2C_H
 | 
						|
 | 
						|
#include <linux/of.h>
 | 
						|
#include <linux/of_device.h>
 | 
						|
#include <linux/list.h>
 | 
						|
 | 
						|
struct bbc_i2c_client {
 | 
						|
	struct bbc_i2c_bus		*bp;
 | 
						|
	struct platform_device		*op;
 | 
						|
	int				bus;
 | 
						|
	int				address;
 | 
						|
};
 | 
						|
 | 
						|
enum fan_action { FAN_SLOWER, FAN_SAME, FAN_FASTER, FAN_FULLBLAST, FAN_STATE_MAX };
 | 
						|
 | 
						|
struct bbc_cpu_temperature {
 | 
						|
	struct list_head		bp_list;
 | 
						|
	struct list_head		glob_list;
 | 
						|
 | 
						|
	struct bbc_i2c_client		*client;
 | 
						|
	int				index;
 | 
						|
 | 
						|
	/* Current readings, and history. */
 | 
						|
	s8				curr_cpu_temp;
 | 
						|
	s8				curr_amb_temp;
 | 
						|
	s8				prev_cpu_temp;
 | 
						|
	s8				prev_amb_temp;
 | 
						|
	s8				avg_cpu_temp;
 | 
						|
	s8				avg_amb_temp;
 | 
						|
 | 
						|
	int				sample_tick;
 | 
						|
 | 
						|
	enum fan_action			fan_todo[2];
 | 
						|
#define FAN_AMBIENT	0
 | 
						|
#define FAN_CPU		1
 | 
						|
};
 | 
						|
 | 
						|
struct bbc_fan_control {
 | 
						|
	struct list_head		bp_list;
 | 
						|
	struct list_head		glob_list;
 | 
						|
 | 
						|
	struct bbc_i2c_client 		*client;
 | 
						|
	int 				index;
 | 
						|
 | 
						|
	int				psupply_fan_on;
 | 
						|
	int				cpu_fan_speed;
 | 
						|
	int				system_fan_speed;
 | 
						|
};
 | 
						|
 | 
						|
#define NUM_CHILDREN	8
 | 
						|
 | 
						|
struct bbc_i2c_bus {
 | 
						|
	struct bbc_i2c_bus		*next;
 | 
						|
	int				index;
 | 
						|
	spinlock_t			lock;
 | 
						|
	void				__iomem *i2c_bussel_reg;
 | 
						|
	void				__iomem *i2c_control_regs;
 | 
						|
	unsigned char			own, clock;
 | 
						|
 | 
						|
	wait_queue_head_t		wq;
 | 
						|
	volatile int			waiting;
 | 
						|
 | 
						|
	struct list_head		temps;
 | 
						|
	struct list_head		fans;
 | 
						|
 | 
						|
	struct platform_device		*op;
 | 
						|
	struct {
 | 
						|
		struct platform_device	*device;
 | 
						|
		int			client_claimed;
 | 
						|
	} devs[NUM_CHILDREN];
 | 
						|
};
 | 
						|
 | 
						|
/* Probing and attachment. */
 | 
						|
extern struct platform_device *bbc_i2c_getdev(struct bbc_i2c_bus *, int);
 | 
						|
extern struct bbc_i2c_client *bbc_i2c_attach(struct bbc_i2c_bus *bp, struct platform_device *);
 | 
						|
extern void bbc_i2c_detach(struct bbc_i2c_client *);
 | 
						|
 | 
						|
/* Register read/write.  NOTE: Blocking! */
 | 
						|
extern int bbc_i2c_writeb(struct bbc_i2c_client *, unsigned char val, int off);
 | 
						|
extern int bbc_i2c_readb(struct bbc_i2c_client *, unsigned char *byte, int off);
 | 
						|
extern int bbc_i2c_write_buf(struct bbc_i2c_client *, char *buf, int len, int off);
 | 
						|
extern int bbc_i2c_read_buf(struct bbc_i2c_client *, char *buf, int len, int off);
 | 
						|
 | 
						|
#endif /* _BBC_I2C_H */
 |