@@ -67,7 +67,6 @@ struct ucd9000_data {
67
67
struct gpio_chip gpio ;
68
68
#endif
69
69
struct dentry * debugfs ;
70
- ktime_t write_time ;
71
70
};
72
71
#define to_ucd9000_data (_info ) container_of(_info, struct ucd9000_data, info)
73
72
@@ -86,63 +85,6 @@ struct ucd9000_debugfs_entry {
86
85
*/
87
86
#define UCD90320_WAIT_DELAY_US 500
88
87
89
- static inline void ucd90320_wait (const struct ucd9000_data * data )
90
- {
91
- s64 delta = ktime_us_delta (ktime_get (), data -> write_time );
92
-
93
- if (delta < UCD90320_WAIT_DELAY_US )
94
- udelay (UCD90320_WAIT_DELAY_US - delta );
95
- }
96
-
97
- static int ucd90320_read_word_data (struct i2c_client * client , int page ,
98
- int phase , int reg )
99
- {
100
- const struct pmbus_driver_info * info = pmbus_get_driver_info (client );
101
- struct ucd9000_data * data = to_ucd9000_data (info );
102
-
103
- if (reg >= PMBUS_VIRT_BASE )
104
- return - ENXIO ;
105
-
106
- ucd90320_wait (data );
107
- return pmbus_read_word_data (client , page , phase , reg );
108
- }
109
-
110
- static int ucd90320_read_byte_data (struct i2c_client * client , int page , int reg )
111
- {
112
- const struct pmbus_driver_info * info = pmbus_get_driver_info (client );
113
- struct ucd9000_data * data = to_ucd9000_data (info );
114
-
115
- ucd90320_wait (data );
116
- return pmbus_read_byte_data (client , page , reg );
117
- }
118
-
119
- static int ucd90320_write_word_data (struct i2c_client * client , int page ,
120
- int reg , u16 word )
121
- {
122
- const struct pmbus_driver_info * info = pmbus_get_driver_info (client );
123
- struct ucd9000_data * data = to_ucd9000_data (info );
124
- int ret ;
125
-
126
- ucd90320_wait (data );
127
- ret = pmbus_write_word_data (client , page , reg , word );
128
- data -> write_time = ktime_get ();
129
-
130
- return ret ;
131
- }
132
-
133
- static int ucd90320_write_byte (struct i2c_client * client , int page , u8 value )
134
- {
135
- const struct pmbus_driver_info * info = pmbus_get_driver_info (client );
136
- struct ucd9000_data * data = to_ucd9000_data (info );
137
- int ret ;
138
-
139
- ucd90320_wait (data );
140
- ret = pmbus_write_byte (client , page , value );
141
- data -> write_time = ktime_get ();
142
-
143
- return ret ;
144
- }
145
-
146
88
static int ucd9000_get_fan_config (struct i2c_client * client , int fan )
147
89
{
148
90
int fan_config = 0 ;
@@ -667,10 +609,8 @@ static int ucd9000_probe(struct i2c_client *client)
667
609
info -> func [0 ] |= PMBUS_HAVE_FAN12 | PMBUS_HAVE_STATUS_FAN12
668
610
| PMBUS_HAVE_FAN34 | PMBUS_HAVE_STATUS_FAN34 ;
669
611
} else if (mid -> driver_data == ucd90320 ) {
670
- info -> read_byte_data = ucd90320_read_byte_data ;
671
- info -> read_word_data = ucd90320_read_word_data ;
672
- info -> write_byte = ucd90320_write_byte ;
673
- info -> write_word_data = ucd90320_write_word_data ;
612
+ /* Delay SMBus operations after a write */
613
+ info -> write_delay = UCD90320_WAIT_DELAY_US ;
674
614
}
675
615
676
616
ucd9000_probe_gpio (client , mid , data );
0 commit comments