@@ -31,8 +31,6 @@ MODULE_DEVICE_TABLE(i2c, max15301_id);
31
31
32
32
struct max15301_data {
33
33
int id ;
34
- ktime_t access ; /* Chip access time */
35
- int delay ; /* Delay between chip accesses in us */
36
34
struct pmbus_driver_info info ;
37
35
};
38
36
@@ -55,89 +53,6 @@ static struct max15301_data max15301_data = {
55
53
}
56
54
};
57
55
58
- /* This chip needs a delay between accesses */
59
- static inline void max15301_wait (const struct max15301_data * data )
60
- {
61
- if (data -> delay ) {
62
- s64 delta = ktime_us_delta (ktime_get (), data -> access );
63
-
64
- if (delta < data -> delay )
65
- udelay (data -> delay - delta );
66
- }
67
- }
68
-
69
- static int max15301_read_word_data (struct i2c_client * client , int page ,
70
- int phase , int reg )
71
- {
72
- const struct pmbus_driver_info * info = pmbus_get_driver_info (client );
73
- struct max15301_data * data = to_max15301_data (info );
74
- int ret ;
75
-
76
- if (page > 0 )
77
- return - ENXIO ;
78
-
79
- if (reg >= PMBUS_VIRT_BASE )
80
- return - ENXIO ;
81
-
82
- max15301_wait (data );
83
- ret = pmbus_read_word_data (client , page , phase , reg );
84
- data -> access = ktime_get ();
85
-
86
- return ret ;
87
- }
88
-
89
- static int max15301_read_byte_data (struct i2c_client * client , int page , int reg )
90
- {
91
- const struct pmbus_driver_info * info = pmbus_get_driver_info (client );
92
- struct max15301_data * data = to_max15301_data (info );
93
- int ret ;
94
-
95
- if (page > 0 )
96
- return - ENXIO ;
97
-
98
- max15301_wait (data );
99
- ret = pmbus_read_byte_data (client , page , reg );
100
- data -> access = ktime_get ();
101
-
102
- return ret ;
103
- }
104
-
105
- static int max15301_write_word_data (struct i2c_client * client , int page , int reg ,
106
- u16 word )
107
- {
108
- const struct pmbus_driver_info * info = pmbus_get_driver_info (client );
109
- struct max15301_data * data = to_max15301_data (info );
110
- int ret ;
111
-
112
- if (page > 0 )
113
- return - ENXIO ;
114
-
115
- if (reg >= PMBUS_VIRT_BASE )
116
- return - ENXIO ;
117
-
118
- max15301_wait (data );
119
- ret = pmbus_write_word_data (client , page , reg , word );
120
- data -> access = ktime_get ();
121
-
122
- return ret ;
123
- }
124
-
125
- static int max15301_write_byte (struct i2c_client * client , int page , u8 value )
126
- {
127
- const struct pmbus_driver_info * info = pmbus_get_driver_info (client );
128
- struct max15301_data * data = to_max15301_data (info );
129
- int ret ;
130
-
131
- if (page > 0 )
132
- return - ENXIO ;
133
-
134
- max15301_wait (data );
135
- ret = pmbus_write_byte (client , page , value );
136
- data -> access = ktime_get ();
137
-
138
- return ret ;
139
- }
140
-
141
56
static int max15301_probe (struct i2c_client * client )
142
57
{
143
58
int status ;
@@ -164,12 +79,7 @@ static int max15301_probe(struct i2c_client *client)
164
79
return - ENODEV ;
165
80
}
166
81
167
- max15301_data .delay = delay ;
168
-
169
- info -> read_byte_data = max15301_read_byte_data ;
170
- info -> read_word_data = max15301_read_word_data ;
171
- info -> write_byte = max15301_write_byte ;
172
- info -> write_word_data = max15301_write_word_data ;
82
+ info -> access_delay = delay ;
173
83
174
84
return pmbus_do_probe (client , info );
175
85
}
0 commit comments